Suchen

Softwarequalität

Wie das Internet der Dinge das Software-Engineering verändert

Seite: 2/3

Sicherheitsschwachstellen eliminieren

Bild 2: Immer mehr Fremdcode macht den rigorosen Check von Third-Party-Binaries notwendig – dazu integriert CodeSonar 4.1 die Binärcodeanalyse.
Bild 2: Immer mehr Fremdcode macht den rigorosen Check von Third-Party-Binaries notwendig – dazu integriert CodeSonar 4.1 die Binärcodeanalyse.
(Bilder: Grammatech)

Weil IoT-Anwendungen immer mehr Funktionen mit Internet-Konnektivität und Geräteintelligenz erhalten, steigt die Gefahr eingebauter Sicherheitsschwachstellen.

Trotzdem ist das Bewusstsein um die mit unsicherem Code einhergehenden Risiken unter IoT-Entwicklern und QS-Teams nach wie vor gering, und hat auch bei den meisten Geschäftsleitungen keine Priorität. Hier bieten moderne statische Analysetools Abhilfe. Sie sind nachweislich wirksam, lassen sich problemlos einführen und können von Entwicklungs-, QS- und Datensicherheitsteams genutzt werden.

Im Unterschied zu herkömmlichen dynamischen Prüfungen wird der analysierte Code nicht ausgeführt, also entstehen auch keine zusätzlichen Gemeinkosten für die Testfallentwicklung. Außerdem ist der Einsatz der statischen Analyse bereits zu einem sehr frühen Zeitpunkt im Entwicklungsprozess möglich. Nutzen Programmierer die statische Analyse bereits beim Schreiben des Codes, dann lassen sich Bugs und Schwachstellen noch vor der Testphase des Geräts oder der Integration aufspüren und eliminieren. Je früher ein Fehler gefunden wird, desto günstiger ist seine Korrektur. Diese Kostenersparnis ist ein wesentlicher Vorteil der automatisierten statischen Analyse.

Zum Glück entdecken diese Tools zur Prüfung von Quell- und Binärcode etwaige Schwachstellen noch vor der Produktauslieferung. Das reduziert Sicherheitsbedrohungen und millionenschwere Forderungen an Unternehmen deutlich. Negativbeispiele gibt es gleich mehrfach – etwa die Gaspedal-Panne von Toyota (geschätzte Kosten: 3 Milliarden US-Dollar) oder Sicherheitsrisiken durch die gehackte Uconnect-Schwachstelle bei über 470.000 Fahrzeugen von Jeep oder die gehackten SCADA-Systeme in Industrieanlagen, wo unter anderem der Stuxnet-Wurm den größten Schaden anrichtete.

Diese Zwischenfälle zeigen klar auf: Für Entwicklungsteams ist es heutzutage schlicht inakzeptabel, auf die so wichtige zusätzliche Software-Qualitätssicherung durch den Einsatz statischer Analysetools wie CodeSonar zu verzichten.

Umgang mit Code von Drittanbietern

Im Laufe der letzten Jahre wurde Code von Drittanbietern von einem untergeordneten Faktor in der Softwareentwicklung zu einer dominanten Kraft in der Branche. Heute findet Fremdcode Einsatz bei allen Applikationen in der gesamten Softwareentwicklung, von hoch sensitiven Anwendungen für Behörden über sicherheitsintensive Finanzsysteme bis hin zu sicherheitskritischen Anwendungen in Endverbraucher- und Mobilapplikationen.

Laut dem jüngsten Bericht von VDC Research wird der Großteil der Software auf Embedded-Devices heute nicht von internen Entwicklungsteams, sondern von Drittanbietern geschrieben. Ein Teil dieser Software ist Open Source, aber bei Embedded-Applikationen stammt der Code zu fast 30 Prozent aus kommerzieller Third-Party Software – und damit ist die Quelle häufig nicht zugänglich. Bei diesen Komponenten handelt es sich beispielsweise um Grafik-Toolkits, kryptografische Bibliotheken und Kommunikations-Middleware (Netzwerk, USB, Bluetooth) – genau die Bereiche, die bis zu 70 Prozent der häufigsten Embedded-Angriffsflächen darstellen.

Über 10 Jahre Forschungsarbeit von GrammaTech stecken in der Funktion der Binäranalyse für Fremdcode, die keinen Zugang zum Quellcode benötigt. Sie ist im statischen Analysetool CodeSonar voll integriert. Damit können Entwickler auch Fremdcode auswerten, prüfen und analysieren. Das eröffnet Unternehmen zusätzliche Optionen in ihrer Lieferkette, da sie nun auch Software von Firmen nutzen können, die in der Branche vielleicht noch unbekannt sind. Bei verfügbarem Quellcode lässt sich CodeSonar im kombinierten Quell-/ Binärmodus einsetzen, um die ganze Anwendung zu analysieren.

(ID:43645746)