Dienstleistungen: Source Code Analysis
Ziel
Modellierung der Software und Identifikation unschöner, ineffizienter und fehlerhafter Codebereiche.
Ausgangslage
Der Kunde stellt uns den unkompilierten und nach Möglichkeiten dokumentierten Quelltext der zu untersuchenden Applikation zur Verfügung. Die optionale Abgabe eines Handbuchs sowie ein Code Walkthrough durch die Entwickler helfen dabei, das Produkt zu verstehen.
Vorgehen
- Kritische Funktionen finden: Identifizieren problematischer und fehlerhafter Funktionen (z.B.
strcpy()in C/C++ oderfile()in PHP). - Programmflussanalyse: Bestimmen des Programmablaufs anhand der Kontrollstrukturen und genutzter Prädikatenlogik.
- Datenflussanalyse: Verfolgen der Datenverarbeitung von Eingaben/Ausgaben, Variablen und Konstanten im Programm.
- Program Slicing: Eingrenzung affektierter und tangierter Codeteile zur Reduzierung der determinierten Probleme.
Resultat
Der Kunde erhält in einem Dokument alle gefundenen Schwachstellen der untersuchten Codebereiche. In einer tabellarischen Auflistung werden die jeweiligen Mängel dargelegt. Ein jeder Eintrag enthält die Besprechung der betroffenen Codedefinitionen, eine Risikoeinstufung, eine technische Beschreibung sowie Empfehlungen zu Gegenmassnahmen.
Vor-/Nachteile
Die Source Code Analysis (SCA) gilt als akademisch mächtigstes und wirtschaftlich effizientestes Werkzeug zur Identifikation von Schwachstellen in einer Software-Lösung. Sehr schnell und akkurat können etwaige Fehlerquellen in Anwendungen ausgemacht und die Tragweite derer bestimmt werden. Aus diesem Grund werden Quelltext-Analysen je länger je mehr komplementär zum klassischen Vulnerability Scanning im Netzwerk oder einem Application Penetration Test eingesetzt.
Beispielreferenz
Source Code Analysis Online Banking: Gerade Finanzinstitute pflegen ihre kritischen und besonders exponierten Applikationen durch uns einer erweiterten Source Code Analyse (SCA) unterziehen zu lassen. So führen wir regelmässig Prüfungen von E-Banking Systemen durch. Dank der direkten Untersuchung des Programmcodes können konzeptionelle und technisches Schwachstellen determiniert werden, die bei Blackbox-Tests (z.B. Netzwerkscan und Application Penetration Test) nicht oder nur mit erheblichem Aufwand bestätigt hätten werden können.
