Gebäck für alle oder was sind Cookies?

Intro

Oft haben wir es in der Abschlussbesprechung der Sicherheitsanalysen mit Geschäftsführung oder Management zu tun. Nach der anfänglichen Übersicht zum Gesamtzustand der untersuchten Infrastruktur, geht es im Lauf des Gesprächs dann doch oft auch um technische Details, die für Sicherheitslücken verantwortlich sind. Wenig überraschend fallen dann oft Begriff aus der Welt der IT(-Sicherheit), die für Manche zunächst eher unklare Bedeutung haben. Natürlich haben am Ende der Diskussion alle verstanden was genau das Problem ist und wie man es beheben könnte. Trotzdem haben wir uns gedacht ist dies ein guter Grund für unsere neue Blogreihe "IT-Sicherheit für Geschäftsführer". In dieser Blogreihe werden wir gängigen Begriffe aus der IT-Welt so beschreiben, dass sie klar verständlich sind. Denn: Security darf kein Glückspiel sein.

Beschreibung

Da wir oft (jedoch nicht ausschließlich) die Sicherheitsanalysen von Web-Anwendungen durchführen, fällt dabei früher oder später der Begriff "Cookie". Ja, das heißt "Keks" oder "Plätzchen" auf Deutsch. Was hat es denn damit auf sich? Ein Cookie ist ein leckerer kleiner Datensatz, der sich für einige Zeit im Browser einnisten kann. Eine besuchte Webseite oder Webapplikation kann kleine Datenmengen (etwa 4000 Zeichen) in einem solchen Cookie speichern. Leicht vereinfacht gesagt, gibt es folgende Haupteinsatzwecke:

  • Tracking-Cookie (der Grund warum auf unterschiedlichsten Seiten immer wieder ein Wandregal in Werbeanzeigen angepriesen wird, nachdem man ein einziges mal vor vier Wochen danach gesucht hat),
  • Session-Cookie (der Star und dieser Blog-Folge)
  • Sonstige-Cookies (aus IT-security Sicht fast nie eine gute Idee)

Wir wollen uns heute mit dem Session-Cookie beschäftigen, da dieses ein Cookie ist, das besonderen Schutzbedarf besitzt. Das Session-Cookie kann man sich wie eine Fahrkarte vorstellen. Nach dem man die Fahrt bezahlt hat, bekommt man vom Fahrer oder dem Schaffner eine Fahrkarte. Die Fahrkarte ist damit der Nachweis, dass man die Fahrt bezahlt hat und berechtigt ist diese auch zu unternehmen. Immer wenn die Fahrkartenkontrolleure kommen, dann zeigt man seine Fahrkarte. Diese wird dann auf Gültigkeit geprüft. Sofern die Fahrkarte gültig ist, darf man die Fahrt fortsetzen, ansonsten ist die Fahrt an der Stelle vorbei… Genau wie bei der Fahrkarte wird beim Cookie geprüft, ob es an diesem Tag und für diese Strecke gülig ist. Im Cookie ist dafür ein Zeitstempel vermerkt (wann ist das Cookie gültig) ist und auch die Webseite, für die dieses Cookie gilt. Weitere Parallele zur Fahrkarte sind, dass das Cookie möglichst schwer zu fälschen sein muss. Denn ansonsten könnte man sich ganz leicht selbst die passende "Fahrkarte" basteln, ohne zu bezahlen. Um dies zu verhindern, kommt bei der gedruckten Fahrkarte spezielles Papier zum Einsatz, beim Cookie wird (in der Regel) eine über 16 Zeichen lange, und möglichst zufällige Zeichenfolge ausgegeben, die das Server-Backend für Kontrollzwecke notiert und so vergleichen kann. Ebenso wie die Fahrkarte haben Cookies eine bestimmte Gültigkeit, sie können lediglich für ein paar Stunden oder sogar für etliche Jahre gültig sein. In den meisten Fällen wird das Cookie wie die Fahrkarte nur zum Nachweis während der Sitzung/Session (entspricht einer Fahrt im Kontext der Fahrkarten-Analogie) benutzt. Dabei können die Cookies wie eine Fahrkarte personalisiert oder aber auch anonym sein. Genauso wie bei einer verlorenen oder gestohlener Fahrkarte, kann sich ein Dritter mit der gefundenen Fahrkarte als berechtigter Nutzer ausweisen. Um einen Diebstahl von Cookies zu verhindern, existieren beim Cookie zwei Eigenschaften:

  • Das "secure"-Flag erzwingt, dass das Cookie ausschließlich auf verschlüsselten Wegen übertragen wird.
  • Das "http-only"-Flag enthält dagegen die Anweisung, dass das Cookie vom Browser nur an das Server-Backend gesendet werden darf. Nicht jedoch von im Browerfenster laufenden Skripten abgefragt (und so womöglich an einen Angreifer weitergeleitet).

Zusammenfassung

Ein (Session-)Cookie ist am ehesten mit einem Fahrschein vergleichbar, mit dem man nachweist, dass man berechtigt ist, bestimmte Webseiten zu besuchen. Wenn man sein (Session-)Cookie verlieht können anderen in Ihrem Namen durch die Webapplikationswelt reisen.

Ausblick

Wieso muss das Schloss immer grün sein oder was hat es mit HTTPS auf sich?

(Cookie Monster Cupake: Brett Jordan; via www.flickr.com/photos/nick_d/2977848508/)

This article is my 5th oldest. It is 646 words long