Statische Quellcodeanalyse schafft stabileres Terrain

Applikationssicherheit beginnt schon bei der Softwareentwicklung

Seite: 2/4

Baustein Sicherheit frühzeitig einplanen

Deshalb gilt es, bereits ganz früh im Software-Entwicklungsprozess an die Sicherheit zu denken. Dies kann ein organisatorisches Hemmnis sein. Möglicherweise lauert dahinter jedoch sogar ein kompletter Paradigmenwechsel. Um die Sicherheit vom ersten Moment an zu erhöhen, müsse man die Anforderungen der Software beim Entwickeln so einplanen, dass die Spezialisten schon beim Schreiben den Aspekt der Sicherheit einkalkulieren. „Das erfordert ein Umdenken“, so Ben Chelf weiter.

Einen gewissen allerdings noch etwas beschränkten Lösungsbeitrag zu diesem komplexen Problem kann auch die Open Source Community anbieten. So gibt es bereits einige Tools aus der offenen Szene, die beim Testen und Analysieren des Codes helfen, so etwa das auf die Programmiersprache C gemünzte Produkt SP LINT, das eine Weiterentwicklung des LINT-Tools darstellt.

Problematisch bei derartigen Lösungsansätzen ist jedoch nach wie vor die hohe Rate an falschen Positiven. Dementsprechend stehen laut Firmenchef Chelf von Coverity entsprechende Open Source basierte Tools zur Unterstützung der Entwicklung von sicherer Software erst in der Anfangsphase bei der Softwareentwicklung überhaupt zur Auswahl bereit.

Blindes Testen, Fuzzing oder aufwändige Quellcodeanalyse?

Trotz gewisser konzeptioneller Grenzen bietet die statische Quellecodeanalyse gegenüber dem herkömmlichen „Fuzzing“ einige Vorteile. Das Problem bei der Sicherheit besteht unter anderem darin, dass Sicherheit im Gegensatz zum Testen damit zu tun hat, sich für den Fall eines Hackers zu wappnen, der seinen Vorteil genau daraus zieht. Im Gegensatz zu Qualitätstests müsse man deshalb nicht nur verstehen, wann das System versage, so Ben Chelf weiter, „sondern man muss auch exakt wissen, auf welche Weise dies geschieht.“

Alle herkömmlichen Testmethoden, darunter auch das „Fuzzing“, seien bislang nämlich nicht in der Lage alle Pfade in der jeweiligen Applikation zu verfolgen und diese komplett auf die IT-Sicherheit zu testen. Alle potenziellen Inputs durch zuführen, um die Applikation komplett zu testen, würde die Spezialisten komplett überfordern. Mit „Fuzzing“ lasse sich hier zwar eine graduelle Verbesserung erzielen als mit dem bloßen Testen, wird jeweils nur ein Testfall nach dem anderen ausgeführt. Aber auch hier bestehe keine Chance, wirklich alles komplett zu testen.

Die statische Analyse hingegen analysiert nach Auffassung von Coverity den Code selbst, während die Applikation nicht ausgeführt werde. „Deshalb können wir mit ihr alle diese verschiedenen möglichen Pfade eines Codes verfolgen und jene Fälle identifizieren, die sich sonst unmöglich testen lassen“, so Ben Chelf weiter. Somit ließen sich vor allem relevante und unmittelbare Sicherheitsprobleme aufspüren, ohne den Code tatsächlich auszuführen.

Seite 3: Saubere Wirtschaftlichkeitsanalyse vorbereiten

Artikelfiles und Artikellinks

Link: Coverity

Link: Fortify Software

Link: Klocwork

(ID:2012283)