1. Foren
  2. Kommentare
  3. Security
  4. Alle Kommentare zum Artikel
  5. › Shellshock: Alle Bash-Lücken gepatcht

Verstehe ich nicht...

  1. Thema

Neues Thema Ansicht wechseln


  1. Verstehe ich nicht...

    Autor: AngusD 06.10.14 - 11:05

    Hallo,

    es liegt vermutlich daran, dass ich die Funktionsweise, wie bash mit der Definition einer Funktion in einer Variablen umgeht und wie bash gepatcht wurde, nicht kenne.

    Wenn ich eine Funktion in einer Variablen definiere, dann ist es doch egal wie die Variable heißt. Ob ich sie jetzt "x" oder "BASH_FUNC_x%%" nenne, beides verweist auf eine Funktion.

    Wieso ist das eine ein kritischer Fehler, während das andere nur ein gewöhnlicher Bug ist? Wieso hat die Umbenennung der Variablen einen so großen Einfluss auf das Verhalten? Ich kann doch immer noch (schädliche) Funktionen importieren, nur muss ich mich jetzt an ein bestimmtes Format der Variablen halten.

    AD

  2. Re: Verstehe ich nicht...

    Autor: hab (Golem.de) 06.10.14 - 11:29

    Es hängt damit zusammen wie ein Angreifer diesen Bug ausnutzen kann. Ein Angreifer sollte niemals in der Lage sein, beliebige Variablen zu setzen.

    Nehmen wir das Beispiel CGI-Skript: Hier kann ein Angreifer bestimmte Variablen beeinflussen, etwa HTTP_USER_AGENT oder HTTP_COOKIE. Was er nicht kann: Eine Variable mit einem Namen wie BASH_FUNC_xxx%% zu setzen.

    Wäre ein Angreifer in der Lage beliebige Variablennamen zu setzen gäbe es noch viel mehr Probleme. Dann könnte er über LD_PRELOAD oder verschiedene andere Variablen vermutlich immer eine Möglichkeit finden um Code auszuführen.

    Sprich: *Wenn* es irgendwo eine Situation gibt in der ein Angreifer beliebige Variablen setzen kann wäre das sowieso eine neue Sicherheitslücke - völlig unabhängig von Problemen im Funktionsparser. Bislang hat aber noch niemand eine solche Situation gefunden.

  3. Re: Verstehe ich nicht...

    Autor: AngusD 06.10.14 - 12:01

    Hallo,

    vielen Dank für die Antwort.

    Ah... ok, jetzt verstehe ich, warum der Bug nach dem Patch heruntergestuft wurde.

    Ich verstehe schon, wenn jemand die Variablen HTTP_USER_AGENT oder HTTP_COOKIE benutzt, dass das böse enden kann und eine Umbenennung in z.B. "BASH_FUNC_HTTP_COOKIE%%" dies verhindert, aber eben nicht, wie das Verhalten von "gewöhnliche" Variablen davon beeinflusst wird...

    Die Funktionalität bleibt ja bestehen, dass man Funktionen in Variablen definieren kann.

    Es macht es trotzdem nicht wirklich besser, nur weil jemand keine "Systemvariablen" mehr nutzen kann. Mit "gewöhnlichen" Variablen lässt sich da (in Grenzen?) immer noch Unfug betreiben.

    AD

  4. Re: Verstehe ich nicht...

    Autor: hab (Golem.de) 06.10.14 - 12:36

    AngusD schrieb:
    --------------------------------------------------------------------------------
    > Ich verstehe schon, wenn jemand die Variablen HTTP_USER_AGENT oder
    > HTTP_COOKIE benutzt, dass das böse enden kann und eine Umbenennung in z.B.
    > "BASH_FUNC_HTTP_COOKIE%%" dies verhindert, aber eben nicht, wie das
    > Verhalten von "gewöhnliche" Variablen davon beeinflusst wird...
    >
    > Die Funktionalität bleibt ja bestehen, dass man Funktionen in Variablen
    > definieren kann.

    Soweit richtig.

    > Es macht es trotzdem nicht wirklich besser, nur weil jemand keine
    > "Systemvariablen" mehr nutzen kann. Mit "gewöhnlichen" Variablen lässt sich
    > da (in Grenzen?) immer noch Unfug betreiben.

    Es gibt keinen Unterschied zwischen "Systemvariablen" und "gewöhnlichen Variablen". Und nein, damit kann man keinen Unfug betreiben. Wie ich oben bereits geschrieben hab: Es gibt keine Situation in der ein Angreifer Variablen mit beliebigen Namen setzen kann. Wenn dem so wäre hätte man viel größere Probleme als diesen Funktionsimport.

  5. Re: Verstehe ich nicht...

    Autor: niabot 06.10.14 - 22:54

    Der Angreifer kann sich den Variablennamen nicht frei aussuchen. Diese Variablen werden nämlich von anderen Programmen gesetzt. D.h. er kann z.B. von Außen den Inhalt der Variablen HTTP_COOKIE bestimmen, da dies von einigen CGI-Scripts so vorgesehen ist. Er kann aber nicht direkt mit Bash interagieren. Um das zu können müsste es schon ein Programm oder Script erlauben den Inhalt einer beliebigen Variablen oder eben einer wie BASH_FUNC_HTTP_COOKIE zu setzen. Da dieses Präfix (BASH_FUNC_) mit höchster Wahrscheinlichkeit nirgends verwendet wird, hat nun auch der Angreifer keine Möglichkeit mehr Funktionen an eine solche Variable zu übergeben.

  1. Thema

Neues Thema Ansicht wechseln


Um zu kommentieren, loggen Sie sich bitte ein oder registrieren Sie sich. Sie müssen ausserdem in Ihrem Account-Profil unter Forum einen Nutzernamen vergeben haben. Zum Login

Stellenmarkt
  1. netcom GmbH, Rheinbreitbach bei Bonn
  2. Landratsamt Göppingen, Göppingen
  3. OSRAM Opto Semiconductors Gesellschaft mit beschränkter Haftung, Regensburg
  4. Bechtle GmbH, Köln

Golem pur
  • Golem.de ohne Werbung nutzen

Anzeige
Hardware-Angebote


Haben wir etwas übersehen?

E-Mail an news@golem.de