Herausforderungen der sicheren Softwareentwicklung in der vernetzten Welt meistern

Sichere Software ist keine rein technische Frage. In einer komplexen und vernetzen Welt sind Softwarerisiken auch Geschäftsrisiken. Wie machen Unternehmen und Organisationen ihre Software robust und vertrauenswürdig? Es braucht eine ganzheitliche Betrachtung und Massnahmen über den ganzen Software-Lifecycle.

Von Daniel Scherrer, Chief Software Architect · 6. Juli 2023

Software regiert die Welt. Sie hat sie nicht gefressen, wie Netscape-Gründer und Investor Marc Andreessen 2011 im Wall Street Journal prognostizierte. Aber Software ist dabei, sie zu transformieren in eine Welt, in der Hardware und letztlich auch wir Menschen einen anderen Beitrag leisten als gewohnt. Komplexe Multicloud-Systeme sind entstanden, in denen sich klassische Geschäftsmodelle zu Ökosystemen und Plattformen ausrichten. Wissen lässt sich dank Large Language Models (LLM) mit natürlicher Interaktion erschliessen. Klassische Bürotätigkeiten werden mit Robotic Process Automation (RPA) verkürzt oder gar ersetzt. Beinahe jeder Bereich einer IT-Infrastruktur – vom Server bis zum Netzwerk – wird heute von Software dominiert. Was ein Hype ist und was uns realistisch gesehen einen Schritt vorwärts bringt, wissen wir oftmals erst im Nachhinein. Dass sich die neueste Evolutions-Idee aber direkt hinter der nächsten Tür befindet, ist inzwischen fast schon eine Konstante.

Fakt ist: Die enge Verbindung von Software mit der Welt, die digitale Transformation und die Integration in nahezu allen Aspekte des Geschäftsbetriebs haben zu komplexen modernen Softwarelösungen geführt. Damit nehmen jedoch auch die potenziellen Schwachstellen und Angriffspunkte zu, was die Sicherheit der Software zu einer zentralen Herausforderung macht. Dies bestätigen auch die nüchternen Zahlen der offiziellen «Common Vulnerabilities and Exposures (CVE)»-Datenbank: Im Jahr 1999 sammelte diese rund 894 bekannte Schwachstellen. Heute reden wir von über 2'000 neuen Schwachstellen pro Kalendermonat.

In der heutigen Zeit wird Sicherheit nicht mehr als zusätzliche Anforderung betrachtet, sondern als grundlegende Erwartungshaltung von Kunden sowie Benutzerinnen und Benutzern. Ein Sicherheitsvorfall kann nicht nur das Vertrauen erschüttern, die Unternehmensmarke schädigen, sondern auch erheblichen finanziellen Schaden verursachen. Daher müssen sich Unternehmen darauf fokussieren, sichere Softwarelösungen zu entwickeln, die den Erwartungen und Anforderungen ihrer Zielgruppe gerecht werden.

Softwarearchitekturen und deren Risiken

Die Softwarearchitektur ist von zentraler Bedeutung für die Funktionalität, Skalierbarkeit und Wartbarkeit einer Softwarelösung. In den letzten Jahren haben sich Softwarearchitekturen im Sinne der Wirtschaftlichkeit weiterentwickelt, um den steigenden Anforderungen gerecht zu werden. Gerade hier schleichen sich Fehler ein, die nachträglich nur mit viel Aufwand zu beheben sind. Eine robuste Architektur ist entscheidend für die spätere Resilienz von Technik und Geschäftsprozessen.

Die Einführung von Microservices-Architekturen, Containerisierung und Cloud Computing hat die Art und Weise, wie Software entwickelt und bereitgestellt wird, sehr stark verändert. Potenzielle Schwachstellen müssen früh erkannt und behoben werden. Es ist daher wichtig, Sicherheitsbewertungen und Audits in den Entwicklungsprozess einzubinden. Die Aufgabe bedingt die Zusammenarbeit der spezialisierten Teams. Die Sicherheit von Lösungen kann daher nicht mehr an eine einzelne Person im Prozess delegiert werden. Dafür sind Ökosysteme viel zu unübersichtlich vernetzt.

Supply-Chain-Attacken beispielsweise sind hoch komplexe Angriffe, bei denen Hacker gezielt Schwachstellen in der Lieferkette ausnutzen, um Schadsoftware oder Malware in eine Softwarelösung einzuschleusen. Das reduziert die Kosten pro Attacke und erhöht die Wahrscheinlichkeit eines Erfolgs. Darum gilt es in der Softwareentwicklung, stets die gesamte Lieferkette im Auge zu behalten und auch die kleinste Komponente unabhängig von ihrer Quelle zu monitoren: Die Wiederverwendung und Integration vergrössert die potenziellen Angriffsflächen. Eine Schwachstelle zieht potenziell die ganze Lösung ins Unglück.

Solche Angriffe sind nicht nur für Unternehmen, sondern auch für die öffentliche Hand eine reale Bedrohung. Die Vertrauenswürdigkeit und Integrität der gelieferten Softwarekomponenten muss zur Vorbeugung gewährleistet sein. Eine umfassende Überprüfung der Lieferkette und die Implementierung von Sicherheitsmechanismen sind unerlässlich.

Schlüssel für eine sichere Softwareentwicklung

Um sichere Softwarelösungen zu entwickeln, sind gut ausgebildete Mitarbeiterinnen und Mitarbeiter von zentraler Bedeutung. Die Kenntnisse über aktuelle Sicherheitsstandards und -praktiken müssen regelmässig aufgefrischt und trainiert werden. Allerdings reicht dies allein nicht aus. Die gesamte Organisation, einschliesslich der Führungsebene, muss eine Sicherheitskultur entwickeln und aufrechterhalten. In dieser geht es nicht um stupides Training, sondern um ein Gefahrenbewusstsein. Softwareentwickler:innen wiederum sollten danach trachten, ihre Software so sicher zu gestalten, dass Nutzerinnen und Nutzer gar nicht erst auf die Idee kommen, Sicherheitsvorkehrungen aus Bequemlichkeit zu umgehen. Kurz: Sicherheitsbewusstsein sollte in allen Phasen von Softwareentwicklung und Softwarelebenszyklus verankert sein.

Sicherheitsinitiativen sind kein einmaliges Ereignis. Die Softwareentwicklung und die damit verbundenen Sicherheitsaspekte entwickeln sich kontinuierlich weiter – wie Hacker auch. Schwachstellen tun sich plötzlich auf, die jahrelang keine waren. Daher ist es wichtig, dass Organisationen das Thema Sicherheit aufgreifen und sich nachhaltig anpassen, indem sie sich und den Mitarbeitenden Zeit und Raum geben für Gefahrenbewusstsein und Diskussion über Lösungswege. Regelmässige Überprüfungen, Sicherheitsbewertungen und die Integration von Best Practices sind erforderlich, um mit den sich ständig weiterentwickelnden Bedrohungen Schritt zu halten. Dabei ist es notwendig, den aktuellen Reifegrad seiner Unternehmung und seiner Software zu kennen und basierend darauf nächste Schritte einzuleiten. Organisatorische und kulturelle Veränderungen brauchen Zeit – aus diesem Grund sollte nicht erst morgen damit begonnen werden.

Sichere Software: 3 Grundsätze für Organisationen

  • Sicherheit beschränkt sich nicht auf die Softwareentwicklung: Das Bewusstsein dafür muss sich durch alle Organisationsbereiche ziehen.
  • Softwareentwickler:innen folgen einem klar definierten Prozess und berücksichtigen die Softwaresicherheit bereits beim Design.
  • Softwarerisiken sind auch Geschäftsrisiken: Deshalb braucht es eine ständige Überwachung der Softwaresicherheit mit definierten Testabläufen und Bug-Bounty-Programmen. Abraxas hat dazu ein eigenes Security Framework entwickelt.

Fazit: sichere digitale Produkte für eine robuste Zukunft

In einer vernetzten und komplexen Welt ist die sichere Softwareentwicklung essenziell. Unternehmen und Organisationen müssen die Risiken verstehen, die mit der wachsenden Komplexität und Vernetzung von Softwarelösungen einhergehen. Softwaresicherheit wird damit zu einem zentralen Bestandteil des Risikomanagements im Unternehmen. Durch eine Kombination aus gut ausgebildeten Mitarbeitenden, einer auf Sicherheit fokussierten Organisation und kontinuierlicher Anpassung können sichere Softwarelösungen entwickelt werden, die den Erwartungen an sichere digitale Produkte gerecht werden. Software frisst die Welt nicht, es sind aber Nachlässigkeiten im Umgang mit entdeckten und noch nicht entdeckten Schwachstellen, mit denen sich Organisationen selbst schaden.

Daniel Scherrer

Über Daniel Scherrer

Daniel Scherrer ist Chief Software Architect bei Abraxas. Er plant und entwickelt Software konsequent entlang bewährter und sicherer Methoden. Er leitet das Abraxas Bug-Bounty-Programm.