mikrocontroller.net

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


Autor: Beck (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Klaus De lisson (kolisson)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
a Little Joke...

soll denn Latex nicht gerade gefährliche Dinge verhindern ?

gruss k.

Autor: Michael H. (michael_h45)
Datum:

Bewertung
0 lesenswert
nicht 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/
=)

Autor: Rufus Τ. Firefly (rufus) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Guido (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Jens G. (jensig)
Datum:

Bewertung
0 lesenswert
nicht 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)

Autor: Hc Zimmerer (mizch)
Datum:

Bewertung
0 lesenswert
nicht 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).

Autor: dagger (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Simon Budig (nomis)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Bernd Wiebus (berndwiebus) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Beck (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.