Prinzipien für einen Standard zur sicheren Softwareentwicklung 4 Schritte zur sicheren Software

Ein Gastbeitrag von Tim Brown * Lesedauer: 4 min |

Anbieter zum Thema

Immer öfter zielen Cyber-Angriffe auf die Softwareentwicklung ab. Unternehmen müssen deshalb unbedingt über Prozesse verfügen, die dafür sorgen, dass ihre Software sicher ist und sie Angreifern und unvorhersehbaren Bedrohungen immer einen Schritt voraus sind.

Unternehmen sollten die im Artikel vorgestellten vier Prinzipien umsetzen, offener mit dem Thema Sicherheit umgehen und Informationen und Best Practices zu teilen, um die Sicherheit der gesamten Branche zu verbessern.
Unternehmen sollten die im Artikel vorgestellten vier Prinzipien umsetzen, offener mit dem Thema Sicherheit umgehen und Informationen und Best Practices zu teilen, um die Sicherheit der gesamten Branche zu verbessern.
(Bild: Gorodenkoff - stock.adobe.com)

Professionelle und staatlich unterstützte Hackergruppen nutzen neue Techniken für neuartige Angriffe, die einige der weltbesten Cybersicherheitsexperten noch nie zuvor gesehen haben. Fähige und gut finanzierte Akteure verfügen mittlerweile über die Ressourcen, nicht nur Großunternehmen anzugreifen, bei denen ein erfolgreicher Angriff sehr lukrativ sein kann, sondern auch kleinere Unternehmen. In einer kürzlichen Studie der Duke University gaben erschreckende 85 % der befragten mittelgroßen Unternehmen aller Branchen an, dass schon einmal erfolgreich in ihre Systeme eingedrungen wurde, obwohl viele dieser Unternehmen lang etablierte Best Practices befolgen.

Eine der Branchen, auf die Bedrohungsakteure sich konzentrieren, ist die Softwareentwicklung für Computer. Wir sind in unserem Privat- und Berufsleben fast durchgehend von Software abhängig und Unternehmen müssen unbedingt über Prozesse verfügen, die dafür sorgen, dass ihre Software sicher ist und sie Angreifern und unvorhersehbaren Bedrohungen immer einen Schritt voraus sind.

Bei SolarWinds ebnen wir den Weg für eine sicherere Softwareentwicklung mit unserem Next-Generation Build System: Mit einem parallelen Build-Prozess wird Software in diesem transformativen Modell in mehreren sicheren, duplizierten und flüchtigen Umgebungen entwickelt. Das Next-Generation Build System ist Teil unserer breiter angelegten Secure by Design-Initiative. Der solide Cybersicherheitsstandard soll unser Sicherheits-Framework weiter stärken und neue Maßstäbe für die sichere Softwareentwicklung setzen. Wir möchten dazu beitragen, die gesamte Branche vor zukünftigen Bedrohungen zu schützen, und veröffentlichen daher Komponenten des Build-Systems als Open Source, damit andere Unternehmen davon profitieren können.

An dieser Stelle möchte ich vier Leitprinzipien im Zusammenhang mit dem Next-Generation Build System vorstellen, deren Einführung sich für Unternehmen lohnen kann. Zusammen mit Kooperationen zwischen öffentlichem und privatem Sektor und dem Teilen von bedrohungsbezogenen Informationen helfen diese Prinzipien Unternehmen dabei, angesichts wachsender Risiken ihre Sicherheitslage zu verbessern.

1. Selbstzerstörende und auf Code basierende Systeme entwickeln

Für einen sicheren Softwareentwicklungsprozess müssen Unternehmen Systeme ohne langlebige Umgebungen implementieren. Dies ist entscheidend, weil ausgereifte Umgebungen und Build-Systeme oft größere Schwachstellen und veraltete Komponenten enthalten und somit für Angreifer ein leichtes Ziel sind.

Unternehmen können diese Schwachstellen mindern, indem sie Produkte in kurzlebigen Software-Build-Umgebungen entwickeln, die sich selbst zerstören, sobald eine Aufgabe abgeschlossen wurde. So haben Angreifer keine Chance, sich in Systemen eine „Homebase“ zu schaffen, und Angriffe werden deutlich schwieriger.

Ein auf Code basierendes Build-System ermöglicht die kurzfristige Selbstzerstörung und bietet Sicherheitsmaßnahmen und Versionsverwaltung für die Build-Komponenten. Diese Entwicklungsmethode erfordert einen engmaschig kontrollierten Prozess mit organisiertem Leadership, da Unternehmen die Build-Systeme isolieren, streng überwachen und ihre Verwaltung separieren müssen.

2. Reproduzierbarkeit als zentraler Faktor

Die Reproduzierbarkeit ist in der Softwareentwicklung eine wichtige Voraussetzung für die Build-Sicherheit. Reproduzierbarkeit bedeutet, dass ein Entwicklungsteam Software an einem Ort entwickeln und auf einem anderen System oder zu einem anderen Zeitpunkt erneut entwickeln kann, ohne dass sich das Ergebnis ändert.

Mit reproduzierbaren Builds können Entwicklungsteams sicherstellen, dass ihre Software sich immer auf dieselbe Weise verhält, Unregelmäßigkeiten im Code eliminieren, Anomalien erkennen und Eindringversuche verhindern. Auf diese Weise können Softwareentwickler zudem Fehler reproduzieren, um sie besser nachzuvollziehen und zu beheben, oder nicht autorisierte Änderungen in der Build-Pipeline erkennen.

Reproduzierbare Builds sind so wichtig, weil nur so bei der Softwareentwicklung der finale Quellcode verglichen werden kann, um sicherzustellen, dass er identisch ist, egal wo oder wann der Build erstellt wurde. Das ist entscheidend für den nächsten Schritt des Prozesses: die parallele Entwicklung.

3. Parallele Entwicklung

Der sogenannte „Parralel-Build“-Prozess ist eine weitere Möglichkeit, die Integrität des Entwicklungsprozesses zu erhöhen. Dabei werden für maximale Sicherheit drei logische Build-Pipelines verwendet: Entwicklung, Staging/Validierung und Produktion. Alle Builds müssen über die oben genannten Merkmale verfügen.

Jetzt Newsletter abonnieren

Täglich die wichtigsten Infos zu Softwareentwicklung und DevOps

Mit Klick auf „Newsletter abonnieren“ erkläre ich mich mit der Verarbeitung und Nutzung meiner Daten gemäß Einwilligungserklärung (bitte aufklappen für Details) einverstanden und akzeptiere die Nutzungsbedingungen. Weitere Informationen finde ich in unserer Datenschutzerklärung.

Aufklappen für Details zu Ihrer Einwilligung

Die Entwicklungs-Pipeline dient den normalen Engineering-Builds. Für den Großteil des Engineering-Teams ist der Zugriff auf die Build-Umgebung erforderlich. Der Zugriff auf den Staging-/Validierungs-Build ist eingeschränkt. Hier werden auch Qualitätsprüfungen sowie Sicherheits- und Leistungstests durchgeführt.

Die letzte Pipeline ist die Produktions-Pipeline. Der Zugriff auf diese ist extrem eingeschränkt. Nur einzelne im Voraus festgelegte Personen haben Zugriff. Vor der Bereitstellung aus der Produktions-Pipeline erfolgt ein Vergleich mit der Staging-Pipeline. Das Build-Modell nutzt einen „Assumed-Breach“-Ansatz, bei dem davon ausgegangen wird, dass bereits eine Sicherheitsverletzung vorgefallen ist: Eine einzelne kompromittierte Person kann nicht unabhängig einen Produktions-Build kompromittieren.

Die parallelen Umgebungen haben jeweils einen einzigen Eintrittspunkt und sind voneinander unabhängig. Potenzielle Bedrohungen konzentrieren sich daher auf eine einzelne Umgebung und Schwachstellen werden reduziert. Wenn eine Umgebung kompromittiert wird, ist es unwahrscheinlich, dass der Angriff auch auf die beiden anderen Umgebungen übergreift.

4. Die eigenen Schritte zurückverfolgen

Die Nachverfolgbarkeit ist das letzte grundlegende Prinzip für einen sicheren Build-Prozess. Es ist wichtig, jeden Build-Schritt über einen verifizierbaren Prozess zu prüfen und nachzuverfolgen, bevor die Software veröffentlicht wird. Jedes Projekt in der Pipeline muss von den Softwareingenieuren und vom Management genehmigt werden.

Dabei wird jeder Schritt sorgsam geprüft und verifiziert, ob alle Code-Elemente übereinstimmen und ordnungsgemäß implementiert wurden. Ein klarer und nachverfolgbarer Verlauf gibt Aufschluss über Fehler oder Anomalien. Die zusätzliche Validierung durch einen Menschen vor einer Produktveröffentlichung hilft sicherzustellen, dass alle nötigen Schritte für eine hohe Qualität und Sicherheit durchgeführt wurden.

Die Cybersicherheitslandschaft ist ständig in Bewegung. Jeden Tag tauchen neue Bedrohungen und hoch motivierte, gut finanzierte Bedrohungsakteure auf. Sicherheitsverbesserungen im Softwareentwicklungsprozess sind unverzichtbar, um die Angreifer auszubremsen und die Folgen von Angriffen zu reduzieren. Wir empfehlen der Branche, diese Prinzipien umzusetzen, offener mit dem Thema Sicherheit umzugehen und Informationen und Best Practices zu teilen, um die Sicherheit der gesamten Branche zu verbessern.

* Tim Brown ist CISO bei SolarWinds.

(ID:49773430)