GrammaTech erweitert die statische Analyse-Engine von »CodeSonar« für ARM-Prozessoren um eine Binäranalyse. Damit vereinfacht sich die Untersuchung von Anwendungssoftware, Middleware und Firmware.
In der wachsenden IoT-Welt, in der eingesetzte Geräte immer mehr Cyberangriffen ausgesetzt sind, wird die Analyse von Maschinencode besonders wichtig. Zudem beträgt laut einer Studie von VDC der Anteil an eigenentwickeltem Code in Geräten nur noch 54%. Der Rest kommt von kommerziellen und Open-Source Zulieferern und ist gespickt mit Gefahren, unter anderem durch Software unbekannter Herkunft. »Heute ist der Einsatz von ungeprüftem Fremdcode keine Option mehr«, betont Marc Brown, CMO und Vice President Sales von GrammaTech. »Teams können es sich nicht leisten, die Binäranalyse weiterhin zu ignorieren. Dazu sind die Risiken und Verantwortungen zu hoch.«
Moderne Systeme sind diversen Risiken ausgesetzt, ohne genaues Wissen darüber, welche Fehler und Sicherheitslücken in Betriebssystemen, Treibern, Middleware oder Anwendungen von Zulieferern enthalten sein können. Die Binäranalyse von CodeSonar ermöglicht die Prüfung von x86- oder ARM-Systemen über Binary-Only- oder Mixed-Mode-Analyse, und findet sowohl Quell- als auch Binär-Fehler, die eine Gefahr für das Gerät darstellen.
Die Analyse verfolgt dazu potenziell gefährliche Eingabedaten, um Risiken aus Fremd- und Open-Source-Code weiter zu verringern. Mit der Binäranalyse kann CodeSonar den Verlauf der nutzbaren Datenströme innerhalb einer Anwendung oder zwischen der Anwendung und Libraries und Treibern identifizieren – so lassen sich potenziell gefährliche Eingabedaten nicht nur über den eigenen Code hinweg verfolgen, sondern auch über fremdgelieferte, für den eigenen funktionellen Ablauf entscheidende Bereiche. Ergebnisse dieser Analyse können auf einer grafischen Visualisierung der Architektur des gesamten Systems dargestellt werden, um Entwicklern den Verlauf von schwer auffindbaren Daten aufzuzeigen. Durch die Analyse des Maschinencode können Teams Abweichungen auffinden, die es ursprünglich im Source nicht gibt, sondern durch unerwartete Build-Optimierungen oder durch Hintertüren, die durch die Build-Tool-Kette erzeugt wurden, entstanden sind.