Sehen Sie, welche API-Testlösung im GigaOm Radar Report am besten abgeschnitten hat. Holen Sie sich Ihren kostenlosen Analystenbericht >>

Sehen Sie, welche API-Testlösung im GigaOm Radar Report am besten abgeschnitten hat. Holen Sie sich Ihren kostenlosen Analystenbericht >>
Zum Abschnitt springen
Wie können wir unseren Ansatz zur Softwaresicherheit ändern und Schwachstellen begrenzen? Sicherheit von Beginn unserer Projekte an zu einem integralen Bestandteil unserer Softwareentwicklung zu machen, ist ein guter Anfang. Erfahren Sie, wie SecDevOps und DevSecOps bei der Unterstützung der Softwaresicherheit zusammenwirken.
Zum Abschnitt springen
Zum Abschnitt springen
SecDevOps vs. DevSecOps. Es mag nach Semantik klingen, aber die Reihenfolge der Wörter hat das ganze Gewicht. Wie können wir die Art und Weise, wie wir mit Sicherheit umgehen, kulturell verändern? Wir behandeln es zunächst mit der Ernsthaftigkeit, die es verdient, und bauen es von Anfang an ein.
Es besteht kein Zweifel, dass DevOps und Sicherheit für Software- und Business-IT-Organisationen oberste Priorität haben. Das Ergebnis der Integration von Sicherheit in DevOps war die Einführung der Begriffe SecDevOps und DevSecOps. Das Ergebnis der Integration von Sicherheit in DevOps wurde als SecDevOps und DevSecOps geprägt.
Obwohl die Begriffe „SecDevOps“ und „DevSecOps“ synonym verwendet werden, handelt es sich um einen Vergleich zweier völlig unterschiedlicher Dinge. Warum? Denn die Reihenfolge der Wörter ist wichtig. In den meisten Fällen wird am Ende des Bereitstellungsprozesses noch an der Sicherheit gearbeitet.
In diesem Beitrag werde ich diskutieren, warum der Unterschied zwischen DevSecOps vs. SecDevOps ist entscheidend für die Sicherheit Ihrer Anwendungen. Ich werde auch darauf eingehen, wie die Bereitstellung sicherer Software einfacher zu erreichen ist, wenn Sicherheit ein integraler Bestandteil der Entwicklung ist, und zwar vom Beginn des Softwareentwicklungsprozesses an und nicht als Tor am Ende der Bereitstellungspipeline.
Trotz des verstärkten Fokus auf Sicherheit ist es für Softwareteams eine Herausforderung, Sicherheit in einen Prozess und eine Pipeline einzubauen. Der Druck, Projekte pünktlich und innerhalb des Budgets abzuschließen, setzt häufig andere Überlegungen außer Kraft. Infolgedessen wird die Sicherheitsintegration in der Regel als letzter Gating-Schritt für einen Release-Kandidaten angesehen, wie unten dargestellt:
Da Sicherheitswissen in der Regel knapp ist und auf wenige Personen in einer Organisation beschränkt ist, werden diese Personen häufig in einem zentralen Sicherheitsteam zusammengefasst. Das Sicherheitsteam hat die Aufgabe, das Produkt mithilfe seiner „magischen Trickkiste“ zu testen, um vor der Bereitstellung Schwachstellen im Release Candidate zu finden. Wenn das Team unweigerlich eine Schwachstelle findet, gibt es die „schlechten Nachrichten“ an das Entwicklungsteam zurück. Da das Entwicklungsteam jedoch nicht über die Sicherheitsschulung oder das Wissen über die Verwendung der Tools verfügt, die das Sicherheitsteam verwendet, wird das Sicherheitsteam oft als „Bösewichte“ angesehen, weil es die Veröffentlichung jetzt aus „ einige Sicherheitslücken.“ Was ist also die typische Reaktion des Teams?
Der traditionelle Ansatz führt zu verzögerter Veröffentlichung und/oder Sicherheitslücken in der Produktion.
Seien wir ehrlich, es ist schwierig, wichtige Sicherheitsupdates, Kontrollen und Codierungsstandards in ein Projekt zu integrieren, das für das Entwicklungsteam „erledigt und entstaubt“ ist. Was passiert also? Das Produkt geht mit bekannten und unbekannten Sicherheitslücken aus der Tür und verspricht möglicherweise, sie in der nächsten Version zu beheben oder zu ändern. Dies erhalten Sie, wenn Sie die Sicherheit nach der Entwicklung festlegen - "Dev", dann "Sec" und dann "Ops". Während dies nicht die Absicht ist, ist dies in vielen Organisationen die Realität. Betrachten Sie einen besseren Ansatz, der unten beschrieben wird.
Sicherheitskontrollen, Richtlinien, Codierungsstandards und Best Practices müssen vollständig in den Softwareentwicklungsprozess integriert werden. Dies wird erreicht, indem die Sicherheit von Anfang an einbezogen wird: „Sec“, dann „Dev“ und dann „Ops“. Das Sicherheitsteam (oder vielleicht ein auf Sicherheit spezialisierter Architektur- oder Senior-Entwickler) definiert im Voraus die notwendigen Richtlinien für das Team.
Diese Richtlinien können aus sicheren Codierungsstandards, Regeln zur Vermeidung unsicherer APIs und schlechter Verschlüsselung sowie Anweisungen zur Verwendung bestehen statische und dynamische Analyseund Prüfrichtlinien. Das Ziel besteht darin, dass die Entwickler im Alltag an sichererer Software arbeiten, und die Automatisierung trägt dazu bei, dass dies Wirklichkeit wird.
Mit der Automatisierung können Sie Ihren Sicherheitsansatz für eine SecDevOps-Strategie nach links verschieben, die etwa so aussieht:
Da die Sicherheit jetzt zu Beginn der Entwicklung festgelegt ist, wird das Team natürlich die Sicherheit besser beherrschen und am Ende der Pipeline werden weniger Sicherheitslücken gefunden.
Die Schwachstellen, die es schaffen, können dann untersucht und die Ergebnisse der Ursachenanalyse verwendet werden, um die Sicherheitsrichtlinien und -richtlinien zu verbessern - und das Ergebnis im Verlauf jedes Zyklus wesentlich zu verbessern.
Das Vorantreiben iterativer Verbesserungen der Richtlinie führt zu weniger störenden Eskalationen am Ende des Zyklus und sieht wie folgt aus:
Wenn Sie SecDevOps mit DevSecOps vergleichen, funktioniert der inkrementelle und integrierte Ansatz des ersteren viel besser als der Versuch, am Ende des Projekts ein Sicherheitsaudit durchzuführen.
Es führt kein Weg an der Tatsache vorbei, dass die Sicherheit eine zusätzliche Anforderung für Entwickler darstellt, aber wie Sie die Auswirkungen dieser Arbeit verwalten, macht den Unterschied zwischen einem pünktlich, sicher Produkt und a spät, unsicher einer. Eine wichtige Anforderung ist die Integration der Sicherheit in den vorhandenen Entwicklungsprozess. Dies können Sie tun, indem Sie die CWE-kompatiblen Testtools von Parasoft integrieren, um die Sicherheit zu einem Teil der Qualität und des gesamten Arbeitsablaufs zu machen.
Der Workflow beginnt mit der sicheren Codierungsrichtlinie. Der Architekt oder Leiter erstellt eine Konfiguration (möglicherweise basierend auf Codierungsrichtlinien wie CERT, CWE, OWASP, UL-2900 oder PCI DSS), die der Rest des Teams direkt in seiner IDE nutzen kann. Dies gibt dem Entwickler die Möglichkeit, den Code lokal auf seinem Computer zu überprüfen, bevor er sich der Quellcodeverwaltung zuwendet – und so Sicherheitsverstöße zu erkennen und zu beheben, wo und wann dies kostengünstiger und einfacher ist.
Dieselbe Konfiguration wird dann durch eine Analyse genutzt, die im Rahmen des Build-Prozesses durchgeführt wird. Diese umfassende Analyse geht über den Rahmen des lokal geänderten Codes des Entwicklers hinaus und bietet ein Sicherheitsnetz zum Sperren der Lieferpipeline, um sicherzustellen, dass unsicherer Code nicht in spätere Phasen befördert wird.
Abschließend werden die Ergebnisse der Analyse über das zentrale Berichts- und Analyse-Dashboard an die IDE des Entwicklers zurückgesendet, wo Fortschritte verfolgt, Kurskorrekturen vorgenommen und Prüfberichte in Echtzeit erstellt werden können.
Der vollständige SecDevOps-Workflow sieht folgendermaßen aus:
Manager und Sicherheitsleiter können Projekte jetzt anhand von Sicherheitsstandards bewerten, z CWE, im zentralen Dashboard wie unten gezeigt:
Diese Dashboards ermöglichen eine umfassende Überwachung und können Trendinformationen anzeigen, um Fragen zu beantworten, z. B. "Verbessert oder verschlechtert sich das Projekt?" oder "Welche Bereiche des Codes verursachen die meisten Probleme?"
Die Fähigkeit, diese und andere Fragen zu beantworten und Maßnahmen zu ergreifen, verwandelt das Entwicklungsteam von DevSecOps zu SecDevOps.
Trotz der austauschbaren Verwendung von DevSecOps und SecDevOps ist die Reihenfolge der Wörter genauso wichtig wie die Auswirkungen der Tools, Techniken und Prozesse, die das Wort impliziert. Sicherheit bleibt oft ein Add-on oder ein Gating-Prozess vor der Veröffentlichung eines Produkts, aber es ist schwierig, Sicherheitsprobleme zu beheben, wenn ein Produkt schon zur Hälfte fertig ist.
Die Verlagerung der Sicherheit nach links, wie bei SecDevOps, ist der Schlüssel zum Erfolg. Sicherheit muss Teil des täglichen Arbeitsablaufs jedes Entwicklers sein und in die Software-Pipeline integriert sein. Die automatisierten Sicherheitskontrollen und -richtlinien von Parasoft sorgen für Sicherheit in der Pipeline und reduzieren gleichzeitig die Auswirkungen und Risiken von SecDevOps oder DevSecOps.