Auch bei anderen Methoden, etwa der statischen Quellcodeanalyse, machen Experten durchaus ähnliche Vorbehalte geltend. Die statische Quellcodeanalyse analysiert mithilfe eines automatisierten Tools den vom Entwickler geschriebenen Code. Doch auch hier gilt: Viele Dinge lassen sich nicht entdecken, dafür gibt es sehr viele False Positives, deutlich mehr als als beim Fuzzing. Das Verfahren ist sehr aufwändig.
Tools zum automatisierten Testen können zwar viele Schwachstellen aufdecken, jedoch gibt es beim heutigen Stand der sogenannten künstlichen Intelligenz keine Möglichkeit, von Menschen geschriebenen Quelltext auch nur einigermaßen vollständig auf Sicherheitslücken zu untersuchen.
Das Sicherheitsverständnis der Entwickler ist dabei größer als oft angenommen. Druck kommt häufig von den Fachabteilungen und vom Management. Dort will man „Ergebnisse sehen“. Nötig ist jedoch, dass Code von Anfang an sicher designt wird. Das sogenannte Rapid Prototyping führt oft dazu, dass zu schnell Ergebnisse erwartet werden, wenn man schon etwas Lauffähiges vorführen konnte.
Wichtig sind daher klare Anforderungen, die vor dem eigentlichen Entwicklungsprozess definiert werden. Nach wie vor werden Sicherheitslücken fast ausschließlich durch Pufferüberläufe verursacht. So gehört in diese Anforderungen etwa ein Verbot von Funktionsaufrufen ohne die maximale Größe eines Puffers als Parameter. Gleiches gilt für den Umgang mit Schleifenkonstrukten. Eine Schleife darf niemals über eine vorgegebene Puffergröße hinauslaufen.
Die Einhaltung solcher Richtlinien gestaltet sich in der Praxis oft schwierig. Management und Projektleitung sind an eine Kontrollfunktion gewöhnt, die sie in diesem Fall mangels fachlicher Qualifikation nicht ausüben können. Häufig werden dazu klassische Unternehmensberatungen angeheuert.
Doch die IT-Spezialisten der Unternehmensberatungen sind oft ebenfalls nicht ausreichend qualifiziert. So kommt es vor, dass ein Code-Review-Spezialist nicht einmal ein Betriebssystem installieren kann. Daher ist es wichtig, den manuellen Code-Review von Entwicklern mit großer Erfahrung durchführen zu lassen.
Dieser Prozess ist mit Aufwand und Kosten verbunden. Sie müssen jedoch den Kosten, die durch einen möglichen Angriff entstehen, gegenübergestellt werden. Sollten sensible Daten gestohlen werden, so kann ein immenser Imageschaden entstehen, der mitunter die Existenz eines Unternehmens gefährdet.
Code-Reviews müssen immer begleitend zur Entwicklung erfolgen. Oft bieten Beratungsunternehmen einen Code-Review nach der eigentlichen Entwicklung an. Dabei ist problematisch, dass ein kleiner Designfehler einer Datenstruktur dazu führen kann, dass große Teile des Codes umgeschrieben werden werden müssen.
Neueste Kommentare
Noch keine Kommentare zu Werkzeuge zur Codeanalyse: Sicherheits- oder Hackertools?
Kommentar hinzufügenVielen Dank für Ihren Kommentar.
Ihr Kommentar wurde gespeichert und wartet auf Moderation.