© cifotart/Shutterstock.com
Java Magazin
Softwaresicherheit und Datenschutz mithilfe statischer Codeanalyse

Neue Wege analysieren

Entwickler verwenden die statische Programmanalyse möglicherweise unbewusst bereits seit Beginn ihrer beruflichen Laufbahn: Tatsächlich wird bei jedem Compiler die statische Logik auf den Code angewandt, den sie schreiben. Allerdings können sich verschiedene statische Analyseprogramme bei der Leistung stark unterscheiden. Aufgrund der aktuellen Relevanz in Bezug auf Angriffe auf die Cybersicherheit und das Durchsickern sensibler Daten ist es unerlässlich geworden, Software zu erstellen, die so sicher und robust wie nur irgend möglich ist. Kürzlich erzielte Fortschritte bei der statischen Analyse erweisen sich in dieser Hinsicht als große Hilfe.

Pietro Ferrara, Fausto Spoto


Bei der statischen Programmanalyse handelt es sich um die Analyse der Software in der Kompilierzeit, bevor sie ausgeführt wird. Ein statisches Analyseprogramm verarbeitet ein Programm automatisch und gibt Warnmeldungen mit dem Ziel aus, die Programmpunkte hervorzuheben, die eine vorgegebene Eigenschaft nicht erfüllen. Wenn Sie zum Beispiel potenzielle SQL Injections suchen, kann ein Analyseprogramm an jedem Programmpunkt, der eine aus einer nicht bereinigten Benutzereingabe stammende SQL-Abfrage ausführt, die Warnmeldungen erstellen. Im Vergleich zum Testen hat die statische Analyse den Vorteil, automatisch alle möglichen Codeausführungen abzudecken, ohne für jeden Eckfall Testfälle schreiben zu müssen. Jeder Compiler wendet in geringem Umfang eine fundamentale Form statischer Analyse an. Der Java-Compiler meldet beispielsweise standardmäßig nutzlose Importberichte oder die Abwesenheit des serialVersionUID-Felds in serialisierbaren Klassen. Für das Erkennen und Verhindern der meisten vorhandenen Sicherheitsschwachstellen, wie SQL Injection und websiteübergreifendes Skripting, ist allerdings eine ausgereiftere statische Logik erforderlich.

Im Zuge des aktuellen Anstiegs von Cyberangriffen ist es von entscheidender Bedeutung, solchen Schwachstellen vorzubeugen und die Software robuster zu programmieren. Präzisere und ausgereiftere statische Analyseprogramme sorgen bereits dafür, dass viele Akteure entlang des Lebenszyklus der Softwareentwicklung Softwareprobleme wie Sicherheitsschwachstellen oder Durchsickern sensibler Daten proaktiv erkennen. In der Java-Welt führen die meisten Tools syntaktische Analysen durch, die nur ein oberflächliches Feedback geben. Daraus folgt, dass ihre Verwendung oftmals als ineffektiv und umständlich wahrgenommen wird. Von welcher statischen Analyse kann man erwarten, dass sie Schwachstellen erkennt und ihnen vorbeugt? Wie sollte man bei der Handhabung von sehr großen Softwareprojekten mit Tausenden von Warnmeldungen vorgehen? Wie können darüber hinaus verschiedene statische Analyseprogramme bewertet und verglichen werden?

Befehls-Injection: Datenschutzverletzung bei Equifax

Injections sind gefährlich und richten Schaden an. Die Softwareentwicklungscommunity hat in den vergangen Jahren enorme Fortschritte im Hinblick darauf gemacht, dass diese Schwachstellen seltener auftreten. Sie schlagen aber immer noch empfindlich zu. Bei der wahrscheinlich wichtigsten Datenschutzverletzung 2017 handelte es sich um eine Befehls-Injection. Tat...

Java Magazin
Softwaresicherheit und Datenschutz mithilfe statischer Codeanalyse

Neue Wege analysieren

Entwickler verwenden die statische Programmanalyse möglicherweise unbewusst bereits seit Beginn ihrer beruflichen Laufbahn: Tatsächlich wird bei jedem Compiler die statische Logik auf den Code angewandt, den sie schreiben. Allerdings können sich verschiedene statische Analyseprogramme bei der Leistung stark unterscheiden. Aufgrund der aktuellen Relevanz in Bezug auf Angriffe auf die Cybersicherheit und das Durchsickern sensibler Daten ist es unerlässlich geworden, Software zu erstellen, die so sicher und robust wie nur irgend möglich ist. Kürzlich erzielte Fortschritte bei der statischen Analyse erweisen sich in dieser Hinsicht als große Hilfe.

Pietro Ferrara, Fausto Spoto


Bei der statischen Programmanalyse handelt es sich um die Analyse der Software in der Kompilierzeit, bevor sie ausgeführt wird. Ein statisches Analyseprogramm verarbeitet ein Programm automatisch und gibt Warnmeldungen mit dem Ziel aus, die Programmpunkte hervorzuheben, die eine vorgegebene Eigenschaft nicht erfüllen. Wenn Sie zum Beispiel potenzielle SQL Injections suchen, kann ein Analyseprogramm an jedem Programmpunkt, der eine aus einer nicht bereinigten Benutzereingabe stammende SQL-Abfrage ausführt, die Warnmeldungen erstellen. Im Vergleich zum Testen hat die statische Analyse den Vorteil, automatisch alle möglichen Codeausführungen abzudecken, ohne für jeden Eckfall Testfälle schreiben zu müssen. Jeder Compiler wendet in geringem Umfang eine fundamentale Form statischer Analyse an. Der Java-Compiler meldet beispielsweise standardmäßig nutzlose Importberichte oder die Abwesenheit des serialVersionUID-Felds in serialisierbaren Klassen. Für das Erkennen und Verhindern der meisten vorhandenen Sicherheitsschwachstellen, wie SQL Injection und websiteübergreifendes Skripting, ist allerdings eine ausgereiftere statische Logik erforderlich.

Im Zuge des aktuellen Anstiegs von Cyberangriffen ist es von entscheidender Bedeutung, solchen Schwachstellen vorzubeugen und die Software robuster zu programmieren. Präzisere und ausgereiftere statische Analyseprogramme sorgen bereits dafür, dass viele Akteure entlang des Lebenszyklus der Softwareentwicklung Softwareprobleme wie Sicherheitsschwachstellen oder Durchsickern sensibler Daten proaktiv erkennen. In der Java-Welt führen die meisten Tools syntaktische Analysen durch, die nur ein oberflächliches Feedback geben. Daraus folgt, dass ihre Verwendung oftmals als ineffektiv und umständlich wahrgenommen wird. Von welcher statischen Analyse kann man erwarten, dass sie Schwachstellen erkennt und ihnen vorbeugt? Wie sollte man bei der Handhabung von sehr großen Softwareprojekten mit Tausenden von Warnmeldungen vorgehen? Wie können darüber hinaus verschiedene statische Analyseprogramme bewertet und verglichen werden?

Befehls-Injection: Datenschutzverletzung bei Equifax

Injections sind gefährlich und richten Schaden an. Die Softwareentwicklungscommunity hat in den vergangen Jahren enorme Fortschritte im Hinblick darauf gemacht, dass diese Schwachstellen seltener auftreten. Sie schlagen aber immer noch empfindlich zu. Bei der wahrscheinlich wichtigsten Datenschutzverletzung 2017 handelte es sich um eine Befehls-Injection. Tat...

Neugierig geworden?


    
Loading...

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang