Fünf Faktoren für sichere Software

3. Standards und Richtlinien

Jedes Entwicklerteam sollte über ein Mindestmaß an Standards verfügen, die verbindlich vorgeschrieben sind. Dazu gehören einschlägige Normen und Branchenvorgaben wie MISRA-C in der Automotive-Branche. Aber auch interne Richtlinien wie ein Benennungssystem für Variablen fallen unter diese Rubrik. Werden die Standards nicht strikt eingehalten, kann dem fertigen Code in vielen Branchen die Zulassung verweigert werden. Darum schreibt etwa MISRA-C vor, dass die Einhaltung durch den Einsatz von statischer Analyse zu gewährleisten ist. Tools zur statischen Codeanalyse lassen sich dazu mit frei definierbaren Checks auf den jeweils benötigten Rahmen anpassen. Für die üblichen Standards stehen zahlreiche Checks vordefiniert bereit. Auch hier ist es sinnvoll, das Analysetool mit dem Build-System als vertrauenswürdige Quelle zu integrieren.

4. Externer Code

VDC Research ermittelte 2016 in einer Studie, dass im Embedded-Bereich fast 45 Prozent der Code-Basis aktueller Projekte von Dritten stammt. Dadurch entsteht in der Software Supply Chain ein unwägbares Risiko: Ist der Code aus externen Quellen sicher und entspricht er den eigenen Standards? Eine manuelle Prüfung mag bei Quellcode zumindest theoretisch noch möglich sein, bei binären Dateien kommt man so nicht weiter. Es ist also auf jeden Fall sinnvoll, Code aus externen Quellen ebenso zu überprüfen wie die eigene Entwicklungsarbeit. Dazu empfehlen fast alle Standards ab einer gewissen Kritikalität der Anwendung den Einsatz von statischer Analyse. Die meisten Tools sind aber nicht in der Lage, binären Code hinreichend zu analysieren. Codesonar von Grammatech kann sowohl Binärcode als auch Quellcode auf Schwachstellen untersuchen.

5. Strukturierte Code-Reviews

Für die Qualität der Software und für deren Sicherheit ist entscheidend, dass möglichst alle Fehler gefunden werden. Sicher wird es ab einer gewissen Komplexität niemals eine völlig fehlerfreie Software geben. Doch jede Schwachstelle, die von einem Angreifer ausgenutzt werden kann, zieht Folgekosten nach sich und schadet dem Ruf des Unternehmens. Deswegen sollte der Code strukturiert mittels Testing und statischer Analyse auf Herz und Nieren überprüft werden. Regelmäßige Reviews mit einer angemessenen Feedback-Schleife von den ersten Codezeilen bis hin zur Endabnahme vor der Auslieferung kosten zwar Zeit, beschleunigen aber unterm Strich die Time-to-Market und senken den Wartungsaufwand.

Autor: Mark Hermeling
Senior Director Product Marketing
GrammaTech
www.grammatech.com

Seiten: 1 2Auf einer Seite lesen

Ausgabe:
GrammaTech Inc.
www.grammatech.com

Das könnte Sie auch Interessieren