{
  "class": "BSI-Stand-der-Technik-Kernel",
  "controls": [
    {
      "class": "BSI-Stand-der-Technik-Kernel",
      "id": "TEST.3.1.1",
      "parts": [
        {
          "id": "TEST.3.1.1_stm",
          "name": "statement",
          "props": [
            {
              "name": "documentation",
              "ns": "https://github.com/BSI-Bund/Stand-der-Technik-Bibliothek/tree/main/Dokumentation/namespaces/documentation_guidelines.csv",
              "value": "Freigabeplan"
            },
            {
              "name": "result",
              "ns": "https://github.com/BSI-Bund/Stand-der-Technik-Bibliothek/tree/main/Dokumentation/namespaces/result.csv",
              "value": "Tests"
            },
            {
              "name": "result_specification",
              "ns": "https://github.com/BSI-Bund/Stand-der-Technik-Bibliothek/tree/main/Dokumentation/namespaces/result.csv",
              "value": "einschließlich Prüfschritte, Ergebnissen und ggf. vorgenommenen Korrekturen"
            },
            {
              "name": "action_word",
              "ns": "https://github.com/BSI-Bund/Stand-der-Technik-Bibliothek/tree/main/Dokumentation/namespaces/action_words.csv",
              "value": "dokumentieren"
            },
            {
              "name": "modal_verb",
              "ns": "https://github.com/BSI-Bund/Stand-der-Technik-Bibliothek/tree/main/Dokumentation/namespaces/modal_verbs.csv",
              "value": "SOLLTE"
            }
          ],
          "prose": "Änderungen und Tests SOLLTE Tests einschließlich Prüfschritte, Ergebnissen und ggf. vorgenommenen Korrekturen dokumentieren."
        },
        {
          "id": "TEST.3.1.1_gdn",
          "name": "guidance",
          "prose": "Die Dokumentation von Tests zielt primär darauf ab, Transparenz und Nachvollziehbarkeit bei Änderungen zu gewährleisten, was das Risiko unbeabsichtigter Sicherheitslücken, Systemausfälle oder Datenverluste erheblich reduzieren kann. Ohne strukturierte Testdokumentation könnten beispielsweise fehlerhafte Konfigurationsänderungen unbemerkt in Produktivsysteme gelangen, was potenziell zu Verfügbarkeitsstörungen, verfälschten Daten oder kompromittierten Anwendungen führen könnte. Ein dokumentierter Testprozess ermöglicht zudem eine effektive Ursachenanalyse bei auftretenden Störungen, da alle durchgeführten Änderungen mit ihren beabsichtigten Wirkungen transparent nachvollzogen werden können. Eine nachvollziehbare und digital strukturierte Verknüpfung von Anforderung zu Prüfschritt und Prüfergebnissen kann durch OSCAL-Dokumente als strukturierte Daten erstellt werden. Gezielte Tests vor wesentlichen Änderungen tragen dazu bei, unbeabsichtigte Schwachstellen zu vermeiden, die zu unbefugtem Datenzugriff, Verlust von Geschäftsinformationen oder Ausfällen kritischer Systeme führen könnten. Je nach Art und Umfang der Änderungen lassen sich beispielsweise physische Zustände oder die Ausführung von Systemfunktionen verifizieren. Dabei werden sowohl die gewünschten Sicherheitsfunktionen als auch unerwünschte Zustände getestet, zum Beispiel, dass keine unautorisierten Funktionen aktiviert sind oder Apps ungewollt mit unbekannten Internetservern kommunizieren. Anwendbare Testarten umfassen statische und dynamische Tests, Unit- und Integrationstests sowie Regressionstests. Relevant ist dabei sowohl das Testen von manuellen Eingaben über die Benutzerschnittstelle als auch der Zugriffe über das Netzwerk, etwa über eine API. Die Tests können automatisiert (z. B. Unit-Tests, CI/CD-Tests, Schwachstellenscanner) oder manuell unterstützt (z. B. Click-Tests oder die Auswertung von LLM-Zusammenfassungen) durchgeführt werden. Sinnvoll ist es, automatische Tests für alle Funktionen und Codepfade einzusetzen, ergänzt durch manuelle Tests der wichtigsten Funktionen, wie Authentifizierung und Verschlüsselung, sowie durch Stichproben der übrigen Funktionen."
        }
      ],
      "props": [
        {
          "name": "alt-identifier",
          "value": "b7a747d3-cb11-46ce-8d0c-c57cc31d5ad5"
        },
        {
          "name": "sec_level",
          "ns": "https://github.com/BSI-Bund/Stand-der-Technik-Bibliothek/tree/main/Dokumentation/namespaces/security_level.csv",
          "value": "normal-SdT"
        },
        {
          "name": "effort_level",
          "ns": "https://github.com/BSI-Bund/Stand-der-Technik-Bibliothek/tree/main/Dokumentation/namespaces/effort_level.csv",
          "value": "4"
        }
      ],
      "title": "Dokumentation von Testergebnissen"
    },
    {
      "class": "BSI-Stand-der-Technik-Kernel",
      "id": "TEST.3.1.2",
      "links": [
        {
          "href": "#DET.5.10.4",
          "rel": "related"
        }
      ],
      "parts": [
        {
          "id": "TEST.3.1.2_stm",
          "name": "statement",
          "props": [
            {
              "name": "documentation",
              "ns": "https://github.com/BSI-Bund/Stand-der-Technik-Bibliothek/tree/main/Dokumentation/namespaces/documentation_guidelines.csv",
              "value": "Freigabeplan"
            },
            {
              "name": "result",
              "ns": "https://github.com/BSI-Bund/Stand-der-Technik-Bibliothek/tree/main/Dokumentation/namespaces/result.csv",
              "value": "die Integrität von Installationsdateien"
            },
            {
              "name": "action_word",
              "ns": "https://github.com/BSI-Bund/Stand-der-Technik-Bibliothek/tree/main/Dokumentation/namespaces/action_words.csv",
              "value": "testen"
            },
            {
              "name": "modal_verb",
              "ns": "https://github.com/BSI-Bund/Stand-der-Technik-Bibliothek/tree/main/Dokumentation/namespaces/modal_verbs.csv",
              "value": "SOLLTE"
            }
          ],
          "prose": "Änderungen und Tests SOLLTE die Integrität von Installationsdateien testen."
        },
        {
          "id": "TEST.3.1.2_gdn",
          "name": "guidance",
          "prose": "Dies kann z.B. durch Vergleich von Prüfsummen geschehen. Wenn möglich ist der Einsatz automatisierter Prüfungen empfehlenswert, es kann aber auch ein manueller Abgleich z.B. mit der Herstellerwebseite erfolgen."
        }
      ],
      "props": [
        {
          "name": "alt-identifier",
          "value": "f59da6fb-9fb8-4eaa-b338-1081e9094029"
        },
        {
          "name": "sec_level",
          "ns": "https://github.com/BSI-Bund/Stand-der-Technik-Bibliothek/tree/main/Dokumentation/namespaces/security_level.csv",
          "value": "normal-SdT"
        },
        {
          "name": "effort_level",
          "ns": "https://github.com/BSI-Bund/Stand-der-Technik-Bibliothek/tree/main/Dokumentation/namespaces/effort_level.csv",
          "value": "3"
        }
      ],
      "title": "Integritätstest"
    },
    {
      "class": "BSI-Stand-der-Technik-Kernel",
      "id": "TEST.3.1.3",
      "parts": [
        {
          "id": "TEST.3.1.3_stm",
          "name": "statement",
          "props": [
            {
              "name": "documentation",
              "ns": "https://github.com/BSI-Bund/Stand-der-Technik-Bibliothek/tree/main/Dokumentation/namespaces/documentation_guidelines.csv",
              "value": "Konfigurationshistorie"
            },
            {
              "name": "result",
              "ns": "https://github.com/BSI-Bund/Stand-der-Technik-Bibliothek/tree/main/Dokumentation/namespaces/result.csv",
              "value": "die Testfälle abdeckende, aber unkritische Testdaten"
            },
            {
              "name": "action_word",
              "ns": "https://github.com/BSI-Bund/Stand-der-Technik-Bibliothek/tree/main/Dokumentation/namespaces/action_words.csv",
              "value": "verankern"
            },
            {
              "name": "modal_verb",
              "ns": "https://github.com/BSI-Bund/Stand-der-Technik-Bibliothek/tree/main/Dokumentation/namespaces/modal_verbs.csv",
              "value": "SOLLTE"
            }
          ],
          "prose": "Änderungen und Tests SOLLTE die Testfälle abdeckende, aber unkritische Testdaten verankern."
        },
        {
          "id": "TEST.3.1.3_gdn",
          "name": "guidance",
          "prose": "Testdaten (engl. test data) sind synthetisch erstellte oder abstrahierte Daten, die zur Durchführung von Testfällen genutzt werden. „Unkritisch“ bedeutet hier, dass die Daten keinen schützenswerten Daten wie Geschäftsgeheimnisse oder sicherheitsrelevanten Konfigurationsdetails enthalten. Testfälle (engl. test cases) sind vorab definierte Szenarien oder Abläufe, die das Verhalten einer Anwendung oder eines Systems gezielt prüfen sollen. Der Zweck der Anforderung liegt darin, sicherzustellen, dass Testaktivitäten einerseits realistische Bedingungen nachbilden, andererseits aber keine Risiken durch unbeabsichtigte Preisgabe oder Manipulation produktiver Daten entstehen. Ein Vorfall könnte beispielsweise darin bestehen, dass versehentlich echte Kundendaten in einer Testumgebung landen und durch unzureichende Sicherung Dritten zugänglich werden; durch den Einsatz unkritischer Testdaten kann dieses Risiko vermieden und dennoch die Qualität der Tests gewährleistet werden. Eine Institution kann die Anforderung praktisch umsetzen, indem sie Testdatensätze automatisiert generieren lässt, etwa durch Anonymisierung oder Pseudonymisierung produktiver Daten oder durch die Nutzung von Zufallswerten, die für Testlogik realistisch wirken. Zusätzlich kann es hilfreich sein, Regeln für Entwickler und Tester festzulegen, die dokumentieren, welche Arten von Daten zulässig sind. Auch Tools zur data masking oder synthetic data generation können verwendet werden, um komplexe Datenstrukturen ohne reale Inhalte nachzubilden."
        }
      ],
      "props": [
        {
          "name": "alt-identifier",
          "value": "8a88300f-98ee-41e3-9622-be00c705f252"
        },
        {
          "name": "sec_level",
          "ns": "https://github.com/BSI-Bund/Stand-der-Technik-Bibliothek/tree/main/Dokumentation/namespaces/security_level.csv",
          "value": "normal-SdT"
        },
        {
          "name": "effort_level",
          "ns": "https://github.com/BSI-Bund/Stand-der-Technik-Bibliothek/tree/main/Dokumentation/namespaces/effort_level.csv",
          "value": "4"
        }
      ],
      "title": "Testdaten"
    },
    {
      "class": "BSI-Stand-der-Technik-Kernel",
      "id": "TEST.3.1.4",
      "links": [
        {
          "href": "#ARCH.7.3",
          "rel": "related"
        },
        {
          "href": "#ARCH.2.2.8",
          "rel": "related"
        }
      ],
      "parts": [
        {
          "id": "TEST.3.1.4_stm",
          "name": "statement",
          "props": [
            {
              "name": "documentation",
              "ns": "https://github.com/BSI-Bund/Stand-der-Technik-Bibliothek/tree/main/Dokumentation/namespaces/documentation_guidelines.csv",
              "value": "IT-Betriebskonzept"
            },
            {
              "name": "result",
              "ns": "https://github.com/BSI-Bund/Stand-der-Technik-Bibliothek/tree/main/Dokumentation/namespaces/result.csv",
              "value": "eine dedizierte Testumgebung"
            },
            {
              "name": "action_word",
              "ns": "https://github.com/BSI-Bund/Stand-der-Technik-Bibliothek/tree/main/Dokumentation/namespaces/action_words.csv",
              "value": "installieren"
            },
            {
              "name": "modal_verb",
              "ns": "https://github.com/BSI-Bund/Stand-der-Technik-Bibliothek/tree/main/Dokumentation/namespaces/modal_verbs.csv",
              "value": "SOLLTE"
            }
          ],
          "prose": "Änderungen und Tests SOLLTE eine dedizierte Testumgebung installieren."
        },
        {
          "id": "TEST.3.1.4_gdn",
          "name": "guidance",
          "prose": "Eine dedizierte Testumgebung (auch Entwicklungsumgebung oder Laborumgebung genannt) ist hier eine von der Produktionsumgebung unabhängige Infrastruktur, die speziell für die Durchführung von Änderungen, Prüfungen und Qualitätssicherungsmaßnahmen vorgesehen ist. Sie dient dazu, geplante Anpassungen, Updates oder Neuentwicklungen realistisch nachzustellen, ohne die Verfügbarkeit oder Integrität der produktiven Systeme und Daten zu gefährden. Zur Produktivumgebung zählen dabei auch Betriebssysteme, verwendete Datenbanken und Netzschnittstellen. Dediziert bedeutet in diesem Zusammenhang, dass Ressourcen – beispielsweise Server, Datenbanken, Netzsegmente oder virtuelle Umgebungen – ausschließlich für Testzwecke bereitgestellt werden und nicht gleichzeitig produktiven Aufgaben dienen. Der Zweck dieser Vorgabe liegt darin, unbeabsichtigte Auswirkungen von Änderungen auf laufende Systeme zu vermeiden. Ohne eine solche Testumgebung könnte ein fehlerhaftes Update unmittelbar zu Produktionsausfällen führen oder sensible Daten unbeabsichtigt preisgeben. Eine Trennung kann dagegen sicherstellen, dass Schwachstellen oder Inkompatibilitäten frühzeitig erkannt werden, wodurch die Stabilität und Sicherheit der produktiven Systeme erhalten bleiben. Zur Umsetzung kann eine Institution verschiedene Maßnahmen einsetzen: (1) Sie kann separate physische oder virtuelle Serverlandschaften bereitstellen, die die Produktionsumgebung realitätsnah abbilden. (2) Sie kann Testdatenbanken mit anonymisierten oder synthetisch generierten Daten nutzen, um Datenschutzrisiken zu vermeiden. (3) Sie kann durch ein definiertes Deployment-Verfahren sicherstellen, dass Änderungen zunächst automatisiert in die Testumgebung ausgerollt und dort validiert werden, bevor eine Freigabe für die Produktion erfolgt."
        }
      ],
      "props": [
        {
          "name": "alt-identifier",
          "value": "9c86f2de-9a7a-4fff-b833-7e596fdb32a8"
        },
        {
          "name": "sec_level",
          "ns": "https://github.com/BSI-Bund/Stand-der-Technik-Bibliothek/tree/main/Dokumentation/namespaces/security_level.csv",
          "value": "normal-SdT"
        },
        {
          "name": "effort_level",
          "ns": "https://github.com/BSI-Bund/Stand-der-Technik-Bibliothek/tree/main/Dokumentation/namespaces/effort_level.csv",
          "value": "4"
        }
      ],
      "title": "Testumgebung"
    },
    {
      "class": "BSI-Stand-der-Technik-Kernel",
      "id": "TEST.3.1.5",
      "parts": [
        {
          "id": "TEST.3.1.5_stm",
          "name": "statement",
          "props": [
            {
              "name": "documentation",
              "ns": "https://github.com/BSI-Bund/Stand-der-Technik-Bibliothek/tree/main/Dokumentation/namespaces/documentation_guidelines.csv",
              "value": "Freigabeplan"
            },
            {
              "name": "result",
              "ns": "https://github.com/BSI-Bund/Stand-der-Technik-Bibliothek/tree/main/Dokumentation/namespaces/result.csv",
              "value": "die Auswirkungen"
            },
            {
              "name": "result_specification",
              "ns": "https://github.com/BSI-Bund/Stand-der-Technik-Bibliothek/tree/main/Dokumentation/namespaces/result.csv",
              "value": "bei jeder Änderung automatisch"
            },
            {
              "name": "action_word",
              "ns": "https://github.com/BSI-Bund/Stand-der-Technik-Bibliothek/tree/main/Dokumentation/namespaces/action_words.csv",
              "value": "testen"
            },
            {
              "name": "modal_verb",
              "ns": "https://github.com/BSI-Bund/Stand-der-Technik-Bibliothek/tree/main/Dokumentation/namespaces/modal_verbs.csv",
              "value": "KANN"
            }
          ],
          "prose": "Änderungen und Tests KANN die Auswirkungen bei jeder Änderung automatisch testen."
        },
        {
          "id": "TEST.3.1.5_gdn",
          "name": "guidance",
          "prose": "„Automatisch testen“ meint den Einsatz technischer Verfahren oder Werkzeuge („continuous testing“), um bei Änderungen an Systemen oder Anwendungen unmittelbar und ohne manuelles Eingreifen Prüfungen auszuführen. Gemeint sind hier vordefinierte Testszenarien, die mit jedem Update, Patch oder Konfigurationswechsel ablaufen und systematisch überprüfen, ob die vorgesehenen Funktionen erhalten bleiben und ob unerwünschte Nebenwirkungen auftreten. Der Zweck liegt darin, dass Änderungen zwar notwendig sind, diese aber unbeabsichtigte Sicherheitslücken oder Funktionsstörungen mit sich bringen könnten – ein fehlerhaftes Update könnte beispielsweise Authentifizierungsprozesse umgehen lassen oder kritische Daten unzugänglich machen. Durch automatisierte Tests kann die Institution dagegen frühzeitig erkennen, ob eine Änderung die Vertraulichkeit, Integrität oder Verfügbarkeit gefährden könnte, und die Fehlerquote im Betrieb insgesamt senken. Umsetzungsmöglichkeiten können unterschiedlich gestaltet werden: Eine Institution kann (1) Continuous-Integration/Continuous-Delivery-Pipelines (CI/CD) einrichten, in die automatisierte Unit- und Integrationstests integriert sind, (2) produktionsnahe Szenarien in Testumgebungen abbilden und in denen Sicherheitstests automatisch mitlaufen, oder (3) Skripte einsetzen, die nach Konfigurationsänderungen direkt auf bekannte Schwachstellen oder das Vorhandensein von Sicherheitsfunktionen prüfen. Auch die Verwendung von Regressionstests, die kritische Kernfunktionen gezielt wiederholt prüfen, kann ein bewährtes Mittel sein, um sicherzustellen, dass durch eine Änderung keine unbeabsichtigten Seiteneffekte ausgelöst werden. Automatische Test ermöglichen es auch die Dokumentation der Testergebnisse automatisiert zu erstellen, sodass Verantwortliche sofort eine Übersicht über den Status erhalten."
        }
      ],
      "props": [
        {
          "name": "alt-identifier",
          "value": "73fab6c7-c60f-4ee5-bd97-e842915cf98d"
        },
        {
          "name": "sec_level",
          "ns": "https://github.com/BSI-Bund/Stand-der-Technik-Bibliothek/tree/main/Dokumentation/namespaces/security_level.csv",
          "value": "erhöht"
        },
        {
          "name": "effort_level",
          "ns": "https://github.com/BSI-Bund/Stand-der-Technik-Bibliothek/tree/main/Dokumentation/namespaces/effort_level.csv",
          "value": "5"
        }
      ],
      "title": "Kontinuierliche Tests"
    },
    {
      "class": "BSI-Stand-der-Technik-Kernel",
      "id": "TEST.3.1.6",
      "parts": [
        {
          "id": "TEST.3.1.6_stm",
          "name": "statement",
          "props": [
            {
              "name": "documentation",
              "ns": "https://github.com/BSI-Bund/Stand-der-Technik-Bibliothek/tree/main/Dokumentation/namespaces/documentation_guidelines.csv",
              "value": "Freigabeplan"
            },
            {
              "name": "result",
              "ns": "https://github.com/BSI-Bund/Stand-der-Technik-Bibliothek/tree/main/Dokumentation/namespaces/result.csv",
              "value": "die Resilienz bei Simulation verschiedenartiger Störungen"
            },
            {
              "name": "action_word",
              "ns": "https://github.com/BSI-Bund/Stand-der-Technik-Bibliothek/tree/main/Dokumentation/namespaces/action_words.csv",
              "value": "testen"
            },
            {
              "name": "modal_verb",
              "ns": "https://github.com/BSI-Bund/Stand-der-Technik-Bibliothek/tree/main/Dokumentation/namespaces/modal_verbs.csv",
              "value": "KANN"
            }
          ],
          "prose": "Änderungen und Tests KANN die Resilienz bei Simulation verschiedenartiger Störungen testen."
        },
        {
          "id": "TEST.3.1.6_gdn",
          "name": "guidance",
          "prose": "Chaos Engineering kann helfen, die Zuverlässigkeit von Systemen oder Anwendungen zu erhöhen, indem es die Resilienz, also die Fähigkeit bei störenden Einflüssen den Betrieb fortzusetzen oder wiederherzustellen, durch simulierte Ausfälle oder Störungen testet. Dabei ist jedoch zu beachten, dass dabei keine geschäftskritischen, im Betrieb befindlichen Dienste gestört werden. Daher ist der Ansatz nur nach einer Analyse und Abwägung der Risiken sinnvoll. Zweckmäßig ist es dabei, geschäftskritische Systeme und Anwendungen mit hohen Auswirkungen zu priorisieren, häufige Ausfallmodi zu testen, kritische Abhängigkeiten unter Stress zu setzen, vergangene Vorfälle nachzubilden und Systemannahmen durch methodische Prozesse zu hinterfragen. Hierzu kann eine Karte der Abhängigkeiten verwendet werden oder eine Analyse kritischer Pfade. Wertvolle Experimente können Netzwerkbeeinträchtigungen, Dienstausfälle, Abhängigkeitsunterbrechungen, Ressourcenerschöpfung, Multiregionsausfälle und Zeitsynchronisationsprobleme umfassen. Geschäftskritische Dienste können dabei z.B. durch eine Begrenzung auf bestimmte Systeme, oder Durchführung solcher Tests nur außerhalb der Betriebszeiten geschützt werden."
        }
      ],
      "props": [
        {
          "name": "alt-identifier",
          "value": "32a4ff7c-ee41-4d31-8a1e-f15ea1373181"
        },
        {
          "name": "sec_level",
          "ns": "https://github.com/BSI-Bund/Stand-der-Technik-Bibliothek/tree/main/Dokumentation/namespaces/security_level.csv",
          "value": "erhöht"
        },
        {
          "name": "effort_level",
          "ns": "https://github.com/BSI-Bund/Stand-der-Technik-Bibliothek/tree/main/Dokumentation/namespaces/effort_level.csv",
          "value": "5"
        }
      ],
      "title": "Chaos Engineering"
    },
    {
      "class": "BSI-Stand-der-Technik-Kernel",
      "id": "TEST.3.1.7",
      "parts": [
        {
          "id": "TEST.3.1.7_stm",
          "name": "statement",
          "props": [
            {
              "name": "documentation",
              "ns": "https://github.com/BSI-Bund/Stand-der-Technik-Bibliothek/tree/main/Dokumentation/namespaces/documentation_guidelines.csv",
              "value": "Freigabeplan"
            },
            {
              "name": "result",
              "ns": "https://github.com/BSI-Bund/Stand-der-Technik-Bibliothek/tree/main/Dokumentation/namespaces/result.csv",
              "value": "die Zusammensetzung der Änderungen"
            },
            {
              "name": "action_word",
              "ns": "https://github.com/BSI-Bund/Stand-der-Technik-Bibliothek/tree/main/Dokumentation/namespaces/action_words.csv",
              "value": "testen"
            },
            {
              "name": "modal_verb",
              "ns": "https://github.com/BSI-Bund/Stand-der-Technik-Bibliothek/tree/main/Dokumentation/namespaces/modal_verbs.csv",
              "value": "KANN"
            }
          ],
          "prose": "Änderungen und Tests KANN die Zusammensetzung der Änderungen testen."
        },
        {
          "id": "TEST.3.1.7_gdn",
          "name": "guidance",
          "prose": "Eine Analyse der Zusammensetzung (Composition Analysis) ist die systematische Untersuchung und Bewertung der Bestandteile einer Software oder eines Systems – insbesondere in Bezug auf deren Herkunft, Eigenschaften und potenzielle Schwachstellen.  Hierzu können auch (teil-)automatisierte Lösungen eingesetzt werden, z.B. können SBOMs in eine Plattform zur Verwaltung von Schwachstellen importiert werden, die eine Bereitstellung blockiert, wenn eine CVSS ≥ 9.0-Schwachstelle keine kompensierende Maßnahme hat."
        }
      ],
      "props": [
        {
          "name": "alt-identifier",
          "value": "ab876d7f-a36e-4efe-94b3-d62af35b3ca8"
        },
        {
          "name": "sec_level",
          "ns": "https://github.com/BSI-Bund/Stand-der-Technik-Bibliothek/tree/main/Dokumentation/namespaces/security_level.csv",
          "value": "erhöht"
        },
        {
          "name": "effort_level",
          "ns": "https://github.com/BSI-Bund/Stand-der-Technik-Bibliothek/tree/main/Dokumentation/namespaces/effort_level.csv",
          "value": "5"
        }
      ],
      "title": "Analyse der Zusammensetzung"
    },
    {
      "class": "BSI-Stand-der-Technik-Kernel",
      "id": "TEST.3.1.8",
      "parts": [
        {
          "id": "TEST.3.1.8_stm",
          "name": "statement",
          "props": [
            {
              "name": "documentation",
              "ns": "https://github.com/BSI-Bund/Stand-der-Technik-Bibliothek/tree/main/Dokumentation/namespaces/documentation_guidelines.csv",
              "value": "Freigabeplan"
            },
            {
              "name": "result",
              "ns": "https://github.com/BSI-Bund/Stand-der-Technik-Bibliothek/tree/main/Dokumentation/namespaces/result.csv",
              "value": "die Stabilität gegen Fehlerzustände oder Abstürze bei der Eingabe großer Mengen an Zufallsdaten"
            },
            {
              "name": "action_word",
              "ns": "https://github.com/BSI-Bund/Stand-der-Technik-Bibliothek/tree/main/Dokumentation/namespaces/action_words.csv",
              "value": "testen"
            },
            {
              "name": "modal_verb",
              "ns": "https://github.com/BSI-Bund/Stand-der-Technik-Bibliothek/tree/main/Dokumentation/namespaces/modal_verbs.csv",
              "value": "KANN"
            }
          ],
          "prose": "Änderungen und Tests KANN die Stabilität gegen Fehlerzustände oder Abstürze bei der Eingabe großer Mengen an Zufallsdaten testen."
        },
        {
          "id": "TEST.3.1.8_gdn",
          "name": "guidance",
          "prose": "Fuzzing ist eine automatisierte Softwaretestmethode, mit der unerwartete Schwachstellen und Fehler in Anwendungen durch Eingabe zufälliger, unerwarteter oder ungültiger Daten aufgedeckt werden können. Der Hauptzweck besteht darin, Grenzbedingungen zu prüfen und Programmabstürze, Speicherlecks oder sicherheitskritische Fehler wie Buffer Overflows zu identifizieren, bevor Angreifer diese ausnutzen können. Kann durch spezialisierte Tools oder kontinuierliches Fuzzing in der CI/CD-Pipeline umgesetzt werden. Für einen effektiven Einsatz empfiehlt es sich, mit strukturiertem Fuzzing zu beginnen, das auf bekannten Protokollspezifikationen oder Datenformaten basiert, Fuzzing-Tests in die frühen Phasen des Entwicklungszyklus zu integrieren, alle gefundenen Fehler systematisch zu dokumentieren und zu beheben, sowie regelmäßig neue Testfälle auf Basis entdeckter Schwachstellen zu entwickeln, um die Testabdeckung kontinuierlich zu verbessern."
        }
      ],
      "props": [
        {
          "name": "alt-identifier",
          "value": "5bd70855-3756-4f70-b5d5-98e5211cd1ed"
        },
        {
          "name": "sec_level",
          "ns": "https://github.com/BSI-Bund/Stand-der-Technik-Bibliothek/tree/main/Dokumentation/namespaces/security_level.csv",
          "value": "erhöht"
        },
        {
          "name": "effort_level",
          "ns": "https://github.com/BSI-Bund/Stand-der-Technik-Bibliothek/tree/main/Dokumentation/namespaces/effort_level.csv",
          "value": "5"
        },
        {
          "name": "tags",
          "ns": "https://github.com/BSI-Bund/Stand-der-Technik-Bibliothek/tree/main/Dokumentation/namespaces/tags.csv",
          "value": "Error Handling"
        }
      ],
      "title": "Fuzzing"
    },
    {
      "class": "BSI-Stand-der-Technik-Kernel",
      "id": "TEST.3.1.9",
      "parts": [
        {
          "id": "TEST.3.1.9_stm",
          "name": "statement",
          "props": [
            {
              "name": "documentation",
              "ns": "https://github.com/BSI-Bund/Stand-der-Technik-Bibliothek/tree/main/Dokumentation/namespaces/documentation_guidelines.csv",
              "value": "Freigabeplan"
            },
            {
              "name": "result",
              "ns": "https://github.com/BSI-Bund/Stand-der-Technik-Bibliothek/tree/main/Dokumentation/namespaces/result.csv",
              "value": "die Belastbarkeit bei hoher Auslastung"
            },
            {
              "name": "action_word",
              "ns": "https://github.com/BSI-Bund/Stand-der-Technik-Bibliothek/tree/main/Dokumentation/namespaces/action_words.csv",
              "value": "testen"
            },
            {
              "name": "modal_verb",
              "ns": "https://github.com/BSI-Bund/Stand-der-Technik-Bibliothek/tree/main/Dokumentation/namespaces/modal_verbs.csv",
              "value": "KANN"
            }
          ],
          "prose": "Änderungen und Tests KANN die Belastbarkeit bei hoher Auslastung testen."
        },
        {
          "id": "TEST.3.1.9_gdn",
          "name": "guidance",
          "prose": "Ziel ist es, die Dimensionierung der Ressourcen zu verifizieren und Fehler zu entdecken, die nur bei höherer Last auftreten. Hierzu können z.B. eine hohe Zahl gleichzeitiger Verbindungen, große Datenmengen oder eine hohe Zahl paralleler Interaktionen genutzt werden. Die Höhe der Auslastung kann sich dabei z.B. nach der maximalen Anzahl erwarteter gleichzeitiger Nutzungen richten."
        }
      ],
      "props": [
        {
          "name": "alt-identifier",
          "value": "ae64d67c-c9fd-48cd-837e-f71ebc850e29"
        },
        {
          "name": "sec_level",
          "ns": "https://github.com/BSI-Bund/Stand-der-Technik-Bibliothek/tree/main/Dokumentation/namespaces/security_level.csv",
          "value": "erhöht"
        },
        {
          "name": "effort_level",
          "ns": "https://github.com/BSI-Bund/Stand-der-Technik-Bibliothek/tree/main/Dokumentation/namespaces/effort_level.csv",
          "value": "5"
        }
      ],
      "title": "Lasttest"
    },
    {
      "class": "BSI-Stand-der-Technik-Kernel",
      "id": "TEST.3.1.10",
      "links": [
        {
          "href": "#DET.5.4",
          "rel": "related"
        },
        {
          "href": "#DET.5.2",
          "rel": "related"
        }
      ],
      "parts": [
        {
          "id": "TEST.3.1.10_stm",
          "name": "statement",
          "props": [
            {
              "name": "documentation",
              "ns": "https://github.com/BSI-Bund/Stand-der-Technik-Bibliothek/tree/main/Dokumentation/namespaces/documentation_guidelines.csv",
              "value": "Freigabeplan"
            },
            {
              "name": "result",
              "ns": "https://github.com/BSI-Bund/Stand-der-Technik-Bibliothek/tree/main/Dokumentation/namespaces/result.csv",
              "value": "bekannte Schwachstellen"
            },
            {
              "name": "result_specification",
              "ns": "https://github.com/BSI-Bund/Stand-der-Technik-Bibliothek/tree/main/Dokumentation/namespaces/result.csv",
              "value": "bei kritischen Änderungen"
            },
            {
              "name": "action_word",
              "ns": "https://github.com/BSI-Bund/Stand-der-Technik-Bibliothek/tree/main/Dokumentation/namespaces/action_words.csv",
              "value": "testen"
            },
            {
              "name": "modal_verb",
              "ns": "https://github.com/BSI-Bund/Stand-der-Technik-Bibliothek/tree/main/Dokumentation/namespaces/modal_verbs.csv",
              "value": "KANN"
            }
          ],
          "prose": "Änderungen und Tests KANN bekannte Schwachstellen bei kritischen Änderungen testen."
        },
        {
          "id": "TEST.3.1.10_gdn",
          "name": "guidance",
          "prose": "Bei einem Penetrationstest führen qualifizierte Sicherheitsexperten kontrollierte Angriffe auf Systeme, Anwendungen oder Netzwerke durch. Der primäre Zweck besteht darin, die tatsächliche Angriffsfläche aus der Perspektive eines potenziellen Angreifers zu bewerten, reale Ausnutzungsmöglichkeiten zu demonstrieren und die Wirksamkeit implementierter Sicherheitsmaßnahmen unter realistischen Bedingungen zu verifizieren. Praktische Umsetzungsbeispiele umfassen Black-Box-Tests ohne Vorkenntnisse des Systems, Grey-Box-Tests mit begrenztem Zugang und Wissen sowie White-Box-Tests mit vollständigem Quellcode-Zugriff, wobei Tools zur Automatisierung und Strukturierung der Tests eingesetzt werden können. Für ein effektives Pentesting empfiehlt es sich, den Testumfang klar zu definieren und zu dokumentieren, realistische Angriffsziele und Erfolgsmetriken festzulegen, ausreichend Zeit für die Behebung identifizierter Schwachstellen im Release-Plan einzuplanen, ein erfahrenes, unabhängiges Testteam einzusetzen, das nicht an der Entwicklung beteiligt war, sowie Re-Tests nach der Behebung von Schwachstellen durchzuführen, um sicherzustellen, dass alle identifizierten Risiken vor dem Produktivgang angemessen adressiert wurden."
        }
      ],
      "props": [
        {
          "name": "alt-identifier",
          "value": "d994f7fa-1271-4563-9fc5-e3189fb362b7"
        },
        {
          "name": "sec_level",
          "ns": "https://github.com/BSI-Bund/Stand-der-Technik-Bibliothek/tree/main/Dokumentation/namespaces/security_level.csv",
          "value": "erhöht"
        },
        {
          "name": "effort_level",
          "ns": "https://github.com/BSI-Bund/Stand-der-Technik-Bibliothek/tree/main/Dokumentation/namespaces/effort_level.csv",
          "value": "5"
        }
      ],
      "title": "Penetrationstest bei Änderungen"
    }
  ],
  "id": "TEST.3.1",
  "links": [
    {
      "href": "#DET.5.3",
      "rel": "related"
    }
  ],
  "parts": [
    {
      "id": "TEST.3.1_stm",
      "name": "statement",
      "props": [
        {
          "name": "documentation",
          "ns": "https://github.com/BSI-Bund/Stand-der-Technik-Bibliothek/tree/main/Dokumentation/namespaces/documentation_guidelines.csv",
          "value": "Freigabeplan"
        },
        {
          "name": "result",
          "ns": "https://github.com/BSI-Bund/Stand-der-Technik-Bibliothek/tree/main/Dokumentation/namespaces/result.csv",
          "value": "vor wesentlichen Änderungen die Einhaltung der Sicherheitsanforderungen"
        },
        {
          "name": "action_word",
          "ns": "https://github.com/BSI-Bund/Stand-der-Technik-Bibliothek/tree/main/Dokumentation/namespaces/action_words.csv",
          "value": "testen"
        },
        {
          "name": "modal_verb",
          "ns": "https://github.com/BSI-Bund/Stand-der-Technik-Bibliothek/tree/main/Dokumentation/namespaces/modal_verbs.csv",
          "value": "SOLLTE"
        }
      ],
      "prose": "Änderungen und Tests SOLLTE vor wesentlichen Änderungen die Einhaltung der Sicherheitsanforderungen testen."
    },
    {
      "id": "TEST.3.1_gdn",
      "name": "guidance",
      "prose": "Änderungen sind wesentlich, wenn sie die Informationssicherheit von Produktivsystemen und -anwendungen betreffen und über eine geringe Anzahl von Nutzenden hinaus Auswirkungen haben können. Dabei sind sowohl die Sicherheitsanforderungen relevant, die direkt durch IT-Produkte umgesetzt werden (technische Anforderungen), als auch die prozessualen Anforderungen, die von der Änderung betroffen sind, etwa zur Überwachung von Ereignissen oder zur Sensibilisierung des Personals. Die Sicherheitsanforderungen ergeben sich aus den für das jeweilige Zielobjekt geltenden Vorgaben aus allen Praktiken. Sowohl die Funktionalität einzelner Module als auch das Zusammenspiel von Schnittstellen ist wichtig, um Sicherheitslücken frühzeitig zu erkennen."
    }
  ],
  "props": [
    {
      "name": "alt-identifier",
      "value": "2edf4a68-0d86-4da9-ada4-9939c2508f2c"
    },
    {
      "name": "sec_level",
      "ns": "https://github.com/BSI-Bund/Stand-der-Technik-Bibliothek/tree/main/Dokumentation/namespaces/security_level.csv",
      "value": "normal-SdT"
    },
    {
      "name": "effort_level",
      "ns": "https://github.com/BSI-Bund/Stand-der-Technik-Bibliothek/tree/main/Dokumentation/namespaces/effort_level.csv",
      "value": "3"
    }
  ],
  "title": "Sicherheitstest"
}