- Start
- Cyber Security
- Leistungen
- Cyber Security
- Security Architecture und Design
Security Architecture
und Design
Security Development Lifecycle
Sicherheitsberatung und ‑training
Continous Testing und SecDevOps
Bedrohungs- und Risikoanalyse
Sicherheit in der Softwareentwicklung
Cybersecurity in der Softwareentwicklung (Security Development Lifecycle) umfasst die Berücksichtigung von Sicherheitsaspekten bei der Planung von Anwendungssystemen. Unsere IT-Experten unterstützen dabei auf konzeptioneller Ebene bei folgenden Schwerpunkten der Softwareentwicklung:
- Erstellung bzw. Bewertung von Anforderungen an ein Softwaresystem (Requirements Engineering)
- Analyse und Bewertung von Risiken für das Softwaresystem (Threat Modeling)
- Bewertung von (bestehenden) Software-Lösungen und ‑Architekturen
- Integration von IT-Sicherheit in den Software-Entwicklungszyklus (SDLC)
- Integration von IT-Sicherheit in Continious Integration (CI)/ Continious Delivery (CD)
Das Ziel von Sicherheit in der Softwareentwicklung ist die ganzheitliche Betrachtung des Erstellungsprozesses von Softwareanwendungen. Im Gegensatz zur technischen Analyse liegt der Schwerpunkt auf der konzeptionellen Ebene des Softwareentwicklungszyklus. Insbesondere in den frühen Phasen der Spezifikation sowie der Planung des Anwendungssystems können dabei mögliche Bedrohungen frühzeitig erkannt und bei der Implementierung berücksichtigt werden, um kostspielige Änderungen im späteren Projektverlauf zu vermeiden (Secure by Design).
Damit schließt Sicherheit in der Softwareentwicklung die Lücke zwischen der Planung einerseits und der sicheren Implementierung des Softwaresystems andererseits.
Das Ziel besteht im Allgemeinen aus den folgenden vier Punkten:
- Identifizierung von Risiken und Bedrohungen für das Anwendungssystem und seine Benutzer.
- Unterstützung bei Architekturentscheidungen
- Empfehlung geeigneter Maßnahmen zur Vermeidung von Schwachstellen als Voraussetzung für eine hohe Softwarequalität im Bereich IT-Sicherheit (Security) während der Implementierungsphase.
- Integration der IT-Sicherheit in den Software-Entwicklungszyklus
Neben den oben genannten allgemeinen Zielen besteht die Möglichkeit, in Abstimmung mit dem Auftraggeber die konkreten Ziele sowie deren Priorisierung individuell im Vorfeld festzulegen und entsprechend an den Softwareentwicklungszyklus anzupassen.
Die Umsetzung der Ziele kann in einer oder idealerweise in mehreren der folgenden Phasen der Softwareentwicklung erfolgen:
- Systemanforderungsanalyse: Ermittlung und Definition der allgemeinen Anforderungen an das Softwaresystem, um bspw. den Zweck und die vorgesehene Arbeitsweise zu verstehen. Auf Basis der allgemeinen Anforderungen erfolgt die Definition von Sicherheitsanforderungen, damit das Anwendungssystem im späteren produktiven Einsatz sicher betrieben werden kann.
- Software-Architektur: Erfolgt die Analyse der Software-Architektur und die sicherheitstechnische Bewertung des Anwendungssystems bereits auf konzeptioneller Ebene, werden spätere Schwachstellen bei der Implementierung und im produktiven Einsatz vermieden.
- Komponentenspezifikation: Bei der konkreten Konzeption der einzelnen Anwendungskomponenten kann die Integration von Sicherheit als weitere Maßnahme integriert werden, um bereits präventiv mögliche Schwachstellen in der späteren Implementierungsphase zu identifizieren.
Neben dem V‑Modell können die genannten Inhalte auch an das klassische Wasserfallmodell oder agile Vorgehensweisen (z.B. Scrum) in der Softwareentwicklung angepasst werden. Es besteht die Möglichkeit, in Absprache mit dem Kunden die konkreten Ziele sowie deren Priorisierung im Vorfeld der Umsetzung individuell zu ermitteln und entsprechend anzupassen.
Die Vorgehensweise der einzelnen Punkte basiert unter anderem auf den OWASP Application Security Verification Standards [1], dem OWASP Threat Modeling Process [2] sowie den Ansätzen von Microsoft [3].
- Threat Modeling: Welche Risiken bestehen für das Anwendungssystem und seine Benutzer im produktiven Einsatz?
- Systemanforderungsanalyse: Welche Anforderungen stellen Bedrohungen und böswillige Akteure an das Sicherheitsniveau des Softwaresystems, um erfolgreiche Angriffe zu verhindern?
- Sichere Software-Architektur: Welche Schwachstellen in der Software-Architektur ermöglichen erfolgreiche Angriffe im produktiven Einsatz des Anwendungssystems?
- DevOpsSec: Welche Maßnahmen können in CI/CD-Prozesse integriert werden, um die Softwarequalität im Bereich IT-Sicherheit zu erhöhen?
- Statische Quelltextanalyse: Im Anschluss an die Konzeption des Softwaresystems kann zu Beginn der Implementierungsphase der Quellcode durch eine statische Analyse auf bereits vorhandene Schwachstellen oder Fehlkonfigurationen untersucht werden.
- Penetrationstests und Audits: Nach Abschluss der Implementierung des Softwaresystems oder einzelner Komponenten können diese im Rahmen von Komponenten- und Integrationstests sicherheitstechnisch auf vorhandene Schwachstellen untersucht werden.
- Sicherheitsberatung: Auf Basis der gewonnenen Erkenntnisse und identifizierten Schwachstellen können allgemeine oder anwendungsspezifische Themen im Bereich IT-Sicherheit, Best Practices oder Know-how zur Sensibilisierung oder für Lösungsansätze vermittelt werden.
- Entwicklerschulung: Sind verschiedene Angriffsszenarien oder Handlungsempfehlungen aus Entwicklersicht unbekannt, kann durch gezielte Schulungsinhalte Grundlagenwissen im Bereich der sicheren Softwareentwicklung vermittelt werden.
Sicherheitsberatung und ‑schulung
Ziel unser Experten im Bereich der Sicherheitsberatung und ‑schulung ist die Vermittlung von Inhalten zum Aufbau von Kompetenzen im Bereich der IT-Sicherheit:
- Die Sicherheitsberatung fokussiert dabei auf konkrete Bedrohungen und die Bewertung aktuell implementierter Maßnahmen sowie ggf. deren Weiterentwicklung. Die Beratungstätigkeit bleibt in der Regel auf einer konzeptionellen Ebene und bietet eine Grundlage als Entscheidungshilfe für Führungskräfte, Management und Softwarearchitekten.
- Der Bereich Sicherheitstrainings verfolgt einen technischen Ansatz durch die Vermittlung ausgewählter Trainingsinhalte, um mit dem erworbenen Wissen und den erlernten Fähigkeiten Aufgaben und Herausforderungen im Alltag sicher lösen zu können (z.B. sicheres Programmieren). Die Schulungen richten sich in erster Linie an Entwickler(-teams), Administratoren und technisches Personal mit Bezug zur IT-Sicherheit.
Angriffe auf Unternehmen, kritische Infrastrukturen und allgemein auf öffentlich zugängliche IT-Systeme sind heute an der Tagesordnung. Cyber-Angriffe gelten mittlerweile als eines der größten Risiken für die Wirtschaftlichkeit von Unternehmen. Ein ausreichender Schutz vor böswilligen Akteuren kann daher entscheidend zur Wirtschaftlichkeit eines Unternehmens beitragen. Für einen effektiven Schutz ist es wichtig, die Wege und Mittel der Angreifer zu kennen und entsprechend wirksame Maßnahmen umzusetzen.
Ziel der beiden Teilbereiche Sicherheitsberatung und ‑schulung ist die Vermittlung von Inhalten zum Aufbau von Kompetenzen im Bereich der IT-Sicherheit:
- Die Sicherheitsberatung fokussiert dabei auf konkrete Bedrohungen und die Bewertung aktuell implementierter Maßnahmen sowie ggf. deren Weiterentwicklung. Die Beratungstätigkeit bleibt in der Regel auf einer konzeptionellen Ebene und bietet eine Grundlage als Entscheidungshilfe für Führungskräfte, Management und Softwarearchitekten.
- Der Bereich Sicherheitstrainings verfolgt einen technischen Ansatz durch die Vermittlung ausgewählter Trainingsinhalte, um mit dem erworbenen Wissen und den erlernten Fähigkeiten Aufgaben und Herausforderungen im Alltag sicher lösen zu können (z.B. sicheres Programmieren). Die Schulungen richten sich in erster Linie an Entwickler(-teams), Administratoren und technisches Personal mit Bezug zur IT-Sicherheit.
Die konkreten Empfehlungen bzw. Schulungsinhalte orientieren sich an den Anforderungen sowie den technischen und organisatorischen Gegebenheiten des Auftraggebers.
Die Durchführung einer Beratung oder eines Trainings erfolgt in den folgenden Phasen:
- Kick-Off: In einem Vorgespräch werden die relevanten Punkte für eine Beratung bzw. die Inhalte einer Schulung festgelegt. Außerdem wird der Teilnehmerkreis festgelegt, um die Inhalte zielgerichtet abstimmen zu können.
- Durchführung: In der Durchführungsphase erfolgt die Vermittlung der abgestimmten Schulungsinhalte bzw. die Durchführung des Beratungsgespräches innerhalb des definierten Teilnehmerkreises.
- Nachbereitung: In der Nachbereitungsphase können auf Basis der Ergebnisse der Durchführung weitere Schritte definiert werden, z.B. die Planung weiterer Beratungsgespräche oder Schulungen.
Beratungsgespräche und Trainings können ebenfalls über einen längeren Zeitraum (z.B. entwicklungsbegleitend oder als Teil eines Changeprozesses) stattfinden. Die konkreten Inhalte eines Beratungsgesprächs zu den Trainingsinhalten werden im Rahmen eines Kick-Offs individuell mit dem Kunden abgestimmt.
Die konkreten Inhalte der Sicherheitsberatung und ‑schulung werden im Vorfeld mit dem Auftraggeber abgestimmt. Die Vorgehensweise orientiert sich unter anderem an den OWASP Application Security Verification Standards [1], dem OWASP Threat Modeling Process [2] sowie den Ansätzen von Microsoft [3]. Die folgenden Punkte geben einen allgemeinen Überblick:
Sicherheitsberatung:
- Ermittlung von Bedrohungen (Threat Modelling)
- Unterstützung bei der Identifikation von Sicherheitsrisiken
- Unterstützung bei der Entscheidungsfindung im Bereich IT-Sicherheit
Schulungen und Trainings:
- Vermittlung von Angriffsstrategien und ‑methoden
- Sichere Programmierung von Anwendungssystemen
- Sichere Konfiguration von Anwendungssystemen
Ergänzend zu den Beratungs- und Schulungsinhalten können durch gezielte Testaktivitäten auf Anwendungs‑, Quellcode- oder Netzwerkebene konkrete Schwachstellen und Bedrohungen innerhalb eines Unternehmens identifiziert werden.
- Sicherheitsberatung: Aufbauend auf den gewonnenen Erkenntnissen und identifizierten Risiken können weitere allgemeine oder anwendungsspezifische Themen im Bereich IT-Sicherheit, Best Practices, Know-how vermittelt werden.
- Entwicklerschulung: Sind verschiedene Angriffsszenarien oder Maßnahmenempfehlungen aus Entwicklersicht unbekannt, können z.B. durch gezielte Schulungsinhalte grundlegende Kenntnisse im Bereich der sicheren Softwareentwicklung vermittelt werden.
- Penetrationstests und Audits: Die theoretischen und praktischen Inhalte können durch eine technische Überprüfung ergänzt werden. Durch Penetrationstests und Audits kann das Sicherheitsniveau von IT-Systemen ermittelt werden.
- Szenariobasiertes Penetration Testing: Durch Phishing-Kampagnen kann die Sensibilität der Mitarbeitenden für betrügerische E‑Mails und andere Angriffe auf Basis sozialer Interaktion getestet werden. Ebenso ist es möglich, einen Angriff über ein gestohlenes Client-Gerät zu simulieren und zu testen, wie weit ein Angreifer in das Unternehmensnetzwerk eindringen kann.
Continuous Testing / SecDevOps
Unser Ansatz bei Continuous Testing und SecDevOps konzentriert sich auf die Bereitstellung eines nahtlosen, automatisierten Prozesses, der es ermöglicht, Sicherheits- und Qualitätskontrollen effizient in den Softwareentwicklungszyklus zu integrieren. Wir bieten Expertise in der Einrichtung und Optimierung von CI/CD-Pipelines, der Auswahl und Implementierung geeigneter Sicherheitstools und der Schulung von Teams, um Sicherheitsbewusstsein zu schaffen und zu erhalten.
Inhaltlich unterstützen und implementieren unsere Experten in den folgenden Schwerpunkten:
- Automatisierung von Sicherheitstests
- Integration in CI/CD
- Statische und dynamische Codeanalyse
- Schulung und Sensibilisierung
Bei der Entwicklung von Software ist es nicht nur wichtig das dise schnell, sondern auch sicher entwickelt wird. Continuous Testing und SecDevOps ermöglichen es Teams, Sicherheitslücken frühzeitig zu erkennen und zu beheben, was zu einer erheblichen Reduzierung potenzieller Sicherheitsrisiken führt. Darüber hinaus verbessern sie die Effizienz des Entwicklungsprozesses, indem sie manuelle Überprüfungen minimieren und eine kontinuierliche Feedback-Schleife bieten.
Das Hauptziel von Continuous Testing und SecDevOps ist es, die Sicherheit und Qualität der Software während des gesamten Entwicklungszyklus zu gewährleisten. Dies soll erreicht werden, indem man eine Kultur und Praxis schafft, in der Tests automatisiert und in die tägliche Arbeit integriert werden, sodass Teams schnell auf Probleme reagieren und Korrekturen vornehmen können, ohne den Entwicklungsprozess zu verlangsamen.
Die Umsetzung von Continuous Testing und SecDevOps erfordert eine enge Zusammenarbeit zwischen Entwicklungs‑, Operations- und Sicherheitsteams. Dies beinhaltet die Automatisierung von Sicherheitstests, die Integration von Sicherheitsprüfungen in den CI/CD-Pipeline, die Nutzung von Tools zur statischen und dynamischen Codeanalyse sowie regelmäßige Schulungen und Sensibilisierungen für Entwicklerteams, um Sicherheitsbest Practices zu fördern.
- Automatisierung von Sicherheitstests: Implementierung von Tools und Prozessen, um Sicherheitstests automatisch und kontinuierlich durchzuführen.
- Integration in CI/CD: Einbettung von Sicherheitschecks in die Continuous Integration und Continuous Deployment Pipelines.
- Statische und dynamische Codeanalyse: Einsatz von SAST (Static Application Security Testing) und DAST (Dynamic Application Security Testing) Tools zur Identifizierung von Sicherheitslücken.
- Schulung und Sensibilisierung: Förderung des Bewusstseins für Sicherheitsfragen und Best Practices innerhalb der Entwicklerteams.
Unser Ansatz bei Continuous Testing und SecDevOps konzentriert sich auf die Bereitstellung eines nahtlosen, automatisierten Prozesses, der es ermöglicht, Sicherheits- und Qualitätskontrollen effizient in den Softwareentwicklungszyklus zu integrieren. Wir bieten Expertise in der Einrichtung und Optimierung von CI/CD-Pipelines, der Auswahl und Implementierung geeigneter Sicherheitstools und der Schulung von Teams, um Sicherheitsbewusstsein zu schaffen und zu erhalten.
Um Continuous Testing und SecDevOps erfolgreich zu implementieren, planen wir die folgenden Schritte:
- Bewertung der aktuellen Entwicklungs- und Sicherheitspraktiken.
- Auswahl und Implementierung geeigneter Tools und Technologien.
- Integration von Sicherheitstests in die CI/CD-Pipeline.
- Durchführung von Schulungen und Workshops für Entwicklerteams.
Bedrohungs- und Risikoanalyse
Unsere Bedrohungs- und Risikoanalysen bieten Unternehmen eine fundierte Grundlage zur Stärkung ihrer Sicherheitrichtlinien. Wir verwenden bewährte Methoden und Tools, um tiefgreifende Analysen durchzuführen, die es unseren Kunden ermöglichen, ihre Sicherheitsstrategien effektiv zu planen und umzusetzen. Unsere Experten unterstützen bei der gesamten Prozesskette von der Identifizierung bis zur Risikominderung.
Inhaltlich unterstützen und implementieren unsere Experten in den folgenden Schwerpunkten:
- Bedrohungs- und Risikoanalyse
- Threat Intelligence
- Schwachstellenanalyse
- Risikomatrix
- Sicherheitsrichtlinien und ‑standards
- Proaktive Sicherheitsmaßnahmen
Das Hauptziel einer Bedrohungs- und Risikoanalyse besteht darin, ein umfassendes Verständnis der aktuellen Sicherheitslage eines Unternehmens zu erlangen. Durch die systematische Identifizierung und Bewertung von Bedrohungen und Risiken können gezielte Sicherheitsstrategien entwickelt und implementiert werden, um das Risiko von Datenschutzverletzungen und anderen Sicherheitsvorfällen zu minimieren.
Die Umsetzung einer effektiven Bedrohungs- und Risikoanalyse umfasst mehrere Schritte:
- Erfassung und Klassifizierung von Vermögenswerten: Identifikation und Bewertung von Informationen, Systemen und Ressourcen, die geschützt werden müssen.
- Bedrohungsidentifikation: Erkennung potenzieller Bedrohungen, die die Sicherheit der Vermögenswerte beeinträchtigen könnten.
- Risikobewertung: Bewertung der identifizierten Risiken basierend auf ihrer Wahrscheinlichkeit und den potenziellen Auswirkungen.
- Risikobehandlung: Entwicklung und Implementierung von Maßnahmen zur Risikominderung, ‑akzeptanz, ‑übertragung oder ‑vermeidung.
- Bedrohungs- und Risikoanalyse: Essentielle Prozesse zur Identifizierung und Bewertung von potenziellen Sicherheitsrisiken.
- Threat Intelligence: Nutzung von Informationen über aktuelle Bedrohungstrends und Angriffstechniken zur Verbesserung der Sicherheitsmaßnahmen.
- Schwachstellenanalyse: Durchführung von Schwachstellenscans und ‑bewertungen zur Identifizierung von Sicherheitslücken.
- Risikomatrix: Erstellung einer Risikomatrix zur Priorisierung von Risiken und zur Unterstützung bei der Entscheidungsfindung.
- Sicherheitsrichtlinien und ‑standards: Überprüfung und Anpassung von Sicherheitsrichtlinien und ‑standards an die identifizierten Risiken.
- Proaktive Sicherheitsmaßnahmen: Entwicklung und Umsetzung von Maßnahmen, um potenzielle Sicherheitsrisiken zu adressieren.
Unsere Bedrohungs- und Risikoanalysen bieten Unternehmen eine fundierte Grundlage zur Stärkung ihrer Sicherheitrichtlinien. Wir verwenden bewährte Methoden und Tools, um tiefgreifende Analysen durchzuführen, die es unseren Kunden ermöglichen, ihre Sicherheitsstrategien effektiv zu planen und umzusetzen. Unsere Experten unterstützen bei der gesamten Prozesskette von der Identifizierung bis zur Risikominderung.
- Implementierung von Sicherheitsmaßnahmen: Basierend auf den Ergebnissen der Analyse sollten geeignete Sicherheitsmaßnahmen entwickelt und umgesetzt werden, um identifizierte Risiken zu adressieren.
- Schulung und Sensibilisierung von Mitarbeitern: Mitarbeiter spielen eine entscheidende Rolle im Schutz vor Sicherheitsbedrohungen. Schulungen und Sensibilisierungskampagnen sollten durchgeführt werden, um Mitarbeiter für potenzielle Risiken zu sensibilisieren und Best Practices für Informationssicherheit zu vermitteln.
- Regelmäßige Überprüfung und Aktualisierung: Die Bedrohungslandschaft und die IT-Infrastruktur eines Unternehmens können sich ständig ändern. Daher ist es wichtig, die Bedrohungs- und Risikoanalyse regelmäßig zu wiederholen und die Sicherheitsmaßnahmen entsprechend anzupassen und zu aktualisieren.
Quellen
[1] The OWASP® Foundation, OWASP Application Security Verification Standard, https://owasp.org/www-project-application-security-verification-standard/
[2] The OWASP® Foundation, Threat Modeling Process, https://owasp.org/www-community/Threat_Modeling_Process
[3] Microsoft, Security Development Lifecycle, https://www.microsoft.com/en-us/securityengineering/sdl