Embedded-Sicherheit

So spüren Sie Schadsoftware in Entwicklungssystemen auf

| Autor / Redakteur: Paul Anderson * / Margit Kuther

Taint-Analysetool: Taint Sources (rot), Taint Sinks (blau)
Taint-Analysetool: Taint Sources (rot), Taint Sinks (blau) (Bild: GrammaTech)

Die Taint-Analyse-Technik legt offen, wie gefährliche Daten von einem Programmteil zum nächsten fließen.

Mit der Funktionalität von Software steigt das Risiko für Programmierfehler, die zu Sicherheitslücken in Embedded-Systemen führen können. Gefährdet sind vor allem Systeme mit Code verschiedener Anbieter.

Laut Forschungsergebnissen treten Fehler, die zu Sicherheitslücken führen, vermehrt an Schnittstellen zwischen Modulen auf, oft wegen Meinungsverschiedenheiten bei der Interpretation der Schnittstellenspezifizierung.

Viele Sicherheitsschwachstellen lassen sich leicht ausbeuten, weil die Programmierer von der irrigen Annahme vertrauenswürdiger Datenquellen ausgehen. Sie setzen vernünftig formatierte Daten voraus und rechnen nicht damit, dass ein Hacker den Input steuert. Aber dieselben Techniken, die vor Sicherheitslücken schützen, eignen sich auch zur Abwehr fehlerhafter Datenwerte und zum Auffinden von Fehlern, weil sie die gefährlichsten Codeteile verstehen.

Programmierer können sich schützen, indem sie Input aus potenziell gefährlichen Kanälen als riskant einstufen, bis die Daten validiert wurden.

In der Sprache des sicheren Programmierens nennt man diese Eingabewerte ‚Tainted‘ (gefährlich). Ob ein Programm Tainted-Daten korrekt verarbeitet, lässt sich meistens schwer feststellen, weil man dazu den Datenfluss durch die Codestruktur nachverfolgen muss. Sogar für relativ kleine Programme ist das eine mühsame Aufgabe, und im Allgemeinen ist sie für die meisten Echtzeit-Anwendungen manuell unausführbar.

Die nachfolgend beschriebene Visual-Taint-Analyse als Teil moderner, statischer Analysetechnik zeigt automatisch auf, wie potenziell gefährlicher Input durch das Programm zu empfindlichen Codeteilen fließt und ein Sicherheitsproblem auslösen kann.

Das größte Risiko beim Einsatz von Werten aus einem riskanten Datenkanal ist, dass ein Angreifer diesen Kanal nutzt, um ein Sicherheitsleck oder einen Programmabsturz auszulösen. Tainted-Daten können viele unterschiedliche Fehler auslösen, beispielsweise Buffer Overruns, SQL Injection, Command Injection, Cross-Site Scripting, Arithmetic Overflow und Path Traversal. (Details siehe CWE).

Ergänzendes zum Thema
 
Die drei Fehlerkategorien aufgeschlüsselt

Inhalt des Artikels:

Kommentar zu diesem Artikel abgeben

Schreiben Sie uns hier Ihre Meinung ...
(nicht registrierter User)

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.
Kommentar abschicken
copyright

Dieser Beitrag ist urheberrechtlich geschützt. Sie wollen ihn für Ihre Zwecke verwenden? Infos finden Sie unter www.mycontentfactory.de (ID: 42937114 / Software-Test & -Betrieb)