
Bessere Softwaresicherheit auf diese Weise kommt
Derzeit ist ein massiver Wandel der Softwareentwicklung im Gange, an dessen Beschleunigung Cybersecurity-Experten ein begründetes Interesse haben. Es gibt grundsätzlich zwei große Sicherheitsprobleme, die sich aus der Art der Softwareentwicklung ergeben.
Die erste ist die Verwendung von C, C++ und Assembler, da die zur Erstellung von Anwendungen verwendeten Programmiersprachen nicht speichergeschützt sind. Dadurch kann auf Daten im Speicher zugegriffen werden, da kein Mechanismus vorhanden ist, der den Zugriff einer anderen Anwendung auf denselben Speicher verhindert.
Auch wenn dies nicht wie ein zentrales Sicherheitsproblem erscheint, so treten Access-Memory-Overflows sehr häufig auf. Ein großer Prozentsatz der in den letzten zehn Jahren aufgedeckten Schwachstellen betraf Probleme mit dem Speicherschutz. Weitere moderne Programmiersprachen sind beispielsweise Rust, Go, C#, Java, Swift, Python und JavaScript. Die National Security Agency (NSA) ist sogar so weit gegangen, eine Reihe von Richtlinien herauszugeben, die Entwicklern erklären, warum sie Programmiersprachen mit Speicherschutz verwenden sollten.
Das zweitwichtigste Thema bei der Software-Security betrifft die Art der Entwicklung von Anwendungen. Die aktuelle vorherrschende Methode für die Entwicklung von Software basiert auf der Aggregation von Softwarekomponenten, zwischen denen es tendenziell keine eindeutigen Grenzen gibt. Das daraus entstehende Cybersecurity-Problem ist, dass Malware so relativ leicht alle Komponenten einer Anwendung infizieren kann. Aus diesem Grund versuchen heutzutage so viele Cyberkriminelle, Softwarelieferketten zu kompromittieren. Malware, die beispielsweise Upstream in eine Open-Source-Softwarekomponente eingeschleust wird, kann im Laufe der Zeit leicht über Tausende von Anwendungen verbreitet werden.
Ein tragbares binäres Anweisungsformat namens WebAssembly (Wasm) wird nun in einer speichergeschützten Ausführungsumgebung mit Sandboxing auf die C++-Software umgestellt. Das World Wide Web Consortium (W3C) trieb die anfängliche Entwicklung von WASM voran, um ein gemeinsames Format für Browser auf JavaScript-Code zu erstellen. Wasm wird nun über Browser und JavaScript hinaus erweitert, damit Entwickler eine Reihe sicherer universeller Binaries erstellen können, die auf jeder Plattform ohne Änderung funktionieren.
Natürlich kann es eine Weile dauern, bis Wasm sich durchsetzt und bis in C, C++ und Assembler geschriebene Anwendungen durch Anwendungen ersetzt werden, die nicht annähernd so viele Schwachstellen aufweisen. Cybersecurity-Experten können jedoch eine entscheidende Rolle bei der Beschleunigung dieses Prozesses spielen, indem sie zunächst die in Produktionsumgebungen ausgeführten Anwendungen ermitteln, die in älteren Programmiersprachen geschrieben sind, und dann Entwickler dazu auffordern, sich mit Wasm vertraut zu machen. Es gibt noch viel zu tun, um Wasm für den durchschnittlichen Entwickler leichter zugänglich zu machen. Aber bis zu dem Zeitpunkt der Fertigstellung einer Anwendung, an der ein Entwicklungsteam gerade arbeitet, müsste es nächstes Jahr bereits eine breite Palette von Plattformen für die Ausführung dieser Anwendungen geben.
Das derzeitige Chaos hinsichtlich der Software-Security, in dem sich die IT-Branche derzeit befindet, ist nicht über Nacht entstanden. Es wird viele Jahre dauern, darüber hinwegzukommen. In der Zwischenzeit sollten sich Cybersecurity-Profis damit trösten, dass Softwareentwickler diese Probleme nicht nur eingestehen, sondern auch an einer sinnvollen Lösung arbeiten, die weit über die Erstellung eines weiteren Patches hinausgeht, der implementiert werden muss, wenn jemand die Zeit dazu findet.
Es liegt natürlich auf der Hand, dass es immer Cybersecurity-Poblemen geben wird, die gelöst werden müssen. Es ist jedoch offensichtlich, dass mit der Weiterentwicklung der Softwareentwicklung auch die IT-Branche bald aufhören könnte, ihr eigener schlimmster Feind zu sein.