Hochsichere Softwareentwicklung ist ein entscheidender Zukunftstreiber für die Souveränität und Innovationskraft von Unternehmen im globalen Wettbewerb. Fünf Key-Facts, die bei der Softwareentwicklung berücksichtigt werden sollten.
Hochsicherheit wird meistens mit spezifischen Anwendungsfeldern wie kritischer Infrastruktur, dem Bankensektor oder öffentlichen Einrichtungen in Verbindung gebracht. Genau genommen ist es jedoch ein Thema, das jedes Unternehmen und jeden Verantwortlichen beschäftigen sollte, steht es doch für nicht weniger als die digitale Souveränität im gesellschaftlichen und ökonomischen Bereich. Dahinter verbergen sich Eigenschaften wie die Transparenz der Datenströme, die Resilienz der Infrastruktur oder die Steuerungshoheit über die verwendeten Plattformen, Lösungen und Devices. Damit Unternehmen und Einrichtungen mit diesem Anspruch ihre IT härten können, muss Hochsicherheit bereits vor Beginn der Softwareentwicklung im Prozess implementiert werden. VNC, Entwickler von Open-Source-basierten Unternehmensanwendungen, präsentiert daher fünf Aspekte, die hochsichere Softwareentwicklung kennzeichnen.
- Sichere Plattform und Infrastruktur:
Hochsicherheit als Entwicklungsanforderung sollte idealerweise schon bei der Entscheidung für eine Plattform und den damit verbundenen Infrastrukturkomponenten berücksichtigt werden. Das kann nur gelingen, wenn SecOps-Experten bereits in der Anfangsphase mit eingebunden werden. Auf einer Plattform, die nicht mit SecOps-Kriterien vereinbar ist, weil sie beispielsweise keinen transparenten Blick auf den Code ermöglicht, lässt sich eine hochsichere Software und deren Distribution nicht umsetzen. Da viele Unternehmen aus Legacy-Perspektive ihre bestehende Umgebung nicht disruptiv auf ein Open Source Kubernetes umstellen wollen, ist in der Praxis oft ein gewisser Kompromiss notwendig. Dieser kann beispielsweise so aussehen, dass vorhandene Clouds und Nutzerverwaltungen über Schnittstellen im IT-System eingebunden bleiben, jedoch keine Daten aus den Hochsicherheitskomponenten an sie zurückgespielt werden. - Interdisziplinäreres Arbeiten am Code:
Das Programmieren von Hochsicherheitssoftware erfordert ein klares Umdenken in Sachen Teamwork. Es ist nicht zielführend, Programmierer ihre Arbeit tun zu lassen und anschließend durch Code-Controlling den Versuch zu starten, Sicherheitsaspekte zu integrieren. Aus diesem Grund muss in der Entwicklung von Beginn an interdisziplinär mit DevOps- und SecOps-Experten gearbeitet werden, die die Auswirkungen von Komponenten auf Datenverarbeitung, Interfaces oder Sicherheit sofort benennen können. Dafür bedarf es eines engen Austausches und einer permanenten interdisziplinären Arbeit am Code. - Transparenz von Open Source:
Um die Datenverarbeitungsprozesse und die Datensicherheit von Plattformen und Technologien überhaupt bewerten zu können, ist ein Blick in den Code notwendig. Bei proprietären Closed-Source-Lösungen kann das von außen nicht bewertet werden. Schwachstellen in der Software bleiben unerkannt: ein Problem, das auf der untersten Ebene mit einem Betriebssystem für den Router beginnt und sich über das Cloud Computing bis zur Anwendungssoftware zieht. Auf allen Ebenen stellen proprietäre Systeme ein schwer kalkulierbares Risiko dar – und das betrifft die große Mehrheit aller Unternehmen. Die Lösung zur Reduktion dieses Risikos heißt Open Source und bezeichnet Software, deren Code eingesehen werden kann. Sie ist übrigens auch notwendig, um DSGVO-Anforderungen rechtssicher einzuhalten. Denn nur mit Open Source lässt sich sicherstellen, dass keine Blackboxes oder im Code integrierte Komponenten einen Datenabfluss verursachen können. - Wiederkehrende Coding-Komponenten:
Entwicklungsteams, die gemäß dem Hochsicherheitsgedanken bewusst alle verwendeten Komponenten selbst entwickeln und nicht zukaufen wollen, stehen vor aufwendigen Prozessen. Um die Komplexität zu verringern, bietet sich die Verwendung wiederkehrender Coding-Komponenten an. Das bedeutet, dass Teile des Codes wie in einem Modulsystem für viele Anwendungen zum Einsatz kommen – zum Beispiel bei der grafischen Darstellung bestimmter Buttons und User-Avatare oder der Definition von Aktionen. Durch diese Wiederverwendung lassen sich auch breite Produktlandschaften aufsetzen, die dann in automatisierten Tests auf Datensicherheit geprüft werden können. - Automatisierte Prüfung und Audits:
Grau ist alle Theorie, in der Praxis jedoch zeigt der Ernstfall, ob sicher ist, was als sicher deklariert worden ist. Aus diesem Grund kommt der automatisierten Testung von neuen Codeabschnitten eine wichtige Rolle zu. Dadurch kann geprüft werden, ob bestimmte Funktionen zu Sicherheitslücken führen. Auch hier bieten Open-Source-Lösungen den Vorteil, dass nur sie transparente Einblicke in den Code ermöglichen. Auf der Makroebene können Last- und Penetrationstests oder Friendly Hacking zudem gerade im Hochsicherheitsbereich zeigen, ob in der Infrastruktur oder einzelnen Anwendungen Risiken lauern.
»Noch vor dem Start der eigentlichen Softwareentwicklung sollte das Thema Hochsicherheit diskutiert werden«, betont Andrea Wörrlein, Geschäftsführerin von VNC in Berlin und Verwaltungsrätin der VNC AG in Zug. »Das gelingt nur, wenn DevOps und SecOps mit am Tisch sitzen. Schließlich bringt es keinen Vorteil, eine Software zu entwickeln, ohne bereits herauszuarbeiten, wie sie sicher betrieben werden kann. Langfristig sollte der Migrationsplan dann das Ziel verfolgen, alle intransparenten proprietären Lösungen durch Open Source zu ersetzen.«
Andrea Wörrlein ist Geschäftsführerin von VNC in Berlin und Verwaltungsrätin der VNC AG in Zug.