In den letzten Jahren hat sich DevSecOps als wichtiger Ansatz für die Softwareentwicklung etabliert, bei dem die Sicherheit während des gesamten Softwareentwicklungszyklus im Vordergrund steht. DevSecOps verbindet Entwicklung, Sicherheit und Betrieb zu einem einheitlichen und kollaborativen Ansatz, der den Teams hilft, sichere Software schneller und effizienter zu entwickeln. Wie in vielen anderen Bereichen gibt es auch bei DevSecOps eine eigene Terminologie und eine Reihe von Akronymen, die für Einsteiger schwer zu durchschauen sein können. In diesem Artikel stellen wir ein umfassendes Glossar für DevSecOps Begriffen und Definitionen zur Verfügung, um Entwicklern, Sicherheitsexperten und Betriebsteams zu helfen, dieses sich schnell entwickelnde Feld zu verstehen und effektiv zu kommunizieren.
Was es mit DevSecOps genau auf sich hat und warum dieser Ansatz immer mehr Verwendung findet, erfährst du hier: Die wesentliche Rolle von Sicherheit in DevOps
- Über das Glossar
- Agile:
- API-Sicherheit:
- Bug:
- Cloud:
- Cloud-Sicherheit:
- Code-Review:
- Einhaltung von Vorschriften:
- Konfigurationsmanagement:
- Container-Sicherheit:
- Continuous Delivery (CD):
- Kontinuierliches Deployment:
- Continuous Integration (CI):
- Continuous Monitoring:
- DevOps:
- DevSecOps:
- Dynamische Analyse:
- Incident Response:
- Infrastruktur:
- Infrastructure as Code (IaC):
- Penetrations tests:
- Security as Code:
- Sicherheitsautomatisierung:
- Sicherheitstests:
- Informationssicherheit:
- Software-Auslieferungsprozess:
- Statische Analyse:
- Test-Driven Development (TDD):
- Bedrohungsmodellierung:
- Vulnerability Scanning:
- Schwachstelle:
Über das Glossar
In diesem Glossar haben wir eine Liste mit gängigen Begriffen und Konzepten zusammengestellt, die im Zusammenhang mit DevSecOps verwendet werden, darunter Agile, Continuous Integration, Continuous Delivery, DevOps, Sicherheit, Schwachstellen, Penetrationstests und mehr. Diese Begriffe zu verstehen, ist für jeden, der im Bereich DevSecOps arbeitet oder mehr über diesen wichtigen Bereich der Softwareentwicklung und -sicherheit erfahren möchte, unerlässlich.
Agile:
Eine Reihe von Prinzipien und Praktiken für die Softwareentwicklung, bei denen Flexibilität, Anpassungsfähigkeit und kontinuierliche Verbesserung im Vordergrund stehen. Agile Praktiken werden häufig in DevSecOps eingesetzt, um eine schnelle Bereitstellung von Software-Updates zu ermöglichen und die Zusammenarbeit zwischen Entwicklungs- und Sicherheitsteams zu erleichtern.
API-Sicherheit:
Die Praxis der Sicherung von Anwendungsprogrammierschnittstellen (APIs). APIs ermöglichen es verschiedenen Systemen und Anwendungen, miteinander zu kommunizieren. API-Sicherheit ist ein wichtiges Anliegen von DevSecOps, da APIs oft sensible Daten und Funktionen für externe Systeme offenlegen. Wenn APIs nicht ausreichend gesichert sind, können sensible Daten nach außen dringen. APIs können z. B. durch OAuth-Tokens und TLS-Verschlüsselung gesichert werden.
Bug:
Ein Defekt oder Fehler in einem System oder einer Anwendung, der zu einem unerwarteten oder unerwünschten Verhalten führt. Bugs können von kleinen Problemen, die die Funktionalität eines Systems nicht wesentlich beeinträchtigen, bis hin zu großen Sicherheitslücken reichen, die von Angreifern ausgenutzt werden können. DevSecOps behebt Sicherheitslücken (kritische Probleme), bevor neue Funktionen fertiggestellt werden.
Cloud:
Ein Netzwerk von Servern, Speicherplatz und anderen Ressourcen wird über das Internet zur Verfügung gestellt, so dass die Nutzer bei Bedarf darauf zugreifen und sie nutzen können. Clouds können öffentlich sein, d.h. sie werden von einem Drittanbieter betrieben und sind für eine Reihe potenzieller Kunden zugänglich, oder privat, d.h. sie werden von einem Unternehmen betrieben und sind nur für dieses Unternehmen zugänglich.
Cloud-Sicherheit:
Die Praxis der Sicherung von Systemen, Anwendungen und Daten in Cloud-Computing-Umgebungen. Cloud-Sicherheit ist ein zentrales Anliegen von DevSecOps und beinhaltet die Verwendung von Tools und Praktiken wie Verschlüsselung, Zugriffskontrolle und Netzwerksegmentierung, um Cloud-Umgebungen zu sichern.
Code-Review:
Ein Prozess, bei dem ein oder mehrere Teammitglieder Codeänderungen überprüfen, bevor sie in den Hauptzweig eingebunden werden. Code-Reviews, Regressionstests und Testabdeckung helfen dabei, sicherzustellen, dass die Codeänderungen von hoher Qualität sind, die Codierungsstandards eingehalten werden und die Lesbarkeit des Codes gewährleistet ist.
Einhaltung von Vorschriften:
Die Einhaltung von gesetzlichen Standards und Richtlinien in Bezug auf Sicherheit, Datenschutz und andere Bereiche. Bei DevSecOps ist die Einhaltung von Vorschriften oft ein zentrales Anliegen, und es werden Praktiken und Tools eingeführt, die sicherstellen, dass Systeme und Anwendungen die entsprechenden Vorschriften erfüllen.
Konfigurationsmanagement:
Verwaltung, Organisation und Kontrolle der System-, Anwendungs- und Infrastrukturkonfiguration. Das Konfigurationsmanagement wird in DevSecOps häufig eingesetzt, um sicherzustellen, dass die Systeme einheitlich konfiguriert und auf wiederholbare und zuverlässige Weise bereitgestellt werden. Dies bezieht sich auch auf Infrastructure as Code und den Einsatz von Tools wie Terraform, Ansible, Puppet und Chef
Container-Sicherheit:
Die Praxis der Sicherung von containerisierten Anwendungen und Umgebungen. Die Containersicherheit ist ein wichtiges Anliegen von DevSecOps, da Container in modernen Softwareentwicklungs- und -auslieferungspipelines häufig zur Bereitstellung und Verteilung von Anwendungen über Container verwendet werden.
Continuous Delivery (CD):
Eine Praxis der Softwareentwicklung, bei der Codeänderungen automatisch erstellt, getestet und in die Produktion überführt werden. (Um die Integrität der Ingenieure zu gewährleisten, werden CD-Änderungen in der Regel in Entwicklungs- und Testsystemen implementiert, aber Änderungen in der Produktion müssen möglicherweise manuell genehmigt werden).
CD unterscheidet sich von CI dadurch, dass Codeänderungen jederzeit einsatzbereit sein müssen, während bei CI zusätzliche Tests und Validierungen vor dem Einsatz erforderlich sein können.
Continuous Delivery bedeutet auch, dass die Software immer auf dem neuesten Stand und fertig verpackt ist, damit sie in Produktion gehen kann.
Kontinuierliches Deployment:
Eine Praxis der Softwareentwicklung, bei der Codeänderungen automatisch und ohne manuelle Eingriffe erstellt, getestet und in der Produktion eingesetzt werden (oder zuerst in einem Entwicklungssystem). Die kontinuierliche Bereitstellung erfordert, dass Codeänderungen vor der Bereitstellung gründlich getestet und validiert werden, um sicherzustellen, dass sie keine neuen Fehler oder Schwachstellen einführen. Je nach Anwendung können sich außerdem Compliance-Vorschriften auf CD auswirken.
Continuous Integration (CI):
Continuous Integration (CI) ist eine Praxis der Softwareentwicklung, bei der Codeänderungen häufig in ein gemeinsames Repository integriert werden und der integrierte Code automatisch gebaut und getestet wird. Das Hauptziel von CI ist es, Integrationsprobleme frühzeitig im Entwicklungsprozess zu erkennen und zu beheben, um so das Risiko von Fehlern und anderen Problemen im Endprodukt zu verringern.
Bei CI wird die Softwarepaketierungs-Pipeline bei jeder Codeänderung ausgeführt, wie du bereits erwähnt hast. Das bedeutet, dass jede Änderung, die ein Entwickler an der Codebasis vornimmt, automatisch gebaut, getestet und in ein einsatzfähiges Artefakt verpackt wird. Das Ergebnis ist eine unmittelbare Rückmeldung darüber, ob die Änderungen zu Problemen geführt haben und wenn ja, welche das sind.
Continuous Monitoring:
Die Praxis der kontinuierlichen Überwachung von Systemen und Anwendungen auf Anzeichen von Sicherheitsverletzungen, Schwachstellen oder anderen Problemen. Continuous Monitoring hilft Unternehmen, Sicherheitsbedrohungen und Schwachstellen in Echtzeit zu erkennen und darauf zu reagieren. Es ist ein wichtiger Bestandteil von DevSecOps.
DevOps:
Eine Reihe von Praktiken und Tools, die darauf abzielen, die Zusammenarbeit zwischen Entwicklungs- und Betriebsteams zu verbessern und die Bereitstellung von Software-Updates zu beschleunigen. DevOps setzt auf Automatisierung und den Einsatz von Tools wie Continuous Integration und Delivery, um die Geschwindigkeit und Zuverlässigkeit von Software-Updates zu verbessern.
DevSecOps:
Eine Reihe von Praktiken und Tools, die darauf abzielen, Sicherheitspraktiken in den Softwareentwicklungs- und -bereitstellungsprozess zu integrieren. Es betont die Zusammenarbeit zwischen Entwicklungs-, Sicherheits- und Betriebsteams. DevSecOps zielt darauf ab, Sicherheit in den Lebenszyklus der Softwareentwicklung einzubauen, anstatt sie als nachträglichen Gedanken zu behandeln.
Dynamische Analyse:
Eine Art der Softwareprüfung, bei der Code ausgeführt wird, um Fehler, Schwachstellen und andere Probleme zu identifizieren. Die dynamische Analyse wird in DevSecOps häufig eingesetzt, um das Verhalten des Codes in realen Szenarien zu überprüfen und Probleme zu erkennen, die bei der statischen Analyse möglicherweise nicht entdeckt werden. Im Allgemeinen werden bei der dynamischen Analyse laufende Anwendungen analysiert und untersucht. Damit kannst du deine Anwendungen überprüfen und die Risiken oder Sicherheitslücken von Drittanbieteranwendungen bewerten.
Incident Response:
Incident Response ist ein Prozess, mit dem Unternehmen Sicherheitsvorfälle oder andere unerwartete Ereignisse, die den Geschäftsbetrieb stören könnten, erkennen, eindämmen und darauf reagieren. Es handelt sich dabei um eine koordinierte Anstrengung zwischen verschiedenen Teams und Interessengruppen. Damit sollen die Auswirkungen eines Vorfalls schnell erkannt, bewertet und abgemildert werden.
Eine der wichtigsten Aufgaben bei der Reaktion auf Vorfälle ist die Behebung von Anwendungsausfällen, die durch eine Vielzahl von Faktoren verursacht werden können. Z. B. Netzwerkprobleme, Softwarefehler oder Sicherheitsverletzungen. Wenn eine Anwendung ausfällt, muss das Notfallteam schnell handeln, um den normalen Betrieb des Systems wiederherzustellen. Und somit Datenverluste oder andere negative Auswirkungen zu verhindern.
Infrastruktur:
Die Hardware, Software und andere Ressourcen, die den Betrieb eines Systems oder einer Anwendung unterstützen. Zur Infrastruktur gehören Server, Speicher, Netzwerkgeräte, andere Hardware sowie die Software und Tools, die zur Verwaltung und Wartung dieser Ressourcen verwendet werden.
Infrastructure as Code (IaC):
Eine Praxis, bei der die Infrastrukturkonfiguration als Code vorliegt und mit denselben Tools und Prozessen wie der Anwendungscode verwaltet und versioniert wird. Mit IaC kann die Infrastruktur leichter automatisiert, getestet und in den Softwareentwicklungs- und -bereitstellungsprozess integriert werden. Außerdem kann die Konfiguration als Code bestehen bleiben, was viel manuelle Arbeit einspart und ein wichtiger Teil der Automatisierung in Ops ist.
Penetrations tests:
Eine Art von Sicherheitstest, bei dem ein Angreifer einen realen Angriff auf ein System oder eine Anwendung simuliert, um Schwachstellen zu identifizieren und die Sicherheitslage des Systems zu bewerten. Penetrationstests werden häufig in DevSecOps eingesetzt, um Schwachstellen zu identifizieren und zu beheben, bevor sie von echten Angreifern ausgenutzt werden können.
Security as Code:
Security as Code ist ein Ansatz für die Softwareentwicklung, der Sicherheitspraktiken in den Lebenszyklus der Softwareentwicklung integriert. Es hat das Ziel, Sicherheit zu einem nahtlosen und automatisierten Teil des Entwicklungsprozesses zu machen. Durch die Einbettung von Sicherheitsprüfungen und -kontrollen in den Code selbst soll Security as Code das Risiko von Sicherheitslücken verringern und die Pflege einer sicheren Infrastruktur im Laufe der Zeit erleichtern.
Im Gegensatz zu Infrastructure as Code (IaC), das sich in erster Linie auf die Automatisierung der Erstellung und Konfiguration von Infrastrukturressourcen konzentriert, geht Security as Code über die Automatisierung der Infrastruktur hinaus und integriert Sicherheitskontrollen und -richtlinien in den zu entwickelnden Code.
Sicherheitsautomatisierung:
Der Einsatz von Tools und Prozessen zur Automatisierung von Sicherheitsaufgaben, wie z.B. Schwachstellen-Scans, Reaktion auf Vorfälle und Compliance-Berichte. Die Sicherheitsautomatisierung ist ein wichtiger Bestandteil von DevSecOps und hilft Unternehmen, die Effizienz und Effektivität ihrer Sicherheitspraktiken zu verbessern.
Sicherheitstests:
Das Testen von Systemen und Anwendungen auf Schwachstellen, Schwachstellen und andere Sicherheitsprobleme. Sicherheitstests sind ein wichtiger Bestandteil von DevSecOps und können Penetrationstests, Schwachstellen-Scans und Code-Reviews umfassen.
Informationssicherheit:
Die Praxis des Schutzes von Systemen, Netzwerken und Daten vor unberechtigtem Zugriff, Nutzung, Offenlegung, Störung, Veränderung oder Zerstörung. Im Rahmen von DevSecOps werden Sicherheitspraktiken in den Softwareentwicklungs- und -bereitstellungsprozess integriert, um sicherzustellen, dass Software-Updates sicher sind und keine neuen Schwachstellen einführen. Außerdem geht es bei der Informationssicherheit um die Isolierung und Sicherung der Laufzeitumgebung von Live-Anwendungen.
Software-Auslieferungsprozess:
Der Prozess der Entwicklung, des Testens und der Bereitstellung von Software-Updates. Der Softwareauslieferungsprozess umfasst in der Regel eine Reihe von Schritten, darunter Anforderungserfassung, Design, Codierung, Testen und Bereitstellung, und kann die Zusammenarbeit zwischen Entwicklungs-, Test- und Betriebsteams beinhalten. Der Softwarebereitstellungsprozess zielt darauf ab, qualitativ hochwertige Software-Updates zeitnah und effizient bereitzustellen.
Statische Analyse:
Eine Art von Softwaretests, bei der der Code analysiert wird, ohne ihn auszuführen, um Fehler, Schwachstellen und andere Probleme zu erkennen. Die statische Analyse wird bei DevSecOps häufig eingesetzt, um Probleme frühzeitig im Softwareentwicklungsprozess zu erkennen und zu beheben.
Test-Driven Development (TDD):
Eine Praxis der Softwareentwicklung, bei der Tests für einen Teil des Codes geschrieben werden, bevor der Code selbst geschrieben wird. TDD hilft sicherzustellen, dass der Code auf eine testbare Weise entwickelt wird und die durch die Tests definierten Anforderungen erfüllt.
Bedrohungsmodellierung:
Identifizieren, Analysieren und Priorisieren potenzieller Sicherheitsbedrohungen für ein System oder eine Anwendung. Threat Modeling wird in DevSecOps häufig eingesetzt, um Unternehmen dabei zu helfen, potenzielle Schwachstellen zu erkennen und zu beheben, bevor sie von Angreifern ausgenutzt werden können.
Vulnerability Scanning:
Die Praxis, Schwachstellen in Systemen und Anwendungen zu identifizieren, indem sie auf bekannte Schwachstellen untersucht werden. Vulnerability Scanning wird häufig in DevSecOps eingesetzt, um Unternehmen dabei zu helfen, Schwachstellen zu identifizieren und zu priorisieren, die behoben werden müssen.
Schwachstelle:
Eine Schwachstelle oder Lücke in einem System oder einer Anwendung, die von einem Angreifer ausgenutzt werden könnte, um sich unbefugten Zugang zu verschaffen, den Dienst zu unterbrechen oder Daten zu stehlen oder zu manipulieren. Im Rahmen von DevSecOps werden Schwachstellen im Rahmen des Softwareentwicklungs- und -bereitstellungsprozesses identifiziert und behoben, um zu verhindern, dass sie ausgenutzt werden.
Dieses Glossar für DevSecOps gibt dir einen ersten Überblick über die verschiedenen Begriffe und Definitionen für den täglichen Gebrauch. Wir erweitern das Glossar kontinuierlich mit weiteren und neuen Begriffen.