Alexandre Bartel, Professor für Softwaretechnik und Sicherheit an der Universität Umeå, hat in Zusammenarbeit mit mehreren europäischen Forschern ausführlich Schwachstellen in Software analysiert, die in einer der weltweit am häufigsten verwendeten Programmiersprachen geschrieben wurde.
„Hierbei geht es um Fehler in den Prozessen, die Informationen abrufen und wiederherstellen – etwa Kundenkonten, Transaktionen oder Patientenakten. Diese Schwachstellen können enorme Kosten für Unternehmen, Regierungen und Behörden verursachen.“
Java steckt hinter Anwendungen, die in mobilen Spielen, Robotern, eingebetteten Systemen oder Geschäftsanwendungen verwendet werden. Im Laufe der Jahre wurden mehrere Sicherheitslücken gemeldet und nun haben europäische Forscher untersucht, ob und wie diese behoben wurden.
Sie haben sich Java-Produkte angeschaut, die Deserialisierung nutzen, den Prozess der Wiederherstellung verpackter Informationen in ihrem vorherigen Zustand, etwa Benutzereinstellungen, Spielfunktionen, Einkaufswagen oder Bankanwendungen, und eine eingehende Analyse bestehender Schwachstellen und Angriffe durchgeführt.
Große Unternehmen betroffen
„Wir haben Schwachstellen identifiziert und wie diese behoben wurden. Das Problem ist, dass die Programmierer scheinbar immer wieder die gleichen Fehler machen und die Schwachstellen dadurch wieder einführen“, sagt Professor Bartel.
In der Studie „An In-Depth Study of Java Deserialization Remote-Code Execution Exploits and Vulnerabilities“, die in Zusammenarbeit mit Eric Bodden, Professor an der Universität Paderborn, Yves Le Traon, Professor an der Université du Luxembourg und Imen Sayar, durchgeführt wurde Als Forscher am INRIA werden mehrere Beispiele genannt:
- Fehler in den kritischen Anwendungen von PayPal – ermöglichten den Zugriff auf Produktionsdatenbanken
- Sicherheitslücken im Verkehrsministerium von San Francisco – die Angreifer erlangten die Kontrolle über 2.000 Computer und blockierten die Zahlungssysteme
- Equifax, die größte US-Kreditauskunftei in den USA, erlitt einen Angriff, bei dem es dem Angreifer gelang, 147,7 Millionen persönliche Daten zu stehlen
Was die europäischen Forscher sehen, ist, dass der Bytefluss, der Informationsfluss, für Änderungen durch Angreifer offen ist. „Während des eigentlichen Deserialisierungsprozesses, wenn die Informationen wiederhergestellt werden, kann der Angreifer die vollständige Kontrolle über das empfangende System erlangen. Selbst sehr kleine Änderungen im Code können Systeme anfällig für Angriffe machen“, sagt Alexandre Bartel.
Schwerwiegende Mängel
Die meisten Java-Programme sind auf externe Bibliotheken angewiesen und es gibt keine einfache Möglichkeit, die betroffenen Systeme zu reparieren. Alexandre Bartel argumentiert, dass die Entwickler gänzlich auf die Java-Deserialisierung verzichten sollten, um zu verhindern, dass in neuem Code Sicherheitslücken entstehen.
„Unsere Ergebnisse legen nahe, dass die gesamte Lieferkette der entwickelten Anwendung während des gesamten Lebenszyklus der Anwendung gründlich überprüft werden sollte. Die Ergebnisse sind sehr ernst, da sie nicht nur für Unternehmen, sondern auch für die Gesellschaft insgesamt kostspielig sein können“, sagt Alexandre Bartel.
Die Studie stieß auf großes Interesse und wurde in der hoch angesehenen und ausgewählten Fachzeitschrift „Transactions on Software Engineering and Methodology“ veröffentlicht. TOSEMder Association of Computing Machinery, ACM. Die Ergebnisse wurden auch auf vorgestellt ICSEdie International Conference on Software Engineering, eine der renommiertesten Konferenzen auf diesem Gebiet.
Bartel und seine Forschungsgruppe entwickeln nun Methoden, um diese Schwachstellen effizienter zu erkennen und Angriffe zu verhindern.
Serialisierung und Deserialisierung
Prozesse in der Informatik, bei denen eine Datenstruktur oder ein Objektstatus in einem Format gespeichert wird, das dann gespeichert oder in eine andere Computerumgebung übertragen werden kann. Dabei werden Datenstrukturen in einen Bytestrom „übersetzt“, um die Speicherung beispielsweise in einem Speicher, einer Datei oder während der Datenübertragung an eine andere Maschine zu erleichtern.
Beispiele hierfür sind: Pharmazeutische Systeme, in denen Regierungen eine Codierung der Verpackung verlangen, damit sie in der gesamten Lieferkette verfolgt werden kann. Spieleentwicklung: zum Speichern und Laden von Spieldaten wie Spielerfortschritt, Einstellungen und gespeicherten Spielen. Finanzsektor: Speicherung und Übermittlung von Daten über Finanztransaktionen zwischen Banken und anderen Finanzsystemen.
Zur Verfügung gestellt von der Universität Umea
Zitat: Große Sicherheitslücken in Java-Anwendungen, warnen europäische Forscher (2023, 27. Dezember), abgerufen am 2. Januar 2024 von https://techxplore.com/news/2023-12-major-flaws-java-applications-european.html
Dieses Dokument unterliegt dem Urheberrecht. Abgesehen von einem fairen Handel zum Zweck des privaten Studiums oder der Forschung darf kein Teil ohne schriftliche Genehmigung reproduziert werden. Der Inhalt dient ausschließlich Informationszwecken.