Zum Inhalt springen

Cross-Site-Cooking

aus Wikipedia, der freien Enzyklopädie
Datei:Cookie-cooking-de.svg
Beim Cross-Site-Cooking nutzt der Angreifer einen Fehler des Browsers, um einen falschen Cookie zum Server zu übermitteln.

Cross-Site-Cooking ist eine Art von Browser-Exploit (dt.: Ausnutzung eines Bugs in einem Browser), welche es einem Angreifer erlaubt, ein Cookie für die Domain eines anderen Servers im Browser zu setzen.

Cross-Site-Cooking kann ausgenutzt werden, um Session-Fixation-Attacken auszuüben. Der Angreifer kann mithilfe eines solchen Programmfehlers die Sitzungs-ID im Cookie erstarren lassen.

Ein anderes Angriffsszenario ist auch möglich: Ein Angreifer könnte von einer Sicherheitslücke in einem Server wissen, welche durch Benutzung eines Cookies ausnutzbar ist. Aber wenn diese Sicherheitslücke beispielsweise ein Administratorpasswort erfordert, könnte Cross-Site-Cooking dazu missbraucht werden, um einen unschuldigen Benutzer zum unbeabsichtigten Ausführen einer Attacke zu benutzen.

Cross-Site-Cooking ist prinzipiell ähnlich Cross-Site-Scripting, Cross-Site-Request-Forgery, Cross-Site-Tracing, Cross-Zone-Scripting und anderem, denn all diese Ausnutzungen von Sicherheitslücken funktionieren durch Übertragung von Daten oder Code zwischen verschiedenen Websites (in manchen Fällen auch zwischen E-Mail- oder Chat-Nachrichten und Websites). Nur browserseitig gegebene, logische Sicherheitsgrenzen verhindern, dass Webseiten Daten voneinander stehlen oder beschädigen können. An dieser Stelle setzen solche Bugausnutzungen wie das Cross-Site-Cooking an, um Daten bzw. Code über diese logischen Sicherheitsgrenzen hinaus zu bewegen.

Herkunft

Der Name und das Konzept von Cross-Site-Cooking wurde nicht erst durch Michal Zalewski, einen polnischen Sicherheitsexperten, geprägt, sondern wurde schon viel früher benutzt. Der Name ist eine Zusammensetzung aus Cross Site („seitenübergreifend“) und Cookie, um das Prinzip zu verdeutlichen. Möglicherweise ist der Name auch beabsichtigt lustig gewählt worden.

Ungelöste, bekannte Sicherheitsschwachstellen in Browsern gibt es seit 8 Jahren, und es ist keine Lösung in Sicht. In Michal Zalewskis Artikel aus dem Jahr 2006 wurde Benjamin Franz<ref><templatestyles src="Webarchiv/styles.css" />{{#if:

      | {{#ifeq: {{{wayback}}} | *
    | Vorlage:Webarchiv/Wartung/Stern{{#if: Website von Benjamin Franz | {{#invoke:WLink|getEscapedTitle|Website von Benjamin Franz}} | {{#invoke:Webarchiv|getdomain|http://www.nihongo.org/snowhare/}} }} (Archivversionen)
    | {{#iferror: {{#time: j. F Y|{{{wayback}}}}}
         | {{#if:  || }}Vorlage:Webarchiv/Wartung/DatumDer Wert des Parameters {{#if: wayback | wayback | Datum }} muss ein gültiger Zeitstempel der Form YYYYMMDDHHMMSS sein!
         | {{#if: Website von Benjamin Franz | {{#invoke:WLink|getEscapedTitle|Website von Benjamin Franz}} | {{#invoke:Webarchiv|getdomain|http://www.nihongo.org/snowhare/}} }} {{#ifeq:  | [] | [ | ( }}Memento{{#if: {{#if:  | {{{archiv-bot}}} |  }} |  des Vorlage:Referrer }} vom {{#time: j. F Y|{{{wayback}}}}} im Internet Archive{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
      }}
  }}
      | {{#if:
          | {{#iferror: {{#time: j. F Y|{{{webciteID}}}}}
    | {{#switch: {{#invoke:Str|len|{{{webciteID}}}}}
       | 16= {{#if: Website von Benjamin Franz | {{#invoke:WLink|getEscapedTitle|Website von Benjamin Franz}} | {{#invoke:Webarchiv|getdomain|http://www.nihongo.org/snowhare/}} }} {{#ifeq:  | [] | [ | ( }}Memento{{#if: {{#if:  | {{{archiv-bot}}} |  }} |  des Vorlage:Referrer }} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{{webciteID}}}|1|10}}/86400}} }} days}} auf WebCite{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
       | 9 = {{#if: Website von Benjamin Franz | {{#invoke:WLink|getEscapedTitle|Website von Benjamin Franz}} | {{#invoke:Webarchiv|getdomain|http://www.nihongo.org/snowhare/}} }} {{#ifeq:  | [] | [ | ( }}Memento{{#if: {{#if:  | {{{archiv-bot}}} |  }} |  des Vorlage:Referrer}} vom {{#time: j. F Y| 19700101000000 + {{#expr: floor {{#expr: {{#invoke:Str|sub|{{#invoke:Expr|base62|{{{webciteID}}}}}|1|10}}/86400}} }} days}} auf WebCite{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
       | #default= Der Wert des Parameters {{#if: webciteID | webciteID | ID }} muss entweder ein Zeitstempel der Form YYYYMMDDHHMMSS oder ein Schüsselwert mit 9 Zeichen oder eine 16-stellige Zahl sein!Vorlage:Webarchiv/Wartung/webcitation{{#if:  || }}
      }}
    | c|{{{webciteID}}}}} {{#if: Website von Benjamin Franz | {{#invoke:WLink|getEscapedTitle|Website von Benjamin Franz}} | {{#invoke:Webarchiv|getdomain|http://www.nihongo.org/snowhare/}} }} (Memento{{#if: {{#if:  | {{{archiv-bot}}} |  }} |  des Vorlage:Referrer}} vom {{#time: j. F Y|{{{webciteID}}}}} auf WebCite{{#if:  | ;  }}{{#ifeq:  | [] | ] | ) }}
  }}
          | {{#if: 19990129060744
              | Vorlage:Webarchiv/Today
              | {{#if:
                      | Vorlage:Webarchiv/Generisch
                      | {{#if: Website von Benjamin Franz | {{#invoke:WLink|getEscapedTitle|Website von Benjamin Franz}} | {{#invoke:Webarchiv|getdomain|http://www.nihongo.org/snowhare/}} }}  
                 }}}}}}}}{{#if:
    | Vorlage:Webarchiv/archiv-bot
  }}{{#invoke:TemplatePar|check
     |all      = url=
     |opt      = text= wayback= webciteID= archive-is= archive-today= archiv-url= archiv-datum= ()= archiv-bot= format= original=
     |cat      = Wikipedia:Vorlagenfehler/Vorlage:Webarchiv
     |errNS    = 0
     |template = Vorlage:Webarchiv
     |format   = *
     |preview  = 1
  }}{{#ifexpr: {{#if:|1|0}}{{#if:|+1}}{{#if:|+1}}{{#if:19990129060744|+1}}{{#if:|+1}} <> 1
    | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Genau einer der Parameter 'wayback', 'webciteID', 'archive-today', 'archive-is' oder 'archiv-url' muss angegeben werden.|1}}
  }}{{#if: 
    | {{#switch: {{#invoke:Webarchiv|getdomain|{{{archiv-url}}}}}
        | web.archive.org = 
          {{#if:  || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von Internet Archive erkannt, bitte Parameter 'wayback' benutzen.|1}} 
        | webcitation.org = 
          {{#if:  || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von WebCite erkannt, bitte Parameter 'webciteID' benutzen.|1}} 
        | archive.today |archive.is |archive.ph |archive.fo |archive.li |archive.md |archive.vn = 
          {{#if:  || }}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Im Parameter 'archiv-url' wurde URL von archive.today erkannt, bitte Parameter 'archive-today' benutzen.|1}}
      }}{{#if: 
         | {{#iferror: {{#iferror:{{#invoke:Vorlage:FormatDate|Execute}}|}}
             | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Wert des Parameter 'archiv-datum' ist ungültig oder hat ein ungültiges Format.|1}}
          |  }} 
         | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Pflichtparameter 'archiv-datum' wurde nicht angegeben.|1}}
      }}
    | {{#if: 
         | {{#if:  || }}Vorlage:Webarchiv/Wartung/Parameter{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Der Parameter 'archiv-datum' ist nur in Verbindung mit 'archiv-url' angebbar.|1}}
      }}
  }}{{#if:{{#invoke:URLutil|isHostPathResource|http://www.nihongo.org/snowhare/}}
    || {{#if:  || }}
  }}{{#if: Website von Benjamin Franz
    | {{#if: {{#invoke:WLink|isBracketedLink|Website von Benjamin Franz}}
        | {{#if:  || }}
      }}
    | {{#if:  || }}Vorlage:Webarchiv/Wartung/Linktext_fehlt
  }}{{#switch: 
    |addlarchives|addlpages= {{#if:  || }}{{#if: 1 |Vorlage:Webarchiv/Wartung/Parameter}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: enWP-Wert im Parameter 'format'.|1}}
  }}{{#ifeq: {{#invoke:Str|find|http://www.nihongo.org/snowhare/%7Carchiv}} |-1
    || {{#ifeq: {{#invoke:Str|find|{{#invoke:Str|cropleft|http://www.nihongo.org/snowhare/%7C4}}%7Chttp}} |-1
         || {{#switch: {{#invoke:Webarchiv|getdomain|http://www.nihongo.org/snowhare/ }}
              | abendblatt.de | daserste.ndr.de | inarchive.com | webcitation.org = 
              | #default = {{#if:  || }}{{#if: 1 |Vorlage:Webarchiv/Wartung/URL}}{{#invoke:TemplUtl|failure| Fehler bei Vorlage:Webarchiv: Archiv-URL im Parameter 'url' anstatt URL der Originalquelle. Entferne den vor der Original-URL stehenden Mementobestandteil und setze den Archivierungszeitstempel in den Parameter 'wayback', 'webciteID', 'archive.today' oder 'archive-is' ein, sofern nicht bereits befüllt.|1}}
            }} 
       }}
  }}, abgerufen am 17. August 2011</ref> die Entdeckung zugeschrieben. Dieser berichtete im Mai 1998 über ein von der "Domain des Cookies" abhängiges Sicherheitsrisiko für Anbieter von Webdiensten. Benjamin Franz veröffentlichte diese Sicherheitslücke und sah sie hauptsächlich als einen Weg an, Datenschutzmechanismen in weit verbreiteten Browsern zu umgehen. Michal Zalewski kam zum Schluss, dass der Bug auch noch 8 Jahre später in einigen Browsern vorhanden (nicht behoben) war und für Cross-Site-Cooking ausgenutzt werden konnte. Zalewski und andere machten indes einige Bemerkungen wie „vendors […] certainly are not in a hurry to fix this“ (dt.: „(Browser-)Hersteller sehen keine Veranlassung, dieses Problem schnell zu lösen“).

Einzelnachweise

<references />

Weblinks

  • Cross Site Cooking (englisch) Artikel von Michal Zalewski. Beschreibt das Konzept und 3 Bugs, die das Cross-Site-Cooking ermöglichen. Einer dieser Bugs ist der, den Benjamin Franz entdeckte.