+DEV-01 Richtlinien für die Entwicklung/Beschaffung von Systemkomponenten
---+DEV-01.01B
---+DEV-01.02B
---+DEV-01.03B
---+DEV-01.01AC

DEV-01 Richtlinien für die Entwicklung/Beschaffung von Systemkomponenten

1. Übersicht

Bezeichnung Standard
DEV-01.01B

Richtlinien und Verfahren mit technischen und organisatorischen Maßnahmen für die sichere Entwicklung von Systemkomponenten des Cloud-Dienstes sind gemäß SP-01 dokumentiert, kommuniziert und bereitgestellt.

Die Richtlinien und Verfahren enthalten Leitlinien für den gesamten Lebenszyklus des Cloud-Dienstes und orientieren sich hinsichtlich der folgenden Aspekte an:

1. Sicherheit und Qualität in der Softwareentwicklung (Anforderungen, Design, Implementierung, Testen und Überprüfungen), einschließlich des Vorhandenseins eines Security-by-Design-Prinzips, das die Berücksichtigung von Anforderungen der Informationssicherheit in der Softwareentwicklungsphase durchsetzt;

2. Sicherheit und Qualität bei der Softwarebereitstellung (einschließlich kontinuierlicher Bereitstellung (Continuous Delivery));

3. Sicherheit und Qualität im Betrieb (Reaktion auf identifizierte Fehler und Schwachstellen); und

4. Standards und Verfahren für sicheres Programmieren (Reduzierung des Einbringens von Schwachstellen in den Code).

Ergänzende Informationen

Die Software-Bereitstellung kann z. B. mit Continuous Delivery-Verfahren erfolgen.

Anerkannte Standards und Methoden für die sichere Entwicklung sind zum Beispiel:

1. ISO/IEC 27034; und

2. OWASP Secure Software Development Lifecycle (S-SDLC).

Die Minimierung des Zugriffs auf Cloud-Kundendaten während des Betriebs kann bei der Entwicklung der Cloud-Architektur durch die Befolgung robuster Sicherheitsmodelle, wie Zero Trust, unterstützt werden. Darüber hinaus sind Aspekte wie die Begrenzung von Datenschnittstellen, API-Aufrufen und Zugriffen sowie die Sicherstellung einer Ende-zu-Ende-Verschlüsselung vom Transport bis zur Speicherung relevante Gesichtspunkte.

Für die Qualitätssicherung in der Softwareentwicklung können die folgenden Prozesse als relevant betrachtet werden:

1. Planung und Definition von Qualitätszielen: Definition von Qualitätsanforderungen auf Grundlage von Bedürfnissen der Cloud-Kunden und Zielen unter Berücksichtigung der Anforderungen des zu entwickelnden Cloud-Systems;

2. Designphase: Durchführung von Design-Reviews und Inspektionen des Cloud-Dienstes, um sicherzustellen, dass das Design die Qualitätsanforderungen erfüllt;

3. Entwicklungsphase: Einsatz von Code-Reviews und Pair Programming, um die Codequalität sicherzustellen. Einsatz statischer Analysewerkzeuge, um den Code auf potenzielle Fehler und Verstöße gegen Programmierstandards zu prüfen;

4. Testphase: Durchführung (wo möglich automatisiert) verschiedener Testarten (z. B. Unit-Tests, Integrationstests, Systemtests, Abnahmetests), um die Funktionalität und Qualität der Software sicherzustellen;

5. Integration und Continuous Integration (CI): Integration der verschiedenen Softwarekomponenten und kontinuierliche Überprüfung der Integrationen durch automatisierte Builds und Tests. Einsatz von CI/CD-Pipelines, um sicherzustellen, dass der Code regelmäßig integriert und getestet wird;

6. Release und Bereitstellung: Vorbereitung und Umsetzung des Software-Releases gemäß definierten Qualitätsstandards; und

7. Wartung und kontinuierliche Verbesserung: Überwachung der Software im Betrieb, um sicherzustellen, dass sie weiterhin die Qualitätsanforderungen erfüllt. Dies umfasst Aktivitäten nach dem Release wie Fehlerbehebungs- und Leistungsoptimierungsprozesse. Zusätzlich sollten Post-Mortem-Analysen durchgeführt werden, um aus Vorfällen zu lernen und Prozesse für zukünftige Releases zu optimieren.

Ein anerkannter Standard und eine Methode für Qualität in Entwicklungsprozessen ist zum Beispiel Google Site Reliability Engineering (SRE).

Der Anwendungsbereich der DEV-Kriterien und der darin enthaltenen Anforderungen umfasst nicht nur die Entwicklung von Softwareanwendungen, sondern auch Plattformen, virtuelle Infrastruktur und andere Systemkomponenten.

DEV-01.02B

Leitlinien für die sichere Entwicklung des Cloud-Dienstes definieren Grundsätze, um sicherzustellen, dass die Systemarchitektur und die vom Cloud-Anbieter innerhalb der Produktionsumgebung betriebene Software so gestaltet sind, dass der Zugriff des Cloud-Anbieters auf Cloud-Kundendaten soweit wie möglich minimiert wird.

DEV-01.03B

Der Cloud-Anbieter definiert Maßnahmen, um die festgelegten Standards und Leitlinien als Teil der Richtlinien und Verfahren für die sichere Entwicklung von Systemkomponenten des Cloud-Dienstes durchzusetzen.

DEV-01.01AC

Bei der Beschaffung werden Produkte bevorzugt, die gemäß den 'Common Criteria für die Sicherheitsevaluierung von Informationstechnik' (kurz: Common Criteria - CC) auf dem Evaluation Assurance Level EAL 4 zertifiziert wurden. Sollen nicht zertifizierte Produkte anstelle verfügbarer zertifizierter Produkte beschafft werden, wird eine Risikobeurteilung gemäß OIS-07 durchgeführt.

Ergänzende Informationen

Die Software-Bereitstellung kann z. B. mit Continuous Delivery-Verfahren erfolgen.

Anerkannte Standards und Methoden für die sichere Entwicklung sind zum Beispiel:

1. ISO/IEC 27034; und

2. OWASP Secure Software Development Lifecycle (S-SDLC).

Die Minimierung des Zugriffs auf Cloud-Kundendaten während des Betriebs kann bei der Entwicklung der Cloud-Architektur durch die Befolgung robuster Sicherheitsmodelle, wie Zero Trust, unterstützt werden. Darüber hinaus sind Aspekte wie die Begrenzung von Datenschnittstellen, API-Aufrufen und Zugriffen sowie die Sicherstellung einer Ende-zu-Ende-Verschlüsselung vom Transport bis zur Speicherung relevante Gesichtspunkte.

Für die Qualitätssicherung in der Softwareentwicklung können die folgenden Prozesse als relevant betrachtet werden:

1. Planung und Definition von Qualitätszielen: Definition von Qualitätsanforderungen auf Grundlage von Bedürfnissen der Cloud-Kunden und Zielen unter Berücksichtigung der Anforderungen des zu entwickelnden Cloud-Systems;

2. Designphase: Durchführung von Design-Reviews und Inspektionen des Cloud-Dienstes, um sicherzustellen, dass das Design die Qualitätsanforderungen erfüllt;

3. Entwicklungsphase: Einsatz von Code-Reviews und Pair Programming, um die Codequalität sicherzustellen. Einsatz statischer Analysewerkzeuge, um den Code auf potenzielle Fehler und Verstöße gegen Programmierstandards zu prüfen;

4. Testphase: Durchführung (wo möglich automatisiert) verschiedener Testarten (z. B. Unit-Tests, Integrationstests, Systemtests, Abnahmetests), um die Funktionalität und Qualität der Software sicherzustellen;

5. Integration und Continuous Integration (CI): Integration der verschiedenen Softwarekomponenten und kontinuierliche Überprüfung der Integrationen durch automatisierte Builds und Tests. Einsatz von CI/CD-Pipelines, um sicherzustellen, dass der Code regelmäßig integriert und getestet wird;

6. Release und Bereitstellung: Vorbereitung und Umsetzung des Software-Releases gemäß definierten Qualitätsstandards; und

7. Wartung und kontinuierliche Verbesserung: Überwachung der Software im Betrieb, um sicherzustellen, dass sie weiterhin die Qualitätsanforderungen erfüllt. Dies umfasst Aktivitäten nach dem Release wie Fehlerbehebungs- und Leistungsoptimierungsprozesse. Zusätzlich sollten Post-Mortem-Analysen durchgeführt werden, um aus Vorfällen zu lernen und Prozesse für zukünftige Releases zu optimieren.

Ein anerkannter Standard und eine Methode für Qualität in Entwicklungsprozessen ist zum Beispiel Google Site Reliability Engineering (SRE).

Der Anwendungsbereich der DEV-Kriterien und der darin enthaltenen Anforderungen umfasst nicht nur die Entwicklung von Softwareanwendungen, sondern auch Plattformen, virtuelle Infrastruktur und andere Systemkomponenten.

1.1 Referenzen

1.2 Identifizierte Anforderungen

1.3 Zugehörige Regulierungen

2. Identifizierte Anforderungen

Anforderungen
Quelle Anforderung

3. Zugehörige Regulierungen

Regulierungen
Quelle Regulierung