Entwicklung und Tests in DevSecOps

Entwicklung und Testen in DevSecOps bestimmen, ob Sicherheit Teil des technischen Arbeitsalltags wird oder etwas bleibt, womit sich Teams erst zu spät befassen. Starke Methoden beim Codieren, Tooling, Integration und Testen helfen Teams dabei, Probleme zu finden und zu beheben, während Code noch geschrieben wird.

In diesem Funktionsbereich wird beschrieben, wie Teams sicheren Code schreiben, die Entwicklung mit sanktionierten Tools und Komponenten beschleunigen und ihre Arbeit integrieren und testen. Es ist der Punkt, an dem Sicherheit entweder Teil des täglichen Engineerings wird oder nach wie vor ein Nachtrag bleibt.

Da Organisationen reif sind, wechseln Entwicklung und Tests von unterschiedlichen, nicht verwalteten Aktivitäten zu einer optimierten Umgebung, die für einzelne Entwickler optimiert ist. Sicherheitstests werden kontinuierlich, KI und Open Source entwickeln sich von unverwaltet zu unternehmenssicher und zielgerichtet, und Tests verlagern sich von periodischen und manuellen zu automatisierten und nach links verlagerten Verfahren.

Kernkompetenzbereiche

Entwicklung und Tests in DevSecOps konzentrieren sich auf drei Unterfunktionen:

  • Codesicherheit: Wie Sicherheitstools und Tests auf Code angewendet werden, wie sie geschrieben und überprüft werden.

  • Entwicklungsbeschleuniger: Wie KI, Open Source und wiederverwendbare Komponenten gesteuert und verwendet werden, um die Bereitstellung zu beschleunigen.

  • Integration und Tests: Wie Repositorys, Verzweigungen, Builds und automatisierte Tests verwaltet werden.

PHASEN

Entwicklungs- und Testfortschritt durch fünf Phasen der Reife. Diese Phasen zeigen, wie DevSecOps-Prinzipien in Entwickleraktivitäten auftreten, von nicht verwalteten Experimenten bis hin zu einer optimierten Code- und Testumgebung, die die Effizienz der Entwickler verbessert.

Gesamtphase Name der Phase Wie es aussieht
Ad-hoc Uneinheitlich Keine Ressourcenverwaltung; Schnelle Prototyperstellung und ungebremste Erkundung.
Initiieren Emergent Teams improvisieren die Aufsicht, beginnend mit der Umstellung auf eine DevOps-Denkweise.
Orchestrieren Kontinuierlich Eine umfassende Strategie verankert durch Automatisierung Standards in kontinuierlichen Prozessen.
Optimierung Nach links verschoben Eine Linksverschiebung bedeutet, dass Probleme früher erkannt werden und kostengünstiger zu beheben sind.
Wegweisend Optimiert Die Code- und Testumgebung ist für individuelle Entwicklereffizienz optimiert.

Uneinheitlich (Ad-hoc)

Ohne Ressourcenverwaltung oder anfängliche Programmierarbeit sind schnelles Prototyping und ungehemmte Exploration möglich. Dieser Zustand ist ein natürlicher Ausgangspunkt für Startups und neue Organisationen.

  • Codesicherheit: Es gibt wenig oder gar keine konsistente Verwendung von Codesicherheitstools, die zu einer wachsenden Risikooberfläche führen.

  • Entwicklungsbeschleuniger: Teams verwenden nicht genehmigte KI-Tools außerhalb der Organisation und machen eine breite, nicht geregelte Verwendung von Open Source Software oder Community-Codebeispielen. Ein Mangel an Richtlinien kann auch dazu führen, dass einige Entwickler diese Tools ganz meiden und dadurch Chancen auf mehr Effizienz verpassen.

  • Integration und Tests: Die Arbeit wird über mehrere Repositorys verteilt, und Builds werden manuell und selten mit unterschiedlichen Konfigurationen durchgeführt.

Aufkommend (Initiieren)

Teams beginnen, die Aufsicht über Ressourcen und Methoden zu improvisieren, wobei eine breitere Umstellung auf eine DevOps-Denkweise gestartet wird.

  • Codesicherheit: Teams verwenden gelegentlich lokale Sicherheitstesttools.

  • Entwicklungsbeschleuniger: Teams erkennen die Risiken nicht autorisierter KI und von Open Source an, und in einzelnen Bereichen der Organisation bilden sich Richtlinien heraus, darunter Einschränkungen oder Leitlinien für die Wiederverwendung von Code aus Entwickler-Communitys.

  • Integration und Tests: Teams definieren Repository- und Verzweigungsstrategien. Tests sind immer noch regelmäßig, manuell und manchmal ausgelagert. Gleichzeitig zeichnet sich Testbarkeit vereinzelt ab, und einige Teams führen Praktiken der kontinuierlichen Integration ein.

Kontinuierlich (Orchestrierung)

Mit einer umfassenden, durch Automatisierung unterstützten Strategie helfen dynamische Tools und Prozesse dabei, Standards in kontinuierlichen Arbeitsabläufen und der Überwachung zu verankern.

  • Codesicherheit: Einige Sicherheitstests sind vorhanden, die Sicherheit wird Teil der Codeüberprüfung, und tiefere Sicherheitstests werden in einem Zeitplan ausgeführt. Standardisierte Benennungs- und Branching-Strategien werden eingeführt.

  • Entwicklungsbeschleuniger: Unternehmenssichere KI und Open Source werden in der Nutzungsrichtlinie zur Verfügung gestellt. KI ist in IDEs als Programmierhilfe und in DevOps-Tools integriert, die Pull-Anforderungsworkflows verbessern.

  • Integration und Tests: Standardisierte Benennungs-, Verzweigungsstrategien und Testframeworks sind vorhanden. Automatisierte Tests werden in primäre CI/CD-Pipelines eingeführt, einschließlich einiger Integrationstests.

Nach links verschoben (Optimierung)

Die Schaffung eines Umfelds für einen Shift-Left-Ansatz bedeutet, dass Probleme früher erkannt werden und ihre Behebung weniger kostet.

  • Code-Sicherheit: Teams erzwingen Sperren für Sicherheitsbefunde mit hohem Schweregrad. Code-Tools in der IDE umfassen Sicherheitsfunktionen, darunter Schutz vor Prompt-Injection und Datenvergiftung.

  • Entwicklungsbeschleuniger: Teams verwenden unternehmenssichere große Sprachmodelle (LLMs), die an klare Muster und Standards ausgerichtet sind. KI-gestützte Software-Engineering- und DevOps-Agents beginnen, die Arbeit zu automatisieren und mit zunehmender Autonomie zu arbeiten.

  • Integration und Tests: Weit verbreitete Testpraktiken sind vorhanden, einschließlich Komponenten- und Integrationstests. Automatisierte Tests werden kontinuierlich ausgeführt und erfassen Probleme früher im Prozess. Teams verwenden auch Phishingsimulationen.

Optimiert (Pionier)

Wenn Sie die Code- und Testumgebung für einzelne Entwickler optimieren, schaffen Sie eine persönlichere Effizienz.

  • Code-Sicherheit: Sicherheit wird zu einem kontinuierlichen Prozess und durch fortschrittliche Beobachtbarkeit unterstützt.

  • Entwicklungsbeschleuniger: Entwickler erweitern Code-Assistenten-LLMs mit ihren eigenen benutzerdefinierten Mustern. Die Komponentenverwendung wird bewusst und ist darauf ausgelegt, Ziele für Leistung, Compliance und Risikomanagement zu erreichen. MCP-Server und -Orchestrierung entstehen als Teil der Toolkette.

  • Integration und Tests: Die Testautomatisierung wird umfassend, einschließlich Leistungstests. Teams übernehmen auch KI-gesteuerte Bedrohungserkennung und verfolgen weitere Möglichkeiten zur Verbesserung von Technischen Feedbackschleifen.