Forum: PC-Programmierung Gibt es gefährlichen Latex Code? Sicherheitslücken?


von Beck (Gast)


Lesenswert?

Hi.

Hier kennen sich ja bestimmt einige gut mit Latex aus.
Das wird in wissenschaftlichen Kreisen ja gerne verwendet, vor allem von 
den Linuxusern.

Ich kenne mich nicht mit Latex aus, ich wüsste aber gerne, ob Latex 
Dateien potentiell gefährlichen Code enthalten können, sowie Code, der 
eventuell vorhandene Sicherheitslücken ausnutzt.

In meinem Fall sind auch eventuell vorhandene Includefunktionen und 
alles, was das einbinden von Dateien aus dem System erlaubt, als 
gefährlicher Code anzusehen. (da man sonst über Einbinde-Befehle über 
den Umweg Latex alles mögliche auslesen könnte)
Systemcalls, Latex Befehle zum Shellbefehle absetzen, Sockets usw sind 
ebenfalls als gefährlich anzusehen.

Warum ich frage? Ich wollte auf meiner Webseite erlauben, dass man 
mithilfe von Latexcode Formeln und andere Sachen erzeugen und als Bild 
in den Artikel einbinden kann.

Dafür habe ich ich ein Eingabefenster, dessen Inhalt als temporäre Datei 
gespeichert wird. Anschließend stoße ich mit php ein Shellscript zur 
weitetren Verarbeitung an.

Ich weiß aber nicht, ob man in einer Latexdatei Schadcode unter bringen 
kann. Momentan wird das Eingabefeld 1:1 in eine temporäre Datei kopiert. 
Danach rufe ich mit einem Shellscript einfach Latex auf, speichere als 
DVI Datei und konvertriere diese mit dvipng. Die temporäre Datei sowie 
die DVI Datei wird gelöscht, das PNG wird verschoben und eingefügt.

Ich habe von Latex 0 Ahung und weiß nicht, was damit alles möglich ist 
und was nicht.
Würde mich freuen, wenn ihr mir die potentiell gefährlichen Funktionen 
und Befehle, und alles was zum Einbinden von Dateien taugt, kurz 
erläutern könntet.

von Klaus D. (kolisson)


Lesenswert?

a Little Joke...

soll denn Latex nicht gerade gefährliche Dinge verhindern ?

gruss k.

von Michael H. (michael_h45)


Lesenswert?

Beck schrieb:
> In meinem Fall sind auch eventuell vorhandene Includefunktionen und
> alles, was das einbinden von Dateien aus dem System erlaubt, als
> gefährlicher Code anzusehen. (da man sonst über Einbinde-Befehle über
> den Umweg Latex alles mögliche auslesen könnte)
> Systemcalls, Latex Befehle zum Shellbefehle absetzen, Sockets usw sind
> ebenfalls als gefährlich anzusehen.
Ja, das geht durchaus.
Einfaches Beispiel ist das listings-Paket, das es erlaubt, Text aus 
Dateien in ein Dokument einzubinden.
/etc/passwd wäre ein schöner ansatz für so eine datei ^^

> Warum ich frage? Ich wollte auf meiner Webseite erlauben, dass man
> mithilfe von Latexcode Formeln und andere Sachen erzeugen und als Bild
> in den Artikel einbinden kann.
Da würde ich vorschlagen, dich an mediawiki zu halten.
Ist Quelloffen und sicherlich in der Hinsicht durchdacht.

Ansonsten wäre ein erster Schritt, einen eigenen Benutzer für das 
Erstellen des Outputs zu erstellen, der nichts lesen und schreiben darf, 
was außerhalb seines homes liegt.
Den Tex-Compiler dürfte das nicht stören.

> Dafür habe ich ich ein Eingabefenster, dessen Inhalt als temporäre Datei
> gespeichert wird. Anschließend stoße ich mit php ein Shellscript zur
> weitetren Verarbeitung an.
Da noch ein kleiner Tipp: lass hier ja keine vom Benutzer eingebbaren 
Dateinamen zu.
http://xkcd.com/327/
=)

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

LaTeX ist nur ein Erweiterungspaket von TeX. Und Donald Knuth hat meines 
Wissens nach eine Belohnung ausgelobt für jeden, der Fehler in TeX 
findet. Wenn ich mich recht erinnere, ist der Betrag die Zahl pi (ohne 
Dezimalkomma) - für jeden Fehler gibt es eine Nachkommastelle mehr.
Also 3$ für den ersten, 31$ für den zweiten, 314$ für den dritten 
gefundenen Fehler etc.

Finanzielle Probleme hat Herr Knuth dadurch bislang nicht bekommen.

von Guido (Gast)


Lesenswert?

Rufus t. Firefly schrieb:
> Finanzielle Probleme hat Herr Knuth dadurch bislang nicht bekommen.

Doch, er hat diese Wette leider beenden müssen, da sie ihn hätte 
ruinieren
können.

von Jens G. (jensig)


Lesenswert?

Kann man dem Script nicht mit chroot ein eigenes Rootverzeichnis 
vergeben? Da sieht es ja gar nix vom echten Filesystem, und kann somit 
nix manipulieren, soweit ich weis.
(nur mal 'ne Idee - schon lange her, daß ich mal damit rumgespielt 
hatte)

von Hc Z. (mizch)


Lesenswert?

Unabhängig davon wird Donald Knuth keine Verantwortung für 
Sicherheitsprobleme übernehmen können, die sich aus der geschilderten 
Applikation ergeben.

Ich würde den TeX-Compile-Vorgang in ein chroot einsperren (mit evtl. 
ge-bind-mountetem Arbeitsverzeichnis, /bin, /usr/bin, und dem TeX-Teil 
aus /usr/share - eben mit dem, was TeX minimal zum Arbeiten braucht).

von dagger (Gast)


Lesenswert?

Rufus t. Firefly schrieb:
> LaTeX ist nur ein Erweiterungspaket von TeX. Und Donald Knuth hat meines
> Wissens nach eine Belohnung ausgelobt für jeden, der Fehler in TeX
> findet. Wenn ich mich recht erinnere, ist der Betrag die Zahl pi (ohne
> Dezimalkomma) - für jeden Fehler gibt es eine Nachkommastelle mehr.
> Also 3$ für den ersten, 31$ für den zweiten, 314$ für den dritten
> gefundenen Fehler etc.
Das verwechselst du mit Versionsnummer von TeX. ;-)

Guido schrieb:
> Rufus t. Firefly schrieb:
>> Finanzielle Probleme hat Herr Knuth dadurch bislang nicht bekommen.
>
> Doch, er hat diese Wette leider beenden müssen, da sie ihn hätte
> ruinieren
> können.
Er hat es nicht eingestellt, aber der hexadezimale Dollar verdoppelt 
sich nicht mehr, http://en.wikipedia.org/wiki/TeX#Development

von Simon B. (nomis)


Lesenswert?

Es sei auch noch darauf hingewiesen, dass man AFAIK auch während des 
Compilierprogramms externe Programme ausführen lassen kann.

Gehe davon aus, dass es vom Sicherheitsaspekt her maximal unsicher ist, 
beliebigen Quelltext von extern auf dem eigenen System zu übersetzen.

Ich würde sogar vermuten, dass es quasi unmöglich ist, den Quelltext 
vorab auf solche Lücken zu testen.

Viele Grüße,
        Simon

von Bernd W. (berndwiebus) Benutzerseite


Lesenswert?

Hallo Beck.

> Hier kennen sich ja bestimmt einige gut mit Latex aus.
> Das wird in wissenschaftlichen Kreisen ja gerne verwendet, vor allem von
> den Linuxusern.

Ich kenne mich nicht gut damit aus.


> Ich kenne mich nicht mit Latex aus, ich wüsste aber gerne, ob Latex
> Dateien potentiell gefährlichen Code enthalten können, sowie Code, der
> eventuell vorhandene Sicherheitslücken ausnutzt.

Grundsätzlich theoretisch sehe ich auch das Problem.

>
> In meinem Fall sind auch eventuell vorhandene Includefunktionen und
> alles, was das einbinden von Dateien aus dem System erlaubt, als
> gefährlicher Code anzusehen. (da man sonst über Einbinde-Befehle über
> den Umweg Latex alles mögliche auslesen könnte)
> Systemcalls, Latex Befehle zum Shellbefehle absetzen, Sockets usw sind
> ebenfalls als gefährlich anzusehen.


Dann musst Du genau daß unterbinden.

z.B. müsstest Du den Text aus Deiner Eingabe auf Includes parsen, und 
alles zurückweisen, was nicht einer whitelist entspricht, die für die 
Bearbeitung
der Formeln nötig ist.

So als alternative Idee zu den "einsperr" Lösungen der anderen Poster.

> Ich habe von Latex 0 Ahung und weiß nicht, was damit alles möglich ist
> und was nicht.
> Würde mich freuen, wenn ihr mir die potentiell gefährlichen Funktionen
> und Befehle, und alles was zum Einbinden von Dateien taugt, kurz
> erläutern könntet.

Ich schreibe gelegentlich etwas in Latex, aber Dein Wunsch überfordert 
mich leider.

Mit freundlichem Gruß: Bernd Wiebus alias dl1eic

http://www.dl0dg.de

von Beck (Gast)


Lesenswert?

Hat das Mediawiki einen eigenen Latex Compiler und Bildrenderer drin?
Mediawiki läuft ja immerhin auch auf Shared Hosting, wo man nicht 
unbedingt Zugriff auf die Kommandozeilenprogramme hat.

Mediawiki im Hintergrund laufen lassen wäre auch eine Alternative.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.