Ein Quellcode (engl. Source Code) ist ein fundamentaler Teil eines Computerprogramms und wird von Entwicklern in einer Programmiersprache geschrieben. Die darin enthaltenen Befehle, Variablen, Loops, Kommentare und weitere Zusätze definieren, wie das Computerprogramm funktioniert.
Grundsätzlich lässt sich zwischen proprietärer und quelloffener Software unterscheiden, deren Quellcode einsehbar ist. Eine Überprüfung des Quellcodes aufseiten der Anwender ist nötig, um Schwachstellen in Bezug auf Cybersicherheit, unsichere Kodierungspraktiken und Fehler in der Programmierlogik zu identifizieren. Unternehmen, die Sicherheitsrisiken minimieren und besonders wichtige Geschäftsfunktionen schützen wollen, sollten diesem wichtigen Thema daher mehr Aufmerksamkeit schenken. Bei der Durchführung von Quellcode-Überprüfungen dienen sichere Codierungsstandards wie der CERT Specification und der Common Weakness Enumeration (CWE) zur Orientierung. ZTE hat auf Basis dieser Standards eigene Verfahren und Spezifikationen für die Überprüfung von Quellcodes entwickelt, die das Unternehmen in der Praxis anwendet. Diese sind noch strenger und anspruchsvoller als übliche Verfahren und werden als obligatorische Maßnahme zur Erkennung und Eindämmung von Risiken eingesetzt.
Mehrwert von Quellcode-Überprüfungen für Unternehmen
Die Überprüfung des Quellcodes ist ein branchenweit bewährtes Verfahren zur Gewährleistung der Cybersicherheit von Software und wird von vielen Software-Anbietern übernommen und praktiziert. Als White-Box-Testmethode kann ein Source Code Review genutzt werden, um Schwachstellen wie unsichere Codierungsverfahren, mögliche Anwenderlogikprobleme oder unsichere Fehlerbehebungen zu identifizieren. In diesem Bereich sind Software-Tests wie die Black-Box- oder Grey-Box-Testmethode oft nur schwer anzuwenden oder sie versagen, da sie im Gegensatz zum Source Code Review nicht genau am Code prüfen.
Einfach gesagt, liegt bei der Quellcode-Überprüfung der Schwerpunkt auf den Details und den Prinzipien der Code-Implementierung innerhalb des Programms. Durch diese Vorgehensweise kann der Code umfassend und besonders im Hinblick auf Defekte und Anomalien überprüft werden. In Kombination mit weiteren Tests wie beispielsweise Penetrationstests können so die meisten Anwendungsschwachstellen wirksam abgedeckt werden. Dazu gehört auch die Aufdeckung von potenziellen Sicherheitsrisiken von 5G-Technologien wie Software Defined Networks (SDN), Network Function Virtualization (NFV) und Network Slicing, die sich ebenfalls auf von Entwicklern erstellte Quellcodes zurückführen lassen.
Source Code Review-Verfahren: Statische und manuelle Prüfungen
Die Überprüfung des Quellcodes ist ein Prozess, der durch die Kombination von manuellen Überprüfungen und automatischen Tools ausgeführt wird – so auch bei ZTE. Tools zur automatischen statischen Code-Überprüfung stellen eine effiziente Möglichkeit zur Analyse des Quellcodes dar und werden von Anfang an in den Entwicklungszyklus integriert, um Programmierern bei der Identifizierung von Fehlern oder Schwachstellen zu helfen. Deswegen führen sogenannte First-Line-Teams bereits während der Entwicklungsphase des Source Codes verschiedene Überprüfungen wie einen Code-Walkthrough oder Abnahme- und Systemtests durch, um Risiken zu vermeiden.
Die manuelle Code-Analyse ist ebenfalls ein obligatorischer Schritt vor der Fertigstellung des Quellcodes und kann in Kombination mit den automatischen Tests die meisten positiven und negativen Falschmeldungen identifizieren. Bei der manuellen Überprüfung werden Fehler im Code meistens nicht auf den ersten Blick erkannt. Vielmehr es ist notwendig, den Code auszuführen und im Detail zu analysieren. Dieser Prozess besteht bei ZTE aus mehreren Analysen:
Zunächst wird überprüft, ob die generelle Zusammensetzung des Codes mit den festgelegten Zielen des Projekts übereinstimmt. Dafür untersucht das Team genau, ob dieser Teil des Codes so funktioniert, wie er von den Entwicklern entworfen wurde, ob seine Konsistenz gewährleistet ist und ob die Prinzipien „Security by Design“ und „Security by Default“ eingehalten wurden.
Als zusätzliche Sicherheitsmaßnahme wird anschließend auch eine unabhängige Quellcode-Überprüfung vom „Second-Line“-Team ausgeführt, das ebenfalls automatische Tools nutzt und den Code Zeile für Zeile auf seine Qualität überprüft. Die Entwickler simulieren unerwartete Fehler bei der Code-Ausführung und überprüfen, ob in diesem Fall alle Vorgaben eingehalten werden. Dafür fügen sie beispielsweise beliebige Werte ein, um mögliche Fehler auszuschließen, die von einem Angreifer ausgenutzt werden könnten. Dieser Schritt wird von der Sicherheitsabteilung von ZTE und dem Cybersecurity Lab durchgeführt.
Mehr Sicherheit dank Quellcodeüberprüfung
Ein sicherer Quellcode entsteht durch die Zusammenarbeit von verschiedenen Akteuren wie beispielsweise Entwicklern, Programmierern und Testern und trägt einen entscheidend zur Eindämmung von Cybersicherheitsrisiken in Unternehmen bei. Damit dieses Bewusstsein weiter geschärft wird, sollte das Thema bei der Forschung und Entwicklung von neuen Produkten und Dienstleistungen einen hohen Stellenwert einnehmen und konsequent berücksichtigt werden. ZTE hat sich das Ziel gesetzt, diese Vision zu realisieren und arbeitet daher eng mit Kunden, Regulierungsbehörden und weiteren Interessengruppen zusammen, um eine sichere digitale Zukunft zu ermöglichen.