Specific Criticism of CVSS4
Marc Ruef
Im Webbereich sind Cross Site Scripting-Schwachstellen für einen Grossteil erfolgreicher Angriffe verantwortlich. Und mit der Etablierung von Web 2.0, das mit Ajax auf Javascript basiert, ist dieses Problem aus funktionalen Gründen nicht mehr ohne weiteres zu eliminieren.
Die jeweiligen Browserhersteller sind darum bemüht, das Ausnutzen derartiger Schwachstellen clientseitig anzugehen. Microsoft hat im Internet Explorer 8 einen simplen Filter für typische Pattern implementiert, um reflektive Type-1 Angriffe abzuwehren. Wie immer bei musterbasierten Blacklists kann auch hier mit klassischen Massnahmen die Einschränkung umgangen werden:
Beim Herumspielen mit dem neuen XSS-Filter fand ich einen interessanten Weg, wie durch einfaches Maskieren von beliebigem Javascript durch Nullbytes reflektives XSS (auch Type-1 XSS genannt) am Filter vorbeigeschleust werden kann und der Code ohne Warnung auf dem Client ausgeführt wird.
Das Mozilla Team geht noch einen Schritt weiter und führt in den kommenden Versionen von Firefox die Content Security Policy (vorgesehen für Firefox 3.6 oder 3.7) ein. Bei dieser wird es möglich, dass ein Webserver bzw. eine Webapplikation durch den Header X-Content-Security-Policy
die Herkunft von Script-Code einschränken kann.
Die wichtigste Eigenschaft der CSP ist, dass bei der Anwendung sämtlicher Inline-Code nicht mehr ausgeführt wird. Dies gilt für script-Tags, Javascript-URIs und Event-Handlers. Dadurch kann ein Grossteil der üblichen XSS-Angriffe – dies betrifft ebenfalls persistente Type-2 Attacken – verhindert werden.
Zugelassen sind sodann nur noch Skripte, die explizit auf der verteilten Whitelist vermerkt sind. Dies sind in erster Linie Webserver, die beispielsweise in dedizierter Weise für das Verteilen der JS-Dateien zuständig sind. Aber auch das Hinzufügen eigener Events bleibt möglich.
Das gesamte Modell scheint ein richtiger Schritt in die richtige Richtung zu sein. Die grundlegenden Probleme von XSS-Attacken werden flankiert, so dass wohl ein Grossteil der üblichen Schwachstellen nicht mehr ohne weiteres ausnutzbar bleiben wird.
Dennoch werden mit CSP nicht nur Vorteile eingebracht. Das zusätzliche Modell erhöht die Komplexität einer Installation (und ebenfalls der Browser-Software). Vor allem auch deswegen, weil Webapplikationen nicht mehr ohne weiteres kleinere Javascript-Snipplets einbinden können. Das Unterbringen von Script-Code muss mit bedacht gewählt und umgesetzt werden. Gerade ältere Projekte oder Projekte aus dem nicht-professionellen Umfeld werden mit dieser zusätzlichen Hürde zu kämpfen haben. Dass der eine oder andere Entwickler deshalb auf CSP verzichtet ist wohl anzunehmen.
Ebenso gewinnen damit Header Injection Angriffe ein Mehr an Wichtigkeit. Durch erweiterte Manipulationen liessen sich nämlich die jeweiligen Zusatzfunktionen wieder deaktivieren und damit der verwundbare Zustand wiederherstellen. Die CSP bleibt damit wohl in erster Linie eine Symptombekämpfung:
Eine Veränderung, die den Angriff in seiner Form verändert, ihn jedoch nicht verhindert, ist nicht als (umfassende) Gegenmassnahme zu verstehen.
Our experts will get in contact with you!
Marc Ruef
Marc Ruef
Marc Ruef
Marc Ruef
Our experts will get in contact with you!