Softwarequalität

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

| Autor / Redakteur: Marc Brown * / Franz Graser

Bild 1: Durch die automatisch laufende Prüfung von Code-Kompilierungen mithilfe von ausgereiften statischen Analysetools können Fehler schnell aufgedeckt und behoben werden.
Bild 1: Durch die automatisch laufende Prüfung von Code-Kompilierungen mithilfe von ausgereiften statischen Analysetools können Fehler schnell aufgedeckt und behoben werden. (Bilder: Grammatech)

Jeder Anbieter möchte am Internet der Dinge, sprich Internet of Things oder IoT, mitverdienen. So spannend diese Entwicklung für Endkunden sein mag, das Rennen um die Vorherrschaft im IoT-Markt birgt auch eine Schattenseite.

Derzeit entwickeln Hersteller ihre Produkt noch nach alten, fest verwurzelten Supply Chain-, Engineering- und Qualitätssicherungs-Prozessen, die nicht für die komplexen, hochgradig vernetzten smarten Geräte von heute konzipiert sind. Ebenso arbeiten Engineering-Teams mit immer mehr unterschiedlichen Zulieferern und verlassen sich, wo es geht, auf Fremdsoftware, um kostbare Entwickler-Zeit zu sparen; ständig mit dem Ziel, die Forderungen des Geschäfts und des Marktes nach diesen neuen Fähigkeiten zu erfüllen.

Die Datensicherheit wird dabei von vielen Entwicklungsteams leider stiefmütterlich behandelt; Basic Checks finden – wenn überhaupt – nur während der Qualitätssicherung statt. Fehlende Entwicklungsphilosophie mit oberster Priorität auf Datensicherheit, zunehmender Einsatz von Fremdsoftware, und ständig wachsender Druck zur schnellen Markteinführung durch Geschäftsführer mit sorgloser Einstellung zur Datensicherheit im IoT.

Das Zusammentreffen dieser Faktoren bringt Unternehmen in eine zunehmend verletzliche Position, offen für Angriffe durch Cyber-Kriminalität und Nationalstaaten, um sich bei diesen vernetzten Geräten und Netzwerken zu bedienen. Schon heute gefährden diese Software-Schwachstellen die Sicherheit und den Datenschutz von Endkunden, steigern die Unternehmenshaftung, untergraben das Vertrauen der Verbraucher und haben in Einzelfällen zum Ausfall kritischer Dienstleistungen für Öffentlichkeit und Industrie geführt.

Tatsächlich sind die Smart-Geräte von heute ganz und gar nicht smart. Sondern nach einer aktuellen HP-Studie sind 70 Prozent der zehn gebräuchlichsten IoT-Devices angreifbar für Datendiebstahl. Täglich gibt es in den Nachrichten Meldungen von Hacking-Angriffen auf Geräte, Anlagen und Systeme, darunter auch höchst besorgniserregende Vorfälle wie etwa Hacker, die sich über die drahtlose Hot Spot-Verbindung der Steuerung eines Fahrzeugs bemächtigten und Bremsen sowie andere kritische Systeme beeinflussen konnten.

Software-Qualitätssicherung für IoT-Applikationen

Wie müssen unsere Fertigungsprozesse verändert werden, damit die IoT-Devices der nächsten Generation besser geschützt sind? Zunächst ist eine fundierte Planung notwendig, mit einer Qualitätssicherung für die Software der nächsten Generation und einer Methodik, die der Datensicherheit oberste Priorität einräumt.

Ergänzendes zum Thema
 
Statische Analyse für die IoT-Ära

Die Teams müssen neue Wege zur schnellen Auslieferung ihrer Software finden – und dabei Daten- und Produktsicherheit sowie Qualität vom Konzept bis zur Übergabe garantieren. Für eine erfolgreiche Umsetzung brauchen sie neue Tools, um ihre Software einschließlich Quell- und Binärcode effizienter zu analysieren.

Nächsthöhere Level der Software-Integrität sind nur erreichbar, wenn Teams versehentliche Codingfehler und absichtlich eingebaute Schwachstellen eliminieren können. Dazu benötigen sie effiziente Analysetechniken, die auf die komplexen Anwendungen von heute abgestimmt sind.

Im ersten Schritt können die Teams:

  • den Einsatz von Quellcode-Analyse in all ihren Entwicklungsteams vorschreiben, und zwar während der Entwicklung, Qualitätssicherung und Datensicherheitsaudits,
  • Binäranalyse für die Analyse von Drittanbieter-Code anwenden,
  • der Datensicherheit in der Entwicklungsphase höchste Priorität einräumen.

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.

Verändertes Bedrohungs-Szenario

Bild 3: Moderne Codeanalyse-Tools beinhalten ausgereifte Techniken wie die Taint-Analyse, um Software-Schadstellen bereits in der Programmierung zu entdecken.
Bild 3: Moderne Codeanalyse-Tools beinhalten ausgereifte Techniken wie die Taint-Analyse, um Software-Schadstellen bereits in der Programmierung zu entdecken. (Bilder: Grammatech)

Niemand entwickelt heute noch Stand-Alone-Anwendungen. Angesichts des in allen Bereichen präsenten Internets der Dinge mussten Hersteller sehr schnell neue Konzepte dafür finden, wie ihre Produkte in die moderne, vernetzte Wirtschaft passen.

Damit hat sich auch das Bedrohungs-Szenario nachhaltig geändert. Zur Realität gehören heute hochqualifizierte Hacker, die ausschließlich daran arbeiten, in IoT-Systeme einzudringen, sei es zum Vergnügen, als intellektuelle Herausforderung, um Profit zu machen, aber auch als Angriffe und terroristische Aktionen.

Um diesen Cyber-Kriminellen keine Sicherheitslücken und Angriffsflächen zu bieten, müssen die Entwicklungsteams ihre Arbeit über den gesamten Lebenszyklus robust und sicher gestalten. Dazu brauchen sie allerdings die nötigen Kenntnisse und Fähigkeiten, um Fehler möglichst von vornherein zu vermeiden.

Als Faustregel gilt: End-to-End Bedrohungsanalyse (durch ein externes Audit-Team), sicherheitsoptimiertes Design und Scanning-Tools für die Datensicherheit von Quell- und Binärcode.

Datensicherheit als oberste Priorität

Das IoT beeinflusst unser tägliches Leben – im Guten wie im Schlechten. Darum muss Datensicherheit im Konzept der IoT-Software fest integriert sein, als klare Vorgabe von Unternehmen. Hersteller müssen die Cyber-Bedrohungen und den Grad des Risikos für die IoT-Geräte sorgfältig bewerten und in Reaktion auf die zunehmenden Gefahren aller Art sämtliche erforderlichen Design-Checks und Gegenmaßnahmen implementieren.

GrammaTech verfolgt seiner Gründung vor 26 Jahren das Ziel, Unternehmen bei der Entwicklung der Software von morgen zu unterstützen. Angesichts der ständig wachsenden Abhängigkeit von Software in der modernen vernetzten Welt strebt das Unternehmen danach, ein gut durchdachtes Portfolio an Qualitätssicherungslösungen für Software und Datensicherheit anzubieten, um sich für die schwierigsten Softwareprobleme unserer Zeit zu rüsten. Das IoT ist schon da, aber unsere Arbeit fängt gerade erst an.

Dieser Beitrag stammt ursprünglich von unserem Schwesterportal Elektronikpraxis.de.

* Marc Brown ist Chief Marketing Officer bei GrammaTech.

Kommentare werden geladen....

Kommentar zu diesem Artikel

Der Kommentar wird durch einen Redakteur geprüft und in Kürze freigeschaltet.

Anonym mitdiskutieren oder einloggen Anmelden

Avatar
Zur Wahrung unserer Interessen speichern wir zusätzlich zu den o.g. Informationen die IP-Adresse. Dies dient ausschließlich dem Zweck, dass Sie als Urheber des Kommentars identifiziert werden können. Rechtliche Grundlage ist die Wahrung berechtigter Interessen gem. Art 6 Abs 1 lit. f) DSGVO.
  1. Avatar
    Avatar
    Bearbeitet von am
    Bearbeitet von am
    1. Avatar
      Avatar
      Bearbeitet von am
      Bearbeitet von am

Kommentare werden geladen....

Kommentar melden

Melden Sie diesen Kommentar, wenn dieser nicht den Richtlinien entspricht.

Kommentar Freigeben

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

Freigabe entfernen

Der untenstehende Text wird an den Kommentator gesendet, falls dieser eine Email-hinterlegt hat.

copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Kontaktieren Sie uns über: support.vogel.de/ (ID: 44396884 / Testing)