Kaffeeflecken auf der Sicherheitsweste

Angriffe auf Webapplikationen und Anwender mit Java und LiveConnect
Kommentare

Skriptbasierte Angriffe auf Webapplikationen und deren Anwender sind in aller Munde. Cross-Site Scripting, DOMXSS, und Cascading-Stylesheet-(CSS-)basierte Attacken ermöglichen es Angreifern, sensible Daten zu stehlen, den Anwender zu belauschen und Tastatureingaben mitzuschneiden. Ein gezielter XSS-Angriff auf eine Webseite erlaubt es Angreifern, den Anwender und sein Verhalten auf der angegriffenen Domain komplett fern zu steuern. Im schlimmsten Fall gelingt es dem Bösewicht, eine Browserlücke auszunutzen und so Malware auszuliefern, die den Computer des Anwenders nachhaltig schädigt.

Den meisten sicherheitsaffinen Entwicklern dürfte bekannt sein, für welche immensen Risiken die Abkürzungen XSS und CSRF stehen. Wesentlich seltener beleuchtet wird jedoch das Risiko Java-Applets und LiveConnect – wenig bis kaum Dokumentation ist zu diesem Thema verfügbar. Diese beiden Technologien sind zudem im Bereich Webentwicklung, abgesehen von serverseitigen Implementierungen etwas in Vergessenheit geraten. Wer braucht schon wuchtige Applets im Zeitalter schlanker und flotter AJAX-Applikationen und JSON-Kommunikation?

Java und Security

In der IT-Sicherheitsbranche wird Java jedoch immer mehr zu einem Reizthema. Kürzlich vermeldete Washington-Post-Reporter und Sicherheitsexperte Brian Krebs, dass die Anzahl der bekannten Sicherheitslücken in Java kurz davor steht, den Rekord an bekannten und in Schwarzmarktkreisen kursierenden Sicherheitslücken des anscheinend irreparablen Adobe Reader zu brechen. Doch warum ist das Thema relevant für Webentwickler? Die Frage ist schnell beantwortet: Ist ein Angreifer in der Lage, JavaScript oder HTML in eine angegriffene Webapplikation einzuschleusen, so kann er meist auch Applets erstellen und ausführen. Schlimmer noch: Mit der fast vergessenen Technologie namens LiveConnect kann sogar mit regulärem JavaScript echter Java-Code ausgeführt werden. Betrachten wir ein kleines Beispiel:

 

Listing 1: Java Strings mit JavaScript via LiveConnect

Es gibt noch viele weitere Möglichkeiten, LiveConnect-Code auszuführen. Das Objekt Packages kann anstelle des in Listing 1 verwendeten Java-Konstrukts genutzt werden. Mit dem Aufruf new Packages.javax.swing hat man beispielsweise bequemen Zugriff auf die Swing-Objekte und kann GUIs erstellen, Panels malen, Buttons positionieren und mehr.

 

Listing 2: Das Swing-Objekt StyledEditorKit in JavaScript

Interessanter Artikel?

alt=“PHP Magazin 3.2011″/>

Hat Ihnen der Artikel gefallen? Dies und mehr ist alles Teil des PHP Magazin 3.2011. Alle zwei Monate frisch am Kiosk! Zur jeweils aktuellen Ausgabe geht es hier.

Java Applets und Java LiveConnect bewegen sich im selben Rechtekontext. Das bedeutet, dass reguläres JavaScript über den LiveConnect-Umweg alles darf, was einem Applet erlaubt ist – und das ist eine ganze Menge. Ein Beispiel, um dies zu verdeutlichen, sind Pop-ups. Moderne Browser bieten dem Anwender recht guten Schutz vor den lästigen Fensterchen, die zu gerne aus dem Nichts auftauchen und aufdringliche Werbebotschaften versprühen. Um tatsächlich eines dieser Fensterchen zu öffnen, bedarf es eines echten Klicks. Andernfalls unterdrücken die Browser das Pop-up und weisen den Anwender in einer dezent eingeblendeten Information auf die „Anmache“ hin. Nicht so mit Java. LiveConnect und Applet halten sich nicht an die Regeln, die der Browser aufstellt. Folgender sehr einfacher Beispielcode illustriert dies – neben harmlosen Text kann man natürlich auch andere Inhalte darstellen.

 

Listing 3: Java-Pop-ups – am Blocker vorbeigeschleust

Java im Bilde, böses im Schilde

Applets dürfen ebenfalls Redirects durchführen und fast beliebige HTTP Requests feuern – immerhin im Kontext der Same Origin Policy (SOP), die von der Java Runtime (JRE) implementiert ist. Diese ist etwas lockerer als die vom Browser verwendete Restriktion und arbeitet auf IP-Ebene – anstatt Domains zu berücksichtigen. Dem Angreifer stehen hier diverse Pakete und Klassen zur Verfügung, der Phantasie sind fast keine Grenzen gesetzt. Richtig kritisch wird es jedoch, wenn der Java-Support im Browser fehlerhaft umgesetzt ist. In den neuesten Versionen von Opera ist es beispielsweise möglich, ein Applet über einen -Tag auszuliefern. Das bedeutet im Klartext, dass ein Angreifer mit einem simplen Bild Phishing-Attacken und Schlimmeres einläuten kann. Bilder sind in den meisten Web-Mailern als Inhalt von angezeigten E-Mails erlaubt – was soll schon schief gehen können?

Unsere Redaktion empfiehlt:

Relevante Beiträge

Meinungen zu diesem Beitrag

X
- Gib Deinen Standort ein -
- or -