diff --git a/4.0/OWASP Application Security Verification Standard 4.0.3-de.pdf b/4.0/OWASP Application Security Verification Standard 4.0.3-de.pdf new file mode 100644 index 0000000000..1a557ee21d Binary files /dev/null and b/4.0/OWASP Application Security Verification Standard 4.0.3-de.pdf differ diff --git a/4.0/de/0x03-Using-ASVS.md b/4.0/de/0x03-Using-ASVS.md index c1d6ba9d50..8725a1bc13 100644 --- a/4.0/de/0x03-Using-ASVS.md +++ b/4.0/de/0x03-Using-ASVS.md @@ -2,62 +2,64 @@ Der ASVS hat die zwei Hauptziele: -* Organisationen bei der Entwicklung und Pflege sicherer Anwendungen zu unterst�tzen. -* Anbietern von Sicherheitsdienstleistungen oder -werkzeugen und deren Kunden die M�glichkeit zu geben, ihre Anforderungen und Angebote aufeinander abzustimmen. +* Organisationen bei der Entwicklung und Pflege sicherer Anwendungen zu unterstützen. +* Anbietern von Sicherheitsdienstleistungen oder -werkzeugen und deren Kunden die Möglichkeit zu geben, ihre Anforderungen und Angebote aufeinander abzustimmen. + + ## Stufen zur Verifizierung der Anwendungssicherheit Der Application Security Verification Standard definiert drei Stufen der Sicherheitsverifikation, wobei jede Stufe an Tiefe zunimmt. -* Stufe 1 ist f�r geringe Sicherheitsanforderungen gedacht und l�sst sich mittels Pentests pr�fen. -* Stufe 2 ist f�r Anwendungen, die sensible Daten enthalten und diese sch�tzen m�ssen. Das ist die empfohlene Stufe f�r die meisten Anwendungen. -* Stufe 3 ist f�r die kritischsten Anwendungen, z. B. solche, die hochwertige Transaktionen durchf�hren, sensible medizinische Daten enthalten oder aus anderen Gr�nden ein H�chstma� an Vertrauen erfordern. +* Stufe 1 ist für geringe Sicherheitsanforderungen gedacht und lässt sich mittels Pentests prüfen. +* Stufe 2 ist für Anwendungen, die sensible Daten enthalten und diese schützen müssen. Das ist die empfohlene Stufe für die meisten Anwendungen. +* Stufe 3 ist für die kritischsten Anwendungen, z. B. solche, die hochwertige Transaktionen durchführen, sensible medizinische Daten enthalten oder aus anderen Gründen ein Höchstmaß an Vertrauen erfordern. -Jede Stufe des ASVS enth�lt eine Liste von Sicherheitsanforderungen. Jede dieser Anforderungen kann auch auf sicherheitsspezifische Merkmale und F�higkeiten abgebildet werden, die von den Entwicklern in die Software eingebaut werden m�ssen. +Jede Stufe des ASVS enthält eine Liste von Sicherheitsanforderungen. Jede dieser Anforderungen kann auch auf sicherheitsspezifische Merkmale und Fähigkeiten abgebildet werden, die von den Entwicklern in die Software eingebaut werden müssen. ![ASVS Levels](https://raw.githubusercontent.com/OWASP/ASVS/master/4.0/images/asvs_40_levels.png "ASVS Stufen") Figure 1 - Stufen des OWASP Application Security Verification Standard 4.0 -Stufe 1 ist die einzige Stufe, die sich komplett mittels Pentests pr�fen l�sst. Alle anderen Stufen ben�tigen Zugang zu Dokumentation, Quellcode, Konfiguration und den am Entwicklungsprozess beteiligten Personen. Jedoch stellen Black Box Tests ohne Dokumentation und ohne Quellen keine wirksame Absicherung dar. Sie m�ssen langfristig erg�nzt werden. B�swillige Angreifer haben sehr viel Zeit. Die meisten Penetrationstests hingegen sind innerhalb von wenigen Wochen abgeschlossen. Die Verteidiger m�ssen alle Sicherheitsma�nahmen umsetzen, alle Schwachstellen finden und beheben sowie b�swillige Akteure innerhalb einer angemessenen Zeit aufsp�ren und Gegenma�nahmen ergreifen. B�swillige Akteure haben im Wesentlichen unendlich viel Zeit und ben�tigen nur eine einzige L�cke in der Verteidigung, eine einzige Schwachstelle, um erfolgreich zu sein. Black Box Tests, die oft am Ende der Entwicklung schnell oder gar nicht durchgef�hrt werden, sind v�llig ungeeignet, dieser Asymmetrie gerecht zu werden. +Stufe 1 ist die einzige Stufe, die sich komplett mittels Pentests prüfen lässt. Alle anderen Stufen benötigen Zugang zu Dokumentation, Quellcode, Konfiguration und den am Entwicklungsprozess beteiligten Personen. Jedoch stellen Black Box Tests ohne Dokumentation und ohne Quellen keine wirksame Absicherung dar. Sie müssen langfristig ergänzt werden. Böswillige Angreifer haben sehr viel Zeit. Die meisten Penetrationstests hingegen sind innerhalb von wenigen Wochen abgeschlossen. Die Verteidiger müssen alle Sicherheitsmaßnahmen umsetzen, alle Schwachstellen finden und beheben sowie böswillige Akteure innerhalb einer angemessenen Zeit aufspüren und Gegenmaßnahmen ergreifen. Böswillige Akteure haben im Wesentlichen unendlich viel Zeit und benötigen nur eine einzige Lücke in der Verteidigung, eine einzige Schwachstelle, um erfolgreich zu sein. Black Box Tests, die oft am Ende der Entwicklung schnell oder gar nicht durchgeführt werden, sind völlig ungeeignet, dieser Asymmetrie gerecht zu werden. -Die letzten 30 Jahre haben gezeigt, dass Black Box Tests immer wieder kritische Sicherheitsprobleme �bersehen, welche direkt zu weiteren, massiveren Problemen gef�hrt haben. Wir bef�rworten ausdr�cklich den Einsatz einer breiten Palette von Ma�nahmen zur Gew�hrleistung und Verifizierung der Sicherheit, einschlie�lich des Ersatzes der Penetrationstests durch quellcodegef�hrte (hybride) Penetrationstests auf Stufe 1, mit vollem Zugang zu den Entwicklern und der Dokumentation w�hrend des gesamten Entwicklungsprozesses. Die Finanzaufsichtsbeh�rden dulden keine externen Finanzpr�fungen ohne Zugang zu den B�chern, zu Stichproben von Gesch�ftsvorg�ngen oder zu den Personen, welche die Pr�fungen durchf�hren. Derselbe Standard an Transparenz muss von der Industrie und den Regierungen auch im Bereich der Softwareentwicklung gefordert werden. +Die letzten 30 Jahre haben gezeigt, dass Black Box Tests immer wieder kritische Sicherheitsprobleme übersehen, welche direkt zu weiteren, massiveren Problemen geführt haben. Wir befürworten ausdrücklich den Einsatz einer breiten Palette von Maßnahmen zur Gewährleistung und Verifizierung der Sicherheit, einschließlich des Ersatzes der Penetrationstests durch quellcodegeführte (hybride) Penetrationstests auf Stufe 1, mit vollem Zugang zu den Entwicklern und der Dokumentation während des gesamten Entwicklungsprozesses. Die Finanzaufsichtsbehörden dulden keine externen Finanzprüfungen ohne Zugang zu den Büchern, zu Stichproben von Geschäftsvorgängen oder zu den Personen, welche die Prüfungen durchführen. Derselbe Standard an Transparenz muss von der Industrie und den Regierungen auch im Bereich der Softwareentwicklung gefordert werden. -Wir bef�rworten ausdr�cklich die Verwendung von Sicherheitstools innerhalb des Entwicklungsprozesses. DAST- und SAST-Tools k�nnen in die Buildpipeline eingebunden werden, um leicht zu findende Sicherheitsprobleme aufzusp�ren, die niemals vorhanden sein d�rfen. Automatisierte Tools und Onlinescans k�nnen h�chsten nur noch die H�lfte des ASVS ohne menschliches Zutun erfassen. Ist eine umfassende Testautomatisierung f�r jeden Buildprozess erforderlich, wird eine Kombination aus benutzerdefinierten Unit- und Integrationstests zusammen mit den vom Buildprozess veranlassten Onlinescans verwendet. M�ngel der Gesch�ftslogik und der Zugriffskontrolle lassen sich nur mit menschlicher Hilfe testen, am besten in Unit- und Integrationstests. +Wir befürworten ausdrücklich die Verwendung von Sicherheitstools innerhalb des Entwicklungsprozesses. DAST- und SAST-Tools können in die Buildpipeline eingebunden werden, um leicht zu findende Sicherheitsprobleme aufzuspüren, die niemals vorhanden sein dürfen. Automatisierte Tools und Onlinescans können höchsten nur noch die Hälfte des ASVS ohne menschliches Zutun erfassen. Ist eine umfassende Testautomatisierung für jeden Buildprozess erforderlich, wird eine Kombination aus benutzerdefinierten Unit- und Integrationstests zusammen mit den vom Buildprozess veranlassten Onlinescans verwendet. Mängel der Geschäftslogik und der Zugriffskontrolle lassen sich nur mit menschlicher Hilfe testen, am besten in Unit- und Integrationstests. ## Verwendung dieses Standards -Eine der besten M�glichkeiten, den Application Security Verification Standard zu nutzen, ist seine Verwendung als Vorlage f�r die Erstellung einer Checkliste f�r Anforderungen zur sicheren Softwareentwicklung, die speziell auf Ihre Anwendung, Plattform oder Organisation zugeschnitten ist. In dem Sie die Anforderungen des ASVS auf Ihre Anwendungsf�lle passend zuschneiden, setzen Sie den Schwerpunkt auf die Sicherheitsanforderungen, die f�r Ihre Projekte und Umgebungen am wichtigsten sind. +Eine der besten Möglichkeiten, den Application Security Verification Standard zu nutzen, ist seine Verwendung als Vorlage für die Erstellung einer Checkliste für Anforderungen zur sicheren Softwareentwicklung, die speziell auf Ihre Anwendung, Plattform oder Organisation zugeschnitten ist. In dem Sie die Anforderungen des ASVS auf Ihre Anwendungsfälle passend zuschneiden, setzen Sie den Schwerpunkt auf die Sicherheitsanforderungen, die für Ihre Projekte und Umgebungen am wichtigsten sind. -Zu den Sicherheitszielen aller Stufen geh�ren die Gew�hrleistung der Vertraulichkeit (z.B. Verschl�sselung), der Integrit�t (z.B. Transaktionen, Eingabevalidierung), der Verf�gbarkeit (z.B. ordnungsgem��e Lastverteilung), der Authentifizierung (auch zwischen Systemen), der Nichtabstreitbarkeit, der Autorisierung und der Protokollierung. +Zu den Sicherheitszielen aller Stufen gehören die Gewährleistung der Vertraulichkeit (z.B. Verschlüsselung), der Integrität (z.B. Transaktionen, Eingabevalidierung), der Verfügbarkeit (z.B. ordnungsgemäße Lastverteilung), der Authentifizierung (auch zwischen Systemen), der Nichtabstreitbarkeit, der Autorisierung und der Protokollierung. ### Stufe 1 - Erste Schritte oder das absolute Minimum -Eine Anwendung erreicht ASVS Stufe 1, wenn sie einen ausreichenden Schutz gegen leicht zu entdeckende Schwachstellen bietet, die auch in den OWASP Top 10 und anderen �hnlichen Checklisten aufgef�hrt sind. Stufe 1 ist das f�r alle Anwendungen erforderliche absolute Minimum. Sie ist auch n�tzlich als erster Schritt eines mehrstufigen Prozesses oder f�r den Fall, wenn Anwendungen keine sensiblen Daten verarbeiten und daher nicht die strengeren Anforderungen der Stufen 2 oder 3 ben�tigen. Anforderungen der Stufe 1 k�nnen entweder automatisch durch Tools oder manuell ohne Zugriff auf den Quellcode �berpr�ft werden. +Eine Anwendung erreicht ASVS Stufe 1, wenn sie einen ausreichenden Schutz gegen leicht zu entdeckende Schwachstellen bietet, die auch in den OWASP Top 10 und anderen ähnlichen Checklisten aufgeführt sind. Stufe 1 ist das für alle Anwendungen erforderliche absolute Minimum. Sie ist auch nützlich als erster Schritt eines mehrstufigen Prozesses oder für den Fall, wenn Anwendungen keine sensiblen Daten verarbeiten und daher nicht die strengeren Anforderungen der Stufen 2 oder 3 benötigen. Anforderungen der Stufe 1 können entweder automatisch durch Tools oder manuell ohne Zugriff auf den Quellcode überprüft werden. -Bedrohungen auf Stufe 1 gehen von Angreifern aus, die einfache und wenig aufwendige Techniken verwenden, um leicht zu findende und leicht ausnutzbare Schwachstellen zu ermitteln. Sie ist ungeeignet zur Abwehr entschlossener Angreifer, die die Anwendung gezielt ins Visier nehmen. Wenn Ihre Anwendung hochwertige Daten verarbeitet, werden Sie kaum mit einer �berpr�fung der Stufe 1 zufrieden sein. +Bedrohungen auf Stufe 1 gehen von Angreifern aus, die einfache und wenig aufwendige Techniken verwenden, um leicht zu findende und leicht ausnutzbare Schwachstellen zu ermitteln. Sie ist ungeeignet zur Abwehr entschlossener Angreifer, die die Anwendung gezielt ins Visier nehmen. Wenn Ihre Anwendung hochwertige Daten verarbeitet, werden Sie kaum mit einer Überprüfung der Stufe 1 zufrieden sein. -### Stufe 2 � Die meisten Anwendungen +### Stufe 2 - Die meisten Anwendungen -Eine Anwendung erreicht ASVS Level 2 (oder Standard), wenn sie die meisten Risiken, die heutzutage mit dem Einsatz von Software verbunden sind, angemessen abwehrt. Dabei wird sichergestellt, dass Sicherheitsma�nahmen wirksam umgesetzt sind. Stufe 2 eignet sich in der Regel f�r Anwendungen, die wichtige Gesch�ftsvorg�nge abwickeln, einschlie�lich solcher, die Informationen aus dem Gesundheitswesen verarbeiten, gesch�ftskritische oder sensible Funktionen umsetzen oder andere sensible Verm�genswerte verarbeiten. Sie eignet sich auch f�r Branchen, in denen Integrit�t ein kritischer Aspekt zum Schutz ihres Gesch�fts ist, wie z. B. die Spieleindustrie, um Betr�gern und Gamehacks entgegenzuwirken. +Eine Anwendung erreicht ASVS Level 2 (oder Standard), wenn sie die meisten Risiken, die heutzutage mit dem Einsatz von Software verbunden sind, angemessen abwehrt. Dabei wird sichergestellt, dass Sicherheitsmaßnahmen wirksam umgesetzt sind. Stufe 2 eignet sich in der Regel für Anwendungen, die wichtige Geschäftsvorgänge abwickeln, einschließlich solcher, die Informationen aus dem Gesundheitswesen verarbeiten, geschäftskritische oder sensible Funktionen umsetzen oder andere sensible Vermögenswerte verarbeiten. Sie eignet sich auch für Branchen, in denen Integrität ein kritischer Aspekt zum Schutz ihres Geschäfts ist, wie z. B. die Spieleindustrie, um Betrügern und Gamehacks entgegenzuwirken. -Ma�nahmen zum Schutz der Anwendung auf Stufe 2 gehen in der Regel von geschickten und motivierten Angreifern aus, die sich auf bestimmte Ziele konzentrieren und Tools und Techniken einsetzen, die sehr versiert und wirksam Schwachstellen in Anwendungen entdecken und ausnutzen. +Maßnahmen zum Schutz der Anwendung auf Stufe 2 gehen in der Regel von geschickten und motivierten Angreifern aus, die sich auf bestimmte Ziele konzentrieren und Tools und Techniken einsetzen, die sehr versiert und wirksam Schwachstellen in Anwendungen entdecken und ausnutzen. -### Stufe 3 - Hoher Wert, hohe Zuverl�ssigkeit oder hohe Sicherheit +### Stufe 3 - Hoher Wert, hohe Zuverlässigkeit oder hohe Sicherheit -ASVS Stufe 3 (oder Erweitert) ist die h�chste Verifizierungsstufe innerhalb des ASVS. Diese Stufe ist in der Regel Anwendungen vorbehalten, die ein erhebliches Ma� an gepr�ften Sicherheitsniveau erfordern. Diese sind z.B. im milit�rischen Bereich, dem Gesundheitssektor oder kritischen Infrastrukturen zu finden. Organisationen k�nnen ASVS Stufe 3 bei Anwendungen ben�tigen, die kritische Funktionen ausf�hren und bei denen ein Ausfall die Betriebsabl�ufe der Organisation oder sogar ihre �berlebensf�higkeit erheblich beeintr�chtigen k�nnte. Eine Anwendung erreicht ASVS-Stufe 3, wenn sie angemessen vor fortgeschrittenen Schwachstellen gesch�tzt ist und die Grunds�tze eines guten Sicherheitsdesigns aufweist. Eine Pr�fung auf ASVS-Stufe 3 erfordert eine tiefgr�ndigere Analyse der Architektur, der Programmierung und der Testprozesse als alle anderen Ebenen. Eine sichere Anwendung wird auf sinnvolle Weise modularisiert. So k�nnen Resilienz, Skalierbarkeit und vor allem Kapselung leichter umgesetzt werden, da sich jedes Modul selbst um seine eigenen Sicherheitsma�nahmen k�mmern kann (Defense in Depth). Die Umsetzung dieser Ma�nahmen muss ordnungsgem�� dokumentiert werden. +ASVS Stufe 3 (oder Erweitert) ist die höchste Verifizierungsstufe innerhalb des ASVS. Diese Stufe ist in der Regel Anwendungen vorbehalten, die ein erhebliches Maß an geprüften Sicherheitsniveau erfordern. Diese sind z.B. im militärischen Bereich, dem Gesundheitssektor oder kritischen Infrastrukturen zu finden. Organisationen können ASVS Stufe 3 bei Anwendungen benötigen, die kritische Funktionen ausführen und bei denen ein Ausfall die Betriebsabläufe der Organisation oder sogar ihre Überlebensfähigkeit erheblich beeinträchtigen könnte. Eine Anwendung erreicht ASVS-Stufe 3, wenn sie angemessen vor fortgeschrittenen Schwachstellen geschützt ist und die Grundsätze eines guten Sicherheitsdesigns aufweist. Eine Prüfung auf ASVS-Stufe 3 erfordert eine tiefgründigere Analyse der Architektur, der Programmierung und der Testprozesse als alle anderen Ebenen. Eine sichere Anwendung wird auf sinnvolle Weise modularisiert. So können Resilienz, Skalierbarkeit und vor allem Kapselung leichter umgesetzt werden, da sich jedes Modul selbst um seine eigenen Sicherheitsmaßnahmen kümmern kann (Defense in Depth). Die Umsetzung dieser Maßnahmen muss ordnungsgemäß dokumentiert werden. ## Auswahl der ASVS-Stufen in der Praxis -Unterschiedliche Angreifer haben unterschiedliche Beweggr�nde. Einige Branchen verf�gen �ber einzigartige Informations- und Technologiewerte sowie branchenspezifische gesetzliche Regulierungen. Wir raten Organisationen dringend dazu, ihre spezifischen Risikomerkmale auf der Grundlage ihres Gesch�ftsmodells eingehend zu pr�fen. Auf dieser Basis w�hlen sie dann die geeignete ASVS-Stufe aus. +Unterschiedliche Angreifer haben unterschiedliche Beweggründe. Einige Branchen verfügen über einzigartige Informations- und Technologiewerte sowie branchenspezifische gesetzliche Regulierungen. Wir raten Organisationen dringend dazu, ihre spezifischen Risikomerkmale auf der Grundlage ihres Geschäftsmodells eingehend zu prüfen. Auf dieser Basis wählen sie dann die geeignete ASVS-Stufe aus. ## Referenzen auf Anforderungen des ASVS Jede Anforderung des ASVS wird durch v`-..` identifiziert, z.B.: `v4.0.3-1.11.3` -- Die `` benennt die Version des ASVS. Im Laufe der Entwicklung des ASVS kann sich die Nummerierung zwischen den Versionen des Standards �ndern. Das sich Referenzen ohne Versionsangabe immer auf die aktuelle Version des Standards beziehen, kann dies problematisch werden. Das �v� wird dabei klein geschrieben. +- Die `` benennt die Version des ASVS. Im Laufe der Entwicklung des ASVS kann sich die Nummerierung zwischen den Versionen des Standards ändern. Das sich Referenzen ohne Versionsangabe immer auf die aktuelle Version des Standards beziehen, kann dies problematisch werden. Das „v“ wird dabei klein geschrieben. - Das `` gibt Anforderungen das Kapitel des Standards an, dem die Anforderung entstammt, z.B.: alle Anforderungen mit der Nummer `1.#.#` sind an die Architektur. -- Der `` referenziert auf den Abschnitt, in dem die Anforderung beschrieben wird, z.B.: alle Anforderungen mit der Nummer `1.11.#` beziehen sich auf die architekturellen Anforderungen an die Gesch�ftslogik. -- Innerhalb der Abschnitte gibt die `` schlie�lich die konkrete Anforderung an. +- Der `` referenziert auf den Abschnitt, in dem die Anforderung beschrieben wird, z.B.: alle Anforderungen mit der Nummer `1.11.#` beziehen sich auf die architekturellen Anforderungen an die Geschäftslogik. +- Innerhalb der Abschnitte gibt die `` schließlich die konkrete Anforderung an. -Die ASVS Anforderungen werden in CSV, JSON und anderen Formaten zur Verf�gung gestellt. +Die ASVS Anforderungen werden in CSV, JSON und anderen Formaten zur Verfügung gestellt. \ No newline at end of file diff --git a/4.0/docs_de/OWASP Application Security Verification Standard 4.0.2-de.docx b/4.0/docs_de/OWASP Application Security Verification Standard 4.0.2-de.docx deleted file mode 100644 index 63cda504d0..0000000000 Binary files a/4.0/docs_de/OWASP Application Security Verification Standard 4.0.2-de.docx and /dev/null differ diff --git a/4.0/docs_de/OWASP Application Security Verification Standard 4.0.3-de.csv b/4.0/docs_de/OWASP Application Security Verification Standard 4.0.3-de.csv new file mode 100644 index 0000000000..ff95c32df8 --- /dev/null +++ b/4.0/docs_de/OWASP Application Security Verification Standard 4.0.3-de.csv @@ -0,0 +1,288 @@ +chapter_id,chapter_name,section_id,section_name,req_id,req_description,level1,level2,level3,cwe,nist +V1,"Architektur, Design und Threat Modeling",V1.1,Der sichere Softwareentwicklungszyklus,V1.1.1,"Prüfen Sie, dass der SDLC die Sicherheit in allen Entwicklungsphasen berücksichtigt. ([C1](https://owasp.org/www-project-proactive-controls/#div-numbering))",,✓,✓,, +V1,"Architektur, Design und Threat Modeling",V1.1,Der sichere Softwareentwicklungszyklus,V1.1.2,"Prüfen Sie, dass für Designänderung oder Sprintplanung eine Bedrohungsanalyse stattfand, um Bedrohungen zu identifizieren, Gegenmaßnahmen zu planen und umzusetzen sowie passende Sicherheitstests zu planen.",,✓,✓,1053, +V1,"Architektur, Design und Threat Modeling",V1.1,Der sichere Softwareentwicklungszyklus,V1.1.3,"Prüfen Sie, dass alle Userstories und alle Merkmale funktionale Sicherheitsanforderungen enthalten, z.B. „Als Benutzer sollte ich mein Profil anzeigen und bearbeiten können. Ich sollte nicht in der Lage sein, das Profil eines anderen anzusehen oder zu bearbeiten“.",,✓,✓,1110, +V1,"Architektur, Design und Threat Modeling",V1.1,Der sichere Softwareentwicklungszyklus,V1.1.4,"Prüfen Sie die Dokumentation und Erläuterung aller Sicherheitsgrenzen, Komponenten und wichtigen Datenflüsse der Anwendung.",,✓,✓,1059, +V1,"Architektur, Design und Threat Modeling",V1.1,Der sichere Softwareentwicklungszyklus,V1.1.5,Prüfen Sie die Definition und Sicherheitsanalyse der High Level Architektur der Anwendung und aller verbundenen Remoteservices. ([C1](https://owasp.org/www-project-proactive-controls/#div-numbering)),,✓,✓,1059, +V1,"Architektur, Design und Threat Modeling",V1.1,Der sichere Softwareentwicklungszyklus,V1.1.6,"Prüfen Sie, dass Sicherheitsmaßnahmen zentralisiert, einfach, geprüft, sicher und wiederverwendbar implementiert worden sind. Dies vermeidet doppelte, fehlende, unwirksame oder unsichere Maßnahmen. ([C10](https://owasp.org/www-project-proactive-controls/#div-numbering))",,✓,✓,637, +V1,"Architektur, Design und Threat Modeling",V1.1,Der sichere Softwareentwicklungszyklus,V1.1.7,"Prüfen Sie die Verfügbarkeit einer Checkliste für die sichere Programmierung, Sicherheitsanforderungen, eines Leitfadens oder Richtlinien für alle Entwickler und Tester.",,✓,✓,637, +V1,"Architektur, Design und Threat Modeling",V1.2,Architektur der Authentifizierung,V1.2.1,"Prüfen Sie die Nutzung spezifischer Betriebssystemkonten bzw. solcher mit minimalen Berechtigungen für alle Komponenten, Dienste und Server. ([C3](https://owasp.org/www-project-proactive-controls/#div-numbering))",,✓,✓,250, +V1,"Architektur, Design und Threat Modeling",V1.2,Architektur der Authentifizierung,V1.2.2,"Prüfen Sie, dass die Kommunikation zwischen Anwendungskomponenten, einschließlich APIs, Middleware und Datenschichten, authentifiziert wird. Komponenten sollten die minimal notwendigen Berechtigungen haben. ([C3](https://owasp.org/www-project-proactive-controls/#div-numbering))",,✓,✓,306, +V1,"Architektur, Design und Threat Modeling",V1.2,Architektur der Authentifizierung,V1.2.3,"Prüfen Sie, dass die Anwendung einen einzigen geprüften und sicheren Authentifizierungsmechanismus verwendet, der auf eine starke Authentifizierung erweitert werden kann und über ein ausreichendes Logging und Monitoring verfügt, um Einbrüche oder Missbrauch zu erkennen.",,✓,✓,306, +V1,"Architektur, Design und Threat Modeling",V1.2,Architektur der Authentifizierung,V1.2.4,"Prüfen Sie, dass alle Authentifizierungspfade und Identitätsmanagement-APIs eine einheitliche Stärke der Authentifizierung implementieren, so dass es keine schwächeren Alternativen pro Anwendungsrisiko gibt.",,✓,✓,306, +V1,"Architektur, Design und Threat Modeling",V1.4,Architektur der Zugriffskontrolle,V1.4.1,"Prüfen Sie, dass Zugriffskontrollen von vertrauenswürdigen Stellen, wie z.B. Accesscontrol Gateways, Servern oder serverlosen Funktionen, ausgeführt werden. Implementieren Sie Zugriffskontrollen niemals am Client.",,✓,✓,602, +V1,"Architektur, Design und Threat Modeling",V1.4,Architektur der Zugriffskontrolle,V1.4.2,"[GELÖSCHT, NICHT UMSETZBAR]",,,,, +V1,"Architektur, Design und Threat Modeling",V1.4,Architektur der Zugriffskontrolle,V1.4.3,"[GELÖSCHT, DUPLIKAT VON 4.1.3]",,,,, +V1,"Architektur, Design und Threat Modeling",V1.4,Architektur der Zugriffskontrolle,V1.4.4,"Prüfen Sie, dass die Anwendung mit einer einzigen und gut erprobten Zugriffssteuerung auf geschützte Daten und Ressourcen zugreift. Alle Anfragen müssen diesen einen Weg nutzen, um Kopieren und Einfügen oder unsichere Alternativpfade zu vermeiden. ([C7](https://owasp.org/www-project-proactive-controls/#div-numbering))",,✓,✓,284, +V1,"Architektur, Design und Threat Modeling",V1.4,Architektur der Zugriffskontrolle,V1.4.5,"Prüfen Sie, dass eine attribut- oder merkmalsbasierte Zugriffskontrolle verwendet wird, die die Berechtigung des Benutzers zum Zugriff auf ein Merkmal oder Datenelement und nicht nur seine Rolle prüft. Die Berechtigungen sollten weiterhin über Rollen vergeben werden. ([C7](https://owasp.org/www-project-proactive-controls/#div-numbering))",,✓,✓,275, +V1,"Architektur, Design und Threat Modeling",V1.5,Architektur des Ein- und Ausgabemanagements ,V1.5.1,"Prüfen Sie, dass die Ein- und Ausgabeanforderungen klar definieren, wie die Daten auf der Grundlage des Typs, des Inhalts und der anwendbaren Gesetze, Vorschriften und anderen Richtlinien zu verarbeiten sind.",,✓,✓,1029, +V1,"Architektur, Design und Threat Modeling",V1.5,Architektur des Ein- und Ausgabemanagements ,V1.5.2,"Prüfen Sie, dass bei der Kommunikation mit nicht vertrauenswürdigen Clients keine Serialisierung verwendet wird. Ist dies nicht möglich, prüfen Sie, dass die Integrität geprüft und bei sensiblen Daten auch verschlüsselt wird, um Deserialisierungsangriffe oder Object Injection Angriffe zu verhindern.",,✓,✓,502, +V1,"Architektur, Design und Threat Modeling",V1.5,Architektur des Ein- und Ausgabemanagements ,V1.5.3,"Prüfen Sie, dass die Eingabevalidierung in einer vertrauenswürdigen Serviceschicht durchgesetzt wird. ([C5](https://owasp.org/www-project-proactive-controls/#div-numbering))",,✓,✓,602, +V1,"Architektur, Design und Threat Modeling",V1.5,Architektur des Ein- und Ausgabemanagements ,V1.5.4,"Prüfen Sie, dass die Ausgabecodierung in der Nähe des oder durch den Interpreter erfolgt, für den sie bestimmt ist. ([C4](https://owasp.org/www-project-proactive-controls/#div-numbering))",,✓,✓,116, +V1,"Architektur, Design und Threat Modeling",V1.6,Architektur kryptographischer Maßnahmen,V1.6.1,"Prüfen Sie, dass es eine explizite Richtlinie für das Schlüsselmanagement gibt, und dass der Lebenszyklus eines kryptografischen Schlüssels konform zu einem Standard für das Schlüsselmanagement wie NIST SP 800-57 ist.",,✓,✓,320, +V1,"Architektur, Design und Threat Modeling",V1.6,Architektur kryptographischer Maßnahmen,V1.6.2,"Prüfen Sie, dass Nutzer kryptografischer Dienste Schlüssel und andere Geheimnisse mit Hilfe von Schlüsseltresoren oder API-basierte Alternativen schützen.",,✓,✓,320, +V1,"Architektur, Design und Threat Modeling",V1.6,Architektur kryptographischer Maßnahmen,V1.6.3,"Prüfen Sie, dass alle Schlüssel und Passwörter ersetzbar und Teil eines genau definierten Prozesses zur Neuverschlüsselung sensibler Daten sind.",,✓,✓,320, +V1,"Architektur, Design und Threat Modeling",V1.6,Architektur kryptographischer Maßnahmen,V1.6.4,"Prüfen Sie, dass clientseitige Geheimnisse, wie symmetrische Schlüssel, Passwörter oder API-Token, architektonisch als unsicher betrachtet werden. Sie dürfen nicht zum Schutz sensibler Daten verwendet werden.",,✓,✓,320, +V1,"Architektur, Design und Threat Modeling",V1.7,"Architektur von Fehlerbehandlung, Protokollierung und Audit",V1.7.1,"Prüfen Sie, dass im gesamten System Herangehensweise und Protokollformat einheitlich sind. ([C9](https://owasp.org/www-project-proactive-controls/#div-numbering))",,✓,✓,1009, +V1,"Architektur, Design und Threat Modeling",V1.7,"Architektur von Fehlerbehandlung, Protokollierung und Audit",V1.7.2,"Prüfen Sie, dass die Protokolle zur Analyse, Erkennung, Alarmierung und Eskalation sicher übertragen werden - vorzugsweise an ein eigenständiges System. ([C9](https://owasp.org/www-project-proactive-controls/#div-numbering))",,✓,✓,, +V1,"Architektur, Design und Threat Modeling",V1.8,Architektonische Anforderungen zur Einhaltung des Datenschutzes,V1.8.1,"Prüfen Sie, dass alle sensiblen Daten identifiziert und klassifiziert werden.",,✓,✓,, +V1,"Architektur, Design und Threat Modeling",V1.8,Architektonische Anforderungen zur Einhaltung des Datenschutzes,V1.8.2,"Prüfen Sie, dass für alle Schutzklassen entsprechende Anforderungen existieren, z. B. an die Vertraulichkeit, die Integrität, Aufbewahrung, Datenschutz etc. und dass diese in der Architektur angewendet werden.",,✓,✓,, +V1,"Architektur, Design und Threat Modeling",V1.9,Architektur der Kommunikationsverbindungen,V1.9.1,"Prüfen Sie, dass die Anwendung die Kommunikation zwischen Komponenten verschlüsselt, insbesondere wenn sich diese in verschiedenen Containern, Systemen, Standorten oder Cloudanbietern befinden. ([C3](https://owasp.org/www-project-proactive-controls/#div-numbering))",,✓,✓,319, +V1,"Architektur, Design und Threat Modeling",V1.9,Architektur der Kommunikationsverbindungen,V1.9.2,"Prüfen Sie, dass die Anwendungskomponenten die Authentizität beider Seiten einer Kommunikationsverbindung verifizieren, um Man-in-the-Middle-Angriffe zu verhindern. Beispielsweise sollten die Anwendungskomponenten TLS-Zertifikate und Zertifikatsketten verifizieren.",,✓,✓,295, +V1,"Architektur, Design und Threat Modeling",V1.10,Architektonische Anforderungen zum Schutz vor unbefugten Änderungen,V1.10.1,"Prüfen Sie, dass das Quellcodeverwaltungssystem sicherstellt, dass Check-Ins mit Issues oder Änderungstickets einhergehen. Das Quellcodeverwaltungssystem sollte über eine Zugriffskontrolle und identifizierbare Benutzer verfügen, um Änderungen nachverfolgen zu können.",,✓,✓,284, +V1,"Architektur, Design und Threat Modeling",V1.11,Architektur der Geschäftslogik,V1.11.1,Prüfen Sie die Definition und Dokumentation aller Anwendungskomponenten auf die von ihnen bereitgestellten Fach- oder Sicherheitsfunktionen.,,✓,✓,1059, +V1,"Architektur, Design und Threat Modeling",V1.11,Architektur der Geschäftslogik,V1.11.2,"Prüfen Sie, dass alle geschäftskritischen Abläufe, inkl. der Authentifizierung, des Sessionmanagements und der Zugriffssteuerung stets synchronisiert sind.",,✓,✓,362, +V1,"Architektur, Design und Threat Modeling",V1.11,Architektur der Geschäftslogik,V1.11.3,"Prüfen Sie, dass alle geschäftskritischen Abläufe, einschließlich der Authentifizierung, des Sessionmanagements und der Zugriffssteuerung thread-sicher und sicher gegen TOCTOU Race Conditions sind.",,,✓,367, +V1,"Architektur, Design und Threat Modeling",V1.12,Sicheres Datei Upload ,V1.12.1,"[GELÖSCHT, DUPLIKAT VON 12.4.1]",,,,, +V1,"Architektur, Design und Threat Modeling",V1.12,Sicheres Datei Upload ,V1.12.2,"Prüfen Sie, dass vom Benutzer hochgeladene Dateien - sofern sie angezeigt oder von der Anwendung heruntergeladen werden müssen - entweder durch Oktett-Stream-Downloads oder von einer nicht verwandten Domäne, wie z.B. einem Cloud File Storage Bucket, bereitgestellt werden. Implementieren Sie geeignete Sicherheitsmaßnahmen für Dateiinhalte, um das Risiko von Angriffen mit Hilfe der hochgeladenen Datei zu reduzieren.",,✓,✓,646, +V1,"Architektur, Design und Threat Modeling",V1.14,Architektonische Anforderungen an die Konfiguration,V1.14.1,"Prüfen Sie die Trennung von Komponenten unterschiedlicher Vertrauensstufen durch gut durchdachte Sicherheitsmaßnahmen, Firewallregeln, API-Gateways, Reverseproxies, cloudbasierte Sicherheitsgruppen o.ä.",,✓,✓,923, +V1,"Architektur, Design und Threat Modeling",V1.14,Architektonische Anforderungen an die Konfiguration,V1.14.2,"Prüfen Sie, dass digitale Signaturen, vertrauenswürdige Verbindungen und vertrauenswürdige Downloadquellen verwendet werden, um Binärdaten auf Endgeräte zu verteilen.",,✓,✓,494, +V1,"Architektur, Design und Threat Modeling",V1.14,Architektonische Anforderungen an die Konfiguration,V1.14.3,"Prüfen Sie, dass die Buildpipeline vor veralteten oder unsicheren Komponenten warnt und entsprechende Maßnahmen ergreift.",,✓,✓,1104, +V1,"Architektur, Design und Threat Modeling",V1.14,Architektonische Anforderungen an die Konfiguration,V1.14.4,"Prüfen Sie, dass die Buildpipeline einen Schritt enthält, um die sichere Deploymentversion der Anwendung automatisch zu erstellen und zu verifizieren, insbesondere wenn die Anwendungsinfrastruktur softwarebasiert ist, wie z. B. Cloudumgebungen.",,✓,✓,, +V1,"Architektur, Design und Threat Modeling",V1.14,Architektonische Anforderungen an die Konfiguration,V1.14.5,"Prüfen Sie, dass Anwendungen auf der Netzwerkebene voneinander separiert sind, z.B. per Sandbox oder Container, um Angreifer auszubremsen und davon abzuhalten, andere Anwendungen anzugreifen, insbesondere wenn sie sensible Aktionen wie eine Deserialisierung durchführen. ([C5](https://owasp.org/www-project-proactive-controls/#div-numbering))",,✓,✓,265, +V1,"Architektur, Design und Threat Modeling",V1.14,Architektonische Anforderungen an die Konfiguration,V1.14.6,"Prüfen Sie, dass die Anwendung keine nicht unterstützten, unsicheren oder veralteten clientseitigen Technologien wie NSAPI-Plugins, Flash, Shockwave, ActiveX, Silverlight, NACL oder clientseitige Java-Applets verwendet.",,✓,✓,477, +V2,,V2.1,Passwortsicherheit,V2.1.1,"Prüfen Sie, dass Benutzerpasswörter mindestens 12 Zeichen lang sind, nachdem zusammenhängende Leerzeichen gekürzt wurden. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))",✓,✓,✓,521,5.1.1.2 +V2,,V2.1,Passwortsicherheit,V2.1.2,"Prüfen Sie, dass Passwörter mit 64 oder mehr Zeichen erlaubt sind, jedoch nicht mehr als 128 Zeichen. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))",✓,✓,✓,521,5.1.1.2 +V2,,V2.1,Passwortsicherheit,V2.1.3,"Prüfen Sie, dass Passwörter nicht gekürzt werden. Mehrere aufeinanderfolgende Leerzeichen können zu einem zusammengefasst werden. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))",✓,✓,✓,521,5.1.1.2 +V2,,V2.1,Passwortsicherheit,V2.1.4,"Prüfen Sie, ob alle druckbaren Unicode-Zeichen, auch Leerzeichen oder Emojis, in Passwörtern zulässig sind.",✓,✓,✓,521,5.1.1.2 +V2,,V2.1,Passwortsicherheit,V2.1.5,"Prüfen Sie, dass Benutzer ihr Passwort ändern können.",✓,✓,✓,620,5.1.1.2 +V2,,V2.1,Passwortsicherheit,V2.1.6,"Prüfen Sie, dass die Passwortänderungsfunktion das bisherige sowie das neue Kennwort des Benutzers erfordert.",✓,✓,✓,620,5.1.1.2 +V2,,V2.1,Passwortsicherheit,V2.1.7,"Prüfen Sie, dass die bei der Kontoregistrierung, beim Login und bei der Passwortänderung übermittelten Passwörter mit einen Satz verletzter Passwörtern verglichen werden, und zwar entweder lokal (z. B. mit den 1.000 oder 10.000 häufigsten Passwörtern, die mit der Passwortrichtlinie des Systems übereinstimmen) oder mit Hilfe einer externen API. Bei Verwendung einer API muss sichergestellt werden, dass das Klartextpasswort nicht gesendet oder anderweitig offengelegt wird. Wird das Passwort offengelegt, muss die Anwendung den Benutzer auffordern, ein neues Passwort festzulegen. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))",✓,✓,✓,521,5.1.1.2 +V2,,V2.1,Passwortsicherheit,V2.1.8,"Prüfen Sie, dass ein Maß für die Passwortstärke bereitgestellt wird, damit Benutzer ein stärkeres Passwort erstellen können.",✓,✓,✓,521,5.1.1.2 +V2,,V2.1,Passwortsicherheit,V2.1.9,"Prüfen Sie, dass es keine Regeln für die Zusammenstellung der Passwörter gibt, welche die Art der zulässigen Zeichen einschränken. Die Verwendung bestimmter Zeichen, wie Groß- oder Kleinschreibung, Zahlen oder Sonderzeichen sollte nicht verlangt werden. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))",✓,✓,✓,521,5.1.1.2 +V2,,V2.1,Passwortsicherheit,V2.1.10,"Prüfen Sie, dass weder periodischer Passwortwechsel notwendig ist noch eine Passworthistorie gespeichert wird.",✓,✓,✓,263,5.1.1.2 +V2,,V2.1,Passwortsicherheit,V2.1.11,"Prüfen Sie, dass die „Einfügen“-Funktion, Passworthilfen der Browser und externe Passwortmanager zugelassen sind.",✓,✓,✓,521,5.1.1.2 +V2,,V2.1,Passwortsicherheit,V2.1.12,"Prüfen Sie, dass der Benutzer wählen kann, entweder das gesamte Passwort vorübergehend angezeigt zu bekommen oder das letzte eingetippte Zeichen des Passwortes angezeigt zu bekommen.",✓,✓,✓,521,5.1.1.2 +V2,,V2.2,Allgemeine Sicherheitsanforderungen an den Authentifikator,V2.2.1,"Prüfen Sie, dass Maßnahmen gegen automatische Angriffe, wie das Ausprobieren von Passworten oder das Aussperren von Benutzern, wirksam umgesetzt sind. Dazu gehören das Blockieren der am häufigsten verwendeten Passwörter, Soft-Lockouts, die Begrenzung der Anzahl von Anmeldungen, CAPTCHA, wachsende Verzögerungen zwischen den Fehlversuchen, IP-Adressbeschränkungen oder risikobasierte Einschränkungen wie Standort, erste Anmeldung auf einem Gerät, kürzliche Versuche, das Konto zu entsperren oder Ähnliches. Prüfen Sie, dass nicht mehr als 100 Fehlversuche pro Stunde bei einem einzelnen Konto möglich sind.",✓,✓,✓,307,5.2.2 / 5.1.1.2 / 5.1.4.2 / 5.1.5.2 +V2,,V2.2,Allgemeine Sicherheitsanforderungen an den Authentifikator,V2.2.2,"Prüfen Sie, dass der Einsatz schwacher Authentifikationsmethoden, wie SMS und E-Mail, auf die sekundäre Verifizierung und Transaktionsgenehmigung beschränkt ist und nicht als Ersatz für sicherere Authentifizierungsmethoden dient. Prüfen Sie, dass stärkere Methoden vor schwachen Methoden eingesetzt werden, dass sich die Benutzer der Risiken bewusst sind oder dass geeignete Maßnahmen zur Begrenzung des Risikos getroffen werden.",✓,✓,✓,304,5.2.10 +V2,,V2.2,Allgemeine Sicherheitsanforderungen an den Authentifikator,V2.2.3,"Prüfen Sie, dass die Benutzer sichere Benachrichtigungen nach Aktualisierungen der Authentifizierungsdetails, wie z. B. das Zurücksetzen von Anmeldedaten, E-Mail- oder Adressänderungen, Anmeldung von unbekannten oder risikobehafteten Orten erhalten. Die Verwendung von Push-Benachrichtigungen - anstelle von SMS oder E-Mail - ist vorzuziehen. Bei fehlenden Push-Benachrichtigungen sind SMS oder E-Mail jedoch akzeptabel, solange in der Benachrichtigung keine sensiblen Informationen offengelegt werden.",✓,✓,✓,620, +V2,,V2.2,Allgemeine Sicherheitsanforderungen an den Authentifikator,V2.2.4,"Prüfen Sie die Resistenz gegen Phishing durch Authentifizierung mittels Mehrfaktor-Authentifizierung, Public Key Kryptographie, Chipkarten und Push-Nachrichten, auf höheren AAL-Ebenen: clientseitige Zertifikate.",,,✓,308,5.2.5 +V2,,V2.2,Allgemeine Sicherheitsanforderungen an den Authentifikator,V2.2.5,"Prüfen Sie, dass der CSP und die nutzende Anwendung über zweiseitig authentifiziertes TLS kommunizieren.",,,✓,319,5.2.6 +V2,,V2.2,Allgemeine Sicherheitsanforderungen an den Authentifikator,V2.2.6,"Prüfen Sie, dass Authentifikationsdaten nicht wieder eingespielt werden können. Dies kann z.B. mit One Time Password (OTP) Generatoren, Chipkarten o.ä. verhindert werden.",,,✓,308,5.2.8 +V2,,V2.2,Allgemeine Sicherheitsanforderungen an den Authentifikator,V2.2.7,"Prüfen Sie, dass eine Authentifikation nicht unbeabsichtigt stattfinden kann. Verlangen Sie die Eingabe eines OTP-Tokens oder eine vom Benutzer initiierte Aktion, wie z.B. einen Tastendruck auf einem FIDO-Hardwaretoken.",,,✓,308,5.2.9 +V2,,V2.3,Lebenszyklus des Authentifikators,V2.3.1,Vom System generierte Anfangspasswörter oder Aktivierungscodes SOLLTEN sicher zufällig generiert werden. Sie SOLLTEN mindestens 6 Zeichen lang sein und KÖNNEN Buchstaben und Zahlen enthalten. Sie MÜSSEN nach einer kurzen Zeitspanne ablaufen. Diese Initialpasswörter dürfen nicht zum dauerhaften Passwort werden.,✓,✓,✓,330,5.1.1.2 / A.3 +V2,,V2.3,Lebenszyklus des Authentifikators,V2.3.2,"Prüfen Sie, dass die Registrierung und die Verwendung von vom Teilnehmer bereitgestellten Authentifizierungsgeräten unterstützt werden, wie z. B. U2F- oder FIDO-Token.",,✓,✓,308,6.1.3 +V2,,V2.3,Lebenszyklus des Authentifikators,V2.3.3,"Prüfen Sie, dass die Aufforderung zur Erneuerung zeitgebundener Authentifikatoren rechtzeitig gesendet werden.",,✓,✓,287,6.1.4 +V2,,V2.4,Speicherung der Anmeldedaten,V2.4.1,"Prüfen Sie, dass die Passwörter in einer Form gespeichert werden, die immun gegen Offlineangriffe ist. Passwörter MÜSSEN mit einem Salt versehen werden. Der Passworthash muss mit Hilfe einer sicheren Funktion zur Schlüsselberechnung oder einer Passwort-Hashfunktion berechnet werden. Die Funktionen zur Schlüsselberechnung und zum Passwort-Hashing nehmen ein Passwort, einen Salt und einen Kostenfaktor als Eingabewerte. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))",,✓,✓,916,5.1.1.2 +V2,,V2.4,Speicherung der Anmeldedaten,V2.4.2,"Prüfen Sie, dass das Salt mindestens 32 Bit lang ist und zufällig gewählt wird, um Saltwertkollisionen zwischen gespeicherten Hashes zu minimieren. Für jede Anmeldeinformation (Credential) MUSS ein eindeutiger Saltwert und der daraus resultierende Hash gespeichert werden. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))",,✓,✓,916,5.1.1.2 +V2,,V2.4,Speicherung der Anmeldedaten,V2.4.3,"Prüfen Sie, dass bei Verwendung von PBKDF2 der Iterationszähler so groß sein SOLLTE, wie es die Leistung des Verifikationsservers zulässt, normalerweise mindestens 100.000 Iterationen. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))",,✓,✓,916,5.1.1.2 +V2,,V2.4,Speicherung der Anmeldedaten,V2.4.4,"Prüfen Sie, dass bei Verwendung von bcrypt der Arbeitsfaktor so groß sein SOLLTE, wie es die Leistung des Verifikationsservers erlaubt, jedoch mindestens 10. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))",,✓,✓,916,5.1.1.2 +V2,,V2.4,Speicherung der Anmeldedaten,V2.4.5,"Prüfen Sie, dass eine zusätzliche Iteration einer Funktion zur Schlüsselberechnung durchgeführt wird. Dabei ist ein Saltwert zu verwenden, der nur dem Verifizierer bekannt ist. Generieren Sie den Saltwert mit einem zugelassenen Zufallsgenerator [SP 800-90Ar1]. Stellen Sie die in der letzten Revision von SP 800-131A angegebene Mindestsicherheitsstärke sicher. Der geheime Saltwert MUSS getrennt von den gehashten Passwörtern gespeichert werden, z.B. in einem speziellen Gerät wie einem HSM.",,✓,✓,916,5.1.1.2 +V2,,V2.5,Wiederherstellung von Anmeldedaten,V2.5.1,"Prüfen Sie, dass ein vom System generiertes Initial- oder Wiederherstellungsgeheimnis nicht im Klartext an den Benutzer gesendet wird. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))",✓,✓,✓,640,5.1.1.2 +V2,,V2.5,Wiederherstellung von Anmeldedaten,V2.5.2,"Prüfen Sie, dass keine Hinweise auf Passwörter oder wissensbasierte Authentifizierung, z.B. „geheime Fragen“ vorliegen.",✓,✓,✓,640,5.1.1.2 +V2,,V2.5,Wiederherstellung von Anmeldedaten,V2.5.3,"Prüfen Sie, dass die Wiederherstellung von Anmeldedaten das aktuelle Kennwort nicht preisgibt. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))",✓,✓,✓,640,5.1.1.2 +V2,,V2.5,Wiederherstellung von Anmeldedaten,V2.5.4,"Prüfen Sie, dass Gemeinschafts- oder Standardkonten, z.B. „root“, „admin“, „Gast“ oder „sa“ deaktiviert oder gelöscht sind.",✓,✓,✓,16,5.1.1.2 / A.3 +V2,,V2.5,Wiederherstellung von Anmeldedaten,V2.5.5,"Prüfen Sie, dass der Benutzer informiert wird, wenn ein Authentifizierungsfaktor geändert oder ersetzt wird.",✓,✓,✓,304,6.1.2.3 +V2,,V2.5,Wiederherstellung von Anmeldedaten,V2.5.6,"Prüfen Sie, dass der Prozess zur Wiederherstellung, z.B. für vergessene Passwörter, einen sicheren Kanal, z. B. TOTP oder andere Softtoken, Mobile Push oder andere Offlinekanäle, verwendet. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))",✓,✓,✓,640,5.1.1.2 +V2,,V2.5,Wiederherstellung von Anmeldedaten,V2.5.7,"Prüfen Sie, dass der Identitätsnachweis bei Verlust von OTP- oder Mehrfaktor-Token auf derselben Ebene wie bei der Registrierung durchgeführt wird.",,✓,✓,308,6.1.2.3 +V2,,V2.6,Verifizierung von TAN-Listen,V2.6.1,"Prüfen Sie, dass die Geheimcodes nur einmal verwendet werden können.",,✓,✓,308,5.1.2.2 +V2,,V2.6,Verifizierung von TAN-Listen,V2.6.2,"Prüfen Sie, ob die Geheimcodes eine ausreichende Zufälligkeit aufweisen (112 Bit Entropie). Falls weniger als 112 Bit Entropie vorhanden sind, sind ein einzigartiger und zufälliger 32 Bit Salt und eine zugelassene Hashfunktion zu nutzen.",,✓,✓,330,5.1.2.2 +V2,,V2.6,Verifizierung von TAN-Listen,V2.6.3,"Prüfen Sie, dass Geheimcodes gegen Offlineangriffe, wie z.B. vorhersehbare Werte, immun sind.",,✓,✓,310,5.1.2.2 +V2,,V2.7,Out-of-Band Verifizierer,V2.7.1,"Prüfen Sie, dass Out-of-Band Authentifikatoren, die NIST „restricted“ sind, wie z.B. SMS, nicht standardmäßig angeboten werden und dass stärkere Alternativen wie Push-Nachrichten zuerst angeboten werden.",✓,✓,✓,287,5.1.3.2 +V2,,V2.7,Out-of-Band Verifizierer,V2.7.2,"Prüfen Sie, dass der Out-of-Band Verifizierer bei Out-of-Band Authentifizierungsanforderungen, -Codes oder -Tokens nach 10 Minuten abläuft.",✓,✓,✓,287,5.1.3.2 +V2,,V2.7,Out-of-Band Verifizierer,V2.7.3,"Prüfen Sie, dass Authentifizierungsanfragen, -Codes oder ‑Token an den Out-of-Band Verifizierer nur einmal und nur für die ursprüngliche Authentifizierungsanfrage verwendbar sind.",✓,✓,✓,287,5.1.3.2 +V2,,V2.7,Out-of-Band Verifizierer,V2.7.4,"Prüfen Sie, dass der Out-of-Band Authentifizierer und der Verifizierer über einen sicheren, unabhängigen Kanal kommunizieren.",✓,✓,✓,523,5.1.3.2 +V2,,V2.7,Out-of-Band Verifizierer,V2.7.5,"Prüfen Sie, dass der Out-of-Band Verifizierer nur eine gehashte Version des Authentifizierungscodes speichert.",,✓,✓,256,5.1.3.2 +V2,,V2.7,Out-of-Band Verifizierer,V2.7.6,"Prüfen Sie, dass der initiale Authentifizierungscode von einem sicheren Zufallszahlengenerator erzeugt wird, der mindestens 20 Bit Entropie enthält. Normalerweise ist eine sechsstellige Zufallszahl ausreichend.",,✓,✓,310,5.1.3.2 +V2,,V2.8,Ein- oder Mehrfaktor-Einwegverifizierer,V2.8.1,"Prüfen Sie, dass zeitbasierte OTPs eine definierte Lebensdauer haben, bevor sie ablaufen.",✓,✓,✓,613,5.1.4.2 / 5.1.5.2 +V2,,V2.8,Ein- oder Mehrfaktor-Einwegverifizierer,V2.8.2,"Prüfen Sie, dass die symmetrischen Schlüssel, die zur Prüfung der eingegebenen OTPs verwendet werden, sicher geschützt sind, z.B. durch Verwendung eines HSM oder der sicheren Schlüsselspeicherung des Betriebssystems.",,✓,✓,320,5.1.4.2 / 5.1.5.2 +V2,,V2.8,Ein- oder Mehrfaktor-Einwegverifizierer,V2.8.3,"Prüfen Sie, dass anerkannte kryptografische Algorithmen bei der Generierung, dem Seeding und der Verifizierung verwendet werden.",,✓,✓,326,5.1.4.2 / 5.1.5.2 +V2,,V2.8,Ein- oder Mehrfaktor-Einwegverifizierer,V2.8.4,"Prüfen Sie, dass das zeitbasierte OTP nur einmal innerhalb des Gültigkeitszeitraums verwendet werden können.",,✓,✓,287,5.1.4.2 / 5.1.5.2 +V2,,V2.8,Ein- oder Mehrfaktor-Einwegverifizierer,V2.8.5,"Prüfen Sie, dass ein zeitbasiertes Mehrfaktor-OTP, das während der Gültigkeitsdauer wiederverwendet wird, protokolliert und mit sicheren Benachrichtigungen an den Inhaber des Geräts abgelehnt wird.",,✓,✓,287,5.1.5.2 +V2,,V2.8,Ein- oder Mehrfaktor-Einwegverifizierer,V2.8.6,"Prüfen Sie, ob physische OTP-Generatoren im Falle von Diebstahl oder Verlust gesperrt werden können. Stellen Sie sicher, dass der Widerruf sofort für alle eingeloggten Sitzungen, unabhängig vom Standort, wirksam ist.",,✓,✓,613,5.2.1 +V2,,V2.8,Ein- oder Mehrfaktor-Einwegverifizierer,V2.8.7,"Prüfen Sie, dass biometrische Authentifikatoren nur als sekundäre Faktoren in Verbindung mit etwas, das Sie haben oder etwas, das Sie wissen, verwendet werden dürfen.",,o,✓,308,5.2.3 +V2,,V2.9,Kryptografische Software und Geräte im Authentifizierungsprozess,V2.9.1,"Prüfen Sie, dass die bei der Authentifizierung verwendeten kryptografischen Schlüssel sicher gespeichert und gegen Offenlegung geschützt sind, z. B. durch Verwendung eines Trusted Platform Module (TPM) oder eines Hardware Security Modules (HSM) oder eines Betriebssystemdienstes.",,✓,✓,320,5.1.7.2 +V2,,V2.9,Kryptografische Software und Geräte im Authentifizierungsprozess,V2.9.2,"Prüfen Sie, dass der Zufallswert mindestens 64 Bit lang ist und statistisch einmalig oder für die Lebensdauer des kryptografischen Geräts einmalig ist.",,✓,✓,330,5.1.7.2 +V2,,V2.9,Kryptografische Software und Geräte im Authentifizierungsprozess,V2.9.3,"Prüfen Sie, dass anerkannte kryptografische Algorithmen bei allen kryptographischen Operationen verwendet werden.",,✓,✓,327,5.1.7.2 +V2,,V2.10,Service-Authentifizierung,V2.10.1,"Prüfen Sie, dass Intra-Service-Geheimnisse nicht auf unveränderlichen Credentials, wie Passwörtern, API-Schlüsseln oder gemeinsam genutzten privilegierten Konten beruhen.",,OS assisted,HSM,287,5.1.1.1 +V2,,V2.10,Service-Authentifizierung,V2.10.2,"Prüfen Sie, dass Servicekonten, die zur Anmeldung genutzt werden, keine Standardpasswörter, wie root / root oder admin / admin, die häufig voreingestellt sind, nutzen.",,OS assisted,HSM,255,5.1.1.1 +V2,,V2.10,Service-Authentifizierung,V2.10.3,"Prüfen Sie, dass Passworthashwerte mit ausreichendem Schutz gespeichert werden, um Offlineangriffe, zu verhindern.",,OS assisted,HSM,522,5.1.1.1 +V2,,V2.10,Service-Authentifizierung,V2.10.4,"Prüfen Sie, dass Passwörter, Zugänge zu Datenbanken o.a. Systemen, Seeds, interne Geheimnisse sowie API-Schlüssel sicher verwaltet werden. Sie dürfen nicht in den Quellcode aufgenommen bzw. in Quellcoderepositories gespeichert werden. Eine solche Speicherung muss Offline-Angriffen widerstehen. Für die Passwortspeicherung wird die Verwendung eines sicheren Softwareschlüsselspeichers (L1), eines TPM oder eines HSM (L3) empfohlen.",,OS assisted,HSM,798, +V3,Sessionmanagement,V3.1,Grundlegende Sicherheit des Sessionmanagements,V3.1.1,"Prüfen Sie, dass die Anwendung niemals Sessiontoken in URL-Parametern oder Fehlermeldungen offenbart.",✓,✓,✓,598, +V3,Sessionmanagement,V3.2,Session Binding,V3.2.1,"Prüfen Sie, ob die Anwendung bei der Authentifizierung eines Benutzers ein neues Sessiontoken generiert. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))",✓,✓,✓,384,7.1 +V3,Sessionmanagement,V3.2,Session Binding,V3.2.2,"Prüfen Sie, dass Sessiontoken mindestens 64 Bit Entropie aufweisen. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))",✓,✓,✓,331,7.1 +V3,Sessionmanagement,V3.2,Session Binding,V3.2.3,"Prüfen Sie, dass die Anwendung Sessiontoken im Browser nur mit sicheren Methoden wie z.B. gesicherten Cookies (siehe Abschnitt 3.4) oder den HTML 5-Methoden speichert.",✓,✓,✓,539,7.1 +V3,Sessionmanagement,V3.2,Session Binding,V3.2.4,"Prüfen Sie, dass die Sessiontoken mit anerkannten kryptografischen Algorithmen generiert werden. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))",,✓,✓,331,7.1 +V3,Sessionmanagement,V3.3,Beenden der Session,V3.3.1,"Prüfen Sie, dass Abmeldung und Ablauf das Sessiontoken ungültig machen, so dass die Zurück-Taste oder eine nachgeschaltete Relying Party eine authentifizierte Sitzung auch nicht zwischen den Relying Parties wiederaufnimmt. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))",✓,✓,✓,613,7.1 +V3,Sessionmanagement,V3.3,Beenden der Session,V3.3.2,"Wenn die Benutzer eingeloggt bleiben, Prüfen Sie, dass eine erneute Authentifizierung in regelmäßigen Abständen sowohl bei aktiver Nutzung als auch nach einer Leerlaufphase erfolgt. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))",30 Tage,"12 Stunden oder 30 Minuten Inaktivität, 2FA optional","12 Stunden oder 15 Minuten Inaktivität, mit 2FA",613,7.2 +V3,Sessionmanagement,V3.3,Beenden der Session,V3.3.3,"Prüfen Sie, dass es die Anwendung ermöglicht, alle anderen aktiven Sitzungen nach einer erfolgreichen Kennwortänderung zu beenden. Dies muss in der gesamten Anwendung, der föderierten Anmeldung (falls vorhanden) und bei allen Relying Parties wirksam sein.",,✓,✓,613, +V3,Sessionmanagement,V3.3,Beenden der Session,V3.3.4,"Prüfen Sie, dass die Benutzer jede oder alle derzeit aktiven Sitzungen und Geräte sehen und sich von ihnen abmelden können.",,✓,✓,613,7.1 +V3,Sessionmanagement,V3.4,Cookiebasiertes Session Management,V3.4.1,"Prüfen Sie, dass bei Session-Cookies das Attribut „secure“ gesetzt ist. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))",✓,✓,✓,614,7.1.1 +V3,Sessionmanagement,V3.4,Cookiebasiertes Session Management,V3.4.2,"Prüfen Sie, dass bei Session-Cookies das Attribut „HttpOnly“ gesetzt ist. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))",✓,✓,✓,1004,7.1.1 +V3,Sessionmanagement,V3.4,Cookiebasiertes Session Management,V3.4.3,"Prüfen Sie, dass Session-Cookies das 'SameSite'-Attribut verwenden, um die Anfälligkeit für Cross Site Request Forgery zu begrenzen. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))",✓,✓,✓,1275,7.1.1 +V3,Sessionmanagement,V3.4,Cookiebasiertes Session Management,V3.4.4,"Prüfen Sie, dass Session-Cookies das Präfix „__Host-“ verwenden (siehe Referenzen), um die Vertraulichkeit von Session-Cookies zu gewährleisten.",✓,✓,✓,16,7.1.1 +V3,Sessionmanagement,V3.4,Cookiebasiertes Session Management,V3.4.5,"Falls die Anwendung unter einem Domänennamen zusammen mit anderen Anwendungen veröffentlicht wird, die Session-Cookies nutzen, welche die Sitzungscookies der geprüften Anwendung außer Kraft setzen oder offenlegen könnten, prüfen Sie, dass das Pfadattribut in den Cookies einen möglichst exakten Pfad erhält. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))",✓,✓,✓,16,7.1.1 +V3,Sessionmanagement,V3.5,Tokenbasiertes Sessionmanagement,V3.5.1,"Prüfen Sie, dass die Anwendung Benutzern erlaubt, OAuth-Token, die Vertrauensbeziehungen zu verknüpften Anwendungen herstellen, zurückzuziehen.",,✓,✓,290,7.1.2 +V3,Sessionmanagement,V3.5,Tokenbasiertes Sessionmanagement,V3.5.2,"Prüfen Sie, dass die Anwendung Sessiontoken anstatt statischer API-Schlüssel verwendet, außer bei Legacy-Implementierungen.",,✓,✓,798, +V3,Sessionmanagement,V3.5,Tokenbasiertes Sessionmanagement,V3.5.3,"Prüfen Sie, dass zustandslose Session-Token digitale Signaturen, Verschlüsselung und andere Gegenmaßnahmen zum Schutz vor Manipulation, Enveloping, Wiedergabe, Null-Chiffren und Schlüsselaustausch-Angriffen verwenden.",,✓,✓,345, +V3,Sessionmanagement,V3.6,Erneute Authentisierung,V3.6.1,"Prüfen Sie, dass die Relying Parties gegenüber den CSPs die maximale Authentifizierungszeit angeben, und dass die CSPs den Teilnehmer erneut authentifizieren, wenn sie innerhalb dieses Zeitraums keine Sitzung verwendet haben.",,,✓,613,7.2.1 +V3,Sessionmanagement,V3.6,Erneute Authentisierung,V3.6.2,"Prüfen Sie, dass die CSPs die Relying Parties über das letzte Authentifizierungsereignis informieren, damit die RPs feststellen können, ob sie den Benutzer erneut authentifizieren müssen.",,,✓,613,7.2.1 +V3,Sessionmanagement,V3.7,Verteidigung gegen Session Management Exploits,V3.7.1,"Prüfen Sie, dass die Anwendung eine gültige Login Session gewährleistet oder eine erneute Authentifizierung oder eine sekundäre Verifizierung erfordert, bevor sensible Transaktionen oder Kontenänderungen zugelassen werden.",✓,✓,✓,306, +V4,Maßnahmen zur Zugriffssteuerung ,V4.1,Design der Allgemeinen Zugriffssteuerung,V4.1.1,"Prüfen Sie, dass die Anwendung Regeln zur Steuerung der Zugriffe auf einer vertrauenswürdigen Serviceschicht durchsetzt, insbesondere wenn die clientseitige Zugriffssteuerung umgangen werden könnte.",✓,✓,✓,602, +V4,Maßnahmen zur Zugriffssteuerung ,V4.1,Design der Allgemeinen Zugriffssteuerung,V4.1.2,"Prüfen Sie, dass alle Benutzer- und Datenattribute sowie Richtlinieninformationen, die von der Zugriffssteuerung verwendet werden, von den Endnutzern nicht manipuliert werden können, es sei denn, dies wird ausdrücklich genehmigt.",✓,✓,✓,639, +V4,Maßnahmen zur Zugriffssteuerung ,V4.1,Design der Allgemeinen Zugriffssteuerung,V4.1.3,"Prüfen Sie, dass das Prinzip der minimalen Berechtigung gilt: Benutzer sollten nur auf die unbedingt notwendigen Funktionen, Dateien, URLs, Controller, Dienste und andere Ressourcen zugreifen können. Dies bedeutet Schutz vor Spoofing und Ausweitung der Berechtigungen. ([C7](https://owasp.org/www-project-proactive-controls/#div-numbering))",✓,✓,✓,285, +V4,Maßnahmen zur Zugriffssteuerung ,V4.1,Design der Allgemeinen Zugriffssteuerung,V4.1.4,"[GELÖSCHT, DUPLIKAT VON 4.1.3]",,,,, +V4,Maßnahmen zur Zugriffssteuerung ,V4.1,Design der Allgemeinen Zugriffssteuerung,V4.1.5,"Prüfen Sie, dass die Zugriffssteuerungsroutinen im Fehlerfall in einen sicheren Zustand fallen. ([C10](https://owasp.org/www-project-proactive-controls/#div-numbering))",✓,✓,✓,285, +V4,Maßnahmen zur Zugriffssteuerung ,V4.2,Operative Zugriffssteuerung,V4.2.1,"Prüfen Sie, dass sensible Daten und APIs vor direkten Objektangriffen geschützt sind, die auf das Erstellen, Lesen, Aktualisieren und Löschen von Datensätzen abzielen, z. B. das Erstellen oder Aktualisieren von Datensätzen einer anderen Person, das Anzeigen oder Löschen aller Datensätze.",✓,✓,✓,639, +V4,Maßnahmen zur Zugriffssteuerung ,V4.2,Operative Zugriffssteuerung,V4.2.2,"Prüfen Sie, dass die Anwendung oder das Framework einen starken Anti-CSRF-Mechanismus zum Schutz authentifizierter Funktionen durchsetzt, und dass eine effektive Anti-Automatisierung oder Anti-CSRF nicht authentifizierte Funktionen schützt.",✓,✓,✓,352, +V4,Maßnahmen zur Zugriffssteuerung ,V4.3,Weitere Maßnahmen zur Zugriffssteuerung,V4.3.1,"Prüfen Sie, dass administrative Schnittstellen eine geeignete Mehrfaktorauthentifizierung verwenden, um unbefugte Nutzung zu verhindern.",✓,✓,✓,419, +V4,Maßnahmen zur Zugriffssteuerung ,V4.3,Weitere Maßnahmen zur Zugriffssteuerung,V4.3.2,"Prüfen Sie, dass das Durchsuchen von Verzeichnissen deaktiviert ist, es sei denn, dies ist absichtlich gewünscht. Ferner ist das Auffinden oder die Offenlegung von Datei- oder Verzeichnis-Metadaten, wie z.B. Thumbs.db, .DS_Store, .git oder .svn-Ordner, nicht zulässig.",✓,✓,✓,548, +V4,Maßnahmen zur Zugriffssteuerung ,V4.3,Weitere Maßnahmen zur Zugriffssteuerung,V4.3.3,"Prüfen Sie, dass die Anwendung über zusätzliche Berechtigungen (z. B. Step-Up oder adaptive Authentifizierung) für risikoarme Systeme und / oder Aufgabentrennung für brisante Anwendungen verfügt, um Betrugsbekämpfungsmaßnahmen entsprechend dem Anwendungsrisiko durchzusetzen.",,✓,✓,732, +V5,"Eingabeprüfung, die Bereinigung der Ausgaben und die Zeichencodierung",V5.1,Eingabeprüfung,V5.1.1,"Prüfen Sie, dass die Anwendung über Abwehrmechanismen gegen Angriffe auf HTTP-Parameter verfügt, insbesondere dann, wenn das Anwendungsframework die Quelle der Anforderungsparameter (GET, POST, Cookies, Header oder Umgebungsvariablen) nicht unterscheidet.",✓,✓,✓,235, +V5,"Eingabeprüfung, die Bereinigung der Ausgaben und die Zeichencodierung",V5.1,Eingabeprüfung,V5.1.2,"Prüfen Sie, dass Frameworks vor Angriffen durch massenhafte Parameterzuweisung schützen, oder dass die Anwendung über Gegenmaßnahmen zum Schutz vor unsicherer Parameterzuweisung verfügt, wie z.B. das Markieren von Feldern als privat oder ähnliches. ([C5](https://owasp.org/www-project-proactive-controls/#div-numbering))",✓,✓,✓,915, +V5,"Eingabeprüfung, die Bereinigung der Ausgaben und die Zeichencodierung",V5.1,Eingabeprüfung,V5.1.3,"Prüfen Sie, dass alle Eingaben (HTML-Formularfelder, REST-Anforderungen, URL-Parameter, HTTP-Header, Cookies, Batch-Dateien, RSS-Feeds usw.) mittels positiver Validierung (Whitelisting) validiert werden. ([C5](https://owasp.org/www-project-proactive-controls/#div-numbering))",✓,✓,✓,20, +V5,"Eingabeprüfung, die Bereinigung der Ausgaben und die Zeichencodierung",V5.1,Eingabeprüfung,V5.1.4,"Prüfen Sie, dass strukturierte Daten stark typisiert sind und gemäß einem definierten Schema validiert werden. Dazu gehören die erlaubten Zeichen, Länge und Muster (z. B. Kreditkarten- oder Telefonnummern, oder die Prüfung, dass zwei zusammenhängende Felder stimmig sind, z.B. Ort und Postleitzahl). ([C5](https://owasp.org/www-project-proactive-controls/#div-numbering))",✓,✓,✓,20, +V5,"Eingabeprüfung, die Bereinigung der Ausgaben und die Zeichencodierung",V5.1,Eingabeprüfung,V5.1.5,"Prüfen Sie, dass URL-Umleitungen und -Weiterleitungen nur Whitelist-Ziele zulassen, oder bei der Weiterleitung auf potenziell nicht vertrauenswürdige Inhalte einen Warnhinweis anzeigen.",✓,✓,✓,601, +V5,"Eingabeprüfung, die Bereinigung der Ausgaben und die Zeichencodierung",V5.2,Bereinigung und Sandboxing,V5.2.1,"Prüfen Sie, dass alle nicht vertrauenswürdigen HTML-Eingaben von WYSIWYG-Editoren o.ä. ordnungsgemäß mit einer HTML-Bereinigungsbibliothek oder einer Frameworkfunktion bereinigt werden. ([C5](https://owasp.org/www-project-proactive-controls/#div-numbering))",✓,✓,✓,116, +V5,"Eingabeprüfung, die Bereinigung der Ausgaben und die Zeichencodierung",V5.2,Bereinigung und Sandboxing,V5.2.2,"Prüfen Sie, dass unstrukturierte Daten bereinigt werden, um Sicherheitsmaßnahmen wie erlaubte Zeichen und Längenbegrenzung durchzusetzen.",✓,✓,✓,138, +V5,"Eingabeprüfung, die Bereinigung der Ausgaben und die Zeichencodierung",V5.2,Bereinigung und Sandboxing,V5.2.3,"Prüfen Sie, dass die Anwendung zum Schutz vor SMTP- oder IMAP-Injektion Benutzereingaben bereinigt, bevor sie an Mailsysteme weitergeleitet werden.",✓,✓,✓,147, +V5,"Eingabeprüfung, die Bereinigung der Ausgaben und die Zeichencodierung",V5.2,Bereinigung und Sandboxing,V5.2.4,"Prüfen Sie, dass die Anwendung kein eval() oder andere Funktionen zur dynamischen Ausführung von Code verwendet. Wenn es keine Alternative gibt, müssen alle Benutzereingaben, die einbezogen werden, vor der Ausführung des Programms gesäubert oder per Sandbox abgegrenzt werden.",✓,✓,✓,95, +V5,"Eingabeprüfung, die Bereinigung der Ausgaben und die Zeichencodierung",V5.2,Bereinigung und Sandboxing,V5.2.5,"Prüfen Sie, dass die Anwendung vor Template-Injection-Angriffen schützt, indem Sie sicherstellen, dass alle Benutzereingaben, die aufgenommen werden, bereinigt oder per Sandbox abgegrenzt werden.",✓,✓,✓,94, +V5,"Eingabeprüfung, die Bereinigung der Ausgaben und die Zeichencodierung",V5.2,Bereinigung und Sandboxing,V5.2.6,"Prüfen Sie, dass die Anwendung vor SSRF-Angriffen schützt, indem sie nicht vertrauenswürdige Daten oder HTTP-Dateimetadaten, wie z. B. Dateinamen und URL-Eingabefelder, validiert oder bereinigt. Verwenden Sie eine Whitelist von Protokollen, Domänen, Pfaden und Ports.",✓,✓,✓,918, +V5,"Eingabeprüfung, die Bereinigung der Ausgaben und die Zeichencodierung",V5.2,Bereinigung und Sandboxing,V5.2.7,"Prüfen Sie, dass die Anwendung vom Benutzer bereitgestellte Scaleable Vector Graphics (SVG) von skriptfähigen Inhalten bereinigt, deaktiviert oder in Sandboxen abgrenzt, insbesondere in Bezug auf XSS, das aus Inline-Skripten und aus foreignObject resultiert.",✓,✓,✓,159, +V5,"Eingabeprüfung, die Bereinigung der Ausgaben und die Zeichencodierung",V5.2,Bereinigung und Sandboxing,V5.2.8,"Prüfen Sie, dass die Anwendung vom Benutzer zur Verfügung gestellte skriptfähige Inhalte oder Inhalte von Expression Language Templates wie Markdown, CSS- oder XSL-Stylesheets, BBCode oder Ähnliches bereinigt, deaktiviert oder in Sandboxen abgrenzt.",✓,✓,✓,94, +V5,"Eingabeprüfung, die Bereinigung der Ausgaben und die Zeichencodierung",V5.3,Ausgabecodierung und Injektionsverhinderung,V5.3.1,"Prüfen Sie, dass die Ausgabecodierung für den Interpreter und den erforderlichen Kontext relevant ist. Verwenden Sie z. B. Codierer gezielt für HTML-Werte, HTML-Attribute, JavaScript, URL-Parameter, HTTP-Header, SMTP und andere, wie es der Kontext erfordert, insbesondere bei nicht vertrauenswürdigen Eingaben (z.B. Namen mit Unicode oder Apostroph, wie z.B. ねこ oder O'Hara). ([C4](https://owasp.org/www-project-proactive-controls/#div-numbering))",✓,✓,✓,116, +V5,"Eingabeprüfung, die Bereinigung der Ausgaben und die Zeichencodierung",V5.3,Ausgabecodierung und Injektionsverhinderung,V5.3.2,"Prüfen Sie, dass die Ausgabecodierung den vom Benutzer gewählten Zeichensatz sowie die Spracheinstellung beibehält, so dass jeder Unicode-Zeichenpunkt gültig ist und sicher verarbeitet wird. ([C4](https://owasp.org/www-project-proactive-controls/#div-numbering))",✓,✓,✓,176, +V5,"Eingabeprüfung, die Bereinigung der Ausgaben und die Zeichencodierung",V5.3,Ausgabecodierung und Injektionsverhinderung,V5.3.3,"Prüfen Sie, dass kontextabhängiges, vorzugsweise automatisches Output Escaping vor reflektierten, gespeicherten und DOM-basierten XSS schützt. ([C4](https://owasp.org/www-project-proactive-controls/#div-numbering))",✓,✓,✓,79, +V5,"Eingabeprüfung, die Bereinigung der Ausgaben und die Zeichencodierung",V5.3,Ausgabecodierung und Injektionsverhinderung,V5.3.4,"Prüfen Sie, dass die Datenauswahl- oder Datenbankabfragen (z.B. SQL, HQL, ORM, NoSQL) parametrisierte Abfragen, ORMs, Entity Frameworks verwenden oder anderweitig vor Datenbank-Injektionsangriffen geschützt sind. ([C3](https://owasp.org/www-project-proactive-controls/#div-numbering))",✓,✓,✓,89, +V5,"Eingabeprüfung, die Bereinigung der Ausgaben und die Zeichencodierung",V5.3,Ausgabecodierung und Injektionsverhinderung,V5.3.5,"Prüfen Sie, dass dort, wo keine parametrisierten oder sichereren Mechanismen vorhanden sind, eine kontextspezifische Ausgabecodierung, z. B. SQL-Escaping, zum Schutz vor Injektionsangriffen verwendet wird. ([C3, C4](https://owasp.org/www-project-proactive-controls/#div-numbering))",✓,✓,✓,89, +V5,"Eingabeprüfung, die Bereinigung der Ausgaben und die Zeichencodierung",V5.3,Ausgabecodierung und Injektionsverhinderung,V5.3.6,"Prüfen Sie, dass die Anwendung vor Angriffen mittels JSON-Injektion, JSON-eval() und Evaluierung von JavaScript-Ausdrücken schützt. ([C4](https://owasp.org/www-project-proactive-controls/#div-numbering))",✓,✓,✓,830, +V5,"Eingabeprüfung, die Bereinigung der Ausgaben und die Zeichencodierung",V5.3,Ausgabecodierung und Injektionsverhinderung,V5.3.7,"Prüfen Sie, dass die Anwendung vor LDAP-Injektionsschwachstellen schützt oder das spezifische Sicherheitsmaßnahmen zur Verhinderung der LDAP-Injektion implementiert wurden. ([C4](https://owasp.org/www-project-proactive-controls/#div-numbering))",✓,✓,✓,90, +V5,"Eingabeprüfung, die Bereinigung der Ausgaben und die Zeichencodierung",V5.3,Ausgabecodierung und Injektionsverhinderung,V5.3.8,"Prüfen Sie, dass die Anwendung vor dem Einfügen von Betriebssystemkommandos schützt und dass Betriebssystemaufrufe parametrisierte Abfragen oder eine kontextbezogene Ausgabecodierung der Befehlszeile verwenden. ([C4](https://owasp.org/www-project-proactive-controls/#div-numbering))",✓,✓,✓,78, +V5,"Eingabeprüfung, die Bereinigung der Ausgaben und die Zeichencodierung",V5.3,Ausgabecodierung und Injektionsverhinderung,V5.3.9,"Prüfen Sie, dass die Anwendung vor Local File Inclusion (LFI)- oder Remote File Inclusion (RFI)-Angriffen schützt.",✓,✓,✓,829, +V5,"Eingabeprüfung, die Bereinigung der Ausgaben und die Zeichencodierung",V5.3,Ausgabecodierung und Injektionsverhinderung,V5.3.10,"Prüfen Sie, dass die Anwendung gegen XPath Injection- oder XML-Injection-Angriffe schützt. ([C4](https://owasp.org/www-project-proactive-controls/#div-numbering))",✓,✓,✓,643, +V5,"Eingabeprüfung, die Bereinigung der Ausgaben und die Zeichencodierung",V5.4,"Speicher, Strings und Unmanaged Code",V5.4.1,"Prüfen Sie, dass die Anwendung speichersichere Zeichenfolgen, sicherere Speicherkopien und sichere Zeigerarithmetik verwendet, um Stapel-, Puffer- oder Heapüberläufe zu erkennen oder zu verhindern.",,✓,✓,120, +V5,"Eingabeprüfung, die Bereinigung der Ausgaben und die Zeichencodierung",V5.4,"Speicher, Strings und Unmanaged Code",V5.4.2,"Prüfen Sie, dass Formatstrings keine potenziell feindliche Eingabe annehmen und konstant sind.",,✓,✓,134, +V5,"Eingabeprüfung, die Bereinigung der Ausgaben und die Zeichencodierung",V5.4,"Speicher, Strings und Unmanaged Code",V5.4.3,"Prüfen Sie, dass Zeichen-, Bereichs- und Eingabeprüfungstechniken verwendet werden, um Ganzzahlüberläufe zu verhindern.",,✓,✓,190, +V5,"Eingabeprüfung, die Bereinigung der Ausgaben und die Zeichencodierung",V5.5,Prävention von Deserialisierungsangriffen,V5.5.1,"Prüfen Sie, dass serialisierte Objekte Integritätsprüfungen verwenden oder verschlüsselt sind, um die Erstellung feindlicher Objekte oder die Manipulation von Daten zu verhindern. ([C5](https://owasp.org/www-project-proactive-controls/#div-numbering))",✓,✓,✓,502, +V5,"Eingabeprüfung, die Bereinigung der Ausgaben und die Zeichencodierung",V5.5,Prävention von Deserialisierungsangriffen,V5.5.2,"Prüfen Sie, dass XML-Parser nur die restriktivste Konfiguration verwenden und das unsichere Funktionen wie die Auflösung externer Entitäten deaktiviert sind, um XXE zu verhindern.",✓,✓,✓,611, +V5,"Eingabeprüfung, die Bereinigung der Ausgaben und die Zeichencodierung",V5.5,Prävention von Deserialisierungsangriffen,V5.5.3,"Prüfen Sie, dass die Deserialisierung nicht vertrauenswürdiger Daten sowohl im benutzerdefinierten Code als auch in Bibliotheken von Drittanbietern (wie JSON-, XML- und YAML-Parser) entweder verhindert oder gesichert wird.",✓,✓,✓,502, +V5,"Eingabeprüfung, die Bereinigung der Ausgaben und die Zeichencodierung",V5.5,Prävention von Deserialisierungsangriffen,V5.5.4,"Prüfen Sie, dass beim Parsen von JSON in Browsern oder JavaScript-basierten Backends JSON.parse zum Parsen des JSON-Dokuments verwendet wird. Verwenden Sie kein eval() zum Parsen von JSON.",✓,✓,✓,95, +V6,kryptographische Komponenten,V6.1,Datenklassifizierung,V6.1.1,"Prüfen Sie, dass sensible personenbezogene Daten, oder Daten, die unter andere gesetzliche Regelungen zur Vertraulichkeit fallen, verschlüsselt gespeichert werden.",,✓,✓,311, +V6,kryptographische Komponenten,V6.1,Datenklassifizierung,V6.1.2,"Prüfen Sie, dass Gesundheitsdaten, wie z. B. medizinische Aufzeichnungen, Details zu medizinischen Geräten oder deanonymisierte Forschungsaufzeichnungen, verschlüsselt gespeichert werden.",,✓,✓,311, +V6,kryptographische Komponenten,V6.1,Datenklassifizierung,V6.1.3,"Prüfen Sie, dass Finanzdaten, wie z.B. Konten, Zahlungsausfälle oder Kredithistorie, Steuerunterlagen, Lohnhistorie, Begünstigte oder deanonymisierte Markt- oder Forschungsaufzeichnungen verschlüsselt gespeichert werden.",,✓,✓,311, +V6,kryptographische Komponenten,V6.2,Algorithmen,V6.2.1,"Prüfen Sie, dass alle kryptografischen Module in einen sicheren Fehlerzustand fallen und Fehler so behandelt werden, dass keine Padding-Orakel-Angriffe möglich sind.",✓,✓,✓,310, +V6,kryptographische Komponenten,V6.2,Algorithmen,V6.2.2,"Prüfen Sie, dass allgemein anerkannte oder von der Regierung freigegebene kryptografische Algorithmen, Modi und Bibliotheken anstelle von Eigenentwicklungen verwendet werden. ([C8](https://owasp.org/www-project-proactive-controls/#div-numbering))",,✓,✓,327, +V6,kryptographische Komponenten,V6.2,Algorithmen,V6.2.3,"Prüfen Sie, dass der Initialisierungsvektoren, die Chiffrierkonfiguration und die Blockmodi gemäß den neuesten Empfehlungen sicher konfiguriert werden.",,✓,✓,326, +V6,kryptographische Komponenten,V6.2,Algorithmen,V6.2.4,"Prüfen Sie, dass Zufallszahlengeneratoren, Verschlüsselungs- oder Hashalgorithmen, Schlüssellängen, Runden, Chiffren oder Modi jederzeit rekonfiguriert, aktualisiert oder ausgetauscht werden können. ([C8](https://owasp.org/www-project-proactive-controls/#div-numbering))",,✓,✓,326, +V6,kryptographische Komponenten,V6.2,Algorithmen,V6.2.5,"Prüfen Sie, dass unsichere Blockmodi, wie ECB u.a., Padding-Modi, wie PKCS#1 v1.5 u.a., Algorithmen mit kleinen Blockgrößen, wie Triple-DES, Blowfish u.a., sowie schwache Hashalgorithmen, wie MD5, SHA1 u.a., nicht verwendet werden, es sei denn, dies ist aus Gründen der Rückwärtskompatibilität erforderlich.",,✓,✓,326, +V6,kryptographische Komponenten,V6.2,Algorithmen,V6.2.6,"Prüfen Sie, dass Nonces, Initialisierungsvektoren u. ä. nicht mehr als einmal mit einem bestimmten Verschlüsselungsschlüssel verwendet werden dürfen. Die Methode der Generierung muss für den verwendeten Algorithmus geeignet sein.",,✓,✓,326, +V6,kryptographische Komponenten,V6.2,Algorithmen,V6.2.7,"Prüfen Sie, dass verschlüsselte Daten mittels Signaturen, authentifizierte Chiffriermodi oder HMAC authentifiziert werden, um sicherzustellen, dass der Chiffriertext nicht von Unbefugten verändert wird.",,,✓,326, +V6,kryptographische Komponenten,V6.2,Algorithmen,V6.2.8,"Prüfen Sie, dass alle kryptografischen Operationen zeitkonstant sind und keine „Kurzschluss“-Operationen bei Vergleichen, Berechnungen oder Rückgaben stattfinden, um Informationslecks zu vermeiden.",,,✓,385, +V6,kryptographische Komponenten,V6.3,Zufallswerte,V6.3.1,"Prüfen Sie, dass alle Zufallszahlen, zufälligen Dateinamen, zufälligen GUIDs und Zufallszeichenfolgen mit einem anerkannten kryptografisch sicheren Zufallszahlengenerator generiert werden, wenn diese Zufallswerte für einen Angreifer nicht zu erraten sein sollen.",,✓,✓,338, +V6,kryptographische Komponenten,V6.3,Zufallswerte,V6.3.2,"Prüfen Sie, dass zufällige GUIDs mit dem GUID v4-Algorithmus und einem kryptografisch sicheren Zufallszahlengenerator erstellt werden. GUIDs, die mit anderen Zufallszahlengeneratoren erstellt wurden, können vorhersehbar sein.",,✓,✓,338, +V6,kryptographische Komponenten,V6.3,Zufallswerte,V6.3.3,"Prüfen Sie, dass die Zufallszahlen mit der richtigen Entropie erzeugt werden, auch wenn die Anwendung unter starker Belastung steht, oder dass die Anwendung unter solchen Umständen angemessen reagiert.",,,✓,338, +V6,kryptographische Komponenten,V6.4,Management von Schlüsseln und Geheimnissen,V6.4.1,"Prüfen Sie, dass eine Lösung für das Schlüsselmanagement, wie z.B. ein Schlüsseltresor, verwendet wird, um Geheimnisse sicher zu erstellen, zu speichern, die Nutzung zu kontrollieren und sie zu zerstören. ([C8](https://owasp.org/www-project-proactive-controls/#div-numbering))",,✓,✓,798, +V6,kryptographische Komponenten,V6.4,Management von Schlüsseln und Geheimnissen,V6.4.2,"Prüfen Sie, dass das Schlüsselmaterial nicht in der Anwendung genutzt wird sondern ein Sicherheitsmodul kryptographische Operationen ausführt. ([C8](https://owasp.org/www-project-proactive-controls/#div-numbering))",,✓,✓,320, +V7,Fehlerbehandlung und Protokollierung,V7.1,Protokollinhalt,V7.1.1,"Prüfen Sie, dass die Anwendung keine Anmeldeinformationen oder Zahlungsdetails protokolliert. Sessiontoken sollten nur in einer irreversiblen, gehashten Form in Protokollen gespeichert werden. ([C9, C10](https://owasp.org/www-project-proactive-controls/#div-numbering))",✓,✓,✓,532, +V7,Fehlerbehandlung und Protokollierung,V7.1,Protokollinhalt,V7.1.2,"Prüfen Sie, dass die Anwendung keine sonstigen sensiblen Daten protokolliert, die z. B. gemäß Datenschutzgesetzen oder den einschlägigen Sicherheitsrichtlinien als solche definiert werden. ([C9](https://owasp.org/www-project-proactive-controls/#div-numbering))",✓,✓,✓,532, +V7,Fehlerbehandlung und Protokollierung,V7.1,Protokollinhalt,V7.1.3,"Prüfen Sie, dass die Anwendung sicherheitsrelevante Ereignisse, einschließlich erfolgreicher und fehlgeschlagener Authentifizierungsereignisse, Fehler bei der Zugriffskontrolle, Deserialisierungsfehler und Fehler bei der Eingabeprüfung protokolliert. ([C5, C7](https://owasp.org/www-project-proactive-controls/#div-numbering))",,✓,✓,778, +V7,Fehlerbehandlung und Protokollierung,V7.1,Protokollinhalt,V7.1.4,"Prüfen Sie, dass jedes Protokollereignis die notwendigen Informationen enthält, um bei einem Vorfall eine detaillierte Untersuchung der Timeline zu ermöglichen. ([C9](https://owasp.org/www-project-proactive-controls/#div-numbering))",,✓,✓,778, +V7,Fehlerbehandlung und Protokollierung,V7.2,Protokollbearbeitung,V7.2.1,"Prüfen Sie, dass alle Authentifizierungsentscheidungen protokolliert werden, ohne dass sensible Sitzungstoken oder Passwörter gespeichert werden. Dies sollte auch die relevanten Metadaten umfassen, die für Sicherheitsuntersuchungen benötigt werden.",,✓,✓,778, +V7,Fehlerbehandlung und Protokollierung,V7.2,Protokollbearbeitung,V7.2.2,"Prüfen Sie, dass alle Authentifizierungen protokolliert werden können, und dass alle fehlgeschlagenen Versuche protokolliert werden. Dies sollte die relevanten Metadaten umfassen, die für Sicherheitsuntersuchungen benötigt werden.",,✓,✓,285, +V7,Fehlerbehandlung und Protokollierung,V7.3,Schutz von Protokollen,V7.3.1,"Prüfen Sie, dass alle Komponenten Daten angemessen codieren, um Log-Injektions-Angriffe zu verhindern. ([C9](https://owasp.org/www-project-proactive-controls/#div-numbering))",,✓,✓,117, +V7,Fehlerbehandlung und Protokollierung,V7.3,Schutz von Protokollen,V7.3.2,"[GELÖSCHT, DUPLIKAT VON 7.3.1]",,,,, +V7,Fehlerbehandlung und Protokollierung,V7.3,Schutz von Protokollen,V7.3.3,"Prüfen Sie, dass die Protokolle vor unbefugtem Zugriff und Änderungen geschützt werden. ([C9](https://owasp.org/www-project-proactive-controls/#div-numbering))",,✓,✓,200, +V7,Fehlerbehandlung und Protokollierung,V7.3,Schutz von Protokollen,V7.3.4,"Prüfen Sie, dass die Zeitquellen mit der richtigen Zeit und Zeitzone synchronisiert sind. Erwägen Sie ernsthaft die Protokollierung ausschließlich in UTC, wenn die Systeme global sind, damit die forensische Analyse nach dem Vorfall unterstützt wird. ([C9](https://owasp.org/www-project-proactive-controls/#div-numbering))",,✓,✓,, +V7,Fehlerbehandlung und Protokollierung,V7.4,Fehlerbehandlung,V7.4.1,"Prüfen Sie, dass bei Auftreten eines unerwarteten oder sicherheitsrelevanten Fehlers eine generische Meldung angezeigt wird. Ggf. kann die Meldung eine ID enthalten, die dem Supportpersonal die Untersuchung erleichtert. ([C10](https://owasp.org/www-project-proactive-controls/#div-numbering))",✓,✓,✓,210, +V7,Fehlerbehandlung und Protokollierung,V7.4,Fehlerbehandlung,V7.4.2,"Prüfen Sie, dass die Ausnahmebehandlung in der gesamten Codebasis verwendet wird, um erwartete und unerwartete Fehlerbedingungen zu berücksichtigen. ([C10](https://owasp.org/www-project-proactive-controls/#div-numbering))",,✓,✓,544, +V7,Fehlerbehandlung und Protokollierung,V7.4,Fehlerbehandlung,V7.4.3,"Prüfen Sie, dass ein Fehlerbehandlungsdienst der letzten Instanz definiert ist, der alle nicht behandelten Ausnahmen abfängt. ([C10](https://owasp.org/www-project-proactive-controls/#div-numbering))",,✓,✓,431, +V8,Schutz von Informationen,V8.1,Allgemeines,V8.1.1,"Prüfen Sie, dass die Anwendung sensible Daten davor schützt, in Serverkomponenten wie Loadbalancern, Proxies u.ä. zwischengespeichert zu werden.",,✓,✓,524, +V8,Schutz von Informationen,V8.1,Allgemeines,V8.1.2,"Prüfen Sie, dass alle serverseitigen temporären Kopien sensibler Daten vor unbefugtem Zugriff geschützt oder nach dem Zugriff des autorisierten Benutzers auf die sensiblen Daten bereinigt/invalidiert werden.",,✓,✓,524, +V8,Schutz von Informationen,V8.1,Allgemeines,V8.1.3,"Prüfen Sie, dass die Anwendung die Anzahl der Parameter in einer Anfrage, wie z.B. versteckte Felder, Ajax-Variablen, Cookies und Header-Werte minimiert.",,✓,✓,233, +V8,Schutz von Informationen,V8.1,Allgemeines,V8.1.4,"Prüfen Sie, dass die Anwendung eine abnormale Anzahl von Anfragen, z.B. nach IP, Benutzer, Gesamtzahl pro Stunde oder Tag o. ä., erkennt und Alarm auslöst.",,✓,✓,770, +V8,Schutz von Informationen,V8.1,Allgemeines,V8.1.5,"Prüfen Sie, dass wichtige Daten regelmäßig gesichert werden und dass die Wiederherstellung regelmäßig geübt wird.",,,✓,19, +V8,Schutz von Informationen,V8.1,Allgemeines,V8.1.6,"Prüfen Sie, dass die Backups sicher aufbewahrt werden, um zu verhindern, dass Daten gestohlen oder verfälscht werden.",,,✓,19, +V8,Schutz von Informationen,V8.2,Clientseitiger Schutz,V8.2.1,"Prüfen Sie, dass die Anwendung Anti-Caching Header sendet, damit sensible Daten in modernen Browsern nicht zwischengespeichert werden.",✓,✓,✓,525, +V8,Schutz von Informationen,V8.2,Clientseitiger Schutz,V8.2.2,"Prüfen Sie, dass die im clientseitigen Speicher (z. B. lokaler HTML5-Speicher, Sitzungsspeicher, IndexedDB oder Cookies) gespeicherten Daten keine sensiblen Daten enthalten.",✓,✓,✓,922, +V8,Schutz von Informationen,V8.2,Clientseitiger Schutz,V8.2.3,"Prüfen Sie, dass authentifizierte Daten aus dem clientseitigem Speicher, z. B. dem Browser-DOM, gelöscht werden, nachdem der Client geschlossen oder die Sitzung beendet wurde.",✓,✓,✓,922, +V8,Schutz von Informationen,V8.3,Personenbezogene Daten,V8.3.1,"Prüfen Sie, dass sensible Daten im HTTP-Textkörper oder in Headern an den Server gesendet werden, und dass die Query-String-Parameter aller HTTP-Requests keine sensiblen Daten enthalten.",✓,✓,✓,319, +V8,Schutz von Informationen,V8.3,Personenbezogene Daten,V8.3.2,"Prüfen Sie, dass die Benutzer ihre Daten bei Bedarf entfernen oder exportieren können.",✓,✓,✓,212, +V8,Schutz von Informationen,V8.3,Personenbezogene Daten,V8.3.3,"Prüfen Sie, dass die Benutzer in verständlicher Sprache über die Erfassung und Verwendung der bereitgestellten personenbezogenen Daten informiert werden und dass die Benutzer ihr Einverständnis zur Verwendung dieser Daten gegeben haben, bevor diese verwendet werden.",✓,✓,✓,285, +V8,Schutz von Informationen,V8.3,Personenbezogene Daten,V8.3.4,"Prüfen Sie, dass alle von der Anwendung erstellten und verarbeiteten personenbezogenen Daten identifiziert wurden und dass eine Regelung für den Umgang mit diesen Daten vorhanden ist. ([C8](https://owasp.org/www-project-proactive-controls/#div-numbering))",✓,✓,✓,200, +V8,Schutz von Informationen,V8.3,Personenbezogene Daten,V8.3.5,"Prüfen Sie, dass bei Zugriff auf personenbezogene Daten geprüft wird - ohne die Daten selbst zu protokollieren - ob die Daten gemäß den einschlägigen Datenschutzrichtlinien erfasst werden oder ob eine Protokollierung des Zugriffs erforderlich ist.",,✓,✓,532, +V8,Schutz von Informationen,V8.3,Personenbezogene Daten,V8.3.6,"Prüfen Sie, dass die im Speicher enthaltenen Informationen überschrieben werden, sobald sie nicht mehr benötigt werden, um Memory-Dump-Angriffe abzuschwächen.",,✓,✓,226, +V8,Schutz von Informationen,V8.3,Personenbezogene Daten,V8.3.7,"Prüfen Sie, dass zu verschlüsselnde Informationen mit anerkannten Algorithmen verschlüsselt werden, die sowohl Vertraulichkeit als auch Integrität gewährleisten. ([C8](https://owasp.org/www-project-proactive-controls/#div-numbering))",,✓,✓,327, +V8,Schutz von Informationen,V8.3,Personenbezogene Daten,V8.3.8,"Prüfen Sie, dass personenbezogene Daten in Bezug auf die Datenspeicherung klassifiziert werden, so dass alte oder veraltete Daten automatisch, nach einem Zeitplan oder je nach Situation gelöscht werden können.",,✓,✓,285, +V9,Kommunikation,V9.1,Kommunikationssicherheit des Clients,V9.1.1,"Prüfen Sie, dass der Client stets TLS-Verbindungen verwendet, das nicht auf unsichere oder unverschlüsselte Konfigurationen zurückfallen. ([C8](https://owasp.org/www-project-proactive-controls/#div-numbering))",✓,✓,✓,319, +V9,Kommunikation,V9.1,Kommunikationssicherheit des Clients,V9.1.2,"Prüfen Sie mit aktuellen TLS-Testtools, dass nur starke Algorithmen und Protokolle genutzt werden. Dabei sind die stärksten Algorithmen und neuesten Protokollversionen zu bevorzugen.",✓,✓,✓,326, +V9,Kommunikation,V9.1,Kommunikationssicherheit des Clients,V9.1.3,"Prüfen Sie, dass nur die aktuell empfohlenen Versionen der TLS-Protokolle, also TLS 1.2 und TLS 1.3, genutzt werden. Die neueste Version ist dabei zu bevorzugen.",✓,✓,✓,326, +V9,Kommunikation,V9.2,Sicherheit der Serverkommunikation,V9.2.1,"Prüfen Sie, dass Verbindungen zum und vom Server vertrauenswürdige TLS-Zertifikate verwenden. Werden intern generierte oder selbstsignierte Zertifikate verwendet, muss der Server so konfiguriert werden, dass er nur bestimmten internen CAs vertraut. Alle anderen müssen abgelehnt werden.",,✓,✓,295, +V9,Kommunikation,V9.2,Sicherheit der Serverkommunikation,V9.2.2,"Prüfen Sie, dass eine verschlüsselte Kommunikation wie TLS für alle ein- und ausgehenden Verbindungen, einschließlich für Managementports, Überwachung, Authentifizierung, API- oder Webservicecalls, Datenbank-, Cloud-, serverlose, Mainframe-, externe und Partnerverbindungen verwendet wird. Der Server darf nicht auf unsichere oder unverschlüsselte Protokolle zurückgreifen.",,✓,✓,319, +V9,Kommunikation,V9.2,Sicherheit der Serverkommunikation,V9.2.3,"Prüfen Sie, dass alle verschlüsselten Verbindungen zu externen Systemen, die sensible Informationen oder Funktionen beinhalten, authentifiziert sind.",,✓,✓,287, +V9,Kommunikation,V9.2,Sicherheit der Serverkommunikation,V9.2.4,"Prüfen Sie, dass eine ordnungsgemäßer Zertifikatssperre wie z. B. das Online Certificate Status Protocol Stapling aktiviert und konfiguriert ist.",,✓,✓,299, +V9,Kommunikation,V9.2,Sicherheit der Serverkommunikation,V9.2.5,"Prüfen Sie, dass TLS-Verbindungsfehler in das Backend protokolliert werden.",,,✓,544, +V10,Bösartiger Code,V10.1,Kontrollen der Code-Integrität,V10.1.1,"Prüfen Sie, dass ein Codeanalyse-Tool verwendet wird, das potenziell bösartigen Code, wie Zeitfunktionen, unsichere Dateioperationen und Netzwerkverbindungen erkennen kann.",,,✓,749, +V10,Bösartiger Code,V10.2,Suche nach bösartigem Code,V10.2.1,"Prüfen Sie, dass der Quellcode der Anwendung und die Bibliotheken von Drittanbietern keine Möglichkeiten zum Phone Home oder zur Datenerfassung enthalten. Wenn solche Funktionen vorhanden sind, holen Sie die Erlaubnis des Benutzers ein, bevor Daten gesammelt werden.",,✓,✓,359, +V10,Bösartiger Code,V10.2,Suche nach bösartigem Code,V10.2.2,"Prüfen Sie, dass die Anwendung keine unnötigen oder übermäßigen Genehmigungen für datenschutzrelevante Funktionen oder Sensoren wie Kontakte, Kameras, Mikrofone oder Standorte verlangt.",,✓,✓,272, +V10,Bösartiger Code,V10.2,Suche nach bösartigem Code,V10.2.3,"Prüfen Sie, dass der Quellcode der Anwendung und die Bibliotheken von Drittanbietern keine Hintertüren enthalten, wie z. B. hartcodierte oder zusätzliche undokumentierte Konten oder Schlüssel, Codeverschleierung, undokumentierte Binärblobs, Rootkits oder Anti-Debugging, unsichere Debuggingfunktionen oder andere veraltete, unsichere oder versteckte Funktionen, die bei Entdeckung böswillig verwendet werden könnten.",,,✓,507, +V10,Bösartiger Code,V10.2,Suche nach bösartigem Code,V10.2.4,"Prüfen Sie, dass der Quellcode der Anwendung und die Bibliotheken von Drittanbietern keine Zeitbomben enthalten, wenn sie nach datums- und zeitbezogenen Funktionen suchen.",,,✓,511, +V10,Bösartiger Code,V10.2,Suche nach bösartigem Code,V10.2.5,"Prüfen Sie, dass der Quellcode der Anwendung und die Bibliotheken von Drittanbietern keinen bösartigen Code wie Salamitaktik-Angriffe, logische Umgehungen oder Logikbomben enthalten.",,,✓,511, +V10,Bösartiger Code,V10.2,Suche nach bösartigem Code,V10.2.6,"Prüfen Sie, dass der Quellcode der Anwendung und die Bibliotheken von Drittanbietern keine Ostereier oder andere unerwünschte Funktionen enthalten.",,,✓,507, +V10,Bösartiger Code,V10.3,Integrität der Anwendung,V10.3.1,"Prüfen Sie, dass Updates über sichere Kanäle bezogen und digital signiert werden müssen, wenn die Anwendung über eine automatische Client- oder Server Updatefunktion verfügt. Die digitale Signatur des Updates muss validiert werden, bevor das Update installiert wird.",✓,✓,✓,16, +V10,Bösartiger Code,V10.3,Integrität der Anwendung,V10.3.2,"Prüfen Sie, dass die Anwendung einen Integritätsschutz, wie Code Signing oder Subresource Integrity verwendet. Die Anwendung darf keinen Code aus nicht vertrauenswürdigen Quellen laden oder ausführen, wie z. B. das Laden von Includes, Modulen, Plugins, Codes oder Bibliotheken aus nicht vertrauenswürdigen Quellen oder dem Internet.",✓,✓,✓,353, +V10,Bösartiger Code,V10.3,Integrität der Anwendung,V10.3.3,"Prüfen Sie, ob die Anwendung Schutz vor der Übernahme von Subdomänen bietet, wenn die Anwendung auf DNS-Einträge oder DNS-Subdomänen angewiesen ist, z. B. abgelaufene Domänennamen, veraltete DNS-Pointer oder CNAMEs, abgelaufene Projekte in öffentlichen Quellcoderepositories oder vorübergehende Cloud-APIs, serverlose Funktionen oder Storage Buckets (autogen-bucket-id.cloud.example.com) oder Ähnliches. Die von den Anwendungen verwendeten DNS-Namen sind regelmäßig auf Ablauf oder Änderung zu überprüfen.",✓,✓,✓,350, +V11,Fachliche Funktionalität,V11.1,Sicherheit der fachlichen Funktionen,V11.1.1,"Prüfen Sie, dass die Anwendung nur Geschäftslogikflüsse für denselben Benutzer in sequentieller Schrittfolge und ohne das Überspringen von Schritten verarbeitet.",✓,✓,✓,841, +V11,Fachliche Funktionalität,V11.1,Sicherheit der fachlichen Funktionen,V11.1.2,"Prüfen Sie, dass die Anwendung nur Abläufe der Geschäftslogik verarbeitet, wenn alle Schritte in realistischer menschlicher Zeit bearbeitet werden, d.h. die Transaktionen werden nicht zu schnell durch automatisierte Angreifer eingereicht.",✓,✓,✓,799, +V11,Fachliche Funktionalität,V11.1,Sicherheit der fachlichen Funktionen,V11.1.3,"Prüfen Sie, dass die Anwendung über angemessene Grenzen für bestimmte Geschäftsaktionen oder Transaktionen verfügt, die für jeden Benutzer korrekt durchgesetzt werden.",✓,✓,✓,770, +V11,Fachliche Funktionalität,V11.1,Sicherheit der fachlichen Funktionen,V11.1.4,"Prüfen Sie, dass die Anwendung über ausreichende Maßnahmen gegen automatische Nutzung verfügt, um Datenausleitung, übermäßige Anforderungen an die Geschäftslogik, übermäßige Dateiuploads oder DoS-Angriffe zu erkennen und sich dagegen zu schützen.",✓,✓,✓,770, +V11,Fachliche Funktionalität,V11.1,Sicherheit der fachlichen Funktionen,V11.1.5,"Prüfen Sie, ob die Anwendung Grenzen der Geschäftslogik oder eine Validierung zum Schutz vor wahrscheinlichen Geschäftsrisiken oder Bedrohungen aufweist, die mit Hilfe von Threat Modeling oder ähnlichen Methoden ermittelt wurden.",✓,✓,✓,841, +V11,Fachliche Funktionalität,V11.1,Sicherheit der fachlichen Funktionen,V11.1.6,"Prüfen Sie, dass die Anwendung nicht unter TOCTOU oder anderen Raceconditions für sensible Operationen leidet.",,✓,✓,367, +V11,Fachliche Funktionalität,V11.1,Sicherheit der fachlichen Funktionen,V11.1.7,"Prüfen Sie die Anwendungsmonitore auf ungewöhnliche Ereignisse oder Aktivitäten aus der Sicht der Geschäftslogik. Zum Beispiel auf Versuche, Aktionen durchzuführen, die außerhalb der Reihe sind, oder Aktionen, die ein normaler Benutzer niemals versuchen würde. ([C9](https://owasp.org/www-project-proactive-controls/#div-numbering))",,✓,✓,754, +V11,Fachliche Funktionalität,V11.1,Sicherheit der fachlichen Funktionen,V11.1.8,"Prüfen Sie, dass die Anwendung über konfigurierbare Web Warnmeldungen verfügt, wenn automatisierte Angriffe oder ungewöhnliche Aktivitäten entdeckt werden.",,✓,✓,390, +V12,Dateien und andere Ressourcen,V12.1,Dateiupload,V12.1.1,"Prüfen Sie, dass die Anwendung keine großen Dateien akzeptiert, die den Speicher füllen oder einen DoS-Angriff verursachen könnten.",✓,✓,✓,400, +V12,Dateien und andere Ressourcen,V12.1,Dateiupload,V12.1.2,"Prüfen Sie, dass die Anwendung gepackte Formate, wie z.B. zip, gz, docx oder odt vor dem Entpacken auf die maximal zulässige Filegröße und die maximale Anzahl Dateien überprüft.",,✓,✓,409, +V12,Dateien und andere Ressourcen,V12.1,Dateiupload,V12.1.3,"Prüfen Sie, dass die Dateigröße und die maximale Anzahl von Dateien pro Benutzer limitiert wird, um sicherzustellen, dass ein einzelner Benutzer den Speicher nicht mit zu vielen oder übermäßig großen Dateien füllen kann.",,✓,✓,770, +V12,Dateien und andere Ressourcen,V12.2,Dateiintegrität,V12.2.1,"Prüfen Sie, dass Dateien aus nicht vertrauenswürdigen Quellen sowohl auf der Grundlage des Dateiinhalts als auch des erwarteten Typs validiert werden.",,✓,✓,434, +V12,Dateien und andere Ressourcen,V12.3,Ausführbare Dateien,V12.3.1,"Prüfen Sie, dass die vom Benutzer eingereichten Metadaten der Dateinamen nicht direkt vom Filesystem des Betriebssystems oder des Frameworks genutzt werden. Weiterhin ist eine URL-API zu verwenden, um vor Path Traversal zu schützen.",✓,✓,✓,22, +V12,Dateien und andere Ressourcen,V12.3,Ausführbare Dateien,V12.3.2,"Prüfen Sie, dass die vom Benutzer eingereichten Metadaten der Dateinamen validiert oder ignoriert werden, um die Offenlegung, Erstellung, Aktualisierung oder Entfernung lokaler Dateien zu verhindern.",✓,✓,✓,73, +V12,Dateien und andere Ressourcen,V12.3,Ausführbare Dateien,V12.3.3,"Prüfen Sie, dass die vom Benutzer eingereichten Metadaten der Dateinamen validiert oder ignoriert werden, um die Offenlegung oder Ausführung von serverseitigen Dateien via Remote File Inclusion (RFI) oder Serverside Request Forgery (SSRF) Angriffen zu verhindern.",✓,✓,✓,98, +V12,Dateien und andere Ressourcen,V12.3,Ausführbare Dateien,V12.3.4,"Prüfen Sie, dass die Anwendung vor Reflective File Download (RFD) schützt, indem sie die vom Benutzer eingereichten Dateinamen in einem JSON-, JSONP- oder URL-Parameter validiert oder ignoriert. Der Content-Type Header der Antwort muss auf text/plain gesetzt werden, und der Content-Disposition Header muss einen festen Dateinamen haben.",✓,✓,✓,641, +V12,Dateien und andere Ressourcen,V12.3,Ausführbare Dateien,V12.3.5,"Prüfen Sie, dass nicht vertrauenswürdige Dateimetadaten nicht direkt mit der System-API oder Bibliotheken verwendet werden, um vor OS Command Injection zu schützen.",✓,✓,✓,78, +V12,Dateien und andere Ressourcen,V12.3,Ausführbare Dateien,V12.3.6,"Prüfen Sie, dass die Anwendung keine Funktionen aus nicht vertrauenswürdigen Quellen, wie z. B. nicht verifizierte Inhaltsverteilungsnetzwerke, JavaScript-Bibliotheken, node npm-Bibliotheken oder serverseitige DLLs, enthält und ausführt.",,✓,✓,829, +V12,Dateien und andere Ressourcen,V12.4,Speicherung von Dateien,V12.4.1,"Prüfen Sie, dass Dateien aus nicht vertrauenswürdigen Quellen mit eingeschränkten Berechtigungen und vorzugsweise mit starker Validierung außerhalb des Webroots gespeichert werden.",✓,✓,✓,552, +V12,Dateien und andere Ressourcen,V12.4,Speicherung von Dateien,V12.4.2,"Prüfen Sie, dass Dateien aus nicht vertrauenswürdigen Quellen von Antivirenscannern gescannt werden, um das Hochladen bekannter bösartiger Inhalte zu verhindern.",✓,✓,✓,509, +V12,Dateien und andere Ressourcen,V12.5,Download von Dateien,V12.5.1,"Prüfen Sie, dass die Webschicht so konfiguriert ist, dass nur Dateien mit bestimmten Dateierweiterungen bedient werden, um unbeabsichtigte Informations- und Quellcodelecks zu vermeiden. Beispielsweise sollten Sicherungsdateien (z.B. .bak), temporäre Arbeitsdateien (z.B. .swp), komprimierte Dateien (.zip, .tar, .gz, usw.) und andere von den Editoren üblicherweise verwendete Erweiterungen blockiert werden, sofern sie nicht erforderlich sind.",✓,✓,✓,552, +V12,Dateien und andere Ressourcen,V12.5,Download von Dateien,V12.5.2,"Prüfen Sie, dass direkte Anfragen an hochgeladene Dateien niemals als HTML/JavaScript-Inhalt ausgeführt werden.",✓,✓,✓,434, +V12,Dateien und andere Ressourcen,V12.6,SSRF-Schutz,V12.6.1,"Prüfen Sie, dass der Web- oder Anwendungsserver mit einer Whitelist von Ressourcen oder Systemen konfiguriert ist, an die der Server Anfragen senden oder Daten/Dateien laden kann.",✓,✓,✓,918, +V13,API and Web Service,V13.1,Allgemeine Sicherheit von Web Services ,V13.1.1,"Prüfen Sie, dass alle Komponenten die gleichen Parser und (Zeichen-)Codierungen nutzen, um Angriffe auf Basis unterschiedlichen URI- oder File-Parsings, wie SSRF oder RFI, zu verhindern.",✓,✓,✓,116, +V13,API and Web Service,V13.1,Allgemeine Sicherheit von Web Services ,V13.1.2,"[GELÖSCHT, DUPLIKAT VON 4.3.1]",,,,, +V13,API and Web Service,V13.1,Allgemeine Sicherheit von Web Services ,V13.1.3,"Prüfen Sie, dass API-URLs keine sensiblen Informationen wie den API-Schlüssel, Sessiontoken, etc. preisgeben.",✓,✓,✓,598, +V13,API and Web Service,V13.1,Allgemeine Sicherheit von Web Services ,V13.1.4,"Prüfen Sie, dass Berechtigungsentscheidungen sowohl an der URI, umgesetzt durch programmatische oder deklarative Sicherheit am Controller oder Router, als auch auf der Ressourcenebene, umgesetzt durch modellbasierte Berechtigungen, getroffen werden.",,✓,✓,285, +V13,API and Web Service,V13.1,Allgemeine Sicherheit von Web Services ,V13.1.5,"Prüfen Sie, dass Anfragen mit unerwarteten oder fehlenden Inhaltstypen mit entsprechenden Headern zurückgewiesen werden (HTTP-Antwortstatus 406 oder 415).",,✓,✓,434, +V13,API and Web Service,V13.2,RESTful Web Services,V13.2.1,"Prüfen Sie, dass aktivierte RESTful-HTTP-Methoden eine gültige Wahl für den Benutzer oder eine Aktion sind, wie z.B. verhindern, dass normale Benutzer DELETE oder PUT auf geschützte API oder Ressourcen anwenden.",✓,✓,✓,650, +V13,API and Web Service,V13.2,RESTful Web Services,V13.2.2,"Prüfen Sie, dass die JSON-Schemavalidierung vorhanden und verifiziert ist, bevor Sie eine Eingabe akzeptieren.",✓,✓,✓,20, +V13,API and Web Service,V13.2,RESTful Web Services,V13.2.3,"Prüfen Sie, dass RESTful-Webdienste, die Cookies verwenden, durch die Verwendung von mindestens einem oder mehrerer der folgenden Verfahren vor Cross Site Request Forgery geschützt sind: Double Submit Cookie Pattern, CSRF-Nonces oder Prüfungen des Origin-Request Headers.",✓,✓,✓,352, +V13,API and Web Service,V13.2,RESTful Web Services,V13.2.4,"[GELÖSCHT, DUPLIKAT VON 11.1.4]",,,,, +V13,API and Web Service,V13.2,RESTful Web Services,V13.2.5,"Prüfen Sie, dass die REST-Dienste explizit prüfen, ob der eingehende Contenttyp der erwartete ist, z.B. application/xml oder application/json.",,✓,✓,436, +V13,API and Web Service,V13.2,RESTful Web Services,V13.2.6,"Prüfen Sie, dass die Message Header und die Nutzdaten vertrauenswürdig sind und während der Übertragung nicht verändert werden. Die Anforderung einer starken Verschlüsselung für den Transport (nur TLS) kann in vielen Fällen ausreichend sein, da sie sowohl die Vertraulichkeit als auch den Schutz der Integrität gewährleistet. Digitale Signaturen pro Nachricht können bei Hochsicherheitsanwendungen für zusätzliche Sicherheit beim Transportschutz sorgen, bringen aber zusätzliche Komplexität und Risiken mit sich, die gegen die Vorteile abzuwägen sind.",,✓,✓,345, +V13,API and Web Service,V13.3,SOAP Web Service,V13.3.1,"Prüfen Sie, dass vor der Verarbeitung von Eingabedaten zuerst eine XSD-Schemavalidierung stattfindet, um ein korrekt geformtes XML-Dokument zu gewährleisten, gefolgt von der Validierung jedes Eingabefeldes.",✓,✓,✓,20, +V13,API and Web Service,V13.3,SOAP Web Service,V13.3.2,"Prüfen Sie, dass die Nutzdaten der Nachricht mit WS-Security signiert sind, um einen zuverlässigen Transport zwischen Client und Service zu gewährleisten.",,✓,✓,345, +V13,API and Web Service,V13.4,GraphQL,V13.4.1,"Prüfen Sie, dass eine Query Whitelist oder eine Kombination von Begrenzung der Tiefe und Anzahl verwendet werden sollte, um einen DoS-Angriff von GraphQL oder Datenschichtausdrücken als Folge teurer, verschachtelter Abfragen zu verhindern. Für fortgeschrittenere Szenarien sollte die Abfragekostenanalyse verwendet werden.",,✓,✓,770, +V13,API and Web Service,V13.4,GraphQL,V13.4.2,"Prüfen Sie, dass die Berechtigungen für die Datenschicht, z.B. GraphQL, in der Geschäftslogikschicht anstelle der Datenschicht umgesetzt ist.",,✓,✓,285, +V14,Konfiguration,V14.1,Build- und Deployprozess,V14.1.1,"Prüfen Sie, dass die Build- und Deploymentprozesse auf sichere und wiederholbare Weise durchgeführt werden, z. B. durch CI-/CD-Automatisierung, automatisiertes Konfigurationsmanagement und automatisierte Deploymentskripte.",,✓,✓,, +V14,Konfiguration,V14.1,Build- und Deployprozess,V14.1.2,"Prüfen Sie, dass die Compilerflags so konfiguriert sind, dass sie alle verfügbaren Pufferüberlaufschutzmechanismen und Warnungen aktivieren, einschließlich der Stackrandomisierung, der Verhinderung der Datenausführung und des Buildabbruchs, wenn ein(e) unsichere(r) Pointer, Speicher, Formatstring, Integer- oder Stringoperationen gefunden wird.",,✓,✓,120, +V14,Konfiguration,V14.1,Build- und Deployprozess,V14.1.3,"Prüfen Sie, dass die Serverkonfiguration gemäß den Empfehlungen des verwendeten Anwendungsservers und Frameworks gehärtet wird.",,✓,✓,16, +V14,Konfiguration,V14.1,Build- und Deployprozess,V14.1.4,"Prüfen Sie, dass die Anwendung, die Konfiguration und alle Abhängigkeiten mit Hilfe automatisierter Deploymentskripte wieder installiert werden können, indem sie innerhalb eines angemessenen Zeitraums aus einem dokumentierten und getesteten Runbook erstellt oder aus Backups zeitnah wiederhergestellt werden können.",,✓,✓,, +V14,Konfiguration,V14.1,Build- und Deployprozess,V14.1.5,"Prüfen Sie, dass autorisierte Administratoren die Integrität aller sicherheitsrelevanten Konfigurationen überprüfen können, um Manipulationen zu erkennen.",,,✓,, +V14,Konfiguration,V14.2,Management von Abhängigkeiten,V14.2.1,"Prüfen Sie, dass alle Komponenten auf dem neuesten Stand sind, am besten mit einem Abhängigkeitsprüfer zur Build- oder Kompilierzeit. ([C2](https://owasp.org/www-project-proactive-controls/#div-numbering))",✓,✓,✓,1026, +V14,Konfiguration,V14.2,Management von Abhängigkeiten,V14.2.2,"Prüfen Sie, dass alle nicht benötigten Funktionen, Dokumentationen, Beispiele und Konfigurationen entfernt werden.",✓,✓,✓,1002, +V14,Konfiguration,V14.2,Management von Abhängigkeiten,V14.2.3,"Prüfen Sie, dass die Integrität externen Inhaltes durch Subresource Integrity (SRI) überprüft wird, wenn Anwendungsassets wie JavaScript-Bibliotheken, CSS oder Web-Fonts extern, z.B. bei einem Content Delivery Network oder bei einem externen Anbieter, gehostet werden.",✓,✓,✓,829, +V14,Konfiguration,V14.2,Management von Abhängigkeiten,V14.2.4,"Prüfen Sie, dass Komponenten Dritter aus bekannten, vertrauenswürdigen und kontinuierlich gepflegten Repositories stammen. ([C2](https://owasp.org/www-project-proactive-controls/#div-numbering))",,✓,✓,829, +V14,Konfiguration,V14.2,Management von Abhängigkeiten,V14.2.5,"Prüfen Sie, dass eine Softwarestückliste (Bill of Materials, SBOM) aller genutzten Bibliotheken von Drittanbietern geführt wird. ([C2](https://owasp.org/www-project-proactive-controls/#div-numbering))",,✓,✓,, +V14,Konfiguration,V14.2,Management von Abhängigkeiten,V14.2.6,"Prüfen Sie, dass die Angriffsfläche durch Sandboxing oder Einkapselung von Bibliotheken von Drittanbietern reduziert wird, damit die Anwendung nur die erforderliche Funktionalität erhält. ([C2](https://owasp.org/www-project-proactive-controls/#div-numbering))",,✓,✓,265, +V14,Konfiguration,V14.3,Offenlegung von Informationen,V14.3.1,"[GELÖSCHT, DUPLIKAT VON 7.4.1]",,,,, +V14,Konfiguration,V14.3,Offenlegung von Informationen,V14.3.2,"Prüfen Sie, dass die Debugmodi von Web- und Anwendungsserver sowie Anwendungsframework in der Produktion deaktiviert sind, um Sicherheitslücken durch Debugfunktionen oder Entwicklerkonsolen zu vermeiden.",✓,✓,✓,497, +V14,Konfiguration,V14.3,Offenlegung von Informationen,V14.3.3,"Prüfen Sie, dass die HTTP-Header und HTTP-Antworten keine detaillierten Versionsinformationen von Systemkomponenten enthalten.",✓,✓,✓,200, +V14,Konfiguration,V14.4,HTTP Security Header,V14.4.1,"Prüfen Sie, dass jede HTTP-Antwort einen Content Type Header enthält. Für die Content types text/*, /+xml oder application/xml sollten ein sicherer Zeichensatz (z. B. UTF-8, ISO 8859-1) angeben sein. Der Inhalt muss zum angegebenen Content Type Header passen.",✓,✓,✓,173, +V14,Konfiguration,V14.4,HTTP Security Header,V14.4.2,"Prüfen Sie, dass alle API-Antworten die Content-Disposition: attachment; filename=„api.json“ Header oder einen anderen geeigneten Dateinamen für den Inhaltstyp enthalten.",✓,✓,✓,116, +V14,Konfiguration,V14.4,HTTP Security Header,V14.4.3,"Prüfen Sie, dass ein Content Security Policy (CSP) Response Header vorhanden ist, die dazu beiträgt, die Auswirkungen von XSS-Angriffen wie HTML-, DOM-, JSON- und JavaScript-Injektionsschwachstellen abzuschwächen.",✓,✓,✓,1021, +V14,Konfiguration,V14.4,HTTP Security Header,V14.4.4,"Prüfen Sie, dass alle Antworten X-Content-Type-Optionen: nosniff Header enthalten.",✓,✓,✓,116, +V14,Konfiguration,V14.4,HTTP Security Header,V14.4.5,"Prüfen Sie, dass ein HTTP Strict-Transport-Security Header in allen Antworten und für alle Unterdomänen enthalten ist, z. B. Strict-Transport-Security: max-age=15724800; includeSubdomains.",✓,✓,✓,523, +V14,Konfiguration,V14.4,HTTP Security Header,V14.4.6,"Prüfen Sie, dass ein geeigneter Referrer-Policy Header enthalten ist, um das Veröffentlichen sensibler Informationen über den Referer Header zu vermeiden.",✓,✓,✓,116, +V14,Konfiguration,V14.4,HTTP Security Header,V14.4.7,"Prüfen Sie, dass der Inhalt einer Webanwendung nicht standardmäßig in Seiten Dritter eingebunden werden kann. Das Einbinden der exakten Ressourcen ist nur erlaubt, wenn nötig. Dabei sind passende Content-Security-Policy: frame-ancestors und X-Frame-Options Response Header zu nutzen.",✓,✓,✓,1021, +V14,Konfiguration,V14.5,Prüfung der HTTP Request Header,V14.5.1,"Prüfen Sie, dass der Anwendungsserver nur die von der Anwendung oder der API verwendeten HTTP-Methoden akzeptiert, einschließlich der Pre-Flight-OPTIONS. Alle ungültigen Request sollten ins Log geschrieben werden oder einen Alarm auslösen.",✓,✓,✓,749, +V14,Konfiguration,V14.5,Prüfung der HTTP Request Header,V14.5.2,"Prüfen Sie, dass der bereitgestellte Origin Header nicht für Authentifizierungs- oder Zugriffskontrollentscheidungen verwendet wird, da der Origin Header von einem Angreifer leicht geändert werden kann.",✓,✓,✓,346, +V14,Konfiguration,V14.5,Prüfung der HTTP Request Header,V14.5.3,"Prüfen Sie, dass der CORS-Access-Control-Allow-Origin Header eine strikte Whitelist mit vertrauenswürdigen Domains verwendet und den „Null“-Ursprung nicht unterstützt.",✓,✓,✓,346, +V14,Konfiguration,V14.5,Prüfung der HTTP Request Header,V14.5.4,"Prüfen Sie, dass HTTP-Header, die von einem vertrauenswürdigen Proxy oder SSO-Geräten, wie z. B. einem Bearer-Token, hinzugefügt wurden, von der Anwendung authentifiziert werden.",,✓,✓,306, + diff --git a/4.0/docs_de/OWASP Application Security Verification Standard 4.0.3-de.docx b/4.0/docs_de/OWASP Application Security Verification Standard 4.0.3-de.docx new file mode 100644 index 0000000000..82ce03f1f8 Binary files /dev/null and b/4.0/docs_de/OWASP Application Security Verification Standard 4.0.3-de.docx differ diff --git a/4.0/docs_de/OWASP Application Security Verification Standard 4.0.3-de.flat.json b/4.0/docs_de/OWASP Application Security Verification Standard 4.0.3-de.flat.json new file mode 100644 index 0000000000..e7d6ea48a4 --- /dev/null +++ b/4.0/docs_de/OWASP Application Security Verification Standard 4.0.3-de.flat.json @@ -0,0 +1,3722 @@ +{ + "requirements": [ + { + "chapter_id": "V1", + "chapter_name": "Architektur, Design und Threat Modeling", + "section_id": "V1.1", + "section_name": "Der sichere Softwareentwicklungszyklus", + "req_id": "V1.1.1", + "req_description": "Prüfen Sie, dass der SDLC die Sicherheit in allen Entwicklungsphasen berücksichtigt. ([C1](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "", + "nist": "" + }, + { + "chapter_id": "V1", + "chapter_name": "Architektur, Design und Threat Modeling", + "section_id": "V1.1", + "section_name": "Der sichere Softwareentwicklungszyklus", + "req_id": "V1.1.2", + "req_description": "Prüfen Sie, dass für Designänderung oder Sprintplanung eine Bedrohungsanalyse stattfand, um Bedrohungen zu identifizieren, Gegenmaßnahmen zu planen und umzusetzen sowie passende Sicherheitstests zu planen.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "1053", + "nist": "" + }, + { + "chapter_id": "V1", + "chapter_name": "Architektur, Design und Threat Modeling", + "section_id": "V1.1", + "section_name": "Der sichere Softwareentwicklungszyklus", + "req_id": "V1.1.3", + "req_description": "Prüfen Sie, dass alle Userstories und alle Merkmale funktionale Sicherheitsanforderungen enthalten, z.B. „Als Benutzer sollte ich mein Profil anzeigen und bearbeiten können. Ich sollte nicht in der Lage sein, das Profil eines anderen anzusehen oder zu bearbeiten“.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "1110", + "nist": "" + }, + { + "chapter_id": "V1", + "chapter_name": "Architektur, Design und Threat Modeling", + "section_id": "V1.1", + "section_name": "Der sichere Softwareentwicklungszyklus", + "req_id": "V1.1.4", + "req_description": "Prüfen Sie die Dokumentation und Erläuterung aller Sicherheitsgrenzen, Komponenten und wichtigen Datenflüsse der Anwendung.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "1059", + "nist": "" + }, + { + "chapter_id": "V1", + "chapter_name": "Architektur, Design und Threat Modeling", + "section_id": "V1.1", + "section_name": "Der sichere Softwareentwicklungszyklus", + "req_id": "V1.1.5", + "req_description": "Prüfen Sie die Definition und Sicherheitsanalyse der High Level Architektur der Anwendung und aller verbundenen Remoteservices. ([C1](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "1059", + "nist": "" + }, + { + "chapter_id": "V1", + "chapter_name": "Architektur, Design und Threat Modeling", + "section_id": "V1.1", + "section_name": "Der sichere Softwareentwicklungszyklus", + "req_id": "V1.1.6", + "req_description": "Prüfen Sie, dass Sicherheitsmaßnahmen zentralisiert, einfach, geprüft, sicher und wiederverwendbar implementiert worden sind. Dies vermeidet doppelte, fehlende, unwirksame oder unsichere Maßnahmen. ([C10](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "637", + "nist": "" + }, + { + "chapter_id": "V1", + "chapter_name": "Architektur, Design und Threat Modeling", + "section_id": "V1.1", + "section_name": "Der sichere Softwareentwicklungszyklus", + "req_id": "V1.1.7", + "req_description": "Prüfen Sie die Verfügbarkeit einer Checkliste für die sichere Programmierung, Sicherheitsanforderungen, eines Leitfadens oder Richtlinien für alle Entwickler und Tester.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "637", + "nist": "" + }, + { + "chapter_id": "V1", + "chapter_name": "Architektur, Design und Threat Modeling", + "section_id": "V1.2", + "section_name": "Architektur der Authentifizierung", + "req_id": "V1.2.1", + "req_description": "Prüfen Sie die Nutzung spezifischer Betriebssystemkonten bzw. solcher mit minimalen Berechtigungen für alle Komponenten, Dienste und Server. ([C3](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "250", + "nist": "" + }, + { + "chapter_id": "V1", + "chapter_name": "Architektur, Design und Threat Modeling", + "section_id": "V1.2", + "section_name": "Architektur der Authentifizierung", + "req_id": "V1.2.2", + "req_description": "Prüfen Sie, dass die Kommunikation zwischen Anwendungskomponenten, einschließlich APIs, Middleware und Datenschichten, authentifiziert wird. Komponenten sollten die minimal notwendigen Berechtigungen haben. ([C3](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "306", + "nist": "" + }, + { + "chapter_id": "V1", + "chapter_name": "Architektur, Design und Threat Modeling", + "section_id": "V1.2", + "section_name": "Architektur der Authentifizierung", + "req_id": "V1.2.3", + "req_description": "Prüfen Sie, dass die Anwendung einen einzigen geprüften und sicheren Authentifizierungsmechanismus verwendet, der auf eine starke Authentifizierung erweitert werden kann und über ein ausreichendes Logging und Monitoring verfügt, um Einbrüche oder Missbrauch zu erkennen.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "306", + "nist": "" + }, + { + "chapter_id": "V1", + "chapter_name": "Architektur, Design und Threat Modeling", + "section_id": "V1.2", + "section_name": "Architektur der Authentifizierung", + "req_id": "V1.2.4", + "req_description": "Prüfen Sie, dass alle Authentifizierungspfade und Identitätsmanagement-APIs eine einheitliche Stärke der Authentifizierung implementieren, so dass es keine schwächeren Alternativen pro Anwendungsrisiko gibt.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "306", + "nist": "" + }, + { + "chapter_id": "V1", + "chapter_name": "Architektur, Design und Threat Modeling", + "section_id": "V1.4", + "section_name": "Architektur der Zugriffskontrolle", + "req_id": "V1.4.1", + "req_description": "Prüfen Sie, dass Zugriffskontrollen von vertrauenswürdigen Stellen, wie z.B. Accesscontrol Gateways, Servern oder serverlosen Funktionen, ausgeführt werden. Implementieren Sie Zugriffskontrollen niemals am Client.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "602", + "nist": "" + }, + { + "chapter_id": "V1", + "chapter_name": "Architektur, Design und Threat Modeling", + "section_id": "V1.4", + "section_name": "Architektur der Zugriffskontrolle", + "req_id": "V1.4.2", + "req_description": "[GELÖSCHT, NICHT UMSETZBAR]", + "level1": "", + "level2": "", + "level3": "", + "cwe": "", + "nist": "" + }, + { + "chapter_id": "V1", + "chapter_name": "Architektur, Design und Threat Modeling", + "section_id": "V1.4", + "section_name": "Architektur der Zugriffskontrolle", + "req_id": "V1.4.3", + "req_description": "[GELÖSCHT, DUPLIKAT VON 4.1.3]", + "level1": "", + "level2": "", + "level3": "", + "cwe": "", + "nist": "" + }, + { + "chapter_id": "V1", + "chapter_name": "Architektur, Design und Threat Modeling", + "section_id": "V1.4", + "section_name": "Architektur der Zugriffskontrolle", + "req_id": "V1.4.4", + "req_description": "Prüfen Sie, dass die Anwendung mit einer einzigen und gut erprobten Zugriffssteuerung auf geschützte Daten und Ressourcen zugreift. Alle Anfragen müssen diesen einen Weg nutzen, um Kopieren und Einfügen oder unsichere Alternativpfade zu vermeiden. ([C7](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "284", + "nist": "" + }, + { + "chapter_id": "V1", + "chapter_name": "Architektur, Design und Threat Modeling", + "section_id": "V1.4", + "section_name": "Architektur der Zugriffskontrolle", + "req_id": "V1.4.5", + "req_description": "Prüfen Sie, dass eine attribut- oder merkmalsbasierte Zugriffskontrolle verwendet wird, die die Berechtigung des Benutzers zum Zugriff auf ein Merkmal oder Datenelement und nicht nur seine Rolle prüft. Die Berechtigungen sollten weiterhin über Rollen vergeben werden. ([C7](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "275", + "nist": "" + }, + { + "chapter_id": "V1", + "chapter_name": "Architektur, Design und Threat Modeling", + "section_id": "V1.5", + "section_name": "Architektur des Ein- und Ausgabemanagements ", + "req_id": "V1.5.1", + "req_description": "Prüfen Sie, dass die Ein- und Ausgabeanforderungen klar definieren, wie die Daten auf der Grundlage des Typs, des Inhalts und der anwendbaren Gesetze, Vorschriften und anderen Richtlinien zu verarbeiten sind.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "1029", + "nist": "" + }, + { + "chapter_id": "V1", + "chapter_name": "Architektur, Design und Threat Modeling", + "section_id": "V1.5", + "section_name": "Architektur des Ein- und Ausgabemanagements ", + "req_id": "V1.5.2", + "req_description": "Prüfen Sie, dass bei der Kommunikation mit nicht vertrauenswürdigen Clients keine Serialisierung verwendet wird. Ist dies nicht möglich, prüfen Sie, dass die Integrität geprüft und bei sensiblen Daten auch verschlüsselt wird, um Deserialisierungsangriffe oder Object Injection Angriffe zu verhindern.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "502", + "nist": "" + }, + { + "chapter_id": "V1", + "chapter_name": "Architektur, Design und Threat Modeling", + "section_id": "V1.5", + "section_name": "Architektur des Ein- und Ausgabemanagements ", + "req_id": "V1.5.3", + "req_description": "Prüfen Sie, dass die Eingabevalidierung in einer vertrauenswürdigen Serviceschicht durchgesetzt wird. ([C5](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "602", + "nist": "" + }, + { + "chapter_id": "V1", + "chapter_name": "Architektur, Design und Threat Modeling", + "section_id": "V1.5", + "section_name": "Architektur des Ein- und Ausgabemanagements ", + "req_id": "V1.5.4", + "req_description": "Prüfen Sie, dass die Ausgabecodierung in der Nähe des oder durch den Interpreter erfolgt, für den sie bestimmt ist. ([C4](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "116", + "nist": "" + }, + { + "chapter_id": "V1", + "chapter_name": "Architektur, Design und Threat Modeling", + "section_id": "V1.6", + "section_name": "Architektur kryptographischer Maßnahmen", + "req_id": "V1.6.1", + "req_description": "Prüfen Sie, dass es eine explizite Richtlinie für das Schlüsselmanagement gibt, und dass der Lebenszyklus eines kryptografischen Schlüssels konform zu einem Standard für das Schlüsselmanagement wie NIST SP 800-57 ist.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "320", + "nist": "" + }, + { + "chapter_id": "V1", + "chapter_name": "Architektur, Design und Threat Modeling", + "section_id": "V1.6", + "section_name": "Architektur kryptographischer Maßnahmen", + "req_id": "V1.6.2", + "req_description": "Prüfen Sie, dass Nutzer kryptografischer Dienste Schlüssel und andere Geheimnisse mit Hilfe von Schlüsseltresoren oder API-basierte Alternativen schützen.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "320", + "nist": "" + }, + { + "chapter_id": "V1", + "chapter_name": "Architektur, Design und Threat Modeling", + "section_id": "V1.6", + "section_name": "Architektur kryptographischer Maßnahmen", + "req_id": "V1.6.3", + "req_description": "Prüfen Sie, dass alle Schlüssel und Passwörter ersetzbar und Teil eines genau definierten Prozesses zur Neuverschlüsselung sensibler Daten sind.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "320", + "nist": "" + }, + { + "chapter_id": "V1", + "chapter_name": "Architektur, Design und Threat Modeling", + "section_id": "V1.6", + "section_name": "Architektur kryptographischer Maßnahmen", + "req_id": "V1.6.4", + "req_description": "Prüfen Sie, dass clientseitige Geheimnisse, wie symmetrische Schlüssel, Passwörter oder API-Token, architektonisch als unsicher betrachtet werden. Sie dürfen nicht zum Schutz sensibler Daten verwendet werden.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "320", + "nist": "" + }, + { + "chapter_id": "V1", + "chapter_name": "Architektur, Design und Threat Modeling", + "section_id": "V1.7", + "section_name": "Architektur von Fehlerbehandlung, Protokollierung und Audit", + "req_id": "V1.7.1", + "req_description": "Prüfen Sie, dass im gesamten System Herangehensweise und Protokollformat einheitlich sind. ([C9](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "1009", + "nist": "" + }, + { + "chapter_id": "V1", + "chapter_name": "Architektur, Design und Threat Modeling", + "section_id": "V1.7", + "section_name": "Architektur von Fehlerbehandlung, Protokollierung und Audit", + "req_id": "V1.7.2", + "req_description": "Prüfen Sie, dass die Protokolle zur Analyse, Erkennung, Alarmierung und Eskalation sicher übertragen werden - vorzugsweise an ein eigenständiges System. ([C9](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "", + "nist": "" + }, + { + "chapter_id": "V1", + "chapter_name": "Architektur, Design und Threat Modeling", + "section_id": "V1.8", + "section_name": "Architektonische Anforderungen zur Einhaltung des Datenschutzes", + "req_id": "V1.8.1", + "req_description": "Prüfen Sie, dass alle sensiblen Daten identifiziert und klassifiziert werden.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "", + "nist": "" + }, + { + "chapter_id": "V1", + "chapter_name": "Architektur, Design und Threat Modeling", + "section_id": "V1.8", + "section_name": "Architektonische Anforderungen zur Einhaltung des Datenschutzes", + "req_id": "V1.8.2", + "req_description": "Prüfen Sie, dass für alle Schutzklassen entsprechende Anforderungen existieren, z. B. an die Vertraulichkeit, die Integrität, Aufbewahrung, Datenschutz etc. und dass diese in der Architektur angewendet werden.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "", + "nist": "" + }, + { + "chapter_id": "V1", + "chapter_name": "Architektur, Design und Threat Modeling", + "section_id": "V1.9", + "section_name": "Architektur der Kommunikationsverbindungen", + "req_id": "V1.9.1", + "req_description": "Prüfen Sie, dass die Anwendung die Kommunikation zwischen Komponenten verschlüsselt, insbesondere wenn sich diese in verschiedenen Containern, Systemen, Standorten oder Cloudanbietern befinden. ([C3](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "319", + "nist": "" + }, + { + "chapter_id": "V1", + "chapter_name": "Architektur, Design und Threat Modeling", + "section_id": "V1.9", + "section_name": "Architektur der Kommunikationsverbindungen", + "req_id": "V1.9.2", + "req_description": "Prüfen Sie, dass die Anwendungskomponenten die Authentizität beider Seiten einer Kommunikationsverbindung verifizieren, um Man-in-the-Middle-Angriffe zu verhindern. Beispielsweise sollten die Anwendungskomponenten TLS-Zertifikate und Zertifikatsketten verifizieren.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "295", + "nist": "" + }, + { + "chapter_id": "V1", + "chapter_name": "Architektur, Design und Threat Modeling", + "section_id": "V1.10", + "section_name": "Architektonische Anforderungen zum Schutz vor unbefugten Änderungen", + "req_id": "V1.10.1", + "req_description": "Prüfen Sie, dass das Quellcodeverwaltungssystem sicherstellt, dass Check-Ins mit Issues oder Änderungstickets einhergehen. Das Quellcodeverwaltungssystem sollte über eine Zugriffskontrolle und identifizierbare Benutzer verfügen, um Änderungen nachverfolgen zu können.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "284", + "nist": "" + }, + { + "chapter_id": "V1", + "chapter_name": "Architektur, Design und Threat Modeling", + "section_id": "V1.11", + "section_name": "Architektur der Geschäftslogik", + "req_id": "V1.11.1", + "req_description": "Prüfen Sie die Definition und Dokumentation aller Anwendungskomponenten auf die von ihnen bereitgestellten Fach- oder Sicherheitsfunktionen.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "1059", + "nist": "" + }, + { + "chapter_id": "V1", + "chapter_name": "Architektur, Design und Threat Modeling", + "section_id": "V1.11", + "section_name": "Architektur der Geschäftslogik", + "req_id": "V1.11.2", + "req_description": "Prüfen Sie, dass alle geschäftskritischen Abläufe, inkl. der Authentifizierung, des Sessionmanagements und der Zugriffssteuerung stets synchronisiert sind.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "362", + "nist": "" + }, + { + "chapter_id": "V1", + "chapter_name": "Architektur, Design und Threat Modeling", + "section_id": "V1.11", + "section_name": "Architektur der Geschäftslogik", + "req_id": "V1.11.3", + "req_description": "Prüfen Sie, dass alle geschäftskritischen Abläufe, einschließlich der Authentifizierung, des Sessionmanagements und der Zugriffssteuerung thread-sicher und sicher gegen TOCTOU Race Conditions sind.", + "level1": "", + "level2": "", + "level3": "✓", + "cwe": "367", + "nist": "" + }, + { + "chapter_id": "V1", + "chapter_name": "Architektur, Design und Threat Modeling", + "section_id": "V1.12", + "section_name": "Sicheres Datei Upload ", + "req_id": "V1.12.1", + "req_description": "[GELÖSCHT, DUPLIKAT VON 12.4.1]", + "level1": "", + "level2": "", + "level3": "", + "cwe": "", + "nist": "" + }, + { + "chapter_id": "V1", + "chapter_name": "Architektur, Design und Threat Modeling", + "section_id": "V1.12", + "section_name": "Sicheres Datei Upload ", + "req_id": "V1.12.2", + "req_description": "Prüfen Sie, dass vom Benutzer hochgeladene Dateien - sofern sie angezeigt oder von der Anwendung heruntergeladen werden müssen - entweder durch Oktett-Stream-Downloads oder von einer nicht verwandten Domäne, wie z.B. einem Cloud File Storage Bucket, bereitgestellt werden. Implementieren Sie geeignete Sicherheitsmaßnahmen für Dateiinhalte, um das Risiko von Angriffen mit Hilfe der hochgeladenen Datei zu reduzieren.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "646", + "nist": "" + }, + { + "chapter_id": "V1", + "chapter_name": "Architektur, Design und Threat Modeling", + "section_id": "V1.14", + "section_name": "Architektonische Anforderungen an die Konfiguration", + "req_id": "V1.14.1", + "req_description": "Prüfen Sie die Trennung von Komponenten unterschiedlicher Vertrauensstufen durch gut durchdachte Sicherheitsmaßnahmen, Firewallregeln, API-Gateways, Reverseproxies, cloudbasierte Sicherheitsgruppen o.ä.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "923", + "nist": "" + }, + { + "chapter_id": "V1", + "chapter_name": "Architektur, Design und Threat Modeling", + "section_id": "V1.14", + "section_name": "Architektonische Anforderungen an die Konfiguration", + "req_id": "V1.14.2", + "req_description": "Prüfen Sie, dass digitale Signaturen, vertrauenswürdige Verbindungen und vertrauenswürdige Downloadquellen verwendet werden, um Binärdaten auf Endgeräte zu verteilen.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "494", + "nist": "" + }, + { + "chapter_id": "V1", + "chapter_name": "Architektur, Design und Threat Modeling", + "section_id": "V1.14", + "section_name": "Architektonische Anforderungen an die Konfiguration", + "req_id": "V1.14.3", + "req_description": "Prüfen Sie, dass die Buildpipeline vor veralteten oder unsicheren Komponenten warnt und entsprechende Maßnahmen ergreift.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "1104", + "nist": "" + }, + { + "chapter_id": "V1", + "chapter_name": "Architektur, Design und Threat Modeling", + "section_id": "V1.14", + "section_name": "Architektonische Anforderungen an die Konfiguration", + "req_id": "V1.14.4", + "req_description": "Prüfen Sie, dass die Buildpipeline einen Schritt enthält, um die sichere Deploymentversion der Anwendung automatisch zu erstellen und zu verifizieren, insbesondere wenn die Anwendungsinfrastruktur softwarebasiert ist, wie z. B. Cloudumgebungen.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "", + "nist": "" + }, + { + "chapter_id": "V1", + "chapter_name": "Architektur, Design und Threat Modeling", + "section_id": "V1.14", + "section_name": "Architektonische Anforderungen an die Konfiguration", + "req_id": "V1.14.5", + "req_description": "Prüfen Sie, dass Anwendungen auf der Netzwerkebene voneinander separiert sind, z.B. per Sandbox oder Container, um Angreifer auszubremsen und davon abzuhalten, andere Anwendungen anzugreifen, insbesondere wenn sie sensible Aktionen wie eine Deserialisierung durchführen. ([C5](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "265", + "nist": "" + }, + { + "chapter_id": "V1", + "chapter_name": "Architektur, Design und Threat Modeling", + "section_id": "V1.14", + "section_name": "Architektonische Anforderungen an die Konfiguration", + "req_id": "V1.14.6", + "req_description": "Prüfen Sie, dass die Anwendung keine nicht unterstützten, unsicheren oder veralteten clientseitigen Technologien wie NSAPI-Plugins, Flash, Shockwave, ActiveX, Silverlight, NACL oder clientseitige Java-Applets verwendet.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "477", + "nist": "" + }, + { + "chapter_id": "V2", + "chapter_name": "", + "section_id": "V2.1", + "section_name": "Passwortsicherheit", + "req_id": "V2.1.1", + "req_description": "Prüfen Sie, dass Benutzerpasswörter mindestens 12 Zeichen lang sind, nachdem zusammenhängende Leerzeichen gekürzt wurden. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "521", + "nist": "5.1.1.2" + }, + { + "chapter_id": "V2", + "chapter_name": "", + "section_id": "V2.1", + "section_name": "Passwortsicherheit", + "req_id": "V2.1.2", + "req_description": "Prüfen Sie, dass Passwörter mit 64 oder mehr Zeichen erlaubt sind, jedoch nicht mehr als 128 Zeichen. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "521", + "nist": "5.1.1.2" + }, + { + "chapter_id": "V2", + "chapter_name": "", + "section_id": "V2.1", + "section_name": "Passwortsicherheit", + "req_id": "V2.1.3", + "req_description": "Prüfen Sie, dass Passwörter nicht gekürzt werden. Mehrere aufeinanderfolgende Leerzeichen können zu einem zusammengefasst werden. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "521", + "nist": "5.1.1.2" + }, + { + "chapter_id": "V2", + "chapter_name": "", + "section_id": "V2.1", + "section_name": "Passwortsicherheit", + "req_id": "V2.1.4", + "req_description": "Prüfen Sie, ob alle druckbaren Unicode-Zeichen, auch Leerzeichen oder Emojis, in Passwörtern zulässig sind.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "521", + "nist": "5.1.1.2" + }, + { + "chapter_id": "V2", + "chapter_name": "", + "section_id": "V2.1", + "section_name": "Passwortsicherheit", + "req_id": "V2.1.5", + "req_description": "Prüfen Sie, dass Benutzer ihr Passwort ändern können.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "620", + "nist": "5.1.1.2" + }, + { + "chapter_id": "V2", + "chapter_name": "", + "section_id": "V2.1", + "section_name": "Passwortsicherheit", + "req_id": "V2.1.6", + "req_description": "Prüfen Sie, dass die Passwortänderungsfunktion das bisherige sowie das neue Kennwort des Benutzers erfordert.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "620", + "nist": "5.1.1.2" + }, + { + "chapter_id": "V2", + "chapter_name": "", + "section_id": "V2.1", + "section_name": "Passwortsicherheit", + "req_id": "V2.1.7", + "req_description": "Prüfen Sie, dass die bei der Kontoregistrierung, beim Login und bei der Passwortänderung übermittelten Passwörter mit einen Satz verletzter Passwörtern verglichen werden, und zwar entweder lokal (z. B. mit den 1.000 oder 10.000 häufigsten Passwörtern, die mit der Passwortrichtlinie des Systems übereinstimmen) oder mit Hilfe einer externen API. Bei Verwendung einer API muss sichergestellt werden, dass das Klartextpasswort nicht gesendet oder anderweitig offengelegt wird. Wird das Passwort offengelegt, muss die Anwendung den Benutzer auffordern, ein neues Passwort festzulegen. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "521", + "nist": "5.1.1.2" + }, + { + "chapter_id": "V2", + "chapter_name": "", + "section_id": "V2.1", + "section_name": "Passwortsicherheit", + "req_id": "V2.1.8", + "req_description": "Prüfen Sie, dass ein Maß für die Passwortstärke bereitgestellt wird, damit Benutzer ein stärkeres Passwort erstellen können.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "521", + "nist": "5.1.1.2" + }, + { + "chapter_id": "V2", + "chapter_name": "", + "section_id": "V2.1", + "section_name": "Passwortsicherheit", + "req_id": "V2.1.9", + "req_description": "Prüfen Sie, dass es keine Regeln für die Zusammenstellung der Passwörter gibt, welche die Art der zulässigen Zeichen einschränken. Die Verwendung bestimmter Zeichen, wie Groß- oder Kleinschreibung, Zahlen oder Sonderzeichen sollte nicht verlangt werden. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "521", + "nist": "5.1.1.2" + }, + { + "chapter_id": "V2", + "chapter_name": "", + "section_id": "V2.1", + "section_name": "Passwortsicherheit", + "req_id": "V2.1.10", + "req_description": "Prüfen Sie, dass weder periodischer Passwortwechsel notwendig ist noch eine Passworthistorie gespeichert wird.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "263", + "nist": "5.1.1.2" + }, + { + "chapter_id": "V2", + "chapter_name": "", + "section_id": "V2.1", + "section_name": "Passwortsicherheit", + "req_id": "V2.1.11", + "req_description": "Prüfen Sie, dass die „Einfügen“-Funktion, Passworthilfen der Browser und externe Passwortmanager zugelassen sind.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "521", + "nist": "5.1.1.2" + }, + { + "chapter_id": "V2", + "chapter_name": "", + "section_id": "V2.1", + "section_name": "Passwortsicherheit", + "req_id": "V2.1.12", + "req_description": "Prüfen Sie, dass der Benutzer wählen kann, entweder das gesamte Passwort vorübergehend angezeigt zu bekommen oder das letzte eingetippte Zeichen des Passwortes angezeigt zu bekommen.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "521", + "nist": "5.1.1.2" + }, + { + "chapter_id": "V2", + "chapter_name": "", + "section_id": "V2.2", + "section_name": "Allgemeine Sicherheitsanforderungen an den Authentifikator", + "req_id": "V2.2.1", + "req_description": "Prüfen Sie, dass Maßnahmen gegen automatische Angriffe, wie das Ausprobieren von Passworten oder das Aussperren von Benutzern, wirksam umgesetzt sind. Dazu gehören das Blockieren der am häufigsten verwendeten Passwörter, Soft-Lockouts, die Begrenzung der Anzahl von Anmeldungen, CAPTCHA, wachsende Verzögerungen zwischen den Fehlversuchen, IP-Adressbeschränkungen oder risikobasierte Einschränkungen wie Standort, erste Anmeldung auf einem Gerät, kürzliche Versuche, das Konto zu entsperren oder Ähnliches. Prüfen Sie, dass nicht mehr als 100 Fehlversuche pro Stunde bei einem einzelnen Konto möglich sind.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "307", + "nist": "5.2.2 / 5.1.1.2 / 5.1.4.2 / 5.1.5.2" + }, + { + "chapter_id": "V2", + "chapter_name": "", + "section_id": "V2.2", + "section_name": "Allgemeine Sicherheitsanforderungen an den Authentifikator", + "req_id": "V2.2.2", + "req_description": "Prüfen Sie, dass der Einsatz schwacher Authentifikationsmethoden, wie SMS und E-Mail, auf die sekundäre Verifizierung und Transaktionsgenehmigung beschränkt ist und nicht als Ersatz für sicherere Authentifizierungsmethoden dient. Prüfen Sie, dass stärkere Methoden vor schwachen Methoden eingesetzt werden, dass sich die Benutzer der Risiken bewusst sind oder dass geeignete Maßnahmen zur Begrenzung des Risikos getroffen werden.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "304", + "nist": "5.2.10" + }, + { + "chapter_id": "V2", + "chapter_name": "", + "section_id": "V2.2", + "section_name": "Allgemeine Sicherheitsanforderungen an den Authentifikator", + "req_id": "V2.2.3", + "req_description": "Prüfen Sie, dass die Benutzer sichere Benachrichtigungen nach Aktualisierungen der Authentifizierungsdetails, wie z. B. das Zurücksetzen von Anmeldedaten, E-Mail- oder Adressänderungen, Anmeldung von unbekannten oder risikobehafteten Orten erhalten. Die Verwendung von Push-Benachrichtigungen - anstelle von SMS oder E-Mail - ist vorzuziehen. Bei fehlenden Push-Benachrichtigungen sind SMS oder E-Mail jedoch akzeptabel, solange in der Benachrichtigung keine sensiblen Informationen offengelegt werden.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "620", + "nist": "" + }, + { + "chapter_id": "V2", + "chapter_name": "", + "section_id": "V2.2", + "section_name": "Allgemeine Sicherheitsanforderungen an den Authentifikator", + "req_id": "V2.2.4", + "req_description": "Prüfen Sie die Resistenz gegen Phishing durch Authentifizierung mittels Mehrfaktor-Authentifizierung, Public Key Kryptographie, Chipkarten und Push-Nachrichten, auf höheren AAL-Ebenen: clientseitige Zertifikate.", + "level1": "", + "level2": "", + "level3": "✓", + "cwe": "308", + "nist": "5.2.5" + }, + { + "chapter_id": "V2", + "chapter_name": "", + "section_id": "V2.2", + "section_name": "Allgemeine Sicherheitsanforderungen an den Authentifikator", + "req_id": "V2.2.5", + "req_description": "Prüfen Sie, dass der CSP und die nutzende Anwendung über zweiseitig authentifiziertes TLS kommunizieren.", + "level1": "", + "level2": "", + "level3": "✓", + "cwe": "319", + "nist": "5.2.6" + }, + { + "chapter_id": "V2", + "chapter_name": "", + "section_id": "V2.2", + "section_name": "Allgemeine Sicherheitsanforderungen an den Authentifikator", + "req_id": "V2.2.6", + "req_description": "Prüfen Sie, dass Authentifikationsdaten nicht wieder eingespielt werden können. Dies kann z.B. mit One Time Password (OTP) Generatoren, Chipkarten o.ä. verhindert werden.", + "level1": "", + "level2": "", + "level3": "✓", + "cwe": "308", + "nist": "5.2.8" + }, + { + "chapter_id": "V2", + "chapter_name": "", + "section_id": "V2.2", + "section_name": "Allgemeine Sicherheitsanforderungen an den Authentifikator", + "req_id": "V2.2.7", + "req_description": "Prüfen Sie, dass eine Authentifikation nicht unbeabsichtigt stattfinden kann. Verlangen Sie die Eingabe eines OTP-Tokens oder eine vom Benutzer initiierte Aktion, wie z.B. einen Tastendruck auf einem FIDO-Hardwaretoken.", + "level1": "", + "level2": "", + "level3": "✓", + "cwe": "308", + "nist": "5.2.9" + }, + { + "chapter_id": "V2", + "chapter_name": "", + "section_id": "V2.3", + "section_name": "Lebenszyklus des Authentifikators", + "req_id": "V2.3.1", + "req_description": "Vom System generierte Anfangspasswörter oder Aktivierungscodes SOLLTEN sicher zufällig generiert werden. Sie SOLLTEN mindestens 6 Zeichen lang sein und KÖNNEN Buchstaben und Zahlen enthalten. Sie MÜSSEN nach einer kurzen Zeitspanne ablaufen. Diese Initialpasswörter dürfen nicht zum dauerhaften Passwort werden.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "330", + "nist": "5.1.1.2 / A.3" + }, + { + "chapter_id": "V2", + "chapter_name": "", + "section_id": "V2.3", + "section_name": "Lebenszyklus des Authentifikators", + "req_id": "V2.3.2", + "req_description": "Prüfen Sie, dass die Registrierung und die Verwendung von vom Teilnehmer bereitgestellten Authentifizierungsgeräten unterstützt werden, wie z. B. U2F- oder FIDO-Token.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "308", + "nist": "6.1.3" + }, + { + "chapter_id": "V2", + "chapter_name": "", + "section_id": "V2.3", + "section_name": "Lebenszyklus des Authentifikators", + "req_id": "V2.3.3", + "req_description": "Prüfen Sie, dass die Aufforderung zur Erneuerung zeitgebundener Authentifikatoren rechtzeitig gesendet werden.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "287", + "nist": "6.1.4" + }, + { + "chapter_id": "V2", + "chapter_name": "", + "section_id": "V2.4", + "section_name": "Speicherung der Anmeldedaten", + "req_id": "V2.4.1", + "req_description": "Prüfen Sie, dass die Passwörter in einer Form gespeichert werden, die immun gegen Offlineangriffe ist. Passwörter MÜSSEN mit einem Salt versehen werden. Der Passworthash muss mit Hilfe einer sicheren Funktion zur Schlüsselberechnung oder einer Passwort-Hashfunktion berechnet werden. Die Funktionen zur Schlüsselberechnung und zum Passwort-Hashing nehmen ein Passwort, einen Salt und einen Kostenfaktor als Eingabewerte. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "916", + "nist": "5.1.1.2" + }, + { + "chapter_id": "V2", + "chapter_name": "", + "section_id": "V2.4", + "section_name": "Speicherung der Anmeldedaten", + "req_id": "V2.4.2", + "req_description": "Prüfen Sie, dass das Salt mindestens 32 Bit lang ist und zufällig gewählt wird, um Saltwertkollisionen zwischen gespeicherten Hashes zu minimieren. Für jede Anmeldeinformation (Credential) MUSS ein eindeutiger Saltwert und der daraus resultierende Hash gespeichert werden. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "916", + "nist": "5.1.1.2" + }, + { + "chapter_id": "V2", + "chapter_name": "", + "section_id": "V2.4", + "section_name": "Speicherung der Anmeldedaten", + "req_id": "V2.4.3", + "req_description": "Prüfen Sie, dass bei Verwendung von PBKDF2 der Iterationszähler so groß sein SOLLTE, wie es die Leistung des Verifikationsservers zulässt, normalerweise mindestens 100.000 Iterationen. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "916", + "nist": "5.1.1.2" + }, + { + "chapter_id": "V2", + "chapter_name": "", + "section_id": "V2.4", + "section_name": "Speicherung der Anmeldedaten", + "req_id": "V2.4.4", + "req_description": "Prüfen Sie, dass bei Verwendung von bcrypt der Arbeitsfaktor so groß sein SOLLTE, wie es die Leistung des Verifikationsservers erlaubt, jedoch mindestens 10. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "916", + "nist": "5.1.1.2" + }, + { + "chapter_id": "V2", + "chapter_name": "", + "section_id": "V2.4", + "section_name": "Speicherung der Anmeldedaten", + "req_id": "V2.4.5", + "req_description": "Prüfen Sie, dass eine zusätzliche Iteration einer Funktion zur Schlüsselberechnung durchgeführt wird. Dabei ist ein Saltwert zu verwenden, der nur dem Verifizierer bekannt ist. Generieren Sie den Saltwert mit einem zugelassenen Zufallsgenerator [SP 800-90Ar1]. Stellen Sie die in der letzten Revision von SP 800-131A angegebene Mindestsicherheitsstärke sicher. Der geheime Saltwert MUSS getrennt von den gehashten Passwörtern gespeichert werden, z.B. in einem speziellen Gerät wie einem HSM.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "916", + "nist": "5.1.1.2" + }, + { + "chapter_id": "V2", + "chapter_name": "", + "section_id": "V2.5", + "section_name": "Wiederherstellung von Anmeldedaten", + "req_id": "V2.5.1", + "req_description": "Prüfen Sie, dass ein vom System generiertes Initial- oder Wiederherstellungsgeheimnis nicht im Klartext an den Benutzer gesendet wird. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "640", + "nist": "5.1.1.2" + }, + { + "chapter_id": "V2", + "chapter_name": "", + "section_id": "V2.5", + "section_name": "Wiederherstellung von Anmeldedaten", + "req_id": "V2.5.2", + "req_description": "Prüfen Sie, dass keine Hinweise auf Passwörter oder wissensbasierte Authentifizierung, z.B. „geheime Fragen“ vorliegen.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "640", + "nist": "5.1.1.2" + }, + { + "chapter_id": "V2", + "chapter_name": "", + "section_id": "V2.5", + "section_name": "Wiederherstellung von Anmeldedaten", + "req_id": "V2.5.3", + "req_description": "Prüfen Sie, dass die Wiederherstellung von Anmeldedaten das aktuelle Kennwort nicht preisgibt. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "640", + "nist": "5.1.1.2" + }, + { + "chapter_id": "V2", + "chapter_name": "", + "section_id": "V2.5", + "section_name": "Wiederherstellung von Anmeldedaten", + "req_id": "V2.5.4", + "req_description": "Prüfen Sie, dass Gemeinschafts- oder Standardkonten, z.B. „root“, „admin“, „Gast“ oder „sa“ deaktiviert oder gelöscht sind.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "16", + "nist": "5.1.1.2 / A.3" + }, + { + "chapter_id": "V2", + "chapter_name": "", + "section_id": "V2.5", + "section_name": "Wiederherstellung von Anmeldedaten", + "req_id": "V2.5.5", + "req_description": "Prüfen Sie, dass der Benutzer informiert wird, wenn ein Authentifizierungsfaktor geändert oder ersetzt wird.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "304", + "nist": "6.1.2.3" + }, + { + "chapter_id": "V2", + "chapter_name": "", + "section_id": "V2.5", + "section_name": "Wiederherstellung von Anmeldedaten", + "req_id": "V2.5.6", + "req_description": "Prüfen Sie, dass der Prozess zur Wiederherstellung, z.B. für vergessene Passwörter, einen sicheren Kanal, z. B. TOTP oder andere Softtoken, Mobile Push oder andere Offlinekanäle, verwendet. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "640", + "nist": "5.1.1.2" + }, + { + "chapter_id": "V2", + "chapter_name": "", + "section_id": "V2.5", + "section_name": "Wiederherstellung von Anmeldedaten", + "req_id": "V2.5.7", + "req_description": "Prüfen Sie, dass der Identitätsnachweis bei Verlust von OTP- oder Mehrfaktor-Token auf derselben Ebene wie bei der Registrierung durchgeführt wird.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "308", + "nist": "6.1.2.3" + }, + { + "chapter_id": "V2", + "chapter_name": "", + "section_id": "V2.6", + "section_name": "Verifizierung von TAN-Listen", + "req_id": "V2.6.1", + "req_description": "Prüfen Sie, dass die Geheimcodes nur einmal verwendet werden können.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "308", + "nist": "5.1.2.2" + }, + { + "chapter_id": "V2", + "chapter_name": "", + "section_id": "V2.6", + "section_name": "Verifizierung von TAN-Listen", + "req_id": "V2.6.2", + "req_description": "Prüfen Sie, ob die Geheimcodes eine ausreichende Zufälligkeit aufweisen (112 Bit Entropie). Falls weniger als 112 Bit Entropie vorhanden sind, sind ein einzigartiger und zufälliger 32 Bit Salt und eine zugelassene Hashfunktion zu nutzen.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "330", + "nist": "5.1.2.2" + }, + { + "chapter_id": "V2", + "chapter_name": "", + "section_id": "V2.6", + "section_name": "Verifizierung von TAN-Listen", + "req_id": "V2.6.3", + "req_description": "Prüfen Sie, dass Geheimcodes gegen Offlineangriffe, wie z.B. vorhersehbare Werte, immun sind.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "310", + "nist": "5.1.2.2" + }, + { + "chapter_id": "V2", + "chapter_name": "", + "section_id": "V2.7", + "section_name": "Out-of-Band Verifizierer", + "req_id": "V2.7.1", + "req_description": "Prüfen Sie, dass Out-of-Band Authentifikatoren, die NIST „restricted“ sind, wie z.B. SMS, nicht standardmäßig angeboten werden und dass stärkere Alternativen wie Push-Nachrichten zuerst angeboten werden.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "287", + "nist": "5.1.3.2" + }, + { + "chapter_id": "V2", + "chapter_name": "", + "section_id": "V2.7", + "section_name": "Out-of-Band Verifizierer", + "req_id": "V2.7.2", + "req_description": "Prüfen Sie, dass der Out-of-Band Verifizierer bei Out-of-Band Authentifizierungsanforderungen, -Codes oder -Tokens nach 10 Minuten abläuft.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "287", + "nist": "5.1.3.2" + }, + { + "chapter_id": "V2", + "chapter_name": "", + "section_id": "V2.7", + "section_name": "Out-of-Band Verifizierer", + "req_id": "V2.7.3", + "req_description": "Prüfen Sie, dass Authentifizierungsanfragen, -Codes oder ‑Token an den Out-of-Band Verifizierer nur einmal und nur für die ursprüngliche Authentifizierungsanfrage verwendbar sind.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "287", + "nist": "5.1.3.2" + }, + { + "chapter_id": "V2", + "chapter_name": "", + "section_id": "V2.7", + "section_name": "Out-of-Band Verifizierer", + "req_id": "V2.7.4", + "req_description": "Prüfen Sie, dass der Out-of-Band Authentifizierer und der Verifizierer über einen sicheren, unabhängigen Kanal kommunizieren.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "523", + "nist": "5.1.3.2" + }, + { + "chapter_id": "V2", + "chapter_name": "", + "section_id": "V2.7", + "section_name": "Out-of-Band Verifizierer", + "req_id": "V2.7.5", + "req_description": "Prüfen Sie, dass der Out-of-Band Verifizierer nur eine gehashte Version des Authentifizierungscodes speichert.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "256", + "nist": "5.1.3.2" + }, + { + "chapter_id": "V2", + "chapter_name": "", + "section_id": "V2.7", + "section_name": "Out-of-Band Verifizierer", + "req_id": "V2.7.6", + "req_description": "Prüfen Sie, dass der initiale Authentifizierungscode von einem sicheren Zufallszahlengenerator erzeugt wird, der mindestens 20 Bit Entropie enthält. Normalerweise ist eine sechsstellige Zufallszahl ausreichend.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "310", + "nist": "5.1.3.2" + }, + { + "chapter_id": "V2", + "chapter_name": "", + "section_id": "V2.8", + "section_name": "Ein- oder Mehrfaktor-Einwegverifizierer", + "req_id": "V2.8.1", + "req_description": "Prüfen Sie, dass zeitbasierte OTPs eine definierte Lebensdauer haben, bevor sie ablaufen.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "613", + "nist": "5.1.4.2 / 5.1.5.2" + }, + { + "chapter_id": "V2", + "chapter_name": "", + "section_id": "V2.8", + "section_name": "Ein- oder Mehrfaktor-Einwegverifizierer", + "req_id": "V2.8.2", + "req_description": "Prüfen Sie, dass die symmetrischen Schlüssel, die zur Prüfung der eingegebenen OTPs verwendet werden, sicher geschützt sind, z.B. durch Verwendung eines HSM oder der sicheren Schlüsselspeicherung des Betriebssystems.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "320", + "nist": "5.1.4.2 / 5.1.5.2" + }, + { + "chapter_id": "V2", + "chapter_name": "", + "section_id": "V2.8", + "section_name": "Ein- oder Mehrfaktor-Einwegverifizierer", + "req_id": "V2.8.3", + "req_description": "Prüfen Sie, dass anerkannte kryptografische Algorithmen bei der Generierung, dem Seeding und der Verifizierung verwendet werden.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "326", + "nist": "5.1.4.2 / 5.1.5.2" + }, + { + "chapter_id": "V2", + "chapter_name": "", + "section_id": "V2.8", + "section_name": "Ein- oder Mehrfaktor-Einwegverifizierer", + "req_id": "V2.8.4", + "req_description": "Prüfen Sie, dass das zeitbasierte OTP nur einmal innerhalb des Gültigkeitszeitraums verwendet werden können.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "287", + "nist": "5.1.4.2 / 5.1.5.2" + }, + { + "chapter_id": "V2", + "chapter_name": "", + "section_id": "V2.8", + "section_name": "Ein- oder Mehrfaktor-Einwegverifizierer", + "req_id": "V2.8.5", + "req_description": "Prüfen Sie, dass ein zeitbasiertes Mehrfaktor-OTP, das während der Gültigkeitsdauer wiederverwendet wird, protokolliert und mit sicheren Benachrichtigungen an den Inhaber des Geräts abgelehnt wird.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "287", + "nist": "5.1.5.2" + }, + { + "chapter_id": "V2", + "chapter_name": "", + "section_id": "V2.8", + "section_name": "Ein- oder Mehrfaktor-Einwegverifizierer", + "req_id": "V2.8.6", + "req_description": "Prüfen Sie, ob physische OTP-Generatoren im Falle von Diebstahl oder Verlust gesperrt werden können. Stellen Sie sicher, dass der Widerruf sofort für alle eingeloggten Sitzungen, unabhängig vom Standort, wirksam ist.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "613", + "nist": "5.2.1" + }, + { + "chapter_id": "V2", + "chapter_name": "", + "section_id": "V2.8", + "section_name": "Ein- oder Mehrfaktor-Einwegverifizierer", + "req_id": "V2.8.7", + "req_description": "Prüfen Sie, dass biometrische Authentifikatoren nur als sekundäre Faktoren in Verbindung mit etwas, das Sie haben oder etwas, das Sie wissen, verwendet werden dürfen.", + "level1": "", + "level2": "o", + "level3": "✓", + "cwe": "308", + "nist": "5.2.3" + }, + { + "chapter_id": "V2", + "chapter_name": "", + "section_id": "V2.9", + "section_name": "Kryptografische Software und Geräte im Authentifizierungsprozess", + "req_id": "V2.9.1", + "req_description": "Prüfen Sie, dass die bei der Authentifizierung verwendeten kryptografischen Schlüssel sicher gespeichert und gegen Offenlegung geschützt sind, z. B. durch Verwendung eines Trusted Platform Module (TPM) oder eines Hardware Security Modules (HSM) oder eines Betriebssystemdienstes.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "320", + "nist": "5.1.7.2" + }, + { + "chapter_id": "V2", + "chapter_name": "", + "section_id": "V2.9", + "section_name": "Kryptografische Software und Geräte im Authentifizierungsprozess", + "req_id": "V2.9.2", + "req_description": "Prüfen Sie, dass der Zufallswert mindestens 64 Bit lang ist und statistisch einmalig oder für die Lebensdauer des kryptografischen Geräts einmalig ist.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "330", + "nist": "5.1.7.2" + }, + { + "chapter_id": "V2", + "chapter_name": "", + "section_id": "V2.9", + "section_name": "Kryptografische Software und Geräte im Authentifizierungsprozess", + "req_id": "V2.9.3", + "req_description": "Prüfen Sie, dass anerkannte kryptografische Algorithmen bei allen kryptographischen Operationen verwendet werden.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "327", + "nist": "5.1.7.2" + }, + { + "chapter_id": "V2", + "chapter_name": "", + "section_id": "V2.10", + "section_name": "Service-Authentifizierung", + "req_id": "V2.10.1", + "req_description": "Prüfen Sie, dass Intra-Service-Geheimnisse nicht auf unveränderlichen Credentials, wie Passwörtern, API-Schlüsseln oder gemeinsam genutzten privilegierten Konten beruhen.", + "level1": "", + "level2": "OS assisted", + "level3": "HSM", + "cwe": "287", + "nist": "5.1.1.1" + }, + { + "chapter_id": "V2", + "chapter_name": "", + "section_id": "V2.10", + "section_name": "Service-Authentifizierung", + "req_id": "V2.10.2", + "req_description": "Prüfen Sie, dass Servicekonten, die zur Anmeldung genutzt werden, keine Standardpasswörter, wie root / root oder admin / admin, die häufig voreingestellt sind, nutzen.", + "level1": "", + "level2": "OS assisted", + "level3": "HSM", + "cwe": "255", + "nist": "5.1.1.1" + }, + { + "chapter_id": "V2", + "chapter_name": "", + "section_id": "V2.10", + "section_name": "Service-Authentifizierung", + "req_id": "V2.10.3", + "req_description": "Prüfen Sie, dass Passworthashwerte mit ausreichendem Schutz gespeichert werden, um Offlineangriffe, zu verhindern.", + "level1": "", + "level2": "OS assisted", + "level3": "HSM", + "cwe": "522", + "nist": "5.1.1.1" + }, + { + "chapter_id": "V2", + "chapter_name": "", + "section_id": "V2.10", + "section_name": "Service-Authentifizierung", + "req_id": "V2.10.4", + "req_description": "Prüfen Sie, dass Passwörter, Zugänge zu Datenbanken o.a. Systemen, Seeds, interne Geheimnisse sowie API-Schlüssel sicher verwaltet werden. Sie dürfen nicht in den Quellcode aufgenommen bzw. in Quellcoderepositories gespeichert werden. Eine solche Speicherung muss Offline-Angriffen widerstehen. Für die Passwortspeicherung wird die Verwendung eines sicheren Softwareschlüsselspeichers (L1), eines TPM oder eines HSM (L3) empfohlen.", + "level1": "", + "level2": "OS assisted", + "level3": "HSM", + "cwe": "798", + "nist": "" + }, + { + "chapter_id": "V3", + "chapter_name": "Sessionmanagement", + "section_id": "V3.1", + "section_name": "Grundlegende Sicherheit des Sessionmanagements", + "req_id": "V3.1.1", + "req_description": "Prüfen Sie, dass die Anwendung niemals Sessiontoken in URL-Parametern oder Fehlermeldungen offenbart.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "598", + "nist": "" + }, + { + "chapter_id": "V3", + "chapter_name": "Sessionmanagement", + "section_id": "V3.2", + "section_name": "Session Binding", + "req_id": "V3.2.1", + "req_description": "Prüfen Sie, ob die Anwendung bei der Authentifizierung eines Benutzers ein neues Sessiontoken generiert. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "384", + "nist": "7.1" + }, + { + "chapter_id": "V3", + "chapter_name": "Sessionmanagement", + "section_id": "V3.2", + "section_name": "Session Binding", + "req_id": "V3.2.2", + "req_description": "Prüfen Sie, dass Sessiontoken mindestens 64 Bit Entropie aufweisen. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "331", + "nist": "7.1" + }, + { + "chapter_id": "V3", + "chapter_name": "Sessionmanagement", + "section_id": "V3.2", + "section_name": "Session Binding", + "req_id": "V3.2.3", + "req_description": "Prüfen Sie, dass die Anwendung Sessiontoken im Browser nur mit sicheren Methoden wie z.B. gesicherten Cookies (siehe Abschnitt 3.4) oder den HTML 5-Methoden speichert.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "539", + "nist": "7.1" + }, + { + "chapter_id": "V3", + "chapter_name": "Sessionmanagement", + "section_id": "V3.2", + "section_name": "Session Binding", + "req_id": "V3.2.4", + "req_description": "Prüfen Sie, dass die Sessiontoken mit anerkannten kryptografischen Algorithmen generiert werden. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "331", + "nist": "7.1" + }, + { + "chapter_id": "V3", + "chapter_name": "Sessionmanagement", + "section_id": "V3.3", + "section_name": "Beenden der Session", + "req_id": "V3.3.1", + "req_description": "Prüfen Sie, dass Abmeldung und Ablauf das Sessiontoken ungültig machen, so dass die Zurück-Taste oder eine nachgeschaltete Relying Party eine authentifizierte Sitzung auch nicht zwischen den Relying Parties wiederaufnimmt. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "613", + "nist": "7.1" + }, + { + "chapter_id": "V3", + "chapter_name": "Sessionmanagement", + "section_id": "V3.3", + "section_name": "Beenden der Session", + "req_id": "V3.3.2", + "req_description": "Wenn die Benutzer eingeloggt bleiben, Prüfen Sie, dass eine erneute Authentifizierung in regelmäßigen Abständen sowohl bei aktiver Nutzung als auch nach einer Leerlaufphase erfolgt. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "level1": "30 Tage", + "level2": "12 Stunden oder 30 Minuten Inaktivität, 2FA optional", + "level3": "12 Stunden oder 15 Minuten Inaktivität, mit 2FA", + "cwe": "613", + "nist": "7.2" + }, + { + "chapter_id": "V3", + "chapter_name": "Sessionmanagement", + "section_id": "V3.3", + "section_name": "Beenden der Session", + "req_id": "V3.3.3", + "req_description": "Prüfen Sie, dass es die Anwendung ermöglicht, alle anderen aktiven Sitzungen nach einer erfolgreichen Kennwortänderung zu beenden. Dies muss in der gesamten Anwendung, der föderierten Anmeldung (falls vorhanden) und bei allen Relying Parties wirksam sein.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "613", + "nist": "" + }, + { + "chapter_id": "V3", + "chapter_name": "Sessionmanagement", + "section_id": "V3.3", + "section_name": "Beenden der Session", + "req_id": "V3.3.4", + "req_description": "Prüfen Sie, dass die Benutzer jede oder alle derzeit aktiven Sitzungen und Geräte sehen und sich von ihnen abmelden können.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "613", + "nist": "7.1" + }, + { + "chapter_id": "V3", + "chapter_name": "Sessionmanagement", + "section_id": "V3.4", + "section_name": "Cookiebasiertes Session Management", + "req_id": "V3.4.1", + "req_description": "Prüfen Sie, dass bei Session-Cookies das Attribut „secure“ gesetzt ist. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "614", + "nist": "7.1.1" + }, + { + "chapter_id": "V3", + "chapter_name": "Sessionmanagement", + "section_id": "V3.4", + "section_name": "Cookiebasiertes Session Management", + "req_id": "V3.4.2", + "req_description": "Prüfen Sie, dass bei Session-Cookies das Attribut „HttpOnly“ gesetzt ist. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "1004", + "nist": "7.1.1" + }, + { + "chapter_id": "V3", + "chapter_name": "Sessionmanagement", + "section_id": "V3.4", + "section_name": "Cookiebasiertes Session Management", + "req_id": "V3.4.3", + "req_description": "Prüfen Sie, dass Session-Cookies das 'SameSite'-Attribut verwenden, um die Anfälligkeit für Cross Site Request Forgery zu begrenzen. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "1275", + "nist": "7.1.1" + }, + { + "chapter_id": "V3", + "chapter_name": "Sessionmanagement", + "section_id": "V3.4", + "section_name": "Cookiebasiertes Session Management", + "req_id": "V3.4.4", + "req_description": "Prüfen Sie, dass Session-Cookies das Präfix „__Host-“ verwenden (siehe Referenzen), um die Vertraulichkeit von Session-Cookies zu gewährleisten.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "16", + "nist": "7.1.1" + }, + { + "chapter_id": "V3", + "chapter_name": "Sessionmanagement", + "section_id": "V3.4", + "section_name": "Cookiebasiertes Session Management", + "req_id": "V3.4.5", + "req_description": "Falls die Anwendung unter einem Domänennamen zusammen mit anderen Anwendungen veröffentlicht wird, die Session-Cookies nutzen, welche die Sitzungscookies der geprüften Anwendung außer Kraft setzen oder offenlegen könnten, prüfen Sie, dass das Pfadattribut in den Cookies einen möglichst exakten Pfad erhält. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "16", + "nist": "7.1.1" + }, + { + "chapter_id": "V3", + "chapter_name": "Sessionmanagement", + "section_id": "V3.5", + "section_name": "Tokenbasiertes Sessionmanagement", + "req_id": "V3.5.1", + "req_description": "Prüfen Sie, dass die Anwendung Benutzern erlaubt, OAuth-Token, die Vertrauensbeziehungen zu verknüpften Anwendungen herstellen, zurückzuziehen.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "290", + "nist": "7.1.2" + }, + { + "chapter_id": "V3", + "chapter_name": "Sessionmanagement", + "section_id": "V3.5", + "section_name": "Tokenbasiertes Sessionmanagement", + "req_id": "V3.5.2", + "req_description": "Prüfen Sie, dass die Anwendung Sessiontoken anstatt statischer API-Schlüssel verwendet, außer bei Legacy-Implementierungen.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "798", + "nist": "" + }, + { + "chapter_id": "V3", + "chapter_name": "Sessionmanagement", + "section_id": "V3.5", + "section_name": "Tokenbasiertes Sessionmanagement", + "req_id": "V3.5.3", + "req_description": "Prüfen Sie, dass zustandslose Session-Token digitale Signaturen, Verschlüsselung und andere Gegenmaßnahmen zum Schutz vor Manipulation, Enveloping, Wiedergabe, Null-Chiffren und Schlüsselaustausch-Angriffen verwenden.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "345", + "nist": "" + }, + { + "chapter_id": "V3", + "chapter_name": "Sessionmanagement", + "section_id": "V3.6", + "section_name": "Erneute Authentisierung", + "req_id": "V3.6.1", + "req_description": "Prüfen Sie, dass die Relying Parties gegenüber den CSPs die maximale Authentifizierungszeit angeben, und dass die CSPs den Teilnehmer erneut authentifizieren, wenn sie innerhalb dieses Zeitraums keine Sitzung verwendet haben.", + "level1": "", + "level2": "", + "level3": "✓", + "cwe": "613", + "nist": "7.2.1" + }, + { + "chapter_id": "V3", + "chapter_name": "Sessionmanagement", + "section_id": "V3.6", + "section_name": "Erneute Authentisierung", + "req_id": "V3.6.2", + "req_description": "Prüfen Sie, dass die CSPs die Relying Parties über das letzte Authentifizierungsereignis informieren, damit die RPs feststellen können, ob sie den Benutzer erneut authentifizieren müssen.", + "level1": "", + "level2": "", + "level3": "✓", + "cwe": "613", + "nist": "7.2.1" + }, + { + "chapter_id": "V3", + "chapter_name": "Sessionmanagement", + "section_id": "V3.7", + "section_name": "Verteidigung gegen Session Management Exploits", + "req_id": "V3.7.1", + "req_description": "Prüfen Sie, dass die Anwendung eine gültige Login Session gewährleistet oder eine erneute Authentifizierung oder eine sekundäre Verifizierung erfordert, bevor sensible Transaktionen oder Kontenänderungen zugelassen werden.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "306", + "nist": "" + }, + { + "chapter_id": "V4", + "chapter_name": "Maßnahmen zur Zugriffssteuerung ", + "section_id": "V4.1", + "section_name": "Design der Allgemeinen Zugriffssteuerung", + "req_id": "V4.1.1", + "req_description": "Prüfen Sie, dass die Anwendung Regeln zur Steuerung der Zugriffe auf einer vertrauenswürdigen Serviceschicht durchsetzt, insbesondere wenn die clientseitige Zugriffssteuerung umgangen werden könnte.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "602", + "nist": "" + }, + { + "chapter_id": "V4", + "chapter_name": "Maßnahmen zur Zugriffssteuerung ", + "section_id": "V4.1", + "section_name": "Design der Allgemeinen Zugriffssteuerung", + "req_id": "V4.1.2", + "req_description": "Prüfen Sie, dass alle Benutzer- und Datenattribute sowie Richtlinieninformationen, die von der Zugriffssteuerung verwendet werden, von den Endnutzern nicht manipuliert werden können, es sei denn, dies wird ausdrücklich genehmigt.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "639", + "nist": "" + }, + { + "chapter_id": "V4", + "chapter_name": "Maßnahmen zur Zugriffssteuerung ", + "section_id": "V4.1", + "section_name": "Design der Allgemeinen Zugriffssteuerung", + "req_id": "V4.1.3", + "req_description": "Prüfen Sie, dass das Prinzip der minimalen Berechtigung gilt: Benutzer sollten nur auf die unbedingt notwendigen Funktionen, Dateien, URLs, Controller, Dienste und andere Ressourcen zugreifen können. Dies bedeutet Schutz vor Spoofing und Ausweitung der Berechtigungen. ([C7](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "285", + "nist": "" + }, + { + "chapter_id": "V4", + "chapter_name": "Maßnahmen zur Zugriffssteuerung ", + "section_id": "V4.1", + "section_name": "Design der Allgemeinen Zugriffssteuerung", + "req_id": "V4.1.4", + "req_description": "[GELÖSCHT, DUPLIKAT VON 4.1.3]", + "level1": "", + "level2": "", + "level3": "", + "cwe": "", + "nist": "" + }, + { + "chapter_id": "V4", + "chapter_name": "Maßnahmen zur Zugriffssteuerung ", + "section_id": "V4.1", + "section_name": "Design der Allgemeinen Zugriffssteuerung", + "req_id": "V4.1.5", + "req_description": "Prüfen Sie, dass die Zugriffssteuerungsroutinen im Fehlerfall in einen sicheren Zustand fallen. ([C10](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "285", + "nist": "" + }, + { + "chapter_id": "V4", + "chapter_name": "Maßnahmen zur Zugriffssteuerung ", + "section_id": "V4.2", + "section_name": "Operative Zugriffssteuerung", + "req_id": "V4.2.1", + "req_description": "Prüfen Sie, dass sensible Daten und APIs vor direkten Objektangriffen geschützt sind, die auf das Erstellen, Lesen, Aktualisieren und Löschen von Datensätzen abzielen, z. B. das Erstellen oder Aktualisieren von Datensätzen einer anderen Person, das Anzeigen oder Löschen aller Datensätze.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "639", + "nist": "" + }, + { + "chapter_id": "V4", + "chapter_name": "Maßnahmen zur Zugriffssteuerung ", + "section_id": "V4.2", + "section_name": "Operative Zugriffssteuerung", + "req_id": "V4.2.2", + "req_description": "Prüfen Sie, dass die Anwendung oder das Framework einen starken Anti-CSRF-Mechanismus zum Schutz authentifizierter Funktionen durchsetzt, und dass eine effektive Anti-Automatisierung oder Anti-CSRF nicht authentifizierte Funktionen schützt.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "352", + "nist": "" + }, + { + "chapter_id": "V4", + "chapter_name": "Maßnahmen zur Zugriffssteuerung ", + "section_id": "V4.3", + "section_name": "Weitere Maßnahmen zur Zugriffssteuerung", + "req_id": "V4.3.1", + "req_description": "Prüfen Sie, dass administrative Schnittstellen eine geeignete Mehrfaktorauthentifizierung verwenden, um unbefugte Nutzung zu verhindern.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "419", + "nist": "" + }, + { + "chapter_id": "V4", + "chapter_name": "Maßnahmen zur Zugriffssteuerung ", + "section_id": "V4.3", + "section_name": "Weitere Maßnahmen zur Zugriffssteuerung", + "req_id": "V4.3.2", + "req_description": "Prüfen Sie, dass das Durchsuchen von Verzeichnissen deaktiviert ist, es sei denn, dies ist absichtlich gewünscht. Ferner ist das Auffinden oder die Offenlegung von Datei- oder Verzeichnis-Metadaten, wie z.B. Thumbs.db, .DS_Store, .git oder .svn-Ordner, nicht zulässig.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "548", + "nist": "" + }, + { + "chapter_id": "V4", + "chapter_name": "Maßnahmen zur Zugriffssteuerung ", + "section_id": "V4.3", + "section_name": "Weitere Maßnahmen zur Zugriffssteuerung", + "req_id": "V4.3.3", + "req_description": "Prüfen Sie, dass die Anwendung über zusätzliche Berechtigungen (z. B. Step-Up oder adaptive Authentifizierung) für risikoarme Systeme und / oder Aufgabentrennung für brisante Anwendungen verfügt, um Betrugsbekämpfungsmaßnahmen entsprechend dem Anwendungsrisiko durchzusetzen.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "732", + "nist": "" + }, + { + "chapter_id": "V5", + "chapter_name": "Eingabeprüfung, die Bereinigung der Ausgaben und die Zeichencodierung", + "section_id": "V5.1", + "section_name": "Eingabeprüfung", + "req_id": "V5.1.1", + "req_description": "Prüfen Sie, dass die Anwendung über Abwehrmechanismen gegen Angriffe auf HTTP-Parameter verfügt, insbesondere dann, wenn das Anwendungsframework die Quelle der Anforderungsparameter (GET, POST, Cookies, Header oder Umgebungsvariablen) nicht unterscheidet.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "235", + "nist": "" + }, + { + "chapter_id": "V5", + "chapter_name": "Eingabeprüfung, die Bereinigung der Ausgaben und die Zeichencodierung", + "section_id": "V5.1", + "section_name": "Eingabeprüfung", + "req_id": "V5.1.2", + "req_description": "Prüfen Sie, dass Frameworks vor Angriffen durch massenhafte Parameterzuweisung schützen, oder dass die Anwendung über Gegenmaßnahmen zum Schutz vor unsicherer Parameterzuweisung verfügt, wie z.B. das Markieren von Feldern als privat oder ähnliches. ([C5](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "915", + "nist": "" + }, + { + "chapter_id": "V5", + "chapter_name": "Eingabeprüfung, die Bereinigung der Ausgaben und die Zeichencodierung", + "section_id": "V5.1", + "section_name": "Eingabeprüfung", + "req_id": "V5.1.3", + "req_description": "Prüfen Sie, dass alle Eingaben (HTML-Formularfelder, REST-Anforderungen, URL-Parameter, HTTP-Header, Cookies, Batch-Dateien, RSS-Feeds usw.) mittels positiver Validierung (Whitelisting) validiert werden. ([C5](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "20", + "nist": "" + }, + { + "chapter_id": "V5", + "chapter_name": "Eingabeprüfung, die Bereinigung der Ausgaben und die Zeichencodierung", + "section_id": "V5.1", + "section_name": "Eingabeprüfung", + "req_id": "V5.1.4", + "req_description": "Prüfen Sie, dass strukturierte Daten stark typisiert sind und gemäß einem definierten Schema validiert werden. Dazu gehören die erlaubten Zeichen, Länge und Muster (z. B. Kreditkarten- oder Telefonnummern, oder die Prüfung, dass zwei zusammenhängende Felder stimmig sind, z.B. Ort und Postleitzahl). ([C5](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "20", + "nist": "" + }, + { + "chapter_id": "V5", + "chapter_name": "Eingabeprüfung, die Bereinigung der Ausgaben und die Zeichencodierung", + "section_id": "V5.1", + "section_name": "Eingabeprüfung", + "req_id": "V5.1.5", + "req_description": "Prüfen Sie, dass URL-Umleitungen und -Weiterleitungen nur Whitelist-Ziele zulassen, oder bei der Weiterleitung auf potenziell nicht vertrauenswürdige Inhalte einen Warnhinweis anzeigen.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "601", + "nist": "" + }, + { + "chapter_id": "V5", + "chapter_name": "Eingabeprüfung, die Bereinigung der Ausgaben und die Zeichencodierung", + "section_id": "V5.2", + "section_name": "Bereinigung und Sandboxing", + "req_id": "V5.2.1", + "req_description": "Prüfen Sie, dass alle nicht vertrauenswürdigen HTML-Eingaben von WYSIWYG-Editoren o.ä. ordnungsgemäß mit einer HTML-Bereinigungsbibliothek oder einer Frameworkfunktion bereinigt werden. ([C5](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "116", + "nist": "" + }, + { + "chapter_id": "V5", + "chapter_name": "Eingabeprüfung, die Bereinigung der Ausgaben und die Zeichencodierung", + "section_id": "V5.2", + "section_name": "Bereinigung und Sandboxing", + "req_id": "V5.2.2", + "req_description": "Prüfen Sie, dass unstrukturierte Daten bereinigt werden, um Sicherheitsmaßnahmen wie erlaubte Zeichen und Längenbegrenzung durchzusetzen.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "138", + "nist": "" + }, + { + "chapter_id": "V5", + "chapter_name": "Eingabeprüfung, die Bereinigung der Ausgaben und die Zeichencodierung", + "section_id": "V5.2", + "section_name": "Bereinigung und Sandboxing", + "req_id": "V5.2.3", + "req_description": "Prüfen Sie, dass die Anwendung zum Schutz vor SMTP- oder IMAP-Injektion Benutzereingaben bereinigt, bevor sie an Mailsysteme weitergeleitet werden.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "147", + "nist": "" + }, + { + "chapter_id": "V5", + "chapter_name": "Eingabeprüfung, die Bereinigung der Ausgaben und die Zeichencodierung", + "section_id": "V5.2", + "section_name": "Bereinigung und Sandboxing", + "req_id": "V5.2.4", + "req_description": "Prüfen Sie, dass die Anwendung kein eval() oder andere Funktionen zur dynamischen Ausführung von Code verwendet. Wenn es keine Alternative gibt, müssen alle Benutzereingaben, die einbezogen werden, vor der Ausführung des Programms gesäubert oder per Sandbox abgegrenzt werden.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "95", + "nist": "" + }, + { + "chapter_id": "V5", + "chapter_name": "Eingabeprüfung, die Bereinigung der Ausgaben und die Zeichencodierung", + "section_id": "V5.2", + "section_name": "Bereinigung und Sandboxing", + "req_id": "V5.2.5", + "req_description": "Prüfen Sie, dass die Anwendung vor Template-Injection-Angriffen schützt, indem Sie sicherstellen, dass alle Benutzereingaben, die aufgenommen werden, bereinigt oder per Sandbox abgegrenzt werden.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "94", + "nist": "" + }, + { + "chapter_id": "V5", + "chapter_name": "Eingabeprüfung, die Bereinigung der Ausgaben und die Zeichencodierung", + "section_id": "V5.2", + "section_name": "Bereinigung und Sandboxing", + "req_id": "V5.2.6", + "req_description": "Prüfen Sie, dass die Anwendung vor SSRF-Angriffen schützt, indem sie nicht vertrauenswürdige Daten oder HTTP-Dateimetadaten, wie z. B. Dateinamen und URL-Eingabefelder, validiert oder bereinigt. Verwenden Sie eine Whitelist von Protokollen, Domänen, Pfaden und Ports.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "918", + "nist": "" + }, + { + "chapter_id": "V5", + "chapter_name": "Eingabeprüfung, die Bereinigung der Ausgaben und die Zeichencodierung", + "section_id": "V5.2", + "section_name": "Bereinigung und Sandboxing", + "req_id": "V5.2.7", + "req_description": "Prüfen Sie, dass die Anwendung vom Benutzer bereitgestellte Scaleable Vector Graphics (SVG) von skriptfähigen Inhalten bereinigt, deaktiviert oder in Sandboxen abgrenzt, insbesondere in Bezug auf XSS, das aus Inline-Skripten und aus foreignObject resultiert.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "159", + "nist": "" + }, + { + "chapter_id": "V5", + "chapter_name": "Eingabeprüfung, die Bereinigung der Ausgaben und die Zeichencodierung", + "section_id": "V5.2", + "section_name": "Bereinigung und Sandboxing", + "req_id": "V5.2.8", + "req_description": "Prüfen Sie, dass die Anwendung vom Benutzer zur Verfügung gestellte skriptfähige Inhalte oder Inhalte von Expression Language Templates wie Markdown, CSS- oder XSL-Stylesheets, BBCode oder Ähnliches bereinigt, deaktiviert oder in Sandboxen abgrenzt.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "94", + "nist": "" + }, + { + "chapter_id": "V5", + "chapter_name": "Eingabeprüfung, die Bereinigung der Ausgaben und die Zeichencodierung", + "section_id": "V5.3", + "section_name": "Ausgabecodierung und Injektionsverhinderung", + "req_id": "V5.3.1", + "req_description": "Prüfen Sie, dass die Ausgabecodierung für den Interpreter und den erforderlichen Kontext relevant ist. Verwenden Sie z. B. Codierer gezielt für HTML-Werte, HTML-Attribute, JavaScript, URL-Parameter, HTTP-Header, SMTP und andere, wie es der Kontext erfordert, insbesondere bei nicht vertrauenswürdigen Eingaben (z.B. Namen mit Unicode oder Apostroph, wie z.B. ねこ oder O'Hara). ([C4](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "116", + "nist": "" + }, + { + "chapter_id": "V5", + "chapter_name": "Eingabeprüfung, die Bereinigung der Ausgaben und die Zeichencodierung", + "section_id": "V5.3", + "section_name": "Ausgabecodierung und Injektionsverhinderung", + "req_id": "V5.3.2", + "req_description": "Prüfen Sie, dass die Ausgabecodierung den vom Benutzer gewählten Zeichensatz sowie die Spracheinstellung beibehält, so dass jeder Unicode-Zeichenpunkt gültig ist und sicher verarbeitet wird. ([C4](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "176", + "nist": "" + }, + { + "chapter_id": "V5", + "chapter_name": "Eingabeprüfung, die Bereinigung der Ausgaben und die Zeichencodierung", + "section_id": "V5.3", + "section_name": "Ausgabecodierung und Injektionsverhinderung", + "req_id": "V5.3.3", + "req_description": "Prüfen Sie, dass kontextabhängiges, vorzugsweise automatisches Output Escaping vor reflektierten, gespeicherten und DOM-basierten XSS schützt. ([C4](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "79", + "nist": "" + }, + { + "chapter_id": "V5", + "chapter_name": "Eingabeprüfung, die Bereinigung der Ausgaben und die Zeichencodierung", + "section_id": "V5.3", + "section_name": "Ausgabecodierung und Injektionsverhinderung", + "req_id": "V5.3.4", + "req_description": "Prüfen Sie, dass die Datenauswahl- oder Datenbankabfragen (z.B. SQL, HQL, ORM, NoSQL) parametrisierte Abfragen, ORMs, Entity Frameworks verwenden oder anderweitig vor Datenbank-Injektionsangriffen geschützt sind. ([C3](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "89", + "nist": "" + }, + { + "chapter_id": "V5", + "chapter_name": "Eingabeprüfung, die Bereinigung der Ausgaben und die Zeichencodierung", + "section_id": "V5.3", + "section_name": "Ausgabecodierung und Injektionsverhinderung", + "req_id": "V5.3.5", + "req_description": "Prüfen Sie, dass dort, wo keine parametrisierten oder sichereren Mechanismen vorhanden sind, eine kontextspezifische Ausgabecodierung, z. B. SQL-Escaping, zum Schutz vor Injektionsangriffen verwendet wird. ([C3, C4](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "89", + "nist": "" + }, + { + "chapter_id": "V5", + "chapter_name": "Eingabeprüfung, die Bereinigung der Ausgaben und die Zeichencodierung", + "section_id": "V5.3", + "section_name": "Ausgabecodierung und Injektionsverhinderung", + "req_id": "V5.3.6", + "req_description": "Prüfen Sie, dass die Anwendung vor Angriffen mittels JSON-Injektion, JSON-eval() und Evaluierung von JavaScript-Ausdrücken schützt. ([C4](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "830", + "nist": "" + }, + { + "chapter_id": "V5", + "chapter_name": "Eingabeprüfung, die Bereinigung der Ausgaben und die Zeichencodierung", + "section_id": "V5.3", + "section_name": "Ausgabecodierung und Injektionsverhinderung", + "req_id": "V5.3.7", + "req_description": "Prüfen Sie, dass die Anwendung vor LDAP-Injektionsschwachstellen schützt oder das spezifische Sicherheitsmaßnahmen zur Verhinderung der LDAP-Injektion implementiert wurden. ([C4](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "90", + "nist": "" + }, + { + "chapter_id": "V5", + "chapter_name": "Eingabeprüfung, die Bereinigung der Ausgaben und die Zeichencodierung", + "section_id": "V5.3", + "section_name": "Ausgabecodierung und Injektionsverhinderung", + "req_id": "V5.3.8", + "req_description": "Prüfen Sie, dass die Anwendung vor dem Einfügen von Betriebssystemkommandos schützt und dass Betriebssystemaufrufe parametrisierte Abfragen oder eine kontextbezogene Ausgabecodierung der Befehlszeile verwenden. ([C4](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "78", + "nist": "" + }, + { + "chapter_id": "V5", + "chapter_name": "Eingabeprüfung, die Bereinigung der Ausgaben und die Zeichencodierung", + "section_id": "V5.3", + "section_name": "Ausgabecodierung und Injektionsverhinderung", + "req_id": "V5.3.9", + "req_description": "Prüfen Sie, dass die Anwendung vor Local File Inclusion (LFI)- oder Remote File Inclusion (RFI)-Angriffen schützt.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "829", + "nist": "" + }, + { + "chapter_id": "V5", + "chapter_name": "Eingabeprüfung, die Bereinigung der Ausgaben und die Zeichencodierung", + "section_id": "V5.3", + "section_name": "Ausgabecodierung und Injektionsverhinderung", + "req_id": "V5.3.10", + "req_description": "Prüfen Sie, dass die Anwendung gegen XPath Injection- oder XML-Injection-Angriffe schützt. ([C4](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "643", + "nist": "" + }, + { + "chapter_id": "V5", + "chapter_name": "Eingabeprüfung, die Bereinigung der Ausgaben und die Zeichencodierung", + "section_id": "V5.4", + "section_name": "Speicher, Strings und Unmanaged Code", + "req_id": "V5.4.1", + "req_description": "Prüfen Sie, dass die Anwendung speichersichere Zeichenfolgen, sicherere Speicherkopien und sichere Zeigerarithmetik verwendet, um Stapel-, Puffer- oder Heapüberläufe zu erkennen oder zu verhindern.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "120", + "nist": "" + }, + { + "chapter_id": "V5", + "chapter_name": "Eingabeprüfung, die Bereinigung der Ausgaben und die Zeichencodierung", + "section_id": "V5.4", + "section_name": "Speicher, Strings und Unmanaged Code", + "req_id": "V5.4.2", + "req_description": "Prüfen Sie, dass Formatstrings keine potenziell feindliche Eingabe annehmen und konstant sind.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "134", + "nist": "" + }, + { + "chapter_id": "V5", + "chapter_name": "Eingabeprüfung, die Bereinigung der Ausgaben und die Zeichencodierung", + "section_id": "V5.4", + "section_name": "Speicher, Strings und Unmanaged Code", + "req_id": "V5.4.3", + "req_description": "Prüfen Sie, dass Zeichen-, Bereichs- und Eingabeprüfungstechniken verwendet werden, um Ganzzahlüberläufe zu verhindern.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "190", + "nist": "" + }, + { + "chapter_id": "V5", + "chapter_name": "Eingabeprüfung, die Bereinigung der Ausgaben und die Zeichencodierung", + "section_id": "V5.5", + "section_name": "Prävention von Deserialisierungsangriffen", + "req_id": "V5.5.1", + "req_description": "Prüfen Sie, dass serialisierte Objekte Integritätsprüfungen verwenden oder verschlüsselt sind, um die Erstellung feindlicher Objekte oder die Manipulation von Daten zu verhindern. ([C5](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "502", + "nist": "" + }, + { + "chapter_id": "V5", + "chapter_name": "Eingabeprüfung, die Bereinigung der Ausgaben und die Zeichencodierung", + "section_id": "V5.5", + "section_name": "Prävention von Deserialisierungsangriffen", + "req_id": "V5.5.2", + "req_description": "Prüfen Sie, dass XML-Parser nur die restriktivste Konfiguration verwenden und das unsichere Funktionen wie die Auflösung externer Entitäten deaktiviert sind, um XXE zu verhindern.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "611", + "nist": "" + }, + { + "chapter_id": "V5", + "chapter_name": "Eingabeprüfung, die Bereinigung der Ausgaben und die Zeichencodierung", + "section_id": "V5.5", + "section_name": "Prävention von Deserialisierungsangriffen", + "req_id": "V5.5.3", + "req_description": "Prüfen Sie, dass die Deserialisierung nicht vertrauenswürdiger Daten sowohl im benutzerdefinierten Code als auch in Bibliotheken von Drittanbietern (wie JSON-, XML- und YAML-Parser) entweder verhindert oder gesichert wird.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "502", + "nist": "" + }, + { + "chapter_id": "V5", + "chapter_name": "Eingabeprüfung, die Bereinigung der Ausgaben und die Zeichencodierung", + "section_id": "V5.5", + "section_name": "Prävention von Deserialisierungsangriffen", + "req_id": "V5.5.4", + "req_description": "Prüfen Sie, dass beim Parsen von JSON in Browsern oder JavaScript-basierten Backends JSON.parse zum Parsen des JSON-Dokuments verwendet wird. Verwenden Sie kein eval() zum Parsen von JSON.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "95", + "nist": "" + }, + { + "chapter_id": "V6", + "chapter_name": "kryptographische Komponenten", + "section_id": "V6.1", + "section_name": "Datenklassifizierung", + "req_id": "V6.1.1", + "req_description": "Prüfen Sie, dass sensible personenbezogene Daten, oder Daten, die unter andere gesetzliche Regelungen zur Vertraulichkeit fallen, verschlüsselt gespeichert werden.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "311", + "nist": "" + }, + { + "chapter_id": "V6", + "chapter_name": "kryptographische Komponenten", + "section_id": "V6.1", + "section_name": "Datenklassifizierung", + "req_id": "V6.1.2", + "req_description": "Prüfen Sie, dass Gesundheitsdaten, wie z. B. medizinische Aufzeichnungen, Details zu medizinischen Geräten oder deanonymisierte Forschungsaufzeichnungen, verschlüsselt gespeichert werden.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "311", + "nist": "" + }, + { + "chapter_id": "V6", + "chapter_name": "kryptographische Komponenten", + "section_id": "V6.1", + "section_name": "Datenklassifizierung", + "req_id": "V6.1.3", + "req_description": "Prüfen Sie, dass Finanzdaten, wie z.B. Konten, Zahlungsausfälle oder Kredithistorie, Steuerunterlagen, Lohnhistorie, Begünstigte oder deanonymisierte Markt- oder Forschungsaufzeichnungen verschlüsselt gespeichert werden.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "311", + "nist": "" + }, + { + "chapter_id": "V6", + "chapter_name": "kryptographische Komponenten", + "section_id": "V6.2", + "section_name": "Algorithmen", + "req_id": "V6.2.1", + "req_description": "Prüfen Sie, dass alle kryptografischen Module in einen sicheren Fehlerzustand fallen und Fehler so behandelt werden, dass keine Padding-Orakel-Angriffe möglich sind.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "310", + "nist": "" + }, + { + "chapter_id": "V6", + "chapter_name": "kryptographische Komponenten", + "section_id": "V6.2", + "section_name": "Algorithmen", + "req_id": "V6.2.2", + "req_description": "Prüfen Sie, dass allgemein anerkannte oder von der Regierung freigegebene kryptografische Algorithmen, Modi und Bibliotheken anstelle von Eigenentwicklungen verwendet werden. ([C8](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "327", + "nist": "" + }, + { + "chapter_id": "V6", + "chapter_name": "kryptographische Komponenten", + "section_id": "V6.2", + "section_name": "Algorithmen", + "req_id": "V6.2.3", + "req_description": "Prüfen Sie, dass der Initialisierungsvektoren, die Chiffrierkonfiguration und die Blockmodi gemäß den neuesten Empfehlungen sicher konfiguriert werden.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "326", + "nist": "" + }, + { + "chapter_id": "V6", + "chapter_name": "kryptographische Komponenten", + "section_id": "V6.2", + "section_name": "Algorithmen", + "req_id": "V6.2.4", + "req_description": "Prüfen Sie, dass Zufallszahlengeneratoren, Verschlüsselungs- oder Hashalgorithmen, Schlüssellängen, Runden, Chiffren oder Modi jederzeit rekonfiguriert, aktualisiert oder ausgetauscht werden können. ([C8](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "326", + "nist": "" + }, + { + "chapter_id": "V6", + "chapter_name": "kryptographische Komponenten", + "section_id": "V6.2", + "section_name": "Algorithmen", + "req_id": "V6.2.5", + "req_description": "Prüfen Sie, dass unsichere Blockmodi, wie ECB u.a., Padding-Modi, wie PKCS#1 v1.5 u.a., Algorithmen mit kleinen Blockgrößen, wie Triple-DES, Blowfish u.a., sowie schwache Hashalgorithmen, wie MD5, SHA1 u.a., nicht verwendet werden, es sei denn, dies ist aus Gründen der Rückwärtskompatibilität erforderlich.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "326", + "nist": "" + }, + { + "chapter_id": "V6", + "chapter_name": "kryptographische Komponenten", + "section_id": "V6.2", + "section_name": "Algorithmen", + "req_id": "V6.2.6", + "req_description": "Prüfen Sie, dass Nonces, Initialisierungsvektoren u. ä. nicht mehr als einmal mit einem bestimmten Verschlüsselungsschlüssel verwendet werden dürfen. Die Methode der Generierung muss für den verwendeten Algorithmus geeignet sein.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "326", + "nist": "" + }, + { + "chapter_id": "V6", + "chapter_name": "kryptographische Komponenten", + "section_id": "V6.2", + "section_name": "Algorithmen", + "req_id": "V6.2.7", + "req_description": "Prüfen Sie, dass verschlüsselte Daten mittels Signaturen, authentifizierte Chiffriermodi oder HMAC authentifiziert werden, um sicherzustellen, dass der Chiffriertext nicht von Unbefugten verändert wird.", + "level1": "", + "level2": "", + "level3": "✓", + "cwe": "326", + "nist": "" + }, + { + "chapter_id": "V6", + "chapter_name": "kryptographische Komponenten", + "section_id": "V6.2", + "section_name": "Algorithmen", + "req_id": "V6.2.8", + "req_description": "Prüfen Sie, dass alle kryptografischen Operationen zeitkonstant sind und keine „Kurzschluss“-Operationen bei Vergleichen, Berechnungen oder Rückgaben stattfinden, um Informationslecks zu vermeiden.", + "level1": "", + "level2": "", + "level3": "✓", + "cwe": "385", + "nist": "" + }, + { + "chapter_id": "V6", + "chapter_name": "kryptographische Komponenten", + "section_id": "V6.3", + "section_name": "Zufallswerte", + "req_id": "V6.3.1", + "req_description": "Prüfen Sie, dass alle Zufallszahlen, zufälligen Dateinamen, zufälligen GUIDs und Zufallszeichenfolgen mit einem anerkannten kryptografisch sicheren Zufallszahlengenerator generiert werden, wenn diese Zufallswerte für einen Angreifer nicht zu erraten sein sollen.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "338", + "nist": "" + }, + { + "chapter_id": "V6", + "chapter_name": "kryptographische Komponenten", + "section_id": "V6.3", + "section_name": "Zufallswerte", + "req_id": "V6.3.2", + "req_description": "Prüfen Sie, dass zufällige GUIDs mit dem GUID v4-Algorithmus und einem kryptografisch sicheren Zufallszahlengenerator erstellt werden. GUIDs, die mit anderen Zufallszahlengeneratoren erstellt wurden, können vorhersehbar sein.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "338", + "nist": "" + }, + { + "chapter_id": "V6", + "chapter_name": "kryptographische Komponenten", + "section_id": "V6.3", + "section_name": "Zufallswerte", + "req_id": "V6.3.3", + "req_description": "Prüfen Sie, dass die Zufallszahlen mit der richtigen Entropie erzeugt werden, auch wenn die Anwendung unter starker Belastung steht, oder dass die Anwendung unter solchen Umständen angemessen reagiert.", + "level1": "", + "level2": "", + "level3": "✓", + "cwe": "338", + "nist": "" + }, + { + "chapter_id": "V6", + "chapter_name": "kryptographische Komponenten", + "section_id": "V6.4", + "section_name": "Management von Schlüsseln und Geheimnissen", + "req_id": "V6.4.1", + "req_description": "Prüfen Sie, dass eine Lösung für das Schlüsselmanagement, wie z.B. ein Schlüsseltresor, verwendet wird, um Geheimnisse sicher zu erstellen, zu speichern, die Nutzung zu kontrollieren und sie zu zerstören. ([C8](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "798", + "nist": "" + }, + { + "chapter_id": "V6", + "chapter_name": "kryptographische Komponenten", + "section_id": "V6.4", + "section_name": "Management von Schlüsseln und Geheimnissen", + "req_id": "V6.4.2", + "req_description": "Prüfen Sie, dass das Schlüsselmaterial nicht in der Anwendung genutzt wird sondern ein Sicherheitsmodul kryptographische Operationen ausführt. ([C8](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "320", + "nist": "" + }, + { + "chapter_id": "V7", + "chapter_name": "Fehlerbehandlung und Protokollierung", + "section_id": "V7.1", + "section_name": "Protokollinhalt", + "req_id": "V7.1.1", + "req_description": "Prüfen Sie, dass die Anwendung keine Anmeldeinformationen oder Zahlungsdetails protokolliert. Sessiontoken sollten nur in einer irreversiblen, gehashten Form in Protokollen gespeichert werden. ([C9, C10](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "532", + "nist": "" + }, + { + "chapter_id": "V7", + "chapter_name": "Fehlerbehandlung und Protokollierung", + "section_id": "V7.1", + "section_name": "Protokollinhalt", + "req_id": "V7.1.2", + "req_description": "Prüfen Sie, dass die Anwendung keine sonstigen sensiblen Daten protokolliert, die z. B. gemäß Datenschutzgesetzen oder den einschlägigen Sicherheitsrichtlinien als solche definiert werden. ([C9](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "532", + "nist": "" + }, + { + "chapter_id": "V7", + "chapter_name": "Fehlerbehandlung und Protokollierung", + "section_id": "V7.1", + "section_name": "Protokollinhalt", + "req_id": "V7.1.3", + "req_description": "Prüfen Sie, dass die Anwendung sicherheitsrelevante Ereignisse, einschließlich erfolgreicher und fehlgeschlagener Authentifizierungsereignisse, Fehler bei der Zugriffskontrolle, Deserialisierungsfehler und Fehler bei der Eingabeprüfung protokolliert. ([C5, C7](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "778", + "nist": "" + }, + { + "chapter_id": "V7", + "chapter_name": "Fehlerbehandlung und Protokollierung", + "section_id": "V7.1", + "section_name": "Protokollinhalt", + "req_id": "V7.1.4", + "req_description": "Prüfen Sie, dass jedes Protokollereignis die notwendigen Informationen enthält, um bei einem Vorfall eine detaillierte Untersuchung der Timeline zu ermöglichen. ([C9](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "778", + "nist": "" + }, + { + "chapter_id": "V7", + "chapter_name": "Fehlerbehandlung und Protokollierung", + "section_id": "V7.2", + "section_name": "Protokollbearbeitung", + "req_id": "V7.2.1", + "req_description": "Prüfen Sie, dass alle Authentifizierungsentscheidungen protokolliert werden, ohne dass sensible Sitzungstoken oder Passwörter gespeichert werden. Dies sollte auch die relevanten Metadaten umfassen, die für Sicherheitsuntersuchungen benötigt werden.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "778", + "nist": "" + }, + { + "chapter_id": "V7", + "chapter_name": "Fehlerbehandlung und Protokollierung", + "section_id": "V7.2", + "section_name": "Protokollbearbeitung", + "req_id": "V7.2.2", + "req_description": "Prüfen Sie, dass alle Authentifizierungen protokolliert werden können, und dass alle fehlgeschlagenen Versuche protokolliert werden. Dies sollte die relevanten Metadaten umfassen, die für Sicherheitsuntersuchungen benötigt werden.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "285", + "nist": "" + }, + { + "chapter_id": "V7", + "chapter_name": "Fehlerbehandlung und Protokollierung", + "section_id": "V7.3", + "section_name": "Schutz von Protokollen", + "req_id": "V7.3.1", + "req_description": "Prüfen Sie, dass alle Komponenten Daten angemessen codieren, um Log-Injektions-Angriffe zu verhindern. ([C9](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "117", + "nist": "" + }, + { + "chapter_id": "V7", + "chapter_name": "Fehlerbehandlung und Protokollierung", + "section_id": "V7.3", + "section_name": "Schutz von Protokollen", + "req_id": "V7.3.2", + "req_description": "[GELÖSCHT, DUPLIKAT VON 7.3.1]", + "level1": "", + "level2": "", + "level3": "", + "cwe": "", + "nist": "" + }, + { + "chapter_id": "V7", + "chapter_name": "Fehlerbehandlung und Protokollierung", + "section_id": "V7.3", + "section_name": "Schutz von Protokollen", + "req_id": "V7.3.3", + "req_description": "Prüfen Sie, dass die Protokolle vor unbefugtem Zugriff und Änderungen geschützt werden. ([C9](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "200", + "nist": "" + }, + { + "chapter_id": "V7", + "chapter_name": "Fehlerbehandlung und Protokollierung", + "section_id": "V7.3", + "section_name": "Schutz von Protokollen", + "req_id": "V7.3.4", + "req_description": "Prüfen Sie, dass die Zeitquellen mit der richtigen Zeit und Zeitzone synchronisiert sind. Erwägen Sie ernsthaft die Protokollierung ausschließlich in UTC, wenn die Systeme global sind, damit die forensische Analyse nach dem Vorfall unterstützt wird. ([C9](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "", + "nist": "" + }, + { + "chapter_id": "V7", + "chapter_name": "Fehlerbehandlung und Protokollierung", + "section_id": "V7.4", + "section_name": "Fehlerbehandlung", + "req_id": "V7.4.1", + "req_description": "Prüfen Sie, dass bei Auftreten eines unerwarteten oder sicherheitsrelevanten Fehlers eine generische Meldung angezeigt wird. Ggf. kann die Meldung eine ID enthalten, die dem Supportpersonal die Untersuchung erleichtert. ([C10](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "210", + "nist": "" + }, + { + "chapter_id": "V7", + "chapter_name": "Fehlerbehandlung und Protokollierung", + "section_id": "V7.4", + "section_name": "Fehlerbehandlung", + "req_id": "V7.4.2", + "req_description": "Prüfen Sie, dass die Ausnahmebehandlung in der gesamten Codebasis verwendet wird, um erwartete und unerwartete Fehlerbedingungen zu berücksichtigen. ([C10](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "544", + "nist": "" + }, + { + "chapter_id": "V7", + "chapter_name": "Fehlerbehandlung und Protokollierung", + "section_id": "V7.4", + "section_name": "Fehlerbehandlung", + "req_id": "V7.4.3", + "req_description": "Prüfen Sie, dass ein Fehlerbehandlungsdienst der letzten Instanz definiert ist, der alle nicht behandelten Ausnahmen abfängt. ([C10](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "431", + "nist": "" + }, + { + "chapter_id": "V8", + "chapter_name": "Schutz von Informationen", + "section_id": "V8.1", + "section_name": "Allgemeines", + "req_id": "V8.1.1", + "req_description": "Prüfen Sie, dass die Anwendung sensible Daten davor schützt, in Serverkomponenten wie Loadbalancern, Proxies u.ä. zwischengespeichert zu werden.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "524", + "nist": "" + }, + { + "chapter_id": "V8", + "chapter_name": "Schutz von Informationen", + "section_id": "V8.1", + "section_name": "Allgemeines", + "req_id": "V8.1.2", + "req_description": "Prüfen Sie, dass alle serverseitigen temporären Kopien sensibler Daten vor unbefugtem Zugriff geschützt oder nach dem Zugriff des autorisierten Benutzers auf die sensiblen Daten bereinigt/invalidiert werden.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "524", + "nist": "" + }, + { + "chapter_id": "V8", + "chapter_name": "Schutz von Informationen", + "section_id": "V8.1", + "section_name": "Allgemeines", + "req_id": "V8.1.3", + "req_description": "Prüfen Sie, dass die Anwendung die Anzahl der Parameter in einer Anfrage, wie z.B. versteckte Felder, Ajax-Variablen, Cookies und Header-Werte minimiert.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "233", + "nist": "" + }, + { + "chapter_id": "V8", + "chapter_name": "Schutz von Informationen", + "section_id": "V8.1", + "section_name": "Allgemeines", + "req_id": "V8.1.4", + "req_description": "Prüfen Sie, dass die Anwendung eine abnormale Anzahl von Anfragen, z.B. nach IP, Benutzer, Gesamtzahl pro Stunde oder Tag o. ä., erkennt und Alarm auslöst.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "770", + "nist": "" + }, + { + "chapter_id": "V8", + "chapter_name": "Schutz von Informationen", + "section_id": "V8.1", + "section_name": "Allgemeines", + "req_id": "V8.1.5", + "req_description": "Prüfen Sie, dass wichtige Daten regelmäßig gesichert werden und dass die Wiederherstellung regelmäßig geübt wird.", + "level1": "", + "level2": "", + "level3": "✓", + "cwe": "19", + "nist": "" + }, + { + "chapter_id": "V8", + "chapter_name": "Schutz von Informationen", + "section_id": "V8.1", + "section_name": "Allgemeines", + "req_id": "V8.1.6", + "req_description": "Prüfen Sie, dass die Backups sicher aufbewahrt werden, um zu verhindern, dass Daten gestohlen oder verfälscht werden.", + "level1": "", + "level2": "", + "level3": "✓", + "cwe": "19", + "nist": "" + }, + { + "chapter_id": "V8", + "chapter_name": "Schutz von Informationen", + "section_id": "V8.2", + "section_name": "Clientseitiger Schutz", + "req_id": "V8.2.1", + "req_description": "Prüfen Sie, dass die Anwendung Anti-Caching Header sendet, damit sensible Daten in modernen Browsern nicht zwischengespeichert werden.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "525", + "nist": "" + }, + { + "chapter_id": "V8", + "chapter_name": "Schutz von Informationen", + "section_id": "V8.2", + "section_name": "Clientseitiger Schutz", + "req_id": "V8.2.2", + "req_description": "Prüfen Sie, dass die im clientseitigen Speicher (z. B. lokaler HTML5-Speicher, Sitzungsspeicher, IndexedDB oder Cookies) gespeicherten Daten keine sensiblen Daten enthalten.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "922", + "nist": "" + }, + { + "chapter_id": "V8", + "chapter_name": "Schutz von Informationen", + "section_id": "V8.2", + "section_name": "Clientseitiger Schutz", + "req_id": "V8.2.3", + "req_description": "Prüfen Sie, dass authentifizierte Daten aus dem clientseitigem Speicher, z. B. dem Browser-DOM, gelöscht werden, nachdem der Client geschlossen oder die Sitzung beendet wurde.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "922", + "nist": "" + }, + { + "chapter_id": "V8", + "chapter_name": "Schutz von Informationen", + "section_id": "V8.3", + "section_name": "Personenbezogene Daten", + "req_id": "V8.3.1", + "req_description": "Prüfen Sie, dass sensible Daten im HTTP-Textkörper oder in Headern an den Server gesendet werden, und dass die Query-String-Parameter aller HTTP-Requests keine sensiblen Daten enthalten.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "319", + "nist": "" + }, + { + "chapter_id": "V8", + "chapter_name": "Schutz von Informationen", + "section_id": "V8.3", + "section_name": "Personenbezogene Daten", + "req_id": "V8.3.2", + "req_description": "Prüfen Sie, dass die Benutzer ihre Daten bei Bedarf entfernen oder exportieren können.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "212", + "nist": "" + }, + { + "chapter_id": "V8", + "chapter_name": "Schutz von Informationen", + "section_id": "V8.3", + "section_name": "Personenbezogene Daten", + "req_id": "V8.3.3", + "req_description": "Prüfen Sie, dass die Benutzer in verständlicher Sprache über die Erfassung und Verwendung der bereitgestellten personenbezogenen Daten informiert werden und dass die Benutzer ihr Einverständnis zur Verwendung dieser Daten gegeben haben, bevor diese verwendet werden.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "285", + "nist": "" + }, + { + "chapter_id": "V8", + "chapter_name": "Schutz von Informationen", + "section_id": "V8.3", + "section_name": "Personenbezogene Daten", + "req_id": "V8.3.4", + "req_description": "Prüfen Sie, dass alle von der Anwendung erstellten und verarbeiteten personenbezogenen Daten identifiziert wurden und dass eine Regelung für den Umgang mit diesen Daten vorhanden ist. ([C8](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "200", + "nist": "" + }, + { + "chapter_id": "V8", + "chapter_name": "Schutz von Informationen", + "section_id": "V8.3", + "section_name": "Personenbezogene Daten", + "req_id": "V8.3.5", + "req_description": "Prüfen Sie, dass bei Zugriff auf personenbezogene Daten geprüft wird - ohne die Daten selbst zu protokollieren - ob die Daten gemäß den einschlägigen Datenschutzrichtlinien erfasst werden oder ob eine Protokollierung des Zugriffs erforderlich ist.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "532", + "nist": "" + }, + { + "chapter_id": "V8", + "chapter_name": "Schutz von Informationen", + "section_id": "V8.3", + "section_name": "Personenbezogene Daten", + "req_id": "V8.3.6", + "req_description": "Prüfen Sie, dass die im Speicher enthaltenen Informationen überschrieben werden, sobald sie nicht mehr benötigt werden, um Memory-Dump-Angriffe abzuschwächen.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "226", + "nist": "" + }, + { + "chapter_id": "V8", + "chapter_name": "Schutz von Informationen", + "section_id": "V8.3", + "section_name": "Personenbezogene Daten", + "req_id": "V8.3.7", + "req_description": "Prüfen Sie, dass zu verschlüsselnde Informationen mit anerkannten Algorithmen verschlüsselt werden, die sowohl Vertraulichkeit als auch Integrität gewährleisten. ([C8](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "327", + "nist": "" + }, + { + "chapter_id": "V8", + "chapter_name": "Schutz von Informationen", + "section_id": "V8.3", + "section_name": "Personenbezogene Daten", + "req_id": "V8.3.8", + "req_description": "Prüfen Sie, dass personenbezogene Daten in Bezug auf die Datenspeicherung klassifiziert werden, so dass alte oder veraltete Daten automatisch, nach einem Zeitplan oder je nach Situation gelöscht werden können.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "285", + "nist": "" + }, + { + "chapter_id": "V9", + "chapter_name": "Kommunikation", + "section_id": "V9.1", + "section_name": "Kommunikationssicherheit des Clients", + "req_id": "V9.1.1", + "req_description": "Prüfen Sie, dass der Client stets TLS-Verbindungen verwendet, das nicht auf unsichere oder unverschlüsselte Konfigurationen zurückfallen. ([C8](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "319", + "nist": "" + }, + { + "chapter_id": "V9", + "chapter_name": "Kommunikation", + "section_id": "V9.1", + "section_name": "Kommunikationssicherheit des Clients", + "req_id": "V9.1.2", + "req_description": "Prüfen Sie mit aktuellen TLS-Testtools, dass nur starke Algorithmen und Protokolle genutzt werden. Dabei sind die stärksten Algorithmen und neuesten Protokollversionen zu bevorzugen.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "326", + "nist": "" + }, + { + "chapter_id": "V9", + "chapter_name": "Kommunikation", + "section_id": "V9.1", + "section_name": "Kommunikationssicherheit des Clients", + "req_id": "V9.1.3", + "req_description": "Prüfen Sie, dass nur die aktuell empfohlenen Versionen der TLS-Protokolle, also TLS 1.2 und TLS 1.3, genutzt werden. Die neueste Version ist dabei zu bevorzugen.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "326", + "nist": "" + }, + { + "chapter_id": "V9", + "chapter_name": "Kommunikation", + "section_id": "V9.2", + "section_name": "Sicherheit der Serverkommunikation", + "req_id": "V9.2.1", + "req_description": "Prüfen Sie, dass Verbindungen zum und vom Server vertrauenswürdige TLS-Zertifikate verwenden. Werden intern generierte oder selbstsignierte Zertifikate verwendet, muss der Server so konfiguriert werden, dass er nur bestimmten internen CAs vertraut. Alle anderen müssen abgelehnt werden.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "295", + "nist": "" + }, + { + "chapter_id": "V9", + "chapter_name": "Kommunikation", + "section_id": "V9.2", + "section_name": "Sicherheit der Serverkommunikation", + "req_id": "V9.2.2", + "req_description": "Prüfen Sie, dass eine verschlüsselte Kommunikation wie TLS für alle ein- und ausgehenden Verbindungen, einschließlich für Managementports, Überwachung, Authentifizierung, API- oder Webservicecalls, Datenbank-, Cloud-, serverlose, Mainframe-, externe und Partnerverbindungen verwendet wird. Der Server darf nicht auf unsichere oder unverschlüsselte Protokolle zurückgreifen.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "319", + "nist": "" + }, + { + "chapter_id": "V9", + "chapter_name": "Kommunikation", + "section_id": "V9.2", + "section_name": "Sicherheit der Serverkommunikation", + "req_id": "V9.2.3", + "req_description": "Prüfen Sie, dass alle verschlüsselten Verbindungen zu externen Systemen, die sensible Informationen oder Funktionen beinhalten, authentifiziert sind.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "287", + "nist": "" + }, + { + "chapter_id": "V9", + "chapter_name": "Kommunikation", + "section_id": "V9.2", + "section_name": "Sicherheit der Serverkommunikation", + "req_id": "V9.2.4", + "req_description": "Prüfen Sie, dass eine ordnungsgemäßer Zertifikatssperre wie z. B. das Online Certificate Status Protocol Stapling aktiviert und konfiguriert ist.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "299", + "nist": "" + }, + { + "chapter_id": "V9", + "chapter_name": "Kommunikation", + "section_id": "V9.2", + "section_name": "Sicherheit der Serverkommunikation", + "req_id": "V9.2.5", + "req_description": "Prüfen Sie, dass TLS-Verbindungsfehler in das Backend protokolliert werden.", + "level1": "", + "level2": "", + "level3": "✓", + "cwe": "544", + "nist": "" + }, + { + "chapter_id": "V10", + "chapter_name": "Bösartiger Code", + "section_id": "V10.1", + "section_name": "Kontrollen der Code-Integrität", + "req_id": "V10.1.1", + "req_description": "Prüfen Sie, dass ein Codeanalyse-Tool verwendet wird, das potenziell bösartigen Code, wie Zeitfunktionen, unsichere Dateioperationen und Netzwerkverbindungen erkennen kann.", + "level1": "", + "level2": "", + "level3": "✓", + "cwe": "749", + "nist": "" + }, + { + "chapter_id": "V10", + "chapter_name": "Bösartiger Code", + "section_id": "V10.2", + "section_name": "Suche nach bösartigem Code", + "req_id": "V10.2.1", + "req_description": "Prüfen Sie, dass der Quellcode der Anwendung und die Bibliotheken von Drittanbietern keine Möglichkeiten zum Phone Home oder zur Datenerfassung enthalten. Wenn solche Funktionen vorhanden sind, holen Sie die Erlaubnis des Benutzers ein, bevor Daten gesammelt werden.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "359", + "nist": "" + }, + { + "chapter_id": "V10", + "chapter_name": "Bösartiger Code", + "section_id": "V10.2", + "section_name": "Suche nach bösartigem Code", + "req_id": "V10.2.2", + "req_description": "Prüfen Sie, dass die Anwendung keine unnötigen oder übermäßigen Genehmigungen für datenschutzrelevante Funktionen oder Sensoren wie Kontakte, Kameras, Mikrofone oder Standorte verlangt.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "272", + "nist": "" + }, + { + "chapter_id": "V10", + "chapter_name": "Bösartiger Code", + "section_id": "V10.2", + "section_name": "Suche nach bösartigem Code", + "req_id": "V10.2.3", + "req_description": "Prüfen Sie, dass der Quellcode der Anwendung und die Bibliotheken von Drittanbietern keine Hintertüren enthalten, wie z. B. hartcodierte oder zusätzliche undokumentierte Konten oder Schlüssel, Codeverschleierung, undokumentierte Binärblobs, Rootkits oder Anti-Debugging, unsichere Debuggingfunktionen oder andere veraltete, unsichere oder versteckte Funktionen, die bei Entdeckung böswillig verwendet werden könnten.", + "level1": "", + "level2": "", + "level3": "✓", + "cwe": "507", + "nist": "" + }, + { + "chapter_id": "V10", + "chapter_name": "Bösartiger Code", + "section_id": "V10.2", + "section_name": "Suche nach bösartigem Code", + "req_id": "V10.2.4", + "req_description": "Prüfen Sie, dass der Quellcode der Anwendung und die Bibliotheken von Drittanbietern keine Zeitbomben enthalten, wenn sie nach datums- und zeitbezogenen Funktionen suchen.", + "level1": "", + "level2": "", + "level3": "✓", + "cwe": "511", + "nist": "" + }, + { + "chapter_id": "V10", + "chapter_name": "Bösartiger Code", + "section_id": "V10.2", + "section_name": "Suche nach bösartigem Code", + "req_id": "V10.2.5", + "req_description": "Prüfen Sie, dass der Quellcode der Anwendung und die Bibliotheken von Drittanbietern keinen bösartigen Code wie Salamitaktik-Angriffe, logische Umgehungen oder Logikbomben enthalten.", + "level1": "", + "level2": "", + "level3": "✓", + "cwe": "511", + "nist": "" + }, + { + "chapter_id": "V10", + "chapter_name": "Bösartiger Code", + "section_id": "V10.2", + "section_name": "Suche nach bösartigem Code", + "req_id": "V10.2.6", + "req_description": "Prüfen Sie, dass der Quellcode der Anwendung und die Bibliotheken von Drittanbietern keine Ostereier oder andere unerwünschte Funktionen enthalten.", + "level1": "", + "level2": "", + "level3": "✓", + "cwe": "507", + "nist": "" + }, + { + "chapter_id": "V10", + "chapter_name": "Bösartiger Code", + "section_id": "V10.3", + "section_name": "Integrität der Anwendung", + "req_id": "V10.3.1", + "req_description": "Prüfen Sie, dass Updates über sichere Kanäle bezogen und digital signiert werden müssen, wenn die Anwendung über eine automatische Client- oder Server Updatefunktion verfügt. Die digitale Signatur des Updates muss validiert werden, bevor das Update installiert wird.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "16", + "nist": "" + }, + { + "chapter_id": "V10", + "chapter_name": "Bösartiger Code", + "section_id": "V10.3", + "section_name": "Integrität der Anwendung", + "req_id": "V10.3.2", + "req_description": "Prüfen Sie, dass die Anwendung einen Integritätsschutz, wie Code Signing oder Subresource Integrity verwendet. Die Anwendung darf keinen Code aus nicht vertrauenswürdigen Quellen laden oder ausführen, wie z. B. das Laden von Includes, Modulen, Plugins, Codes oder Bibliotheken aus nicht vertrauenswürdigen Quellen oder dem Internet.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "353", + "nist": "" + }, + { + "chapter_id": "V10", + "chapter_name": "Bösartiger Code", + "section_id": "V10.3", + "section_name": "Integrität der Anwendung", + "req_id": "V10.3.3", + "req_description": "Prüfen Sie, ob die Anwendung Schutz vor der Übernahme von Subdomänen bietet, wenn die Anwendung auf DNS-Einträge oder DNS-Subdomänen angewiesen ist, z. B. abgelaufene Domänennamen, veraltete DNS-Pointer oder CNAMEs, abgelaufene Projekte in öffentlichen Quellcoderepositories oder vorübergehende Cloud-APIs, serverlose Funktionen oder Storage Buckets (autogen-bucket-id.cloud.example.com) oder Ähnliches. Die von den Anwendungen verwendeten DNS-Namen sind regelmäßig auf Ablauf oder Änderung zu überprüfen.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "350", + "nist": "" + }, + { + "chapter_id": "V11", + "chapter_name": "Fachliche Funktionalität", + "section_id": "V11.1", + "section_name": "Sicherheit der fachlichen Funktionen", + "req_id": "V11.1.1", + "req_description": "Prüfen Sie, dass die Anwendung nur Geschäftslogikflüsse für denselben Benutzer in sequentieller Schrittfolge und ohne das Überspringen von Schritten verarbeitet.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "841", + "nist": "" + }, + { + "chapter_id": "V11", + "chapter_name": "Fachliche Funktionalität", + "section_id": "V11.1", + "section_name": "Sicherheit der fachlichen Funktionen", + "req_id": "V11.1.2", + "req_description": "Prüfen Sie, dass die Anwendung nur Abläufe der Geschäftslogik verarbeitet, wenn alle Schritte in realistischer menschlicher Zeit bearbeitet werden, d.h. die Transaktionen werden nicht zu schnell durch automatisierte Angreifer eingereicht.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "799", + "nist": "" + }, + { + "chapter_id": "V11", + "chapter_name": "Fachliche Funktionalität", + "section_id": "V11.1", + "section_name": "Sicherheit der fachlichen Funktionen", + "req_id": "V11.1.3", + "req_description": "Prüfen Sie, dass die Anwendung über angemessene Grenzen für bestimmte Geschäftsaktionen oder Transaktionen verfügt, die für jeden Benutzer korrekt durchgesetzt werden.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "770", + "nist": "" + }, + { + "chapter_id": "V11", + "chapter_name": "Fachliche Funktionalität", + "section_id": "V11.1", + "section_name": "Sicherheit der fachlichen Funktionen", + "req_id": "V11.1.4", + "req_description": "Prüfen Sie, dass die Anwendung über ausreichende Maßnahmen gegen automatische Nutzung verfügt, um Datenausleitung, übermäßige Anforderungen an die Geschäftslogik, übermäßige Dateiuploads oder DoS-Angriffe zu erkennen und sich dagegen zu schützen.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "770", + "nist": "" + }, + { + "chapter_id": "V11", + "chapter_name": "Fachliche Funktionalität", + "section_id": "V11.1", + "section_name": "Sicherheit der fachlichen Funktionen", + "req_id": "V11.1.5", + "req_description": "Prüfen Sie, ob die Anwendung Grenzen der Geschäftslogik oder eine Validierung zum Schutz vor wahrscheinlichen Geschäftsrisiken oder Bedrohungen aufweist, die mit Hilfe von Threat Modeling oder ähnlichen Methoden ermittelt wurden.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "841", + "nist": "" + }, + { + "chapter_id": "V11", + "chapter_name": "Fachliche Funktionalität", + "section_id": "V11.1", + "section_name": "Sicherheit der fachlichen Funktionen", + "req_id": "V11.1.6", + "req_description": "Prüfen Sie, dass die Anwendung nicht unter TOCTOU oder anderen Raceconditions für sensible Operationen leidet.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "367", + "nist": "" + }, + { + "chapter_id": "V11", + "chapter_name": "Fachliche Funktionalität", + "section_id": "V11.1", + "section_name": "Sicherheit der fachlichen Funktionen", + "req_id": "V11.1.7", + "req_description": "Prüfen Sie die Anwendungsmonitore auf ungewöhnliche Ereignisse oder Aktivitäten aus der Sicht der Geschäftslogik. Zum Beispiel auf Versuche, Aktionen durchzuführen, die außerhalb der Reihe sind, oder Aktionen, die ein normaler Benutzer niemals versuchen würde. ([C9](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "754", + "nist": "" + }, + { + "chapter_id": "V11", + "chapter_name": "Fachliche Funktionalität", + "section_id": "V11.1", + "section_name": "Sicherheit der fachlichen Funktionen", + "req_id": "V11.1.8", + "req_description": "Prüfen Sie, dass die Anwendung über konfigurierbare Web Warnmeldungen verfügt, wenn automatisierte Angriffe oder ungewöhnliche Aktivitäten entdeckt werden.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "390", + "nist": "" + }, + { + "chapter_id": "V12", + "chapter_name": "Dateien und andere Ressourcen", + "section_id": "V12.1", + "section_name": "Dateiupload", + "req_id": "V12.1.1", + "req_description": "Prüfen Sie, dass die Anwendung keine großen Dateien akzeptiert, die den Speicher füllen oder einen DoS-Angriff verursachen könnten.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "400", + "nist": "" + }, + { + "chapter_id": "V12", + "chapter_name": "Dateien und andere Ressourcen", + "section_id": "V12.1", + "section_name": "Dateiupload", + "req_id": "V12.1.2", + "req_description": "Prüfen Sie, dass die Anwendung gepackte Formate, wie z.B. zip, gz, docx oder odt vor dem Entpacken auf die maximal zulässige Filegröße und die maximale Anzahl Dateien überprüft.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "409", + "nist": "" + }, + { + "chapter_id": "V12", + "chapter_name": "Dateien und andere Ressourcen", + "section_id": "V12.1", + "section_name": "Dateiupload", + "req_id": "V12.1.3", + "req_description": "Prüfen Sie, dass die Dateigröße und die maximale Anzahl von Dateien pro Benutzer limitiert wird, um sicherzustellen, dass ein einzelner Benutzer den Speicher nicht mit zu vielen oder übermäßig großen Dateien füllen kann.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "770", + "nist": "" + }, + { + "chapter_id": "V12", + "chapter_name": "Dateien und andere Ressourcen", + "section_id": "V12.2", + "section_name": "Dateiintegrität", + "req_id": "V12.2.1", + "req_description": "Prüfen Sie, dass Dateien aus nicht vertrauenswürdigen Quellen sowohl auf der Grundlage des Dateiinhalts als auch des erwarteten Typs validiert werden.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "434", + "nist": "" + }, + { + "chapter_id": "V12", + "chapter_name": "Dateien und andere Ressourcen", + "section_id": "V12.3", + "section_name": "Ausführbare Dateien", + "req_id": "V12.3.1", + "req_description": "Prüfen Sie, dass die vom Benutzer eingereichten Metadaten der Dateinamen nicht direkt vom Filesystem des Betriebssystems oder des Frameworks genutzt werden. Weiterhin ist eine URL-API zu verwenden, um vor Path Traversal zu schützen.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "22", + "nist": "" + }, + { + "chapter_id": "V12", + "chapter_name": "Dateien und andere Ressourcen", + "section_id": "V12.3", + "section_name": "Ausführbare Dateien", + "req_id": "V12.3.2", + "req_description": "Prüfen Sie, dass die vom Benutzer eingereichten Metadaten der Dateinamen validiert oder ignoriert werden, um die Offenlegung, Erstellung, Aktualisierung oder Entfernung lokaler Dateien zu verhindern.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "73", + "nist": "" + }, + { + "chapter_id": "V12", + "chapter_name": "Dateien und andere Ressourcen", + "section_id": "V12.3", + "section_name": "Ausführbare Dateien", + "req_id": "V12.3.3", + "req_description": "Prüfen Sie, dass die vom Benutzer eingereichten Metadaten der Dateinamen validiert oder ignoriert werden, um die Offenlegung oder Ausführung von serverseitigen Dateien via Remote File Inclusion (RFI) oder Serverside Request Forgery (SSRF) Angriffen zu verhindern.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "98", + "nist": "" + }, + { + "chapter_id": "V12", + "chapter_name": "Dateien und andere Ressourcen", + "section_id": "V12.3", + "section_name": "Ausführbare Dateien", + "req_id": "V12.3.4", + "req_description": "Prüfen Sie, dass die Anwendung vor Reflective File Download (RFD) schützt, indem sie die vom Benutzer eingereichten Dateinamen in einem JSON-, JSONP- oder URL-Parameter validiert oder ignoriert. Der Content-Type Header der Antwort muss auf text/plain gesetzt werden, und der Content-Disposition Header muss einen festen Dateinamen haben.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "641", + "nist": "" + }, + { + "chapter_id": "V12", + "chapter_name": "Dateien und andere Ressourcen", + "section_id": "V12.3", + "section_name": "Ausführbare Dateien", + "req_id": "V12.3.5", + "req_description": "Prüfen Sie, dass nicht vertrauenswürdige Dateimetadaten nicht direkt mit der System-API oder Bibliotheken verwendet werden, um vor OS Command Injection zu schützen.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "78", + "nist": "" + }, + { + "chapter_id": "V12", + "chapter_name": "Dateien und andere Ressourcen", + "section_id": "V12.3", + "section_name": "Ausführbare Dateien", + "req_id": "V12.3.6", + "req_description": "Prüfen Sie, dass die Anwendung keine Funktionen aus nicht vertrauenswürdigen Quellen, wie z. B. nicht verifizierte Inhaltsverteilungsnetzwerke, JavaScript-Bibliotheken, node npm-Bibliotheken oder serverseitige DLLs, enthält und ausführt.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "829", + "nist": "" + }, + { + "chapter_id": "V12", + "chapter_name": "Dateien und andere Ressourcen", + "section_id": "V12.4", + "section_name": "Speicherung von Dateien", + "req_id": "V12.4.1", + "req_description": "Prüfen Sie, dass Dateien aus nicht vertrauenswürdigen Quellen mit eingeschränkten Berechtigungen und vorzugsweise mit starker Validierung außerhalb des Webroots gespeichert werden.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "552", + "nist": "" + }, + { + "chapter_id": "V12", + "chapter_name": "Dateien und andere Ressourcen", + "section_id": "V12.4", + "section_name": "Speicherung von Dateien", + "req_id": "V12.4.2", + "req_description": "Prüfen Sie, dass Dateien aus nicht vertrauenswürdigen Quellen von Antivirenscannern gescannt werden, um das Hochladen bekannter bösartiger Inhalte zu verhindern.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "509", + "nist": "" + }, + { + "chapter_id": "V12", + "chapter_name": "Dateien und andere Ressourcen", + "section_id": "V12.5", + "section_name": "Download von Dateien", + "req_id": "V12.5.1", + "req_description": "Prüfen Sie, dass die Webschicht so konfiguriert ist, dass nur Dateien mit bestimmten Dateierweiterungen bedient werden, um unbeabsichtigte Informations- und Quellcodelecks zu vermeiden. Beispielsweise sollten Sicherungsdateien (z.B. .bak), temporäre Arbeitsdateien (z.B. .swp), komprimierte Dateien (.zip, .tar, .gz, usw.) und andere von den Editoren üblicherweise verwendete Erweiterungen blockiert werden, sofern sie nicht erforderlich sind.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "552", + "nist": "" + }, + { + "chapter_id": "V12", + "chapter_name": "Dateien und andere Ressourcen", + "section_id": "V12.5", + "section_name": "Download von Dateien", + "req_id": "V12.5.2", + "req_description": "Prüfen Sie, dass direkte Anfragen an hochgeladene Dateien niemals als HTML/JavaScript-Inhalt ausgeführt werden.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "434", + "nist": "" + }, + { + "chapter_id": "V12", + "chapter_name": "Dateien und andere Ressourcen", + "section_id": "V12.6", + "section_name": "SSRF-Schutz", + "req_id": "V12.6.1", + "req_description": "Prüfen Sie, dass der Web- oder Anwendungsserver mit einer Whitelist von Ressourcen oder Systemen konfiguriert ist, an die der Server Anfragen senden oder Daten/Dateien laden kann.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "918", + "nist": "" + }, + { + "chapter_id": "V13", + "chapter_name": "API and Web Service", + "section_id": "V13.1", + "section_name": "Allgemeine Sicherheit von Web Services ", + "req_id": "V13.1.1", + "req_description": "Prüfen Sie, dass alle Komponenten die gleichen Parser und (Zeichen-)Codierungen nutzen, um Angriffe auf Basis unterschiedlichen URI- oder File-Parsings, wie SSRF oder RFI, zu verhindern.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "116", + "nist": "" + }, + { + "chapter_id": "V13", + "chapter_name": "API and Web Service", + "section_id": "V13.1", + "section_name": "Allgemeine Sicherheit von Web Services ", + "req_id": "V13.1.2", + "req_description": "[GELÖSCHT, DUPLIKAT VON 4.3.1]", + "level1": "", + "level2": "", + "level3": "", + "cwe": "", + "nist": "" + }, + { + "chapter_id": "V13", + "chapter_name": "API and Web Service", + "section_id": "V13.1", + "section_name": "Allgemeine Sicherheit von Web Services ", + "req_id": "V13.1.3", + "req_description": "Prüfen Sie, dass API-URLs keine sensiblen Informationen wie den API-Schlüssel, Sessiontoken, etc. preisgeben.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "598", + "nist": "" + }, + { + "chapter_id": "V13", + "chapter_name": "API and Web Service", + "section_id": "V13.1", + "section_name": "Allgemeine Sicherheit von Web Services ", + "req_id": "V13.1.4", + "req_description": "Prüfen Sie, dass Berechtigungsentscheidungen sowohl an der URI, umgesetzt durch programmatische oder deklarative Sicherheit am Controller oder Router, als auch auf der Ressourcenebene, umgesetzt durch modellbasierte Berechtigungen, getroffen werden.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "285", + "nist": "" + }, + { + "chapter_id": "V13", + "chapter_name": "API and Web Service", + "section_id": "V13.1", + "section_name": "Allgemeine Sicherheit von Web Services ", + "req_id": "V13.1.5", + "req_description": "Prüfen Sie, dass Anfragen mit unerwarteten oder fehlenden Inhaltstypen mit entsprechenden Headern zurückgewiesen werden (HTTP-Antwortstatus 406 oder 415).", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "434", + "nist": "" + }, + { + "chapter_id": "V13", + "chapter_name": "API and Web Service", + "section_id": "V13.2", + "section_name": "RESTful Web Services", + "req_id": "V13.2.1", + "req_description": "Prüfen Sie, dass aktivierte RESTful-HTTP-Methoden eine gültige Wahl für den Benutzer oder eine Aktion sind, wie z.B. verhindern, dass normale Benutzer DELETE oder PUT auf geschützte API oder Ressourcen anwenden.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "650", + "nist": "" + }, + { + "chapter_id": "V13", + "chapter_name": "API and Web Service", + "section_id": "V13.2", + "section_name": "RESTful Web Services", + "req_id": "V13.2.2", + "req_description": "Prüfen Sie, dass die JSON-Schemavalidierung vorhanden und verifiziert ist, bevor Sie eine Eingabe akzeptieren.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "20", + "nist": "" + }, + { + "chapter_id": "V13", + "chapter_name": "API and Web Service", + "section_id": "V13.2", + "section_name": "RESTful Web Services", + "req_id": "V13.2.3", + "req_description": "Prüfen Sie, dass RESTful-Webdienste, die Cookies verwenden, durch die Verwendung von mindestens einem oder mehrerer der folgenden Verfahren vor Cross Site Request Forgery geschützt sind: Double Submit Cookie Pattern, CSRF-Nonces oder Prüfungen des Origin-Request Headers.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "352", + "nist": "" + }, + { + "chapter_id": "V13", + "chapter_name": "API and Web Service", + "section_id": "V13.2", + "section_name": "RESTful Web Services", + "req_id": "V13.2.4", + "req_description": "[GELÖSCHT, DUPLIKAT VON 11.1.4]", + "level1": "", + "level2": "", + "level3": "", + "cwe": "", + "nist": "" + }, + { + "chapter_id": "V13", + "chapter_name": "API and Web Service", + "section_id": "V13.2", + "section_name": "RESTful Web Services", + "req_id": "V13.2.5", + "req_description": "Prüfen Sie, dass die REST-Dienste explizit prüfen, ob der eingehende Contenttyp der erwartete ist, z.B. application/xml oder application/json.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "436", + "nist": "" + }, + { + "chapter_id": "V13", + "chapter_name": "API and Web Service", + "section_id": "V13.2", + "section_name": "RESTful Web Services", + "req_id": "V13.2.6", + "req_description": "Prüfen Sie, dass die Message Header und die Nutzdaten vertrauenswürdig sind und während der Übertragung nicht verändert werden. Die Anforderung einer starken Verschlüsselung für den Transport (nur TLS) kann in vielen Fällen ausreichend sein, da sie sowohl die Vertraulichkeit als auch den Schutz der Integrität gewährleistet. Digitale Signaturen pro Nachricht können bei Hochsicherheitsanwendungen für zusätzliche Sicherheit beim Transportschutz sorgen, bringen aber zusätzliche Komplexität und Risiken mit sich, die gegen die Vorteile abzuwägen sind.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "345", + "nist": "" + }, + { + "chapter_id": "V13", + "chapter_name": "API and Web Service", + "section_id": "V13.3", + "section_name": "SOAP Web Service", + "req_id": "V13.3.1", + "req_description": "Prüfen Sie, dass vor der Verarbeitung von Eingabedaten zuerst eine XSD-Schemavalidierung stattfindet, um ein korrekt geformtes XML-Dokument zu gewährleisten, gefolgt von der Validierung jedes Eingabefeldes.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "20", + "nist": "" + }, + { + "chapter_id": "V13", + "chapter_name": "API and Web Service", + "section_id": "V13.3", + "section_name": "SOAP Web Service", + "req_id": "V13.3.2", + "req_description": "Prüfen Sie, dass die Nutzdaten der Nachricht mit WS-Security signiert sind, um einen zuverlässigen Transport zwischen Client und Service zu gewährleisten.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "345", + "nist": "" + }, + { + "chapter_id": "V13", + "chapter_name": "API and Web Service", + "section_id": "V13.4", + "section_name": "GraphQL", + "req_id": "V13.4.1", + "req_description": "Prüfen Sie, dass eine Query Whitelist oder eine Kombination von Begrenzung der Tiefe und Anzahl verwendet werden sollte, um einen DoS-Angriff von GraphQL oder Datenschichtausdrücken als Folge teurer, verschachtelter Abfragen zu verhindern. Für fortgeschrittenere Szenarien sollte die Abfragekostenanalyse verwendet werden.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "770", + "nist": "" + }, + { + "chapter_id": "V13", + "chapter_name": "API and Web Service", + "section_id": "V13.4", + "section_name": "GraphQL", + "req_id": "V13.4.2", + "req_description": "Prüfen Sie, dass die Berechtigungen für die Datenschicht, z.B. GraphQL, in der Geschäftslogikschicht anstelle der Datenschicht umgesetzt ist.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "285", + "nist": "" + }, + { + "chapter_id": "V14", + "chapter_name": "Konfiguration", + "section_id": "V14.1", + "section_name": "Build- und Deployprozess", + "req_id": "V14.1.1", + "req_description": "Prüfen Sie, dass die Build- und Deploymentprozesse auf sichere und wiederholbare Weise durchgeführt werden, z. B. durch CI-/CD-Automatisierung, automatisiertes Konfigurationsmanagement und automatisierte Deploymentskripte.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "", + "nist": "" + }, + { + "chapter_id": "V14", + "chapter_name": "Konfiguration", + "section_id": "V14.1", + "section_name": "Build- und Deployprozess", + "req_id": "V14.1.2", + "req_description": "Prüfen Sie, dass die Compilerflags so konfiguriert sind, dass sie alle verfügbaren Pufferüberlaufschutzmechanismen und Warnungen aktivieren, einschließlich der Stackrandomisierung, der Verhinderung der Datenausführung und des Buildabbruchs, wenn ein(e) unsichere(r) Pointer, Speicher, Formatstring, Integer- oder Stringoperationen gefunden wird.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "120", + "nist": "" + }, + { + "chapter_id": "V14", + "chapter_name": "Konfiguration", + "section_id": "V14.1", + "section_name": "Build- und Deployprozess", + "req_id": "V14.1.3", + "req_description": "Prüfen Sie, dass die Serverkonfiguration gemäß den Empfehlungen des verwendeten Anwendungsservers und Frameworks gehärtet wird.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "16", + "nist": "" + }, + { + "chapter_id": "V14", + "chapter_name": "Konfiguration", + "section_id": "V14.1", + "section_name": "Build- und Deployprozess", + "req_id": "V14.1.4", + "req_description": "Prüfen Sie, dass die Anwendung, die Konfiguration und alle Abhängigkeiten mit Hilfe automatisierter Deploymentskripte wieder installiert werden können, indem sie innerhalb eines angemessenen Zeitraums aus einem dokumentierten und getesteten Runbook erstellt oder aus Backups zeitnah wiederhergestellt werden können.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "", + "nist": "" + }, + { + "chapter_id": "V14", + "chapter_name": "Konfiguration", + "section_id": "V14.1", + "section_name": "Build- und Deployprozess", + "req_id": "V14.1.5", + "req_description": "Prüfen Sie, dass autorisierte Administratoren die Integrität aller sicherheitsrelevanten Konfigurationen überprüfen können, um Manipulationen zu erkennen.", + "level1": "", + "level2": "", + "level3": "✓", + "cwe": "", + "nist": "" + }, + { + "chapter_id": "V14", + "chapter_name": "Konfiguration", + "section_id": "V14.2", + "section_name": "Management von Abhängigkeiten", + "req_id": "V14.2.1", + "req_description": "Prüfen Sie, dass alle Komponenten auf dem neuesten Stand sind, am besten mit einem Abhängigkeitsprüfer zur Build- oder Kompilierzeit. ([C2](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "1026", + "nist": "" + }, + { + "chapter_id": "V14", + "chapter_name": "Konfiguration", + "section_id": "V14.2", + "section_name": "Management von Abhängigkeiten", + "req_id": "V14.2.2", + "req_description": "Prüfen Sie, dass alle nicht benötigten Funktionen, Dokumentationen, Beispiele und Konfigurationen entfernt werden.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "1002", + "nist": "" + }, + { + "chapter_id": "V14", + "chapter_name": "Konfiguration", + "section_id": "V14.2", + "section_name": "Management von Abhängigkeiten", + "req_id": "V14.2.3", + "req_description": "Prüfen Sie, dass die Integrität externen Inhaltes durch Subresource Integrity (SRI) überprüft wird, wenn Anwendungsassets wie JavaScript-Bibliotheken, CSS oder Web-Fonts extern, z.B. bei einem Content Delivery Network oder bei einem externen Anbieter, gehostet werden.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "829", + "nist": "" + }, + { + "chapter_id": "V14", + "chapter_name": "Konfiguration", + "section_id": "V14.2", + "section_name": "Management von Abhängigkeiten", + "req_id": "V14.2.4", + "req_description": "Prüfen Sie, dass Komponenten Dritter aus bekannten, vertrauenswürdigen und kontinuierlich gepflegten Repositories stammen. ([C2](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "829", + "nist": "" + }, + { + "chapter_id": "V14", + "chapter_name": "Konfiguration", + "section_id": "V14.2", + "section_name": "Management von Abhängigkeiten", + "req_id": "V14.2.5", + "req_description": "Prüfen Sie, dass eine Softwarestückliste (Bill of Materials, SBOM) aller genutzten Bibliotheken von Drittanbietern geführt wird. ([C2](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "", + "nist": "" + }, + { + "chapter_id": "V14", + "chapter_name": "Konfiguration", + "section_id": "V14.2", + "section_name": "Management von Abhängigkeiten", + "req_id": "V14.2.6", + "req_description": "Prüfen Sie, dass die Angriffsfläche durch Sandboxing oder Einkapselung von Bibliotheken von Drittanbietern reduziert wird, damit die Anwendung nur die erforderliche Funktionalität erhält. ([C2](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "265", + "nist": "" + }, + { + "chapter_id": "V14", + "chapter_name": "Konfiguration", + "section_id": "V14.3", + "section_name": "Offenlegung von Informationen", + "req_id": "V14.3.1", + "req_description": "[GELÖSCHT, DUPLIKAT VON 7.4.1]", + "level1": "", + "level2": "", + "level3": "", + "cwe": "", + "nist": "" + }, + { + "chapter_id": "V14", + "chapter_name": "Konfiguration", + "section_id": "V14.3", + "section_name": "Offenlegung von Informationen", + "req_id": "V14.3.2", + "req_description": "Prüfen Sie, dass die Debugmodi von Web- und Anwendungsserver sowie Anwendungsframework in der Produktion deaktiviert sind, um Sicherheitslücken durch Debugfunktionen oder Entwicklerkonsolen zu vermeiden.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "497", + "nist": "" + }, + { + "chapter_id": "V14", + "chapter_name": "Konfiguration", + "section_id": "V14.3", + "section_name": "Offenlegung von Informationen", + "req_id": "V14.3.3", + "req_description": "Prüfen Sie, dass die HTTP-Header und HTTP-Antworten keine detaillierten Versionsinformationen von Systemkomponenten enthalten.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "200", + "nist": "" + }, + { + "chapter_id": "V14", + "chapter_name": "Konfiguration", + "section_id": "V14.4", + "section_name": "HTTP Security Header", + "req_id": "V14.4.1", + "req_description": "Prüfen Sie, dass jede HTTP-Antwort einen Content Type Header enthält. Für die Content types text/*, /+xml oder application/xml sollten ein sicherer Zeichensatz (z. B. UTF-8, ISO 8859-1) angeben sein. Der Inhalt muss zum angegebenen Content Type Header passen.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "173", + "nist": "" + }, + { + "chapter_id": "V14", + "chapter_name": "Konfiguration", + "section_id": "V14.4", + "section_name": "HTTP Security Header", + "req_id": "V14.4.2", + "req_description": "Prüfen Sie, dass alle API-Antworten die Content-Disposition: attachment; filename=„api.json“ Header oder einen anderen geeigneten Dateinamen für den Inhaltstyp enthalten.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "116", + "nist": "" + }, + { + "chapter_id": "V14", + "chapter_name": "Konfiguration", + "section_id": "V14.4", + "section_name": "HTTP Security Header", + "req_id": "V14.4.3", + "req_description": "Prüfen Sie, dass ein Content Security Policy (CSP) Response Header vorhanden ist, die dazu beiträgt, die Auswirkungen von XSS-Angriffen wie HTML-, DOM-, JSON- und JavaScript-Injektionsschwachstellen abzuschwächen.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "1021", + "nist": "" + }, + { + "chapter_id": "V14", + "chapter_name": "Konfiguration", + "section_id": "V14.4", + "section_name": "HTTP Security Header", + "req_id": "V14.4.4", + "req_description": "Prüfen Sie, dass alle Antworten X-Content-Type-Optionen: nosniff Header enthalten.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "116", + "nist": "" + }, + { + "chapter_id": "V14", + "chapter_name": "Konfiguration", + "section_id": "V14.4", + "section_name": "HTTP Security Header", + "req_id": "V14.4.5", + "req_description": "Prüfen Sie, dass ein HTTP Strict-Transport-Security Header in allen Antworten und für alle Unterdomänen enthalten ist, z. B. Strict-Transport-Security: max-age=15724800; includeSubdomains.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "523", + "nist": "" + }, + { + "chapter_id": "V14", + "chapter_name": "Konfiguration", + "section_id": "V14.4", + "section_name": "HTTP Security Header", + "req_id": "V14.4.6", + "req_description": "Prüfen Sie, dass ein geeigneter Referrer-Policy Header enthalten ist, um das Veröffentlichen sensibler Informationen über den Referer Header zu vermeiden.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "116", + "nist": "" + }, + { + "chapter_id": "V14", + "chapter_name": "Konfiguration", + "section_id": "V14.4", + "section_name": "HTTP Security Header", + "req_id": "V14.4.7", + "req_description": "Prüfen Sie, dass der Inhalt einer Webanwendung nicht standardmäßig in Seiten Dritter eingebunden werden kann. Das Einbinden der exakten Ressourcen ist nur erlaubt, wenn nötig. Dabei sind passende Content-Security-Policy: frame-ancestors und X-Frame-Options Response Header zu nutzen.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "1021", + "nist": "" + }, + { + "chapter_id": "V14", + "chapter_name": "Konfiguration", + "section_id": "V14.5", + "section_name": "Prüfung der HTTP Request Header", + "req_id": "V14.5.1", + "req_description": "Prüfen Sie, dass der Anwendungsserver nur die von der Anwendung oder der API verwendeten HTTP-Methoden akzeptiert, einschließlich der Pre-Flight-OPTIONS. Alle ungültigen Request sollten ins Log geschrieben werden oder einen Alarm auslösen.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "749", + "nist": "" + }, + { + "chapter_id": "V14", + "chapter_name": "Konfiguration", + "section_id": "V14.5", + "section_name": "Prüfung der HTTP Request Header", + "req_id": "V14.5.2", + "req_description": "Prüfen Sie, dass der bereitgestellte Origin Header nicht für Authentifizierungs- oder Zugriffskontrollentscheidungen verwendet wird, da der Origin Header von einem Angreifer leicht geändert werden kann.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "346", + "nist": "" + }, + { + "chapter_id": "V14", + "chapter_name": "Konfiguration", + "section_id": "V14.5", + "section_name": "Prüfung der HTTP Request Header", + "req_id": "V14.5.3", + "req_description": "Prüfen Sie, dass der CORS-Access-Control-Allow-Origin Header eine strikte Whitelist mit vertrauenswürdigen Domains verwendet und den „Null“-Ursprung nicht unterstützt.", + "level1": "✓", + "level2": "✓", + "level3": "✓", + "cwe": "346", + "nist": "" + }, + { + "chapter_id": "V14", + "chapter_name": "Konfiguration", + "section_id": "V14.5", + "section_name": "Prüfung der HTTP Request Header", + "req_id": "V14.5.4", + "req_description": "Prüfen Sie, dass HTTP-Header, die von einem vertrauenswürdigen Proxy oder SSO-Geräten, wie z. B. einem Bearer-Token, hinzugefügt wurden, von der Anwendung authentifiziert werden.", + "level1": "", + "level2": "✓", + "level3": "✓", + "cwe": "306", + "nist": "" + } + ] +} diff --git a/4.0/docs_de/OWASP Application Security Verification Standard 4.0.3-de.json b/4.0/docs_de/OWASP Application Security Verification Standard 4.0.3-de.json new file mode 100644 index 0000000000..09d1685b9b --- /dev/null +++ b/4.0/docs_de/OWASP Application Security Verification Standard 4.0.3-de.json @@ -0,0 +1,6734 @@ +{ + "Name": "Application Security Verification Standard Project", + "ShortName": "ASVS", + "Version": "4.0.3", + "Description": "The OWASP Application Security Verification Standard (ASVS) Project provides a basis for testing web application technical security controls and also provides developers with a list of requirements for secure development.", + "Requirements": [ + { + "Shortcode": "V1", + "Ordinal": 1, + "ShortName": "Architecture", + "Name": "Architektur, Design und Threat Modeling", + "Items": [ + { + "Shortcode": "V1.1", + "Ordinal": 1, + "Name": "Der sichere Softwareentwicklungszyklus", + "Items": [ + { + "Shortcode": "V1.1.1", + "Ordinal": 1, + "Description": "Prüfen Sie, dass der SDLC die Sicherheit in allen Entwicklungsphasen berücksichtigt. ([C1](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [], + "NIST": [] + }, + { + "Shortcode": "V1.1.2", + "Ordinal": 2, + "Description": "Prüfen Sie, dass für Designänderung oder Sprintplanung eine Bedrohungsanalyse stattfand, um Bedrohungen zu identifizieren, Gegenmaßnahmen zu planen und umzusetzen sowie passende Sicherheitstests zu planen.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 1053 + ], + "NIST": [] + }, + { + "Shortcode": "V1.1.3", + "Ordinal": 3, + "Description": "Prüfen Sie, dass alle Userstories und alle Merkmale funktionale Sicherheitsanforderungen enthalten, z.B. „Als Benutzer sollte ich mein Profil anzeigen und bearbeiten können. Ich sollte nicht in der Lage sein, das Profil eines anderen anzusehen oder zu bearbeiten“.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 1110 + ], + "NIST": [] + }, + { + "Shortcode": "V1.1.4", + "Ordinal": 4, + "Description": "Prüfen Sie die Dokumentation und Erläuterung aller Sicherheitsgrenzen, Komponenten und wichtigen Datenflüsse der Anwendung.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 1059 + ], + "NIST": [] + }, + { + "Shortcode": "V1.1.5", + "Ordinal": 5, + "Description": "Prüfen Sie die Definition und Sicherheitsanalyse der High Level Architektur der Anwendung und aller verbundenen Remoteservices. ([C1](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 1059 + ], + "NIST": [] + }, + { + "Shortcode": "V1.1.6", + "Ordinal": 6, + "Description": "Prüfen Sie, dass Sicherheitsmaßnahmen zentralisiert, einfach, geprüft, sicher und wiederverwendbar implementiert worden sind. Dies vermeidet doppelte, fehlende, unwirksame oder unsichere Maßnahmen. ([C10](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 637 + ], + "NIST": [] + }, + { + "Shortcode": "V1.1.7", + "Ordinal": 7, + "Description": "Prüfen Sie die Verfügbarkeit einer Checkliste für die sichere Programmierung, Sicherheitsanforderungen, eines Leitfadens oder Richtlinien für alle Entwickler und Tester.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 637 + ], + "NIST": [] + } + ] + }, + { + "Shortcode": "V1.2", + "Ordinal": 2, + "Name": "Architektur der Authentifizierung", + "Items": [ + { + "Shortcode": "V1.2.1", + "Ordinal": 1, + "Description": "Prüfen Sie die Nutzung spezifischer Betriebssystemkonten bzw. solcher mit minimalen Berechtigungen für alle Komponenten, Dienste und Server. ([C3](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 250 + ], + "NIST": [] + }, + { + "Shortcode": "V1.2.2", + "Ordinal": 2, + "Description": "Prüfen Sie, dass die Kommunikation zwischen Anwendungskomponenten, einschließlich APIs, Middleware und Datenschichten, authentifiziert wird. Komponenten sollten die minimal notwendigen Berechtigungen haben. ([C3](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 306 + ], + "NIST": [] + }, + { + "Shortcode": "V1.2.3", + "Ordinal": 3, + "Description": "Prüfen Sie, dass die Anwendung einen einzigen geprüften und sicheren Authentifizierungsmechanismus verwendet, der auf eine starke Authentifizierung erweitert werden kann und über ein ausreichendes Logging und Monitoring verfügt, um Einbrüche oder Missbrauch zu erkennen.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 306 + ], + "NIST": [] + }, + { + "Shortcode": "V1.2.4", + "Ordinal": 4, + "Description": "Prüfen Sie, dass alle Authentifizierungspfade und Identitätsmanagement-APIs eine einheitliche Stärke der Authentifizierung implementieren, so dass es keine schwächeren Alternativen pro Anwendungsrisiko gibt.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 306 + ], + "NIST": [] + } + ] + }, + { + "Shortcode": "V1.3", + "Ordinal": 3, + "Name": "Architektur des Sessionmanagements", + "Items": [] + }, + { + "Shortcode": "V1.4", + "Ordinal": 4, + "Name": "Architektur der Zugriffskontrolle", + "Items": [ + { + "Shortcode": "V1.4.1", + "Ordinal": 1, + "Description": "Prüfen Sie, dass Zugriffskontrollen von vertrauenswürdigen Stellen, wie z.B. Accesscontrol Gateways, Servern oder serverlosen Funktionen, ausgeführt werden. Implementieren Sie Zugriffskontrollen niemals am Client.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 602 + ], + "NIST": [] + }, + { + "Shortcode": "V1.4.2", + "Ordinal": 2, + "Description": "[GELÖSCHT, NICHT UMSETZBAR]", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": false, + "Requirement": "" + }, + "L3": { + "Required": false, + "Requirement": "" + }, + "CWE": [], + "NIST": [] + }, + { + "Shortcode": "V1.4.3", + "Ordinal": 3, + "Description": "[GELÖSCHT, DUPLIKAT VON 4.1.3]", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": false, + "Requirement": "" + }, + "L3": { + "Required": false, + "Requirement": "" + }, + "CWE": [], + "NIST": [] + }, + { + "Shortcode": "V1.4.4", + "Ordinal": 4, + "Description": "Prüfen Sie, dass die Anwendung mit einer einzigen und gut erprobten Zugriffssteuerung auf geschützte Daten und Ressourcen zugreift. Alle Anfragen müssen diesen einen Weg nutzen, um Kopieren und Einfügen oder unsichere Alternativpfade zu vermeiden. ([C7](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 284 + ], + "NIST": [] + }, + { + "Shortcode": "V1.4.5", + "Ordinal": 5, + "Description": "Prüfen Sie, dass eine attribut- oder merkmalsbasierte Zugriffskontrolle verwendet wird, die die Berechtigung des Benutzers zum Zugriff auf ein Merkmal oder Datenelement und nicht nur seine Rolle prüft. Die Berechtigungen sollten weiterhin über Rollen vergeben werden. ([C7](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 275 + ], + "NIST": [] + } + ] + }, + { + "Shortcode": "V1.5", + "Ordinal": 5, + "Name": "Architektur des Ein- und Ausgabemanagements ", + "Items": [ + { + "Shortcode": "V1.5.1", + "Ordinal": 1, + "Description": "Prüfen Sie, dass die Ein- und Ausgabeanforderungen klar definieren, wie die Daten auf der Grundlage des Typs, des Inhalts und der anwendbaren Gesetze, Vorschriften und anderen Richtlinien zu verarbeiten sind.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 1029 + ], + "NIST": [] + }, + { + "Shortcode": "V1.5.2", + "Ordinal": 2, + "Description": "Prüfen Sie, dass bei der Kommunikation mit nicht vertrauenswürdigen Clients keine Serialisierung verwendet wird. Ist dies nicht möglich, prüfen Sie, dass die Integrität geprüft und bei sensiblen Daten auch verschlüsselt wird, um Deserialisierungsangriffe oder Object Injection Angriffe zu verhindern.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 502 + ], + "NIST": [] + }, + { + "Shortcode": "V1.5.3", + "Ordinal": 3, + "Description": "Prüfen Sie, dass die Eingabevalidierung in einer vertrauenswürdigen Serviceschicht durchgesetzt wird. ([C5](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 602 + ], + "NIST": [] + }, + { + "Shortcode": "V1.5.4", + "Ordinal": 4, + "Description": "Prüfen Sie, dass die Ausgabecodierung in der Nähe des oder durch den Interpreter erfolgt, für den sie bestimmt ist. ([C4](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 116 + ], + "NIST": [] + } + ] + }, + { + "Shortcode": "V1.6", + "Ordinal": 6, + "Name": "Architektur kryptographischer Maßnahmen", + "Items": [ + { + "Shortcode": "V1.6.1", + "Ordinal": 1, + "Description": "Prüfen Sie, dass es eine explizite Richtlinie für das Schlüsselmanagement gibt, und dass der Lebenszyklus eines kryptografischen Schlüssels konform zu einem Standard für das Schlüsselmanagement wie NIST SP 800-57 ist.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 320 + ], + "NIST": [] + }, + { + "Shortcode": "V1.6.2", + "Ordinal": 2, + "Description": "Prüfen Sie, dass Nutzer kryptografischer Dienste Schlüssel und andere Geheimnisse mit Hilfe von Schlüsseltresoren oder API-basierte Alternativen schützen.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 320 + ], + "NIST": [] + }, + { + "Shortcode": "V1.6.3", + "Ordinal": 3, + "Description": "Prüfen Sie, dass alle Schlüssel und Passwörter ersetzbar und Teil eines genau definierten Prozesses zur Neuverschlüsselung sensibler Daten sind.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 320 + ], + "NIST": [] + }, + { + "Shortcode": "V1.6.4", + "Ordinal": 4, + "Description": "Prüfen Sie, dass clientseitige Geheimnisse, wie symmetrische Schlüssel, Passwörter oder API-Token, architektonisch als unsicher betrachtet werden. Sie dürfen nicht zum Schutz sensibler Daten verwendet werden.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 320 + ], + "NIST": [] + } + ] + }, + { + "Shortcode": "V1.7", + "Ordinal": 7, + "Name": "Architektur von Fehlerbehandlung, Protokollierung und Audit", + "Items": [ + { + "Shortcode": "V1.7.1", + "Ordinal": 1, + "Description": "Prüfen Sie, dass im gesamten System Herangehensweise und Protokollformat einheitlich sind. ([C9](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 1009 + ], + "NIST": [] + }, + { + "Shortcode": "V1.7.2", + "Ordinal": 2, + "Description": "Prüfen Sie, dass die Protokolle zur Analyse, Erkennung, Alarmierung und Eskalation sicher übertragen werden - vorzugsweise an ein eigenständiges System. ([C9](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [], + "NIST": [] + } + ] + }, + { + "Shortcode": "V1.8", + "Ordinal": 8, + "Name": "Architektonische Anforderungen zur Einhaltung des Datenschutzes", + "Items": [ + { + "Shortcode": "V1.8.1", + "Ordinal": 1, + "Description": "Prüfen Sie, dass alle sensiblen Daten identifiziert und klassifiziert werden.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [], + "NIST": [] + }, + { + "Shortcode": "V1.8.2", + "Ordinal": 2, + "Description": "Prüfen Sie, dass für alle Schutzklassen entsprechende Anforderungen existieren, z. B. an die Vertraulichkeit, die Integrität, Aufbewahrung, Datenschutz etc. und dass diese in der Architektur angewendet werden.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [], + "NIST": [] + } + ] + }, + { + "Shortcode": "V1.9", + "Ordinal": 9, + "Name": "Architektur der Kommunikationsverbindungen", + "Items": [ + { + "Shortcode": "V1.9.1", + "Ordinal": 1, + "Description": "Prüfen Sie, dass die Anwendung die Kommunikation zwischen Komponenten verschlüsselt, insbesondere wenn sich diese in verschiedenen Containern, Systemen, Standorten oder Cloudanbietern befinden. ([C3](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 319 + ], + "NIST": [] + }, + { + "Shortcode": "V1.9.2", + "Ordinal": 2, + "Description": "Prüfen Sie, dass die Anwendungskomponenten die Authentizität beider Seiten einer Kommunikationsverbindung verifizieren, um Man-in-the-Middle-Angriffe zu verhindern. Beispielsweise sollten die Anwendungskomponenten TLS-Zertifikate und Zertifikatsketten verifizieren.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 295 + ], + "NIST": [] + } + ] + }, + { + "Shortcode": "V1.10", + "Ordinal": 10, + "Name": "Architektonische Anforderungen zum Schutz vor unbefugten Änderungen", + "Items": [ + { + "Shortcode": "V1.10.1", + "Ordinal": 1, + "Description": "Prüfen Sie, dass das Quellcodeverwaltungssystem sicherstellt, dass Check-Ins mit Issues oder Änderungstickets einhergehen. Das Quellcodeverwaltungssystem sollte über eine Zugriffskontrolle und identifizierbare Benutzer verfügen, um Änderungen nachverfolgen zu können.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 284 + ], + "NIST": [] + } + ] + }, + { + "Shortcode": "V1.11", + "Ordinal": 11, + "Name": "Architektur der Geschäftslogik", + "Items": [ + { + "Shortcode": "V1.11.1", + "Ordinal": 1, + "Description": "Prüfen Sie die Definition und Dokumentation aller Anwendungskomponenten auf die von ihnen bereitgestellten Fach- oder Sicherheitsfunktionen.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 1059 + ], + "NIST": [] + }, + { + "Shortcode": "V1.11.2", + "Ordinal": 2, + "Description": "Prüfen Sie, dass alle geschäftskritischen Abläufe, inkl. der Authentifizierung, des Sessionmanagements und der Zugriffssteuerung stets synchronisiert sind.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 362 + ], + "NIST": [] + }, + { + "Shortcode": "V1.11.3", + "Ordinal": 3, + "Description": "Prüfen Sie, dass alle geschäftskritischen Abläufe, einschließlich der Authentifizierung, des Sessionmanagements und der Zugriffssteuerung thread-sicher und sicher gegen TOCTOU Race Conditions sind.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": false, + "Requirement": "" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 367 + ], + "NIST": [] + } + ] + }, + { + "Shortcode": "V1.12", + "Ordinal": 12, + "Name": "Sicheres Datei Upload ", + "Items": [ + { + "Shortcode": "V1.12.1", + "Ordinal": 1, + "Description": "[GELÖSCHT, DUPLIKAT VON 12.4.1]", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": false, + "Requirement": "" + }, + "L3": { + "Required": false, + "Requirement": "" + }, + "CWE": [], + "NIST": [] + }, + { + "Shortcode": "V1.12.2", + "Ordinal": 2, + "Description": "Prüfen Sie, dass vom Benutzer hochgeladene Dateien - sofern sie angezeigt oder von der Anwendung heruntergeladen werden müssen - entweder durch Oktett-Stream-Downloads oder von einer nicht verwandten Domäne, wie z.B. einem Cloud File Storage Bucket, bereitgestellt werden. Implementieren Sie geeignete Sicherheitsmaßnahmen für Dateiinhalte, um das Risiko von Angriffen mit Hilfe der hochgeladenen Datei zu reduzieren.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 646 + ], + "NIST": [] + } + ] + }, + { + "Shortcode": "V1.13", + "Ordinal": 13, + "Name": "API-Architektur", + "Items": [] + }, + { + "Shortcode": "V1.14", + "Ordinal": 14, + "Name": "Architektonische Anforderungen an die Konfiguration", + "Items": [ + { + "Shortcode": "V1.14.1", + "Ordinal": 1, + "Description": "Prüfen Sie die Trennung von Komponenten unterschiedlicher Vertrauensstufen durch gut durchdachte Sicherheitsmaßnahmen, Firewallregeln, API-Gateways, Reverseproxies, cloudbasierte Sicherheitsgruppen o.ä.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 923 + ], + "NIST": [] + }, + { + "Shortcode": "V1.14.2", + "Ordinal": 2, + "Description": "Prüfen Sie, dass digitale Signaturen, vertrauenswürdige Verbindungen und vertrauenswürdige Downloadquellen verwendet werden, um Binärdaten auf Endgeräte zu verteilen.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 494 + ], + "NIST": [] + }, + { + "Shortcode": "V1.14.3", + "Ordinal": 3, + "Description": "Prüfen Sie, dass die Buildpipeline vor veralteten oder unsicheren Komponenten warnt und entsprechende Maßnahmen ergreift.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 1104 + ], + "NIST": [] + }, + { + "Shortcode": "V1.14.4", + "Ordinal": 4, + "Description": "Prüfen Sie, dass die Buildpipeline einen Schritt enthält, um die sichere Deploymentversion der Anwendung automatisch zu erstellen und zu verifizieren, insbesondere wenn die Anwendungsinfrastruktur softwarebasiert ist, wie z. B. Cloudumgebungen.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [], + "NIST": [] + }, + { + "Shortcode": "V1.14.5", + "Ordinal": 5, + "Description": "Prüfen Sie, dass Anwendungen auf der Netzwerkebene voneinander separiert sind, z.B. per Sandbox oder Container, um Angreifer auszubremsen und davon abzuhalten, andere Anwendungen anzugreifen, insbesondere wenn sie sensible Aktionen wie eine Deserialisierung durchführen. ([C5](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 265 + ], + "NIST": [] + }, + { + "Shortcode": "V1.14.6", + "Ordinal": 6, + "Description": "Prüfen Sie, dass die Anwendung keine nicht unterstützten, unsicheren oder veralteten clientseitigen Technologien wie NSAPI-Plugins, Flash, Shockwave, ActiveX, Silverlight, NACL oder clientseitige Java-Applets verwendet.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 477 + ], + "NIST": [] + } + ] + } + ] + }, + { + "Shortcode": "V2", + "Ordinal": 2, + "ShortName": "Authentication", + "Name": "", + "Items": [ + { + "Shortcode": "V2.1", + "Ordinal": 1, + "Name": "Passwortsicherheit", + "Items": [ + { + "Shortcode": "V2.1.1", + "Ordinal": 1, + "Description": "Prüfen Sie, dass Benutzerpasswörter mindestens 12 Zeichen lang sind, nachdem zusammenhängende Leerzeichen gekürzt wurden. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 521 + ], + "NIST": [ + "5.1.1.2" + ] + }, + { + "Shortcode": "V2.1.2", + "Ordinal": 2, + "Description": "Prüfen Sie, dass Passwörter mit 64 oder mehr Zeichen erlaubt sind, jedoch nicht mehr als 128 Zeichen. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 521 + ], + "NIST": [ + "5.1.1.2" + ] + }, + { + "Shortcode": "V2.1.3", + "Ordinal": 3, + "Description": "Prüfen Sie, dass Passwörter nicht gekürzt werden. Mehrere aufeinanderfolgende Leerzeichen können zu einem zusammengefasst werden. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 521 + ], + "NIST": [ + "5.1.1.2" + ] + }, + { + "Shortcode": "V2.1.4", + "Ordinal": 4, + "Description": "Prüfen Sie, ob alle druckbaren Unicode-Zeichen, auch Leerzeichen oder Emojis, in Passwörtern zulässig sind.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 521 + ], + "NIST": [ + "5.1.1.2" + ] + }, + { + "Shortcode": "V2.1.5", + "Ordinal": 5, + "Description": "Prüfen Sie, dass Benutzer ihr Passwort ändern können.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 620 + ], + "NIST": [ + "5.1.1.2" + ] + }, + { + "Shortcode": "V2.1.6", + "Ordinal": 6, + "Description": "Prüfen Sie, dass die Passwortänderungsfunktion das bisherige sowie das neue Kennwort des Benutzers erfordert.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 620 + ], + "NIST": [ + "5.1.1.2" + ] + }, + { + "Shortcode": "V2.1.7", + "Ordinal": 7, + "Description": "Prüfen Sie, dass die bei der Kontoregistrierung, beim Login und bei der Passwortänderung übermittelten Passwörter mit einen Satz verletzter Passwörtern verglichen werden, und zwar entweder lokal (z. B. mit den 1.000 oder 10.000 häufigsten Passwörtern, die mit der Passwortrichtlinie des Systems übereinstimmen) oder mit Hilfe einer externen API. Bei Verwendung einer API muss sichergestellt werden, dass das Klartextpasswort nicht gesendet oder anderweitig offengelegt wird. Wird das Passwort offengelegt, muss die Anwendung den Benutzer auffordern, ein neues Passwort festzulegen. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 521 + ], + "NIST": [ + "5.1.1.2" + ] + }, + { + "Shortcode": "V2.1.8", + "Ordinal": 8, + "Description": "Prüfen Sie, dass ein Maß für die Passwortstärke bereitgestellt wird, damit Benutzer ein stärkeres Passwort erstellen können.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 521 + ], + "NIST": [ + "5.1.1.2" + ] + }, + { + "Shortcode": "V2.1.9", + "Ordinal": 9, + "Description": "Prüfen Sie, dass es keine Regeln für die Zusammenstellung der Passwörter gibt, welche die Art der zulässigen Zeichen einschränken. Die Verwendung bestimmter Zeichen, wie Groß- oder Kleinschreibung, Zahlen oder Sonderzeichen sollte nicht verlangt werden. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 521 + ], + "NIST": [ + "5.1.1.2" + ] + }, + { + "Shortcode": "V2.1.10", + "Ordinal": 10, + "Description": "Prüfen Sie, dass weder periodischer Passwortwechsel notwendig ist noch eine Passworthistorie gespeichert wird.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 263 + ], + "NIST": [ + "5.1.1.2" + ] + }, + { + "Shortcode": "V2.1.11", + "Ordinal": 11, + "Description": "Prüfen Sie, dass die „Einfügen“-Funktion, Passworthilfen der Browser und externe Passwortmanager zugelassen sind.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 521 + ], + "NIST": [ + "5.1.1.2" + ] + }, + { + "Shortcode": "V2.1.12", + "Ordinal": 12, + "Description": "Prüfen Sie, dass der Benutzer wählen kann, entweder das gesamte Passwort vorübergehend angezeigt zu bekommen oder das letzte eingetippte Zeichen des Passwortes angezeigt zu bekommen.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 521 + ], + "NIST": [ + "5.1.1.2" + ] + } + ] + }, + { + "Shortcode": "V2.2", + "Ordinal": 2, + "Name": "Allgemeine Sicherheitsanforderungen an den Authentifikator", + "Items": [ + { + "Shortcode": "V2.2.1", + "Ordinal": 1, + "Description": "Prüfen Sie, dass Maßnahmen gegen automatische Angriffe, wie das Ausprobieren von Passworten oder das Aussperren von Benutzern, wirksam umgesetzt sind. Dazu gehören das Blockieren der am häufigsten verwendeten Passwörter, Soft-Lockouts, die Begrenzung der Anzahl von Anmeldungen, CAPTCHA, wachsende Verzögerungen zwischen den Fehlversuchen, IP-Adressbeschränkungen oder risikobasierte Einschränkungen wie Standort, erste Anmeldung auf einem Gerät, kürzliche Versuche, das Konto zu entsperren oder Ähnliches. Prüfen Sie, dass nicht mehr als 100 Fehlversuche pro Stunde bei einem einzelnen Konto möglich sind.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 307 + ], + "NIST": [ + "5.2.2", + "5.1.1.2", + "5.1.4.2", + "5.1.5.2" + ] + }, + { + "Shortcode": "V2.2.2", + "Ordinal": 2, + "Description": "Prüfen Sie, dass der Einsatz schwacher Authentifikationsmethoden, wie SMS und E-Mail, auf die sekundäre Verifizierung und Transaktionsgenehmigung beschränkt ist und nicht als Ersatz für sicherere Authentifizierungsmethoden dient. Prüfen Sie, dass stärkere Methoden vor schwachen Methoden eingesetzt werden, dass sich die Benutzer der Risiken bewusst sind oder dass geeignete Maßnahmen zur Begrenzung des Risikos getroffen werden.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 304 + ], + "NIST": [ + "5.2.10" + ] + }, + { + "Shortcode": "V2.2.3", + "Ordinal": 3, + "Description": "Prüfen Sie, dass die Benutzer sichere Benachrichtigungen nach Aktualisierungen der Authentifizierungsdetails, wie z. B. das Zurücksetzen von Anmeldedaten, E-Mail- oder Adressänderungen, Anmeldung von unbekannten oder risikobehafteten Orten erhalten. Die Verwendung von Push-Benachrichtigungen - anstelle von SMS oder E-Mail - ist vorzuziehen. Bei fehlenden Push-Benachrichtigungen sind SMS oder E-Mail jedoch akzeptabel, solange in der Benachrichtigung keine sensiblen Informationen offengelegt werden.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 620 + ], + "NIST": [] + }, + { + "Shortcode": "V2.2.4", + "Ordinal": 4, + "Description": "Prüfen Sie die Resistenz gegen Phishing durch Authentifizierung mittels Mehrfaktor-Authentifizierung, Public Key Kryptographie, Chipkarten und Push-Nachrichten, auf höheren AAL-Ebenen: clientseitige Zertifikate.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": false, + "Requirement": "" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 308 + ], + "NIST": [ + "5.2.5" + ] + }, + { + "Shortcode": "V2.2.5", + "Ordinal": 5, + "Description": "Prüfen Sie, dass der CSP und die nutzende Anwendung über zweiseitig authentifiziertes TLS kommunizieren.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": false, + "Requirement": "" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 319 + ], + "NIST": [ + "5.2.6" + ] + }, + { + "Shortcode": "V2.2.6", + "Ordinal": 6, + "Description": "Prüfen Sie, dass Authentifikationsdaten nicht wieder eingespielt werden können. Dies kann z.B. mit One Time Password (OTP) Generatoren, Chipkarten o.ä. verhindert werden.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": false, + "Requirement": "" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 308 + ], + "NIST": [ + "5.2.8" + ] + }, + { + "Shortcode": "V2.2.7", + "Ordinal": 7, + "Description": "Prüfen Sie, dass eine Authentifikation nicht unbeabsichtigt stattfinden kann. Verlangen Sie die Eingabe eines OTP-Tokens oder eine vom Benutzer initiierte Aktion, wie z.B. einen Tastendruck auf einem FIDO-Hardwaretoken.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": false, + "Requirement": "" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 308 + ], + "NIST": [ + "5.2.9" + ] + } + ] + }, + { + "Shortcode": "V2.3", + "Ordinal": 3, + "Name": "Lebenszyklus des Authentifikators", + "Items": [ + { + "Shortcode": "V2.3.1", + "Ordinal": 1, + "Description": "Vom System generierte Anfangspasswörter oder Aktivierungscodes SOLLTEN sicher zufällig generiert werden. Sie SOLLTEN mindestens 6 Zeichen lang sein und KÖNNEN Buchstaben und Zahlen enthalten. Sie MÜSSEN nach einer kurzen Zeitspanne ablaufen. Diese Initialpasswörter dürfen nicht zum dauerhaften Passwort werden.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 330 + ], + "NIST": [ + "5.1.1.2", + "A.3" + ] + }, + { + "Shortcode": "V2.3.2", + "Ordinal": 2, + "Description": "Prüfen Sie, dass die Registrierung und die Verwendung von vom Teilnehmer bereitgestellten Authentifizierungsgeräten unterstützt werden, wie z. B. U2F- oder FIDO-Token.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 308 + ], + "NIST": [ + "6.1.3" + ] + }, + { + "Shortcode": "V2.3.3", + "Ordinal": 3, + "Description": "Prüfen Sie, dass die Aufforderung zur Erneuerung zeitgebundener Authentifikatoren rechtzeitig gesendet werden.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 287 + ], + "NIST": [ + "6.1.4" + ] + } + ] + }, + { + "Shortcode": "V2.4", + "Ordinal": 4, + "Name": "Speicherung der Anmeldedaten", + "Items": [ + { + "Shortcode": "V2.4.1", + "Ordinal": 1, + "Description": "Prüfen Sie, dass die Passwörter in einer Form gespeichert werden, die immun gegen Offlineangriffe ist. Passwörter MÜSSEN mit einem Salt versehen werden. Der Passworthash muss mit Hilfe einer sicheren Funktion zur Schlüsselberechnung oder einer Passwort-Hashfunktion berechnet werden. Die Funktionen zur Schlüsselberechnung und zum Passwort-Hashing nehmen ein Passwort, einen Salt und einen Kostenfaktor als Eingabewerte. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 916 + ], + "NIST": [ + "5.1.1.2" + ] + }, + { + "Shortcode": "V2.4.2", + "Ordinal": 2, + "Description": "Prüfen Sie, dass das Salt mindestens 32 Bit lang ist und zufällig gewählt wird, um Saltwertkollisionen zwischen gespeicherten Hashes zu minimieren. Für jede Anmeldeinformation (Credential) MUSS ein eindeutiger Saltwert und der daraus resultierende Hash gespeichert werden. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 916 + ], + "NIST": [ + "5.1.1.2" + ] + }, + { + "Shortcode": "V2.4.3", + "Ordinal": 3, + "Description": "Prüfen Sie, dass bei Verwendung von PBKDF2 der Iterationszähler so groß sein SOLLTE, wie es die Leistung des Verifikationsservers zulässt, normalerweise mindestens 100.000 Iterationen. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 916 + ], + "NIST": [ + "5.1.1.2" + ] + }, + { + "Shortcode": "V2.4.4", + "Ordinal": 4, + "Description": "Prüfen Sie, dass bei Verwendung von bcrypt der Arbeitsfaktor so groß sein SOLLTE, wie es die Leistung des Verifikationsservers erlaubt, jedoch mindestens 10. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 916 + ], + "NIST": [ + "5.1.1.2" + ] + }, + { + "Shortcode": "V2.4.5", + "Ordinal": 5, + "Description": "Prüfen Sie, dass eine zusätzliche Iteration einer Funktion zur Schlüsselberechnung durchgeführt wird. Dabei ist ein Saltwert zu verwenden, der nur dem Verifizierer bekannt ist. Generieren Sie den Saltwert mit einem zugelassenen Zufallsgenerator [SP 800-90Ar1]. Stellen Sie die in der letzten Revision von SP 800-131A angegebene Mindestsicherheitsstärke sicher. Der geheime Saltwert MUSS getrennt von den gehashten Passwörtern gespeichert werden, z.B. in einem speziellen Gerät wie einem HSM.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 916 + ], + "NIST": [ + "5.1.1.2" + ] + } + ] + }, + { + "Shortcode": "V2.5", + "Ordinal": 5, + "Name": "Wiederherstellung von Anmeldedaten", + "Items": [ + { + "Shortcode": "V2.5.1", + "Ordinal": 1, + "Description": "Prüfen Sie, dass ein vom System generiertes Initial- oder Wiederherstellungsgeheimnis nicht im Klartext an den Benutzer gesendet wird. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 640 + ], + "NIST": [ + "5.1.1.2" + ] + }, + { + "Shortcode": "V2.5.2", + "Ordinal": 2, + "Description": "Prüfen Sie, dass keine Hinweise auf Passwörter oder wissensbasierte Authentifizierung, z.B. „geheime Fragen“ vorliegen.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 640 + ], + "NIST": [ + "5.1.1.2" + ] + }, + { + "Shortcode": "V2.5.3", + "Ordinal": 3, + "Description": "Prüfen Sie, dass die Wiederherstellung von Anmeldedaten das aktuelle Kennwort nicht preisgibt. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 640 + ], + "NIST": [ + "5.1.1.2" + ] + }, + { + "Shortcode": "V2.5.4", + "Ordinal": 4, + "Description": "Prüfen Sie, dass Gemeinschafts- oder Standardkonten, z.B. „root“, „admin“, „Gast“ oder „sa“ deaktiviert oder gelöscht sind.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 16 + ], + "NIST": [ + "5.1.1.2", + "A.3" + ] + }, + { + "Shortcode": "V2.5.5", + "Ordinal": 5, + "Description": "Prüfen Sie, dass der Benutzer informiert wird, wenn ein Authentifizierungsfaktor geändert oder ersetzt wird.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 304 + ], + "NIST": [ + "6.1.2.3" + ] + }, + { + "Shortcode": "V2.5.6", + "Ordinal": 6, + "Description": "Prüfen Sie, dass der Prozess zur Wiederherstellung, z.B. für vergessene Passwörter, einen sicheren Kanal, z. B. TOTP oder andere Softtoken, Mobile Push oder andere Offlinekanäle, verwendet. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 640 + ], + "NIST": [ + "5.1.1.2" + ] + }, + { + "Shortcode": "V2.5.7", + "Ordinal": 7, + "Description": "Prüfen Sie, dass der Identitätsnachweis bei Verlust von OTP- oder Mehrfaktor-Token auf derselben Ebene wie bei der Registrierung durchgeführt wird.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 308 + ], + "NIST": [ + "6.1.2.3" + ] + } + ] + }, + { + "Shortcode": "V2.6", + "Ordinal": 6, + "Name": "Verifizierung von TAN-Listen", + "Items": [ + { + "Shortcode": "V2.6.1", + "Ordinal": 1, + "Description": "Prüfen Sie, dass die Geheimcodes nur einmal verwendet werden können.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 308 + ], + "NIST": [ + "5.1.2.2" + ] + }, + { + "Shortcode": "V2.6.2", + "Ordinal": 2, + "Description": "Prüfen Sie, ob die Geheimcodes eine ausreichende Zufälligkeit aufweisen (112 Bit Entropie). Falls weniger als 112 Bit Entropie vorhanden sind, sind ein einzigartiger und zufälliger 32 Bit Salt und eine zugelassene Hashfunktion zu nutzen.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 330 + ], + "NIST": [ + "5.1.2.2" + ] + }, + { + "Shortcode": "V2.6.3", + "Ordinal": 3, + "Description": "Prüfen Sie, dass Geheimcodes gegen Offlineangriffe, wie z.B. vorhersehbare Werte, immun sind.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 310 + ], + "NIST": [ + "5.1.2.2" + ] + } + ] + }, + { + "Shortcode": "V2.7", + "Ordinal": 7, + "Name": "Out-of-Band Verifizierer", + "Items": [ + { + "Shortcode": "V2.7.1", + "Ordinal": 1, + "Description": "Prüfen Sie, dass Out-of-Band Authentifikatoren, die NIST „restricted“ sind, wie z.B. SMS, nicht standardmäßig angeboten werden und dass stärkere Alternativen wie Push-Nachrichten zuerst angeboten werden.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 287 + ], + "NIST": [ + "5.1.3.2" + ] + }, + { + "Shortcode": "V2.7.2", + "Ordinal": 2, + "Description": "Prüfen Sie, dass der Out-of-Band Verifizierer bei Out-of-Band Authentifizierungsanforderungen, -Codes oder -Tokens nach 10 Minuten abläuft.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 287 + ], + "NIST": [ + "5.1.3.2" + ] + }, + { + "Shortcode": "V2.7.3", + "Ordinal": 3, + "Description": "Prüfen Sie, dass Authentifizierungsanfragen, -Codes oder ‑Token an den Out-of-Band Verifizierer nur einmal und nur für die ursprüngliche Authentifizierungsanfrage verwendbar sind.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 287 + ], + "NIST": [ + "5.1.3.2" + ] + }, + { + "Shortcode": "V2.7.4", + "Ordinal": 4, + "Description": "Prüfen Sie, dass der Out-of-Band Authentifizierer und der Verifizierer über einen sicheren, unabhängigen Kanal kommunizieren.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 523 + ], + "NIST": [ + "5.1.3.2" + ] + }, + { + "Shortcode": "V2.7.5", + "Ordinal": 5, + "Description": "Prüfen Sie, dass der Out-of-Band Verifizierer nur eine gehashte Version des Authentifizierungscodes speichert.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 256 + ], + "NIST": [ + "5.1.3.2" + ] + }, + { + "Shortcode": "V2.7.6", + "Ordinal": 6, + "Description": "Prüfen Sie, dass der initiale Authentifizierungscode von einem sicheren Zufallszahlengenerator erzeugt wird, der mindestens 20 Bit Entropie enthält. Normalerweise ist eine sechsstellige Zufallszahl ausreichend.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 310 + ], + "NIST": [ + "5.1.3.2" + ] + } + ] + }, + { + "Shortcode": "V2.8", + "Ordinal": 8, + "Name": "Ein- oder Mehrfaktor-Einwegverifizierer", + "Items": [ + { + "Shortcode": "V2.8.1", + "Ordinal": 1, + "Description": "Prüfen Sie, dass zeitbasierte OTPs eine definierte Lebensdauer haben, bevor sie ablaufen.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 613 + ], + "NIST": [ + "5.1.4.2", + "5.1.5.2" + ] + }, + { + "Shortcode": "V2.8.2", + "Ordinal": 2, + "Description": "Prüfen Sie, dass die symmetrischen Schlüssel, die zur Prüfung der eingegebenen OTPs verwendet werden, sicher geschützt sind, z.B. durch Verwendung eines HSM oder der sicheren Schlüsselspeicherung des Betriebssystems.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 320 + ], + "NIST": [ + "5.1.4.2", + "5.1.5.2" + ] + }, + { + "Shortcode": "V2.8.3", + "Ordinal": 3, + "Description": "Prüfen Sie, dass anerkannte kryptografische Algorithmen bei der Generierung, dem Seeding und der Verifizierung verwendet werden.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 326 + ], + "NIST": [ + "5.1.4.2", + "5.1.5.2" + ] + }, + { + "Shortcode": "V2.8.4", + "Ordinal": 4, + "Description": "Prüfen Sie, dass das zeitbasierte OTP nur einmal innerhalb des Gültigkeitszeitraums verwendet werden können.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 287 + ], + "NIST": [ + "5.1.4.2", + "5.1.5.2" + ] + }, + { + "Shortcode": "V2.8.5", + "Ordinal": 5, + "Description": "Prüfen Sie, dass ein zeitbasiertes Mehrfaktor-OTP, das während der Gültigkeitsdauer wiederverwendet wird, protokolliert und mit sicheren Benachrichtigungen an den Inhaber des Geräts abgelehnt wird.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 287 + ], + "NIST": [ + "5.1.5.2" + ] + }, + { + "Shortcode": "V2.8.6", + "Ordinal": 6, + "Description": "Prüfen Sie, ob physische OTP-Generatoren im Falle von Diebstahl oder Verlust gesperrt werden können. Stellen Sie sicher, dass der Widerruf sofort für alle eingeloggten Sitzungen, unabhängig vom Standort, wirksam ist.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 613 + ], + "NIST": [ + "5.2.1" + ] + }, + { + "Shortcode": "V2.8.7", + "Ordinal": 7, + "Description": "Prüfen Sie, dass biometrische Authentifikatoren nur als sekundäre Faktoren in Verbindung mit etwas, das Sie haben oder etwas, das Sie wissen, verwendet werden dürfen.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "Optional" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 308 + ], + "NIST": [ + "5.2.3" + ] + } + ] + }, + { + "Shortcode": "V2.9", + "Ordinal": 9, + "Name": "Kryptografische Software und Geräte im Authentifizierungsprozess", + "Items": [ + { + "Shortcode": "V2.9.1", + "Ordinal": 1, + "Description": "Prüfen Sie, dass die bei der Authentifizierung verwendeten kryptografischen Schlüssel sicher gespeichert und gegen Offenlegung geschützt sind, z. B. durch Verwendung eines Trusted Platform Module (TPM) oder eines Hardware Security Modules (HSM) oder eines Betriebssystemdienstes.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 320 + ], + "NIST": [ + "5.1.7.2" + ] + }, + { + "Shortcode": "V2.9.2", + "Ordinal": 2, + "Description": "Prüfen Sie, dass der Zufallswert mindestens 64 Bit lang ist und statistisch einmalig oder für die Lebensdauer des kryptografischen Geräts einmalig ist.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 330 + ], + "NIST": [ + "5.1.7.2" + ] + }, + { + "Shortcode": "V2.9.3", + "Ordinal": 3, + "Description": "Prüfen Sie, dass anerkannte kryptografische Algorithmen bei allen kryptographischen Operationen verwendet werden.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 327 + ], + "NIST": [ + "5.1.7.2" + ] + } + ] + }, + { + "Shortcode": "V2.10", + "Ordinal": 10, + "Name": "Service-Authentifizierung", + "Items": [ + { + "Shortcode": "V2.10.1", + "Ordinal": 1, + "Description": "Prüfen Sie, dass Intra-Service-Geheimnisse nicht auf unveränderlichen Credentials, wie Passwörtern, API-Schlüsseln oder gemeinsam genutzten privilegierten Konten beruhen.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "OS assisted" + }, + "L3": { + "Required": true, + "Requirement": "HSM" + }, + "CWE": [ + 287 + ], + "NIST": [ + "5.1.1.1" + ] + }, + { + "Shortcode": "V2.10.2", + "Ordinal": 2, + "Description": "Prüfen Sie, dass Servicekonten, die zur Anmeldung genutzt werden, keine Standardpasswörter, wie root / root oder admin / admin, die häufig voreingestellt sind, nutzen.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "OS assisted" + }, + "L3": { + "Required": true, + "Requirement": "HSM" + }, + "CWE": [ + 255 + ], + "NIST": [ + "5.1.1.1" + ] + }, + { + "Shortcode": "V2.10.3", + "Ordinal": 3, + "Description": "Prüfen Sie, dass Passworthashwerte mit ausreichendem Schutz gespeichert werden, um Offlineangriffe, zu verhindern.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "OS assisted" + }, + "L3": { + "Required": true, + "Requirement": "HSM" + }, + "CWE": [ + 522 + ], + "NIST": [ + "5.1.1.1" + ] + }, + { + "Shortcode": "V2.10.4", + "Ordinal": 4, + "Description": "Prüfen Sie, dass Passwörter, Zugänge zu Datenbanken o.a. Systemen, Seeds, interne Geheimnisse sowie API-Schlüssel sicher verwaltet werden. Sie dürfen nicht in den Quellcode aufgenommen bzw. in Quellcoderepositories gespeichert werden. Eine solche Speicherung muss Offline-Angriffen widerstehen. Für die Passwortspeicherung wird die Verwendung eines sicheren Softwareschlüsselspeichers (L1), eines TPM oder eines HSM (L3) empfohlen.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "OS assisted" + }, + "L3": { + "Required": true, + "Requirement": "HSM" + }, + "CWE": [ + 798 + ], + "NIST": [] + } + ] + } + ] + }, + { + "Shortcode": "V3", + "Ordinal": 3, + "ShortName": "Session", + "Name": "Sessionmanagement", + "Items": [ + { + "Shortcode": "V3.1", + "Ordinal": 1, + "Name": "Grundlegende Sicherheit des Sessionmanagements", + "Items": [ + { + "Shortcode": "V3.1.1", + "Ordinal": 1, + "Description": "Prüfen Sie, dass die Anwendung niemals Sessiontoken in URL-Parametern oder Fehlermeldungen offenbart.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 598 + ], + "NIST": [] + } + ] + }, + { + "Shortcode": "V3.2", + "Ordinal": 2, + "Name": "Session Binding", + "Items": [ + { + "Shortcode": "V3.2.1", + "Ordinal": 1, + "Description": "Prüfen Sie, ob die Anwendung bei der Authentifizierung eines Benutzers ein neues Sessiontoken generiert. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 384 + ], + "NIST": [ + "7.1" + ] + }, + { + "Shortcode": "V3.2.2", + "Ordinal": 2, + "Description": "Prüfen Sie, dass Sessiontoken mindestens 64 Bit Entropie aufweisen. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 331 + ], + "NIST": [ + "7.1" + ] + }, + { + "Shortcode": "V3.2.3", + "Ordinal": 3, + "Description": "Prüfen Sie, dass die Anwendung Sessiontoken im Browser nur mit sicheren Methoden wie z.B. gesicherten Cookies (siehe Abschnitt 3.4) oder den HTML 5-Methoden speichert.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 539 + ], + "NIST": [ + "7.1" + ] + }, + { + "Shortcode": "V3.2.4", + "Ordinal": 4, + "Description": "Prüfen Sie, dass die Sessiontoken mit anerkannten kryptografischen Algorithmen generiert werden. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 331 + ], + "NIST": [ + "7.1" + ] + } + ] + }, + { + "Shortcode": "V3.3", + "Ordinal": 3, + "Name": "Beenden der Session", + "Items": [ + { + "Shortcode": "V3.3.1", + "Ordinal": 1, + "Description": "Prüfen Sie, dass Abmeldung und Ablauf das Sessiontoken ungültig machen, so dass die Zurück-Taste oder eine nachgeschaltete Relying Party eine authentifizierte Sitzung auch nicht zwischen den Relying Parties wiederaufnimmt. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 613 + ], + "NIST": [ + "7.1" + ] + }, + { + "Shortcode": "V3.3.2", + "Ordinal": 2, + "Description": "Wenn die Benutzer eingeloggt bleiben, Prüfen Sie, dass eine erneute Authentifizierung in regelmäßigen Abständen sowohl bei aktiver Nutzung als auch nach einer Leerlaufphase erfolgt. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "L1": { + "Required": true, + "Requirement": "30 Tage" + }, + "L2": { + "Required": true, + "Requirement": "12 Stunden oder 30 Minuten Inaktivität, 2FA optional" + }, + "L3": { + "Required": true, + "Requirement": "12 Stunden oder 15 Minuten Inaktivität, mit 2FA" + }, + "CWE": [ + 613 + ], + "NIST": [ + "7.2" + ] + }, + { + "Shortcode": "V3.3.3", + "Ordinal": 3, + "Description": "Prüfen Sie, dass es die Anwendung ermöglicht, alle anderen aktiven Sitzungen nach einer erfolgreichen Kennwortänderung zu beenden. Dies muss in der gesamten Anwendung, der föderierten Anmeldung (falls vorhanden) und bei allen Relying Parties wirksam sein.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 613 + ], + "NIST": [] + }, + { + "Shortcode": "V3.3.4", + "Ordinal": 4, + "Description": "Prüfen Sie, dass die Benutzer jede oder alle derzeit aktiven Sitzungen und Geräte sehen und sich von ihnen abmelden können.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 613 + ], + "NIST": [ + "7.1" + ] + } + ] + }, + { + "Shortcode": "V3.4", + "Ordinal": 4, + "Name": "Cookiebasiertes Session Management", + "Items": [ + { + "Shortcode": "V3.4.1", + "Ordinal": 1, + "Description": "Prüfen Sie, dass bei Session-Cookies das Attribut „secure“ gesetzt ist. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 614 + ], + "NIST": [ + "7.1.1" + ] + }, + { + "Shortcode": "V3.4.2", + "Ordinal": 2, + "Description": "Prüfen Sie, dass bei Session-Cookies das Attribut „HttpOnly“ gesetzt ist. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 1004 + ], + "NIST": [ + "7.1.1" + ] + }, + { + "Shortcode": "V3.4.3", + "Ordinal": 3, + "Description": "Prüfen Sie, dass Session-Cookies das 'SameSite'-Attribut verwenden, um die Anfälligkeit für Cross Site Request Forgery zu begrenzen. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 1275 + ], + "NIST": [ + "7.1.1" + ] + }, + { + "Shortcode": "V3.4.4", + "Ordinal": 4, + "Description": "Prüfen Sie, dass Session-Cookies das Präfix „__Host-“ verwenden (siehe Referenzen), um die Vertraulichkeit von Session-Cookies zu gewährleisten.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 16 + ], + "NIST": [ + "7.1.1" + ] + }, + { + "Shortcode": "V3.4.5", + "Ordinal": 5, + "Description": "Falls die Anwendung unter einem Domänennamen zusammen mit anderen Anwendungen veröffentlicht wird, die Session-Cookies nutzen, welche die Sitzungscookies der geprüften Anwendung außer Kraft setzen oder offenlegen könnten, prüfen Sie, dass das Pfadattribut in den Cookies einen möglichst exakten Pfad erhält. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 16 + ], + "NIST": [ + "7.1.1" + ] + } + ] + }, + { + "Shortcode": "V3.5", + "Ordinal": 5, + "Name": "Tokenbasiertes Sessionmanagement", + "Items": [ + { + "Shortcode": "V3.5.1", + "Ordinal": 1, + "Description": "Prüfen Sie, dass die Anwendung Benutzern erlaubt, OAuth-Token, die Vertrauensbeziehungen zu verknüpften Anwendungen herstellen, zurückzuziehen.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 290 + ], + "NIST": [ + "7.1.2" + ] + }, + { + "Shortcode": "V3.5.2", + "Ordinal": 2, + "Description": "Prüfen Sie, dass die Anwendung Sessiontoken anstatt statischer API-Schlüssel verwendet, außer bei Legacy-Implementierungen.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 798 + ], + "NIST": [] + }, + { + "Shortcode": "V3.5.3", + "Ordinal": 3, + "Description": "Prüfen Sie, dass zustandslose Session-Token digitale Signaturen, Verschlüsselung und andere Gegenmaßnahmen zum Schutz vor Manipulation, Enveloping, Wiedergabe, Null-Chiffren und Schlüsselaustausch-Angriffen verwenden.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 345 + ], + "NIST": [] + } + ] + }, + { + "Shortcode": "V3.6", + "Ordinal": 6, + "Name": "Erneute Authentisierung", + "Items": [ + { + "Shortcode": "V3.6.1", + "Ordinal": 1, + "Description": "Prüfen Sie, dass die Relying Parties gegenüber den CSPs die maximale Authentifizierungszeit angeben, und dass die CSPs den Teilnehmer erneut authentifizieren, wenn sie innerhalb dieses Zeitraums keine Sitzung verwendet haben.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": false, + "Requirement": "" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 613 + ], + "NIST": [ + "7.2.1" + ] + }, + { + "Shortcode": "V3.6.2", + "Ordinal": 2, + "Description": "Prüfen Sie, dass die CSPs die Relying Parties über das letzte Authentifizierungsereignis informieren, damit die RPs feststellen können, ob sie den Benutzer erneut authentifizieren müssen.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": false, + "Requirement": "" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 613 + ], + "NIST": [ + "7.2.1" + ] + } + ] + }, + { + "Shortcode": "V3.7", + "Ordinal": 7, + "Name": "Verteidigung gegen Session Management Exploits", + "Items": [ + { + "Shortcode": "V3.7.1", + "Ordinal": 1, + "Description": "Prüfen Sie, dass die Anwendung eine gültige Login Session gewährleistet oder eine erneute Authentifizierung oder eine sekundäre Verifizierung erfordert, bevor sensible Transaktionen oder Kontenänderungen zugelassen werden.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 306 + ], + "NIST": [] + } + ] + } + ] + }, + { + "Shortcode": "V4", + "Ordinal": 4, + "ShortName": "Access", + "Name": "Maßnahmen zur Zugriffssteuerung ", + "Items": [ + { + "Shortcode": "V4.1", + "Ordinal": 1, + "Name": "Design der Allgemeinen Zugriffssteuerung", + "Items": [ + { + "Shortcode": "V4.1.1", + "Ordinal": 1, + "Description": "Prüfen Sie, dass die Anwendung Regeln zur Steuerung der Zugriffe auf einer vertrauenswürdigen Serviceschicht durchsetzt, insbesondere wenn die clientseitige Zugriffssteuerung umgangen werden könnte.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 602 + ], + "NIST": [] + }, + { + "Shortcode": "V4.1.2", + "Ordinal": 2, + "Description": "Prüfen Sie, dass alle Benutzer- und Datenattribute sowie Richtlinieninformationen, die von der Zugriffssteuerung verwendet werden, von den Endnutzern nicht manipuliert werden können, es sei denn, dies wird ausdrücklich genehmigt.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 639 + ], + "NIST": [] + }, + { + "Shortcode": "V4.1.3", + "Ordinal": 3, + "Description": "Prüfen Sie, dass das Prinzip der minimalen Berechtigung gilt: Benutzer sollten nur auf die unbedingt notwendigen Funktionen, Dateien, URLs, Controller, Dienste und andere Ressourcen zugreifen können. Dies bedeutet Schutz vor Spoofing und Ausweitung der Berechtigungen. ([C7](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 285 + ], + "NIST": [] + }, + { + "Shortcode": "V4.1.4", + "Ordinal": 4, + "Description": "[GELÖSCHT, DUPLIKAT VON 4.1.3]", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": false, + "Requirement": "" + }, + "L3": { + "Required": false, + "Requirement": "" + }, + "CWE": [], + "NIST": [] + }, + { + "Shortcode": "V4.1.5", + "Ordinal": 5, + "Description": "Prüfen Sie, dass die Zugriffssteuerungsroutinen im Fehlerfall in einen sicheren Zustand fallen. ([C10](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 285 + ], + "NIST": [] + } + ] + }, + { + "Shortcode": "V4.2", + "Ordinal": 2, + "Name": "Operative Zugriffssteuerung", + "Items": [ + { + "Shortcode": "V4.2.1", + "Ordinal": 1, + "Description": "Prüfen Sie, dass sensible Daten und APIs vor direkten Objektangriffen geschützt sind, die auf das Erstellen, Lesen, Aktualisieren und Löschen von Datensätzen abzielen, z. B. das Erstellen oder Aktualisieren von Datensätzen einer anderen Person, das Anzeigen oder Löschen aller Datensätze.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 639 + ], + "NIST": [] + }, + { + "Shortcode": "V4.2.2", + "Ordinal": 2, + "Description": "Prüfen Sie, dass die Anwendung oder das Framework einen starken Anti-CSRF-Mechanismus zum Schutz authentifizierter Funktionen durchsetzt, und dass eine effektive Anti-Automatisierung oder Anti-CSRF nicht authentifizierte Funktionen schützt.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 352 + ], + "NIST": [] + } + ] + }, + { + "Shortcode": "V4.3", + "Ordinal": 3, + "Name": "Weitere Maßnahmen zur Zugriffssteuerung", + "Items": [ + { + "Shortcode": "V4.3.1", + "Ordinal": 1, + "Description": "Prüfen Sie, dass administrative Schnittstellen eine geeignete Mehrfaktorauthentifizierung verwenden, um unbefugte Nutzung zu verhindern.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 419 + ], + "NIST": [] + }, + { + "Shortcode": "V4.3.2", + "Ordinal": 2, + "Description": "Prüfen Sie, dass das Durchsuchen von Verzeichnissen deaktiviert ist, es sei denn, dies ist absichtlich gewünscht. Ferner ist das Auffinden oder die Offenlegung von Datei- oder Verzeichnis-Metadaten, wie z.B. Thumbs.db, .DS_Store, .git oder .svn-Ordner, nicht zulässig.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 548 + ], + "NIST": [] + }, + { + "Shortcode": "V4.3.3", + "Ordinal": 3, + "Description": "Prüfen Sie, dass die Anwendung über zusätzliche Berechtigungen (z. B. Step-Up oder adaptive Authentifizierung) für risikoarme Systeme und / oder Aufgabentrennung für brisante Anwendungen verfügt, um Betrugsbekämpfungsmaßnahmen entsprechend dem Anwendungsrisiko durchzusetzen.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 732 + ], + "NIST": [] + } + ] + } + ] + }, + { + "Shortcode": "V5", + "Ordinal": 5, + "ShortName": "Validation", + "Name": "Eingabeprüfung, die Bereinigung der Ausgaben und die Zeichencodierung", + "Items": [ + { + "Shortcode": "V5.1", + "Ordinal": 1, + "Name": "Eingabeprüfung", + "Items": [ + { + "Shortcode": "V5.1.1", + "Ordinal": 1, + "Description": "Prüfen Sie, dass die Anwendung über Abwehrmechanismen gegen Angriffe auf HTTP-Parameter verfügt, insbesondere dann, wenn das Anwendungsframework die Quelle der Anforderungsparameter (GET, POST, Cookies, Header oder Umgebungsvariablen) nicht unterscheidet.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 235 + ], + "NIST": [] + }, + { + "Shortcode": "V5.1.2", + "Ordinal": 2, + "Description": "Prüfen Sie, dass Frameworks vor Angriffen durch massenhafte Parameterzuweisung schützen, oder dass die Anwendung über Gegenmaßnahmen zum Schutz vor unsicherer Parameterzuweisung verfügt, wie z.B. das Markieren von Feldern als privat oder ähnliches. ([C5](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 915 + ], + "NIST": [] + }, + { + "Shortcode": "V5.1.3", + "Ordinal": 3, + "Description": "Prüfen Sie, dass alle Eingaben (HTML-Formularfelder, REST-Anforderungen, URL-Parameter, HTTP-Header, Cookies, Batch-Dateien, RSS-Feeds usw.) mittels positiver Validierung (Whitelisting) validiert werden. ([C5](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 20 + ], + "NIST": [] + }, + { + "Shortcode": "V5.1.4", + "Ordinal": 4, + "Description": "Prüfen Sie, dass strukturierte Daten stark typisiert sind und gemäß einem definierten Schema validiert werden. Dazu gehören die erlaubten Zeichen, Länge und Muster (z. B. Kreditkarten- oder Telefonnummern, oder die Prüfung, dass zwei zusammenhängende Felder stimmig sind, z.B. Ort und Postleitzahl). ([C5](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 20 + ], + "NIST": [] + }, + { + "Shortcode": "V5.1.5", + "Ordinal": 5, + "Description": "Prüfen Sie, dass URL-Umleitungen und -Weiterleitungen nur Whitelist-Ziele zulassen, oder bei der Weiterleitung auf potenziell nicht vertrauenswürdige Inhalte einen Warnhinweis anzeigen.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 601 + ], + "NIST": [] + } + ] + }, + { + "Shortcode": "V5.2", + "Ordinal": 2, + "Name": "Bereinigung und Sandboxing", + "Items": [ + { + "Shortcode": "V5.2.1", + "Ordinal": 1, + "Description": "Prüfen Sie, dass alle nicht vertrauenswürdigen HTML-Eingaben von WYSIWYG-Editoren o.ä. ordnungsgemäß mit einer HTML-Bereinigungsbibliothek oder einer Frameworkfunktion bereinigt werden. ([C5](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 116 + ], + "NIST": [] + }, + { + "Shortcode": "V5.2.2", + "Ordinal": 2, + "Description": "Prüfen Sie, dass unstrukturierte Daten bereinigt werden, um Sicherheitsmaßnahmen wie erlaubte Zeichen und Längenbegrenzung durchzusetzen.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 138 + ], + "NIST": [] + }, + { + "Shortcode": "V5.2.3", + "Ordinal": 3, + "Description": "Prüfen Sie, dass die Anwendung zum Schutz vor SMTP- oder IMAP-Injektion Benutzereingaben bereinigt, bevor sie an Mailsysteme weitergeleitet werden.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 147 + ], + "NIST": [] + }, + { + "Shortcode": "V5.2.4", + "Ordinal": 4, + "Description": "Prüfen Sie, dass die Anwendung kein eval() oder andere Funktionen zur dynamischen Ausführung von Code verwendet. Wenn es keine Alternative gibt, müssen alle Benutzereingaben, die einbezogen werden, vor der Ausführung des Programms gesäubert oder per Sandbox abgegrenzt werden.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 95 + ], + "NIST": [] + }, + { + "Shortcode": "V5.2.5", + "Ordinal": 5, + "Description": "Prüfen Sie, dass die Anwendung vor Template-Injection-Angriffen schützt, indem Sie sicherstellen, dass alle Benutzereingaben, die aufgenommen werden, bereinigt oder per Sandbox abgegrenzt werden.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 94 + ], + "NIST": [] + }, + { + "Shortcode": "V5.2.6", + "Ordinal": 6, + "Description": "Prüfen Sie, dass die Anwendung vor SSRF-Angriffen schützt, indem sie nicht vertrauenswürdige Daten oder HTTP-Dateimetadaten, wie z. B. Dateinamen und URL-Eingabefelder, validiert oder bereinigt. Verwenden Sie eine Whitelist von Protokollen, Domänen, Pfaden und Ports.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 918 + ], + "NIST": [] + }, + { + "Shortcode": "V5.2.7", + "Ordinal": 7, + "Description": "Prüfen Sie, dass die Anwendung vom Benutzer bereitgestellte Scaleable Vector Graphics (SVG) von skriptfähigen Inhalten bereinigt, deaktiviert oder in Sandboxen abgrenzt, insbesondere in Bezug auf XSS, das aus Inline-Skripten und aus foreignObject resultiert.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 159 + ], + "NIST": [] + }, + { + "Shortcode": "V5.2.8", + "Ordinal": 8, + "Description": "Prüfen Sie, dass die Anwendung vom Benutzer zur Verfügung gestellte skriptfähige Inhalte oder Inhalte von Expression Language Templates wie Markdown, CSS- oder XSL-Stylesheets, BBCode oder Ähnliches bereinigt, deaktiviert oder in Sandboxen abgrenzt.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 94 + ], + "NIST": [] + } + ] + }, + { + "Shortcode": "V5.3", + "Ordinal": 3, + "Name": "Ausgabecodierung und Injektionsverhinderung", + "Items": [ + { + "Shortcode": "V5.3.1", + "Ordinal": 1, + "Description": "Prüfen Sie, dass die Ausgabecodierung für den Interpreter und den erforderlichen Kontext relevant ist. Verwenden Sie z. B. Codierer gezielt für HTML-Werte, HTML-Attribute, JavaScript, URL-Parameter, HTTP-Header, SMTP und andere, wie es der Kontext erfordert, insbesondere bei nicht vertrauenswürdigen Eingaben (z.B. Namen mit Unicode oder Apostroph, wie z.B. ねこ oder O'Hara). ([C4](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 116 + ], + "NIST": [] + }, + { + "Shortcode": "V5.3.2", + "Ordinal": 2, + "Description": "Prüfen Sie, dass die Ausgabecodierung den vom Benutzer gewählten Zeichensatz sowie die Spracheinstellung beibehält, so dass jeder Unicode-Zeichenpunkt gültig ist und sicher verarbeitet wird. ([C4](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 176 + ], + "NIST": [] + }, + { + "Shortcode": "V5.3.3", + "Ordinal": 3, + "Description": "Prüfen Sie, dass kontextabhängiges, vorzugsweise automatisches Output Escaping vor reflektierten, gespeicherten und DOM-basierten XSS schützt. ([C4](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 79 + ], + "NIST": [] + }, + { + "Shortcode": "V5.3.4", + "Ordinal": 4, + "Description": "Prüfen Sie, dass die Datenauswahl- oder Datenbankabfragen (z.B. SQL, HQL, ORM, NoSQL) parametrisierte Abfragen, ORMs, Entity Frameworks verwenden oder anderweitig vor Datenbank-Injektionsangriffen geschützt sind. ([C3](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 89 + ], + "NIST": [] + }, + { + "Shortcode": "V5.3.5", + "Ordinal": 5, + "Description": "Prüfen Sie, dass dort, wo keine parametrisierten oder sichereren Mechanismen vorhanden sind, eine kontextspezifische Ausgabecodierung, z. B. SQL-Escaping, zum Schutz vor Injektionsangriffen verwendet wird. ([C3, C4](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 89 + ], + "NIST": [] + }, + { + "Shortcode": "V5.3.6", + "Ordinal": 6, + "Description": "Prüfen Sie, dass die Anwendung vor Angriffen mittels JSON-Injektion, JSON-eval() und Evaluierung von JavaScript-Ausdrücken schützt. ([C4](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 830 + ], + "NIST": [] + }, + { + "Shortcode": "V5.3.7", + "Ordinal": 7, + "Description": "Prüfen Sie, dass die Anwendung vor LDAP-Injektionsschwachstellen schützt oder das spezifische Sicherheitsmaßnahmen zur Verhinderung der LDAP-Injektion implementiert wurden. ([C4](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 90 + ], + "NIST": [] + }, + { + "Shortcode": "V5.3.8", + "Ordinal": 8, + "Description": "Prüfen Sie, dass die Anwendung vor dem Einfügen von Betriebssystemkommandos schützt und dass Betriebssystemaufrufe parametrisierte Abfragen oder eine kontextbezogene Ausgabecodierung der Befehlszeile verwenden. ([C4](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 78 + ], + "NIST": [] + }, + { + "Shortcode": "V5.3.9", + "Ordinal": 9, + "Description": "Prüfen Sie, dass die Anwendung vor Local File Inclusion (LFI)- oder Remote File Inclusion (RFI)-Angriffen schützt.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 829 + ], + "NIST": [] + }, + { + "Shortcode": "V5.3.10", + "Ordinal": 10, + "Description": "Prüfen Sie, dass die Anwendung gegen XPath Injection- oder XML-Injection-Angriffe schützt. ([C4](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 643 + ], + "NIST": [] + } + ] + }, + { + "Shortcode": "V5.4", + "Ordinal": 4, + "Name": "Speicher, Strings und Unmanaged Code", + "Items": [ + { + "Shortcode": "V5.4.1", + "Ordinal": 1, + "Description": "Prüfen Sie, dass die Anwendung speichersichere Zeichenfolgen, sicherere Speicherkopien und sichere Zeigerarithmetik verwendet, um Stapel-, Puffer- oder Heapüberläufe zu erkennen oder zu verhindern.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 120 + ], + "NIST": [] + }, + { + "Shortcode": "V5.4.2", + "Ordinal": 2, + "Description": "Prüfen Sie, dass Formatstrings keine potenziell feindliche Eingabe annehmen und konstant sind.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 134 + ], + "NIST": [] + }, + { + "Shortcode": "V5.4.3", + "Ordinal": 3, + "Description": "Prüfen Sie, dass Zeichen-, Bereichs- und Eingabeprüfungstechniken verwendet werden, um Ganzzahlüberläufe zu verhindern.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 190 + ], + "NIST": [] + } + ] + }, + { + "Shortcode": "V5.5", + "Ordinal": 5, + "Name": "Prävention von Deserialisierungsangriffen", + "Items": [ + { + "Shortcode": "V5.5.1", + "Ordinal": 1, + "Description": "Prüfen Sie, dass serialisierte Objekte Integritätsprüfungen verwenden oder verschlüsselt sind, um die Erstellung feindlicher Objekte oder die Manipulation von Daten zu verhindern. ([C5](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 502 + ], + "NIST": [] + }, + { + "Shortcode": "V5.5.2", + "Ordinal": 2, + "Description": "Prüfen Sie, dass XML-Parser nur die restriktivste Konfiguration verwenden und das unsichere Funktionen wie die Auflösung externer Entitäten deaktiviert sind, um XXE zu verhindern.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 611 + ], + "NIST": [] + }, + { + "Shortcode": "V5.5.3", + "Ordinal": 3, + "Description": "Prüfen Sie, dass die Deserialisierung nicht vertrauenswürdiger Daten sowohl im benutzerdefinierten Code als auch in Bibliotheken von Drittanbietern (wie JSON-, XML- und YAML-Parser) entweder verhindert oder gesichert wird.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 502 + ], + "NIST": [] + }, + { + "Shortcode": "V5.5.4", + "Ordinal": 4, + "Description": "Prüfen Sie, dass beim Parsen von JSON in Browsern oder JavaScript-basierten Backends JSON.parse zum Parsen des JSON-Dokuments verwendet wird. Verwenden Sie kein eval() zum Parsen von JSON.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 95 + ], + "NIST": [] + } + ] + } + ] + }, + { + "Shortcode": "V6", + "Ordinal": 6, + "ShortName": "Cryptography", + "Name": "kryptographische Komponenten", + "Items": [ + { + "Shortcode": "V6.1", + "Ordinal": 1, + "Name": "Datenklassifizierung", + "Items": [ + { + "Shortcode": "V6.1.1", + "Ordinal": 1, + "Description": "Prüfen Sie, dass sensible personenbezogene Daten, oder Daten, die unter andere gesetzliche Regelungen zur Vertraulichkeit fallen, verschlüsselt gespeichert werden.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 311 + ], + "NIST": [] + }, + { + "Shortcode": "V6.1.2", + "Ordinal": 2, + "Description": "Prüfen Sie, dass Gesundheitsdaten, wie z. B. medizinische Aufzeichnungen, Details zu medizinischen Geräten oder deanonymisierte Forschungsaufzeichnungen, verschlüsselt gespeichert werden.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 311 + ], + "NIST": [] + }, + { + "Shortcode": "V6.1.3", + "Ordinal": 3, + "Description": "Prüfen Sie, dass Finanzdaten, wie z.B. Konten, Zahlungsausfälle oder Kredithistorie, Steuerunterlagen, Lohnhistorie, Begünstigte oder deanonymisierte Markt- oder Forschungsaufzeichnungen verschlüsselt gespeichert werden.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 311 + ], + "NIST": [] + } + ] + }, + { + "Shortcode": "V6.2", + "Ordinal": 2, + "Name": "Algorithmen", + "Items": [ + { + "Shortcode": "V6.2.1", + "Ordinal": 1, + "Description": "Prüfen Sie, dass alle kryptografischen Module in einen sicheren Fehlerzustand fallen und Fehler so behandelt werden, dass keine Padding-Orakel-Angriffe möglich sind.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 310 + ], + "NIST": [] + }, + { + "Shortcode": "V6.2.2", + "Ordinal": 2, + "Description": "Prüfen Sie, dass allgemein anerkannte oder von der Regierung freigegebene kryptografische Algorithmen, Modi und Bibliotheken anstelle von Eigenentwicklungen verwendet werden. ([C8](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 327 + ], + "NIST": [] + }, + { + "Shortcode": "V6.2.3", + "Ordinal": 3, + "Description": "Prüfen Sie, dass der Initialisierungsvektoren, die Chiffrierkonfiguration und die Blockmodi gemäß den neuesten Empfehlungen sicher konfiguriert werden.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 326 + ], + "NIST": [] + }, + { + "Shortcode": "V6.2.4", + "Ordinal": 4, + "Description": "Prüfen Sie, dass Zufallszahlengeneratoren, Verschlüsselungs- oder Hashalgorithmen, Schlüssellängen, Runden, Chiffren oder Modi jederzeit rekonfiguriert, aktualisiert oder ausgetauscht werden können. ([C8](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 326 + ], + "NIST": [] + }, + { + "Shortcode": "V6.2.5", + "Ordinal": 5, + "Description": "Prüfen Sie, dass unsichere Blockmodi, wie ECB u.a., Padding-Modi, wie PKCS#1 v1.5 u.a., Algorithmen mit kleinen Blockgrößen, wie Triple-DES, Blowfish u.a., sowie schwache Hashalgorithmen, wie MD5, SHA1 u.a., nicht verwendet werden, es sei denn, dies ist aus Gründen der Rückwärtskompatibilität erforderlich.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 326 + ], + "NIST": [] + }, + { + "Shortcode": "V6.2.6", + "Ordinal": 6, + "Description": "Prüfen Sie, dass Nonces, Initialisierungsvektoren u. ä. nicht mehr als einmal mit einem bestimmten Verschlüsselungsschlüssel verwendet werden dürfen. Die Methode der Generierung muss für den verwendeten Algorithmus geeignet sein.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 326 + ], + "NIST": [] + }, + { + "Shortcode": "V6.2.7", + "Ordinal": 7, + "Description": "Prüfen Sie, dass verschlüsselte Daten mittels Signaturen, authentifizierte Chiffriermodi oder HMAC authentifiziert werden, um sicherzustellen, dass der Chiffriertext nicht von Unbefugten verändert wird.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": false, + "Requirement": "" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 326 + ], + "NIST": [] + }, + { + "Shortcode": "V6.2.8", + "Ordinal": 8, + "Description": "Prüfen Sie, dass alle kryptografischen Operationen zeitkonstant sind und keine „Kurzschluss“-Operationen bei Vergleichen, Berechnungen oder Rückgaben stattfinden, um Informationslecks zu vermeiden.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": false, + "Requirement": "" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 385 + ], + "NIST": [] + } + ] + }, + { + "Shortcode": "V6.3", + "Ordinal": 3, + "Name": "Zufallswerte", + "Items": [ + { + "Shortcode": "V6.3.1", + "Ordinal": 1, + "Description": "Prüfen Sie, dass alle Zufallszahlen, zufälligen Dateinamen, zufälligen GUIDs und Zufallszeichenfolgen mit einem anerkannten kryptografisch sicheren Zufallszahlengenerator generiert werden, wenn diese Zufallswerte für einen Angreifer nicht zu erraten sein sollen.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 338 + ], + "NIST": [] + }, + { + "Shortcode": "V6.3.2", + "Ordinal": 2, + "Description": "Prüfen Sie, dass zufällige GUIDs mit dem GUID v4-Algorithmus und einem kryptografisch sicheren Zufallszahlengenerator erstellt werden. GUIDs, die mit anderen Zufallszahlengeneratoren erstellt wurden, können vorhersehbar sein.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 338 + ], + "NIST": [] + }, + { + "Shortcode": "V6.3.3", + "Ordinal": 3, + "Description": "Prüfen Sie, dass die Zufallszahlen mit der richtigen Entropie erzeugt werden, auch wenn die Anwendung unter starker Belastung steht, oder dass die Anwendung unter solchen Umständen angemessen reagiert.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": false, + "Requirement": "" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 338 + ], + "NIST": [] + } + ] + }, + { + "Shortcode": "V6.4", + "Ordinal": 4, + "Name": "Management von Schlüsseln und Geheimnissen", + "Items": [ + { + "Shortcode": "V6.4.1", + "Ordinal": 1, + "Description": "Prüfen Sie, dass eine Lösung für das Schlüsselmanagement, wie z.B. ein Schlüsseltresor, verwendet wird, um Geheimnisse sicher zu erstellen, zu speichern, die Nutzung zu kontrollieren und sie zu zerstören. ([C8](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 798 + ], + "NIST": [] + }, + { + "Shortcode": "V6.4.2", + "Ordinal": 2, + "Description": "Prüfen Sie, dass das Schlüsselmaterial nicht in der Anwendung genutzt wird sondern ein Sicherheitsmodul kryptographische Operationen ausführt. ([C8](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 320 + ], + "NIST": [] + } + ] + } + ] + }, + { + "Shortcode": "V7", + "Ordinal": 7, + "ShortName": "Error", + "Name": "Fehlerbehandlung und Protokollierung", + "Items": [ + { + "Shortcode": "V7.1", + "Ordinal": 1, + "Name": "Protokollinhalt", + "Items": [ + { + "Shortcode": "V7.1.1", + "Ordinal": 1, + "Description": "Prüfen Sie, dass die Anwendung keine Anmeldeinformationen oder Zahlungsdetails protokolliert. Sessiontoken sollten nur in einer irreversiblen, gehashten Form in Protokollen gespeichert werden. ([C9, C10](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 532 + ], + "NIST": [] + }, + { + "Shortcode": "V7.1.2", + "Ordinal": 2, + "Description": "Prüfen Sie, dass die Anwendung keine sonstigen sensiblen Daten protokolliert, die z. B. gemäß Datenschutzgesetzen oder den einschlägigen Sicherheitsrichtlinien als solche definiert werden. ([C9](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 532 + ], + "NIST": [] + }, + { + "Shortcode": "V7.1.3", + "Ordinal": 3, + "Description": "Prüfen Sie, dass die Anwendung sicherheitsrelevante Ereignisse, einschließlich erfolgreicher und fehlgeschlagener Authentifizierungsereignisse, Fehler bei der Zugriffskontrolle, Deserialisierungsfehler und Fehler bei der Eingabeprüfung protokolliert. ([C5, C7](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 778 + ], + "NIST": [] + }, + { + "Shortcode": "V7.1.4", + "Ordinal": 4, + "Description": "Prüfen Sie, dass jedes Protokollereignis die notwendigen Informationen enthält, um bei einem Vorfall eine detaillierte Untersuchung der Timeline zu ermöglichen. ([C9](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 778 + ], + "NIST": [] + } + ] + }, + { + "Shortcode": "V7.2", + "Ordinal": 2, + "Name": "Protokollbearbeitung", + "Items": [ + { + "Shortcode": "V7.2.1", + "Ordinal": 1, + "Description": "Prüfen Sie, dass alle Authentifizierungsentscheidungen protokolliert werden, ohne dass sensible Sitzungstoken oder Passwörter gespeichert werden. Dies sollte auch die relevanten Metadaten umfassen, die für Sicherheitsuntersuchungen benötigt werden.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 778 + ], + "NIST": [] + }, + { + "Shortcode": "V7.2.2", + "Ordinal": 2, + "Description": "Prüfen Sie, dass alle Authentifizierungen protokolliert werden können, und dass alle fehlgeschlagenen Versuche protokolliert werden. Dies sollte die relevanten Metadaten umfassen, die für Sicherheitsuntersuchungen benötigt werden.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 285 + ], + "NIST": [] + } + ] + }, + { + "Shortcode": "V7.3", + "Ordinal": 3, + "Name": "Schutz von Protokollen", + "Items": [ + { + "Shortcode": "V7.3.1", + "Ordinal": 1, + "Description": "Prüfen Sie, dass alle Komponenten Daten angemessen codieren, um Log-Injektions-Angriffe zu verhindern. ([C9](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 117 + ], + "NIST": [] + }, + { + "Shortcode": "V7.3.2", + "Ordinal": 2, + "Description": "[GELÖSCHT, DUPLIKAT VON 7.3.1]", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": false, + "Requirement": "" + }, + "L3": { + "Required": false, + "Requirement": "" + }, + "CWE": [], + "NIST": [] + }, + { + "Shortcode": "V7.3.3", + "Ordinal": 3, + "Description": "Prüfen Sie, dass die Protokolle vor unbefugtem Zugriff und Änderungen geschützt werden. ([C9](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 200 + ], + "NIST": [] + }, + { + "Shortcode": "V7.3.4", + "Ordinal": 4, + "Description": "Prüfen Sie, dass die Zeitquellen mit der richtigen Zeit und Zeitzone synchronisiert sind. Erwägen Sie ernsthaft die Protokollierung ausschließlich in UTC, wenn die Systeme global sind, damit die forensische Analyse nach dem Vorfall unterstützt wird. ([C9](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [], + "NIST": [] + } + ] + }, + { + "Shortcode": "V7.4", + "Ordinal": 4, + "Name": "Fehlerbehandlung", + "Items": [ + { + "Shortcode": "V7.4.1", + "Ordinal": 1, + "Description": "Prüfen Sie, dass bei Auftreten eines unerwarteten oder sicherheitsrelevanten Fehlers eine generische Meldung angezeigt wird. Ggf. kann die Meldung eine ID enthalten, die dem Supportpersonal die Untersuchung erleichtert. ([C10](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 210 + ], + "NIST": [] + }, + { + "Shortcode": "V7.4.2", + "Ordinal": 2, + "Description": "Prüfen Sie, dass die Ausnahmebehandlung in der gesamten Codebasis verwendet wird, um erwartete und unerwartete Fehlerbedingungen zu berücksichtigen. ([C10](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 544 + ], + "NIST": [] + }, + { + "Shortcode": "V7.4.3", + "Ordinal": 3, + "Description": "Prüfen Sie, dass ein Fehlerbehandlungsdienst der letzten Instanz definiert ist, der alle nicht behandelten Ausnahmen abfängt. ([C10](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 431 + ], + "NIST": [] + } + ] + } + ] + }, + { + "Shortcode": "V8", + "Ordinal": 8, + "ShortName": "Data", + "Name": "Schutz von Informationen", + "Items": [ + { + "Shortcode": "V8.1", + "Ordinal": 1, + "Name": "Allgemeines", + "Items": [ + { + "Shortcode": "V8.1.1", + "Ordinal": 1, + "Description": "Prüfen Sie, dass die Anwendung sensible Daten davor schützt, in Serverkomponenten wie Loadbalancern, Proxies u.ä. zwischengespeichert zu werden.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 524 + ], + "NIST": [] + }, + { + "Shortcode": "V8.1.2", + "Ordinal": 2, + "Description": "Prüfen Sie, dass alle serverseitigen temporären Kopien sensibler Daten vor unbefugtem Zugriff geschützt oder nach dem Zugriff des autorisierten Benutzers auf die sensiblen Daten bereinigt/invalidiert werden.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 524 + ], + "NIST": [] + }, + { + "Shortcode": "V8.1.3", + "Ordinal": 3, + "Description": "Prüfen Sie, dass die Anwendung die Anzahl der Parameter in einer Anfrage, wie z.B. versteckte Felder, Ajax-Variablen, Cookies und Header-Werte minimiert.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 233 + ], + "NIST": [] + }, + { + "Shortcode": "V8.1.4", + "Ordinal": 4, + "Description": "Prüfen Sie, dass die Anwendung eine abnormale Anzahl von Anfragen, z.B. nach IP, Benutzer, Gesamtzahl pro Stunde oder Tag o. ä., erkennt und Alarm auslöst.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 770 + ], + "NIST": [] + }, + { + "Shortcode": "V8.1.5", + "Ordinal": 5, + "Description": "Prüfen Sie, dass wichtige Daten regelmäßig gesichert werden und dass die Wiederherstellung regelmäßig geübt wird.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": false, + "Requirement": "" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 19 + ], + "NIST": [] + }, + { + "Shortcode": "V8.1.6", + "Ordinal": 6, + "Description": "Prüfen Sie, dass die Backups sicher aufbewahrt werden, um zu verhindern, dass Daten gestohlen oder verfälscht werden.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": false, + "Requirement": "" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 19 + ], + "NIST": [] + } + ] + }, + { + "Shortcode": "V8.2", + "Ordinal": 2, + "Name": "Clientseitiger Schutz", + "Items": [ + { + "Shortcode": "V8.2.1", + "Ordinal": 1, + "Description": "Prüfen Sie, dass die Anwendung Anti-Caching Header sendet, damit sensible Daten in modernen Browsern nicht zwischengespeichert werden.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 525 + ], + "NIST": [] + }, + { + "Shortcode": "V8.2.2", + "Ordinal": 2, + "Description": "Prüfen Sie, dass die im clientseitigen Speicher (z. B. lokaler HTML5-Speicher, Sitzungsspeicher, IndexedDB oder Cookies) gespeicherten Daten keine sensiblen Daten enthalten.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 922 + ], + "NIST": [] + }, + { + "Shortcode": "V8.2.3", + "Ordinal": 3, + "Description": "Prüfen Sie, dass authentifizierte Daten aus dem clientseitigem Speicher, z. B. dem Browser-DOM, gelöscht werden, nachdem der Client geschlossen oder die Sitzung beendet wurde.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 922 + ], + "NIST": [] + } + ] + }, + { + "Shortcode": "V8.3", + "Ordinal": 3, + "Name": "Personenbezogene Daten", + "Items": [ + { + "Shortcode": "V8.3.1", + "Ordinal": 1, + "Description": "Prüfen Sie, dass sensible Daten im HTTP-Textkörper oder in Headern an den Server gesendet werden, und dass die Query-String-Parameter aller HTTP-Requests keine sensiblen Daten enthalten.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 319 + ], + "NIST": [] + }, + { + "Shortcode": "V8.3.2", + "Ordinal": 2, + "Description": "Prüfen Sie, dass die Benutzer ihre Daten bei Bedarf entfernen oder exportieren können.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 212 + ], + "NIST": [] + }, + { + "Shortcode": "V8.3.3", + "Ordinal": 3, + "Description": "Prüfen Sie, dass die Benutzer in verständlicher Sprache über die Erfassung und Verwendung der bereitgestellten personenbezogenen Daten informiert werden und dass die Benutzer ihr Einverständnis zur Verwendung dieser Daten gegeben haben, bevor diese verwendet werden.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 285 + ], + "NIST": [] + }, + { + "Shortcode": "V8.3.4", + "Ordinal": 4, + "Description": "Prüfen Sie, dass alle von der Anwendung erstellten und verarbeiteten personenbezogenen Daten identifiziert wurden und dass eine Regelung für den Umgang mit diesen Daten vorhanden ist. ([C8](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 200 + ], + "NIST": [] + }, + { + "Shortcode": "V8.3.5", + "Ordinal": 5, + "Description": "Prüfen Sie, dass bei Zugriff auf personenbezogene Daten geprüft wird - ohne die Daten selbst zu protokollieren - ob die Daten gemäß den einschlägigen Datenschutzrichtlinien erfasst werden oder ob eine Protokollierung des Zugriffs erforderlich ist.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 532 + ], + "NIST": [] + }, + { + "Shortcode": "V8.3.6", + "Ordinal": 6, + "Description": "Prüfen Sie, dass die im Speicher enthaltenen Informationen überschrieben werden, sobald sie nicht mehr benötigt werden, um Memory-Dump-Angriffe abzuschwächen.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 226 + ], + "NIST": [] + }, + { + "Shortcode": "V8.3.7", + "Ordinal": 7, + "Description": "Prüfen Sie, dass zu verschlüsselnde Informationen mit anerkannten Algorithmen verschlüsselt werden, die sowohl Vertraulichkeit als auch Integrität gewährleisten. ([C8](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 327 + ], + "NIST": [] + }, + { + "Shortcode": "V8.3.8", + "Ordinal": 8, + "Description": "Prüfen Sie, dass personenbezogene Daten in Bezug auf die Datenspeicherung klassifiziert werden, so dass alte oder veraltete Daten automatisch, nach einem Zeitplan oder je nach Situation gelöscht werden können.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 285 + ], + "NIST": [] + } + ] + } + ] + }, + { + "Shortcode": "V9", + "Ordinal": 9, + "ShortName": "Communications", + "Name": "Kommunikation", + "Items": [ + { + "Shortcode": "V9.1", + "Ordinal": 1, + "Name": "Kommunikationssicherheit des Clients", + "Items": [ + { + "Shortcode": "V9.1.1", + "Ordinal": 1, + "Description": "Prüfen Sie, dass der Client stets TLS-Verbindungen verwendet, das nicht auf unsichere oder unverschlüsselte Konfigurationen zurückfallen. ([C8](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 319 + ], + "NIST": [] + }, + { + "Shortcode": "V9.1.2", + "Ordinal": 2, + "Description": "Prüfen Sie mit aktuellen TLS-Testtools, dass nur starke Algorithmen und Protokolle genutzt werden. Dabei sind die stärksten Algorithmen und neuesten Protokollversionen zu bevorzugen.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 326 + ], + "NIST": [] + }, + { + "Shortcode": "V9.1.3", + "Ordinal": 3, + "Description": "Prüfen Sie, dass nur die aktuell empfohlenen Versionen der TLS-Protokolle, also TLS 1.2 und TLS 1.3, genutzt werden. Die neueste Version ist dabei zu bevorzugen.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 326 + ], + "NIST": [] + } + ] + }, + { + "Shortcode": "V9.2", + "Ordinal": 2, + "Name": "Sicherheit der Serverkommunikation", + "Items": [ + { + "Shortcode": "V9.2.1", + "Ordinal": 1, + "Description": "Prüfen Sie, dass Verbindungen zum und vom Server vertrauenswürdige TLS-Zertifikate verwenden. Werden intern generierte oder selbstsignierte Zertifikate verwendet, muss der Server so konfiguriert werden, dass er nur bestimmten internen CAs vertraut. Alle anderen müssen abgelehnt werden.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 295 + ], + "NIST": [] + }, + { + "Shortcode": "V9.2.2", + "Ordinal": 2, + "Description": "Prüfen Sie, dass eine verschlüsselte Kommunikation wie TLS für alle ein- und ausgehenden Verbindungen, einschließlich für Managementports, Überwachung, Authentifizierung, API- oder Webservicecalls, Datenbank-, Cloud-, serverlose, Mainframe-, externe und Partnerverbindungen verwendet wird. Der Server darf nicht auf unsichere oder unverschlüsselte Protokolle zurückgreifen.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 319 + ], + "NIST": [] + }, + { + "Shortcode": "V9.2.3", + "Ordinal": 3, + "Description": "Prüfen Sie, dass alle verschlüsselten Verbindungen zu externen Systemen, die sensible Informationen oder Funktionen beinhalten, authentifiziert sind.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 287 + ], + "NIST": [] + }, + { + "Shortcode": "V9.2.4", + "Ordinal": 4, + "Description": "Prüfen Sie, dass eine ordnungsgemäßer Zertifikatssperre wie z. B. das Online Certificate Status Protocol Stapling aktiviert und konfiguriert ist.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 299 + ], + "NIST": [] + }, + { + "Shortcode": "V9.2.5", + "Ordinal": 5, + "Description": "Prüfen Sie, dass TLS-Verbindungsfehler in das Backend protokolliert werden.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": false, + "Requirement": "" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 544 + ], + "NIST": [] + } + ] + } + ] + }, + { + "Shortcode": "V10", + "Ordinal": 10, + "ShortName": "Malicious", + "Name": "Bösartiger Code", + "Items": [ + { + "Shortcode": "V10.1", + "Ordinal": 1, + "Name": "Kontrollen der Code-Integrität", + "Items": [ + { + "Shortcode": "V10.1.1", + "Ordinal": 1, + "Description": "Prüfen Sie, dass ein Codeanalyse-Tool verwendet wird, das potenziell bösartigen Code, wie Zeitfunktionen, unsichere Dateioperationen und Netzwerkverbindungen erkennen kann.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": false, + "Requirement": "" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 749 + ], + "NIST": [] + } + ] + }, + { + "Shortcode": "V10.2", + "Ordinal": 2, + "Name": "Suche nach bösartigem Code", + "Items": [ + { + "Shortcode": "V10.2.1", + "Ordinal": 1, + "Description": "Prüfen Sie, dass der Quellcode der Anwendung und die Bibliotheken von Drittanbietern keine Möglichkeiten zum Phone Home oder zur Datenerfassung enthalten. Wenn solche Funktionen vorhanden sind, holen Sie die Erlaubnis des Benutzers ein, bevor Daten gesammelt werden.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 359 + ], + "NIST": [] + }, + { + "Shortcode": "V10.2.2", + "Ordinal": 2, + "Description": "Prüfen Sie, dass die Anwendung keine unnötigen oder übermäßigen Genehmigungen für datenschutzrelevante Funktionen oder Sensoren wie Kontakte, Kameras, Mikrofone oder Standorte verlangt.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 272 + ], + "NIST": [] + }, + { + "Shortcode": "V10.2.3", + "Ordinal": 3, + "Description": "Prüfen Sie, dass der Quellcode der Anwendung und die Bibliotheken von Drittanbietern keine Hintertüren enthalten, wie z. B. hartcodierte oder zusätzliche undokumentierte Konten oder Schlüssel, Codeverschleierung, undokumentierte Binärblobs, Rootkits oder Anti-Debugging, unsichere Debuggingfunktionen oder andere veraltete, unsichere oder versteckte Funktionen, die bei Entdeckung böswillig verwendet werden könnten.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": false, + "Requirement": "" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 507 + ], + "NIST": [] + }, + { + "Shortcode": "V10.2.4", + "Ordinal": 4, + "Description": "Prüfen Sie, dass der Quellcode der Anwendung und die Bibliotheken von Drittanbietern keine Zeitbomben enthalten, wenn sie nach datums- und zeitbezogenen Funktionen suchen.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": false, + "Requirement": "" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 511 + ], + "NIST": [] + }, + { + "Shortcode": "V10.2.5", + "Ordinal": 5, + "Description": "Prüfen Sie, dass der Quellcode der Anwendung und die Bibliotheken von Drittanbietern keinen bösartigen Code wie Salamitaktik-Angriffe, logische Umgehungen oder Logikbomben enthalten.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": false, + "Requirement": "" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 511 + ], + "NIST": [] + }, + { + "Shortcode": "V10.2.6", + "Ordinal": 6, + "Description": "Prüfen Sie, dass der Quellcode der Anwendung und die Bibliotheken von Drittanbietern keine Ostereier oder andere unerwünschte Funktionen enthalten.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": false, + "Requirement": "" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 507 + ], + "NIST": [] + } + ] + }, + { + "Shortcode": "V10.3", + "Ordinal": 3, + "Name": "Integrität der Anwendung", + "Items": [ + { + "Shortcode": "V10.3.1", + "Ordinal": 1, + "Description": "Prüfen Sie, dass Updates über sichere Kanäle bezogen und digital signiert werden müssen, wenn die Anwendung über eine automatische Client- oder Server Updatefunktion verfügt. Die digitale Signatur des Updates muss validiert werden, bevor das Update installiert wird.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 16 + ], + "NIST": [] + }, + { + "Shortcode": "V10.3.2", + "Ordinal": 2, + "Description": "Prüfen Sie, dass die Anwendung einen Integritätsschutz, wie Code Signing oder Subresource Integrity verwendet. Die Anwendung darf keinen Code aus nicht vertrauenswürdigen Quellen laden oder ausführen, wie z. B. das Laden von Includes, Modulen, Plugins, Codes oder Bibliotheken aus nicht vertrauenswürdigen Quellen oder dem Internet.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 353 + ], + "NIST": [] + }, + { + "Shortcode": "V10.3.3", + "Ordinal": 3, + "Description": "Prüfen Sie, ob die Anwendung Schutz vor der Übernahme von Subdomänen bietet, wenn die Anwendung auf DNS-Einträge oder DNS-Subdomänen angewiesen ist, z. B. abgelaufene Domänennamen, veraltete DNS-Pointer oder CNAMEs, abgelaufene Projekte in öffentlichen Quellcoderepositories oder vorübergehende Cloud-APIs, serverlose Funktionen oder Storage Buckets (autogen-bucket-id.cloud.example.com) oder Ähnliches. Die von den Anwendungen verwendeten DNS-Namen sind regelmäßig auf Ablauf oder Änderung zu überprüfen.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 350 + ], + "NIST": [] + } + ] + } + ] + }, + { + "Shortcode": "V11", + "Ordinal": 11, + "ShortName": "BusLogic", + "Name": "Fachliche Funktionalität", + "Items": [ + { + "Shortcode": "V11.1", + "Ordinal": 1, + "Name": "Sicherheit der fachlichen Funktionen", + "Items": [ + { + "Shortcode": "V11.1.1", + "Ordinal": 1, + "Description": "Prüfen Sie, dass die Anwendung nur Geschäftslogikflüsse für denselben Benutzer in sequentieller Schrittfolge und ohne das Überspringen von Schritten verarbeitet.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 841 + ], + "NIST": [] + }, + { + "Shortcode": "V11.1.2", + "Ordinal": 2, + "Description": "Prüfen Sie, dass die Anwendung nur Abläufe der Geschäftslogik verarbeitet, wenn alle Schritte in realistischer menschlicher Zeit bearbeitet werden, d.h. die Transaktionen werden nicht zu schnell durch automatisierte Angreifer eingereicht.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 799 + ], + "NIST": [] + }, + { + "Shortcode": "V11.1.3", + "Ordinal": 3, + "Description": "Prüfen Sie, dass die Anwendung über angemessene Grenzen für bestimmte Geschäftsaktionen oder Transaktionen verfügt, die für jeden Benutzer korrekt durchgesetzt werden.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 770 + ], + "NIST": [] + }, + { + "Shortcode": "V11.1.4", + "Ordinal": 4, + "Description": "Prüfen Sie, dass die Anwendung über ausreichende Maßnahmen gegen automatische Nutzung verfügt, um Datenausleitung, übermäßige Anforderungen an die Geschäftslogik, übermäßige Dateiuploads oder DoS-Angriffe zu erkennen und sich dagegen zu schützen.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 770 + ], + "NIST": [] + }, + { + "Shortcode": "V11.1.5", + "Ordinal": 5, + "Description": "Prüfen Sie, ob die Anwendung Grenzen der Geschäftslogik oder eine Validierung zum Schutz vor wahrscheinlichen Geschäftsrisiken oder Bedrohungen aufweist, die mit Hilfe von Threat Modeling oder ähnlichen Methoden ermittelt wurden.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 841 + ], + "NIST": [] + }, + { + "Shortcode": "V11.1.6", + "Ordinal": 6, + "Description": "Prüfen Sie, dass die Anwendung nicht unter TOCTOU oder anderen Raceconditions für sensible Operationen leidet.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 367 + ], + "NIST": [] + }, + { + "Shortcode": "V11.1.7", + "Ordinal": 7, + "Description": "Prüfen Sie die Anwendungsmonitore auf ungewöhnliche Ereignisse oder Aktivitäten aus der Sicht der Geschäftslogik. Zum Beispiel auf Versuche, Aktionen durchzuführen, die außerhalb der Reihe sind, oder Aktionen, die ein normaler Benutzer niemals versuchen würde. ([C9](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 754 + ], + "NIST": [] + }, + { + "Shortcode": "V11.1.8", + "Ordinal": 8, + "Description": "Prüfen Sie, dass die Anwendung über konfigurierbare Web Warnmeldungen verfügt, wenn automatisierte Angriffe oder ungewöhnliche Aktivitäten entdeckt werden.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 390 + ], + "NIST": [] + } + ] + } + ] + }, + { + "Shortcode": "V12", + "Ordinal": 12, + "ShortName": "Files", + "Name": "Dateien und andere Ressourcen", + "Items": [ + { + "Shortcode": "V12.1", + "Ordinal": 1, + "Name": "Dateiupload", + "Items": [ + { + "Shortcode": "V12.1.1", + "Ordinal": 1, + "Description": "Prüfen Sie, dass die Anwendung keine großen Dateien akzeptiert, die den Speicher füllen oder einen DoS-Angriff verursachen könnten.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 400 + ], + "NIST": [] + }, + { + "Shortcode": "V12.1.2", + "Ordinal": 2, + "Description": "Prüfen Sie, dass die Anwendung gepackte Formate, wie z.B. zip, gz, docx oder odt vor dem Entpacken auf die maximal zulässige Filegröße und die maximale Anzahl Dateien überprüft.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 409 + ], + "NIST": [] + }, + { + "Shortcode": "V12.1.3", + "Ordinal": 3, + "Description": "Prüfen Sie, dass die Dateigröße und die maximale Anzahl von Dateien pro Benutzer limitiert wird, um sicherzustellen, dass ein einzelner Benutzer den Speicher nicht mit zu vielen oder übermäßig großen Dateien füllen kann.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 770 + ], + "NIST": [] + } + ] + }, + { + "Shortcode": "V12.2", + "Ordinal": 2, + "Name": "Dateiintegrität", + "Items": [ + { + "Shortcode": "V12.2.1", + "Ordinal": 1, + "Description": "Prüfen Sie, dass Dateien aus nicht vertrauenswürdigen Quellen sowohl auf der Grundlage des Dateiinhalts als auch des erwarteten Typs validiert werden.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 434 + ], + "NIST": [] + } + ] + }, + { + "Shortcode": "V12.3", + "Ordinal": 3, + "Name": "Ausführbare Dateien", + "Items": [ + { + "Shortcode": "V12.3.1", + "Ordinal": 1, + "Description": "Prüfen Sie, dass die vom Benutzer eingereichten Metadaten der Dateinamen nicht direkt vom Filesystem des Betriebssystems oder des Frameworks genutzt werden. Weiterhin ist eine URL-API zu verwenden, um vor Path Traversal zu schützen.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 22 + ], + "NIST": [] + }, + { + "Shortcode": "V12.3.2", + "Ordinal": 2, + "Description": "Prüfen Sie, dass die vom Benutzer eingereichten Metadaten der Dateinamen validiert oder ignoriert werden, um die Offenlegung, Erstellung, Aktualisierung oder Entfernung lokaler Dateien zu verhindern.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 73 + ], + "NIST": [] + }, + { + "Shortcode": "V12.3.3", + "Ordinal": 3, + "Description": "Prüfen Sie, dass die vom Benutzer eingereichten Metadaten der Dateinamen validiert oder ignoriert werden, um die Offenlegung oder Ausführung von serverseitigen Dateien via Remote File Inclusion (RFI) oder Serverside Request Forgery (SSRF) Angriffen zu verhindern.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 98 + ], + "NIST": [] + }, + { + "Shortcode": "V12.3.4", + "Ordinal": 4, + "Description": "Prüfen Sie, dass die Anwendung vor Reflective File Download (RFD) schützt, indem sie die vom Benutzer eingereichten Dateinamen in einem JSON-, JSONP- oder URL-Parameter validiert oder ignoriert. Der Content-Type Header der Antwort muss auf text/plain gesetzt werden, und der Content-Disposition Header muss einen festen Dateinamen haben.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 641 + ], + "NIST": [] + }, + { + "Shortcode": "V12.3.5", + "Ordinal": 5, + "Description": "Prüfen Sie, dass nicht vertrauenswürdige Dateimetadaten nicht direkt mit der System-API oder Bibliotheken verwendet werden, um vor OS Command Injection zu schützen.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 78 + ], + "NIST": [] + }, + { + "Shortcode": "V12.3.6", + "Ordinal": 6, + "Description": "Prüfen Sie, dass die Anwendung keine Funktionen aus nicht vertrauenswürdigen Quellen, wie z. B. nicht verifizierte Inhaltsverteilungsnetzwerke, JavaScript-Bibliotheken, node npm-Bibliotheken oder serverseitige DLLs, enthält und ausführt.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 829 + ], + "NIST": [] + } + ] + }, + { + "Shortcode": "V12.4", + "Ordinal": 4, + "Name": "Speicherung von Dateien", + "Items": [ + { + "Shortcode": "V12.4.1", + "Ordinal": 1, + "Description": "Prüfen Sie, dass Dateien aus nicht vertrauenswürdigen Quellen mit eingeschränkten Berechtigungen und vorzugsweise mit starker Validierung außerhalb des Webroots gespeichert werden.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 552 + ], + "NIST": [] + }, + { + "Shortcode": "V12.4.2", + "Ordinal": 2, + "Description": "Prüfen Sie, dass Dateien aus nicht vertrauenswürdigen Quellen von Antivirenscannern gescannt werden, um das Hochladen bekannter bösartiger Inhalte zu verhindern.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 509 + ], + "NIST": [] + } + ] + }, + { + "Shortcode": "V12.5", + "Ordinal": 5, + "Name": "Download von Dateien", + "Items": [ + { + "Shortcode": "V12.5.1", + "Ordinal": 1, + "Description": "Prüfen Sie, dass die Webschicht so konfiguriert ist, dass nur Dateien mit bestimmten Dateierweiterungen bedient werden, um unbeabsichtigte Informations- und Quellcodelecks zu vermeiden. Beispielsweise sollten Sicherungsdateien (z.B. .bak), temporäre Arbeitsdateien (z.B. .swp), komprimierte Dateien (.zip, .tar, .gz, usw.) und andere von den Editoren üblicherweise verwendete Erweiterungen blockiert werden, sofern sie nicht erforderlich sind.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 552 + ], + "NIST": [] + }, + { + "Shortcode": "V12.5.2", + "Ordinal": 2, + "Description": "Prüfen Sie, dass direkte Anfragen an hochgeladene Dateien niemals als HTML/JavaScript-Inhalt ausgeführt werden.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 434 + ], + "NIST": [] + } + ] + }, + { + "Shortcode": "V12.6", + "Ordinal": 6, + "Name": "SSRF-Schutz", + "Items": [ + { + "Shortcode": "V12.6.1", + "Ordinal": 1, + "Description": "Prüfen Sie, dass der Web- oder Anwendungsserver mit einer Whitelist von Ressourcen oder Systemen konfiguriert ist, an die der Server Anfragen senden oder Daten/Dateien laden kann.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 918 + ], + "NIST": [] + } + ] + } + ] + }, + { + "Shortcode": "V13", + "Ordinal": 13, + "ShortName": "API", + "Name": "API and Web Service", + "Items": [ + { + "Shortcode": "V13.1", + "Ordinal": 1, + "Name": "Allgemeine Sicherheit von Web Services ", + "Items": [ + { + "Shortcode": "V13.1.1", + "Ordinal": 1, + "Description": "Prüfen Sie, dass alle Komponenten die gleichen Parser und (Zeichen-)Codierungen nutzen, um Angriffe auf Basis unterschiedlichen URI- oder File-Parsings, wie SSRF oder RFI, zu verhindern.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 116 + ], + "NIST": [] + }, + { + "Shortcode": "V13.1.2", + "Ordinal": 2, + "Description": "[GELÖSCHT, DUPLIKAT VON 4.3.1]", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": false, + "Requirement": "" + }, + "L3": { + "Required": false, + "Requirement": "" + }, + "CWE": [], + "NIST": [] + }, + { + "Shortcode": "V13.1.3", + "Ordinal": 3, + "Description": "Prüfen Sie, dass API-URLs keine sensiblen Informationen wie den API-Schlüssel, Sessiontoken, etc. preisgeben.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 598 + ], + "NIST": [] + }, + { + "Shortcode": "V13.1.4", + "Ordinal": 4, + "Description": "Prüfen Sie, dass Berechtigungsentscheidungen sowohl an der URI, umgesetzt durch programmatische oder deklarative Sicherheit am Controller oder Router, als auch auf der Ressourcenebene, umgesetzt durch modellbasierte Berechtigungen, getroffen werden.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 285 + ], + "NIST": [] + }, + { + "Shortcode": "V13.1.5", + "Ordinal": 5, + "Description": "Prüfen Sie, dass Anfragen mit unerwarteten oder fehlenden Inhaltstypen mit entsprechenden Headern zurückgewiesen werden (HTTP-Antwortstatus 406 oder 415).", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 434 + ], + "NIST": [] + } + ] + }, + { + "Shortcode": "V13.2", + "Ordinal": 2, + "Name": "RESTful Web Services", + "Items": [ + { + "Shortcode": "V13.2.1", + "Ordinal": 1, + "Description": "Prüfen Sie, dass aktivierte RESTful-HTTP-Methoden eine gültige Wahl für den Benutzer oder eine Aktion sind, wie z.B. verhindern, dass normale Benutzer DELETE oder PUT auf geschützte API oder Ressourcen anwenden.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 650 + ], + "NIST": [] + }, + { + "Shortcode": "V13.2.2", + "Ordinal": 2, + "Description": "Prüfen Sie, dass die JSON-Schemavalidierung vorhanden und verifiziert ist, bevor Sie eine Eingabe akzeptieren.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 20 + ], + "NIST": [] + }, + { + "Shortcode": "V13.2.3", + "Ordinal": 3, + "Description": "Prüfen Sie, dass RESTful-Webdienste, die Cookies verwenden, durch die Verwendung von mindestens einem oder mehrerer der folgenden Verfahren vor Cross Site Request Forgery geschützt sind: Double Submit Cookie Pattern, CSRF-Nonces oder Prüfungen des Origin-Request Headers.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 352 + ], + "NIST": [] + }, + { + "Shortcode": "V13.2.4", + "Ordinal": 4, + "Description": "[GELÖSCHT, DUPLIKAT VON 11.1.4]", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": false, + "Requirement": "" + }, + "L3": { + "Required": false, + "Requirement": "" + }, + "CWE": [], + "NIST": [] + }, + { + "Shortcode": "V13.2.5", + "Ordinal": 5, + "Description": "Prüfen Sie, dass die REST-Dienste explizit prüfen, ob der eingehende Contenttyp der erwartete ist, z.B. application/xml oder application/json.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 436 + ], + "NIST": [] + }, + { + "Shortcode": "V13.2.6", + "Ordinal": 6, + "Description": "Prüfen Sie, dass die Message Header und die Nutzdaten vertrauenswürdig sind und während der Übertragung nicht verändert werden. Die Anforderung einer starken Verschlüsselung für den Transport (nur TLS) kann in vielen Fällen ausreichend sein, da sie sowohl die Vertraulichkeit als auch den Schutz der Integrität gewährleistet. Digitale Signaturen pro Nachricht können bei Hochsicherheitsanwendungen für zusätzliche Sicherheit beim Transportschutz sorgen, bringen aber zusätzliche Komplexität und Risiken mit sich, die gegen die Vorteile abzuwägen sind.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 345 + ], + "NIST": [] + } + ] + }, + { + "Shortcode": "V13.3", + "Ordinal": 3, + "Name": "SOAP Web Service", + "Items": [ + { + "Shortcode": "V13.3.1", + "Ordinal": 1, + "Description": "Prüfen Sie, dass vor der Verarbeitung von Eingabedaten zuerst eine XSD-Schemavalidierung stattfindet, um ein korrekt geformtes XML-Dokument zu gewährleisten, gefolgt von der Validierung jedes Eingabefeldes.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 20 + ], + "NIST": [] + }, + { + "Shortcode": "V13.3.2", + "Ordinal": 2, + "Description": "Prüfen Sie, dass die Nutzdaten der Nachricht mit WS-Security signiert sind, um einen zuverlässigen Transport zwischen Client und Service zu gewährleisten.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 345 + ], + "NIST": [] + } + ] + }, + { + "Shortcode": "V13.4", + "Ordinal": 4, + "Name": "GraphQL", + "Items": [ + { + "Shortcode": "V13.4.1", + "Ordinal": 1, + "Description": "Prüfen Sie, dass eine Query Whitelist oder eine Kombination von Begrenzung der Tiefe und Anzahl verwendet werden sollte, um einen DoS-Angriff von GraphQL oder Datenschichtausdrücken als Folge teurer, verschachtelter Abfragen zu verhindern. Für fortgeschrittenere Szenarien sollte die Abfragekostenanalyse verwendet werden.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 770 + ], + "NIST": [] + }, + { + "Shortcode": "V13.4.2", + "Ordinal": 2, + "Description": "Prüfen Sie, dass die Berechtigungen für die Datenschicht, z.B. GraphQL, in der Geschäftslogikschicht anstelle der Datenschicht umgesetzt ist.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 285 + ], + "NIST": [] + } + ] + } + ] + }, + { + "Shortcode": "V14", + "Ordinal": 14, + "ShortName": "Config", + "Name": "Konfiguration", + "Items": [ + { + "Shortcode": "V14.1", + "Ordinal": 1, + "Name": "Build- und Deployprozess", + "Items": [ + { + "Shortcode": "V14.1.1", + "Ordinal": 1, + "Description": "Prüfen Sie, dass die Build- und Deploymentprozesse auf sichere und wiederholbare Weise durchgeführt werden, z. B. durch CI-/CD-Automatisierung, automatisiertes Konfigurationsmanagement und automatisierte Deploymentskripte.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [], + "NIST": [] + }, + { + "Shortcode": "V14.1.2", + "Ordinal": 2, + "Description": "Prüfen Sie, dass die Compilerflags so konfiguriert sind, dass sie alle verfügbaren Pufferüberlaufschutzmechanismen und Warnungen aktivieren, einschließlich der Stackrandomisierung, der Verhinderung der Datenausführung und des Buildabbruchs, wenn ein(e) unsichere(r) Pointer, Speicher, Formatstring, Integer- oder Stringoperationen gefunden wird.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 120 + ], + "NIST": [] + }, + { + "Shortcode": "V14.1.3", + "Ordinal": 3, + "Description": "Prüfen Sie, dass die Serverkonfiguration gemäß den Empfehlungen des verwendeten Anwendungsservers und Frameworks gehärtet wird.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 16 + ], + "NIST": [] + }, + { + "Shortcode": "V14.1.4", + "Ordinal": 4, + "Description": "Prüfen Sie, dass die Anwendung, die Konfiguration und alle Abhängigkeiten mit Hilfe automatisierter Deploymentskripte wieder installiert werden können, indem sie innerhalb eines angemessenen Zeitraums aus einem dokumentierten und getesteten Runbook erstellt oder aus Backups zeitnah wiederhergestellt werden können.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [], + "NIST": [] + }, + { + "Shortcode": "V14.1.5", + "Ordinal": 5, + "Description": "Prüfen Sie, dass autorisierte Administratoren die Integrität aller sicherheitsrelevanten Konfigurationen überprüfen können, um Manipulationen zu erkennen.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": false, + "Requirement": "" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [], + "NIST": [] + } + ] + }, + { + "Shortcode": "V14.2", + "Ordinal": 2, + "Name": "Management von Abhängigkeiten", + "Items": [ + { + "Shortcode": "V14.2.1", + "Ordinal": 1, + "Description": "Prüfen Sie, dass alle Komponenten auf dem neuesten Stand sind, am besten mit einem Abhängigkeitsprüfer zur Build- oder Kompilierzeit. ([C2](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 1026 + ], + "NIST": [] + }, + { + "Shortcode": "V14.2.2", + "Ordinal": 2, + "Description": "Prüfen Sie, dass alle nicht benötigten Funktionen, Dokumentationen, Beispiele und Konfigurationen entfernt werden.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 1002 + ], + "NIST": [] + }, + { + "Shortcode": "V14.2.3", + "Ordinal": 3, + "Description": "Prüfen Sie, dass die Integrität externen Inhaltes durch Subresource Integrity (SRI) überprüft wird, wenn Anwendungsassets wie JavaScript-Bibliotheken, CSS oder Web-Fonts extern, z.B. bei einem Content Delivery Network oder bei einem externen Anbieter, gehostet werden.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 829 + ], + "NIST": [] + }, + { + "Shortcode": "V14.2.4", + "Ordinal": 4, + "Description": "Prüfen Sie, dass Komponenten Dritter aus bekannten, vertrauenswürdigen und kontinuierlich gepflegten Repositories stammen. ([C2](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 829 + ], + "NIST": [] + }, + { + "Shortcode": "V14.2.5", + "Ordinal": 5, + "Description": "Prüfen Sie, dass eine Softwarestückliste (Bill of Materials, SBOM) aller genutzten Bibliotheken von Drittanbietern geführt wird. ([C2](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [], + "NIST": [] + }, + { + "Shortcode": "V14.2.6", + "Ordinal": 6, + "Description": "Prüfen Sie, dass die Angriffsfläche durch Sandboxing oder Einkapselung von Bibliotheken von Drittanbietern reduziert wird, damit die Anwendung nur die erforderliche Funktionalität erhält. ([C2](https://owasp.org/www-project-proactive-controls/#div-numbering))", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 265 + ], + "NIST": [] + } + ] + }, + { + "Shortcode": "V14.3", + "Ordinal": 3, + "Name": "Offenlegung von Informationen", + "Items": [ + { + "Shortcode": "V14.3.1", + "Ordinal": 1, + "Description": "[GELÖSCHT, DUPLIKAT VON 7.4.1]", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": false, + "Requirement": "" + }, + "L3": { + "Required": false, + "Requirement": "" + }, + "CWE": [], + "NIST": [] + }, + { + "Shortcode": "V14.3.2", + "Ordinal": 2, + "Description": "Prüfen Sie, dass die Debugmodi von Web- und Anwendungsserver sowie Anwendungsframework in der Produktion deaktiviert sind, um Sicherheitslücken durch Debugfunktionen oder Entwicklerkonsolen zu vermeiden.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 497 + ], + "NIST": [] + }, + { + "Shortcode": "V14.3.3", + "Ordinal": 3, + "Description": "Prüfen Sie, dass die HTTP-Header und HTTP-Antworten keine detaillierten Versionsinformationen von Systemkomponenten enthalten.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 200 + ], + "NIST": [] + } + ] + }, + { + "Shortcode": "V14.4", + "Ordinal": 4, + "Name": "HTTP Security Header", + "Items": [ + { + "Shortcode": "V14.4.1", + "Ordinal": 1, + "Description": "Prüfen Sie, dass jede HTTP-Antwort einen Content Type Header enthält. Für die Content types text/*, /+xml oder application/xml sollten ein sicherer Zeichensatz (z. B. UTF-8, ISO 8859-1) angeben sein. Der Inhalt muss zum angegebenen Content Type Header passen.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 173 + ], + "NIST": [] + }, + { + "Shortcode": "V14.4.2", + "Ordinal": 2, + "Description": "Prüfen Sie, dass alle API-Antworten die Content-Disposition: attachment; filename=„api.json“ Header oder einen anderen geeigneten Dateinamen für den Inhaltstyp enthalten.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 116 + ], + "NIST": [] + }, + { + "Shortcode": "V14.4.3", + "Ordinal": 3, + "Description": "Prüfen Sie, dass ein Content Security Policy (CSP) Response Header vorhanden ist, die dazu beiträgt, die Auswirkungen von XSS-Angriffen wie HTML-, DOM-, JSON- und JavaScript-Injektionsschwachstellen abzuschwächen.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 1021 + ], + "NIST": [] + }, + { + "Shortcode": "V14.4.4", + "Ordinal": 4, + "Description": "Prüfen Sie, dass alle Antworten X-Content-Type-Optionen: nosniff Header enthalten.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 116 + ], + "NIST": [] + }, + { + "Shortcode": "V14.4.5", + "Ordinal": 5, + "Description": "Prüfen Sie, dass ein HTTP Strict-Transport-Security Header in allen Antworten und für alle Unterdomänen enthalten ist, z. B. Strict-Transport-Security: max-age=15724800; includeSubdomains.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 523 + ], + "NIST": [] + }, + { + "Shortcode": "V14.4.6", + "Ordinal": 6, + "Description": "Prüfen Sie, dass ein geeigneter Referrer-Policy Header enthalten ist, um das Veröffentlichen sensibler Informationen über den Referer Header zu vermeiden.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 116 + ], + "NIST": [] + }, + { + "Shortcode": "V14.4.7", + "Ordinal": 7, + "Description": "Prüfen Sie, dass der Inhalt einer Webanwendung nicht standardmäßig in Seiten Dritter eingebunden werden kann. Das Einbinden der exakten Ressourcen ist nur erlaubt, wenn nötig. Dabei sind passende Content-Security-Policy: frame-ancestors und X-Frame-Options Response Header zu nutzen.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 1021 + ], + "NIST": [] + } + ] + }, + { + "Shortcode": "V14.5", + "Ordinal": 5, + "Name": "Prüfung der HTTP Request Header", + "Items": [ + { + "Shortcode": "V14.5.1", + "Ordinal": 1, + "Description": "Prüfen Sie, dass der Anwendungsserver nur die von der Anwendung oder der API verwendeten HTTP-Methoden akzeptiert, einschließlich der Pre-Flight-OPTIONS. Alle ungültigen Request sollten ins Log geschrieben werden oder einen Alarm auslösen.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 749 + ], + "NIST": [] + }, + { + "Shortcode": "V14.5.2", + "Ordinal": 2, + "Description": "Prüfen Sie, dass der bereitgestellte Origin Header nicht für Authentifizierungs- oder Zugriffskontrollentscheidungen verwendet wird, da der Origin Header von einem Angreifer leicht geändert werden kann.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 346 + ], + "NIST": [] + }, + { + "Shortcode": "V14.5.3", + "Ordinal": 3, + "Description": "Prüfen Sie, dass der CORS-Access-Control-Allow-Origin Header eine strikte Whitelist mit vertrauenswürdigen Domains verwendet und den „Null“-Ursprung nicht unterstützt.", + "L1": { + "Required": true, + "Requirement": "✓" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 346 + ], + "NIST": [] + }, + { + "Shortcode": "V14.5.4", + "Ordinal": 4, + "Description": "Prüfen Sie, dass HTTP-Header, die von einem vertrauenswürdigen Proxy oder SSO-Geräten, wie z. B. einem Bearer-Token, hinzugefügt wurden, von der Anwendung authentifiziert werden.", + "L1": { + "Required": false, + "Requirement": "" + }, + "L2": { + "Required": true, + "Requirement": "✓" + }, + "L3": { + "Required": true, + "Requirement": "✓" + }, + "CWE": [ + 306 + ], + "NIST": [] + } + ] + } + ] + } + ] +} diff --git a/4.0/docs_de/OWASP Application Security Verification Standard 4.0.3-de.xml b/4.0/docs_de/OWASP Application Security Verification Standard 4.0.3-de.xml new file mode 100644 index 0000000000..30e0ca16b8 --- /dev/null +++ b/4.0/docs_de/OWASP Application Security Verification Standard 4.0.3-de.xml @@ -0,0 +1 @@ +Application Security Verification Standard ProjectASVS4.0.3The OWASP Application Security Verification Standard (ASVS) Project provides a basis for testing web application technical security controls and also provides developers with a list of requirements for secure development.V11ArchitectureArchitektur, Design und Threat ModelingV1.11Der sichere SoftwareentwicklungszyklusV1.1.11Prüfen Sie, dass der SDLC die Sicherheit in allen Entwicklungsphasen berücksichtigt. ([C1](https://owasp.org/www-project-proactive-controls/#div-numbering))FalseTrueTrueV1.1.22Prüfen Sie, dass für Designänderung oder Sprintplanung eine Bedrohungsanalyse stattfand, um Bedrohungen zu identifizieren, Gegenmaßnahmen zu planen und umzusetzen sowie passende Sicherheitstests zu planen.FalseTrueTrue1053V1.1.33Prüfen Sie, dass alle Userstories und alle Merkmale funktionale Sicherheitsanforderungen enthalten, z.B. „Als Benutzer sollte ich mein Profil anzeigen und bearbeiten können. Ich sollte nicht in der Lage sein, das Profil eines anderen anzusehen oder zu bearbeiten“.FalseTrueTrue1110V1.1.44Prüfen Sie die Dokumentation und Erläuterung aller Sicherheitsgrenzen, Komponenten und wichtigen Datenflüsse der Anwendung.FalseTrueTrue1059V1.1.55Prüfen Sie die Definition und Sicherheitsanalyse der High Level Architektur der Anwendung und aller verbundenen Remoteservices. ([C1](https://owasp.org/www-project-proactive-controls/#div-numbering))FalseTrueTrue1059V1.1.66Prüfen Sie, dass Sicherheitsmaßnahmen zentralisiert, einfach, geprüft, sicher und wiederverwendbar implementiert worden sind. Dies vermeidet doppelte, fehlende, unwirksame oder unsichere Maßnahmen. ([C10](https://owasp.org/www-project-proactive-controls/#div-numbering))FalseTrueTrue637V1.1.77Prüfen Sie die Verfügbarkeit einer Checkliste für die sichere Programmierung, Sicherheitsanforderungen, eines Leitfadens oder Richtlinien für alle Entwickler und Tester.FalseTrueTrue637V1.22Architektur der AuthentifizierungV1.2.11Prüfen Sie die Nutzung spezifischer Betriebssystemkonten bzw. solcher mit minimalen Berechtigungen für alle Komponenten, Dienste und Server. ([C3](https://owasp.org/www-project-proactive-controls/#div-numbering))FalseTrueTrue250V1.2.22Prüfen Sie, dass die Kommunikation zwischen Anwendungskomponenten, einschließlich APIs, Middleware und Datenschichten, authentifiziert wird. Komponenten sollten die minimal notwendigen Berechtigungen haben. ([C3](https://owasp.org/www-project-proactive-controls/#div-numbering))FalseTrueTrue306V1.2.33Prüfen Sie, dass die Anwendung einen einzigen geprüften und sicheren Authentifizierungsmechanismus verwendet, der auf eine starke Authentifizierung erweitert werden kann und über ein ausreichendes Logging und Monitoring verfügt, um Einbrüche oder Missbrauch zu erkennen.FalseTrueTrue306V1.2.44Prüfen Sie, dass alle Authentifizierungspfade und Identitätsmanagement-APIs eine einheitliche Stärke der Authentifizierung implementieren, so dass es keine schwächeren Alternativen pro Anwendungsrisiko gibt.FalseTrueTrue306V1.33Architektur des SessionmanagementsV1.44Architektur der ZugriffskontrolleV1.4.11Prüfen Sie, dass Zugriffskontrollen von vertrauenswürdigen Stellen, wie z.B. Accesscontrol Gateways, Servern oder serverlosen Funktionen, ausgeführt werden. Implementieren Sie Zugriffskontrollen niemals am Client.FalseTrueTrue602V1.4.22[GELÖSCHT, NICHT UMSETZBAR]FalseFalseFalseV1.4.33[GELÖSCHT, DUPLIKAT VON 4.1.3]FalseFalseFalseV1.4.44Prüfen Sie, dass die Anwendung mit einer einzigen und gut erprobten Zugriffssteuerung auf geschützte Daten und Ressourcen zugreift. Alle Anfragen müssen diesen einen Weg nutzen, um Kopieren und Einfügen oder unsichere Alternativpfade zu vermeiden. ([C7](https://owasp.org/www-project-proactive-controls/#div-numbering))FalseTrueTrue284V1.4.55Prüfen Sie, dass eine attribut- oder merkmalsbasierte Zugriffskontrolle verwendet wird, die die Berechtigung des Benutzers zum Zugriff auf ein Merkmal oder Datenelement und nicht nur seine Rolle prüft. Die Berechtigungen sollten weiterhin über Rollen vergeben werden. ([C7](https://owasp.org/www-project-proactive-controls/#div-numbering))FalseTrueTrue275V1.55Architektur des Ein- und Ausgabemanagements V1.5.11Prüfen Sie, dass die Ein- und Ausgabeanforderungen klar definieren, wie die Daten auf der Grundlage des Typs, des Inhalts und der anwendbaren Gesetze, Vorschriften und anderen Richtlinien zu verarbeiten sind.FalseTrueTrue1029V1.5.22Prüfen Sie, dass bei der Kommunikation mit nicht vertrauenswürdigen Clients keine Serialisierung verwendet wird. Ist dies nicht möglich, prüfen Sie, dass die Integrität geprüft und bei sensiblen Daten auch verschlüsselt wird, um Deserialisierungsangriffe oder Object Injection Angriffe zu verhindern.FalseTrueTrue502V1.5.33Prüfen Sie, dass die Eingabevalidierung in einer vertrauenswürdigen Serviceschicht durchgesetzt wird. ([C5](https://owasp.org/www-project-proactive-controls/#div-numbering))FalseTrueTrue602V1.5.44Prüfen Sie, dass die Ausgabecodierung in der Nähe des oder durch den Interpreter erfolgt, für den sie bestimmt ist. ([C4](https://owasp.org/www-project-proactive-controls/#div-numbering))FalseTrueTrue116V1.66Architektur kryptographischer MaßnahmenV1.6.11Prüfen Sie, dass es eine explizite Richtlinie für das Schlüsselmanagement gibt, und dass der Lebenszyklus eines kryptografischen Schlüssels konform zu einem Standard für das Schlüsselmanagement wie NIST SP 800-57 ist.FalseTrueTrue320V1.6.22Prüfen Sie, dass Nutzer kryptografischer Dienste Schlüssel und andere Geheimnisse mit Hilfe von Schlüsseltresoren oder API-basierte Alternativen schützen.FalseTrueTrue320V1.6.33Prüfen Sie, dass alle Schlüssel und Passwörter ersetzbar und Teil eines genau definierten Prozesses zur Neuverschlüsselung sensibler Daten sind.FalseTrueTrue320V1.6.44Prüfen Sie, dass clientseitige Geheimnisse, wie symmetrische Schlüssel, Passwörter oder API-Token, architektonisch als unsicher betrachtet werden. Sie dürfen nicht zum Schutz sensibler Daten verwendet werden.FalseTrueTrue320V1.77Architektur von Fehlerbehandlung, Protokollierung und AuditV1.7.11Prüfen Sie, dass im gesamten System Herangehensweise und Protokollformat einheitlich sind. ([C9](https://owasp.org/www-project-proactive-controls/#div-numbering))FalseTrueTrue1009V1.7.22Prüfen Sie, dass die Protokolle zur Analyse, Erkennung, Alarmierung und Eskalation sicher übertragen werden - vorzugsweise an ein eigenständiges System. ([C9](https://owasp.org/www-project-proactive-controls/#div-numbering))FalseTrueTrueV1.88Architektonische Anforderungen zur Einhaltung des DatenschutzesV1.8.11Prüfen Sie, dass alle sensiblen Daten identifiziert und klassifiziert werden.FalseTrueTrueV1.8.22Prüfen Sie, dass für alle Schutzklassen entsprechende Anforderungen existieren, z. B. an die Vertraulichkeit, die Integrität, Aufbewahrung, Datenschutz etc. und dass diese in der Architektur angewendet werden.FalseTrueTrueV1.99Architektur der KommunikationsverbindungenV1.9.11Prüfen Sie, dass die Anwendung die Kommunikation zwischen Komponenten verschlüsselt, insbesondere wenn sich diese in verschiedenen Containern, Systemen, Standorten oder Cloudanbietern befinden. ([C3](https://owasp.org/www-project-proactive-controls/#div-numbering))FalseTrueTrue319V1.9.22Prüfen Sie, dass die Anwendungskomponenten die Authentizität beider Seiten einer Kommunikationsverbindung verifizieren, um Man-in-the-Middle-Angriffe zu verhindern. Beispielsweise sollten die Anwendungskomponenten TLS-Zertifikate und Zertifikatsketten verifizieren.FalseTrueTrue295V1.1010Architektonische Anforderungen zum Schutz vor unbefugten ÄnderungenV1.10.11Prüfen Sie, dass das Quellcodeverwaltungssystem sicherstellt, dass Check-Ins mit Issues oder Änderungstickets einhergehen. Das Quellcodeverwaltungssystem sollte über eine Zugriffskontrolle und identifizierbare Benutzer verfügen, um Änderungen nachverfolgen zu können.FalseTrueTrue284V1.1111Architektur der GeschäftslogikV1.11.11Prüfen Sie die Definition und Dokumentation aller Anwendungskomponenten auf die von ihnen bereitgestellten Fach- oder Sicherheitsfunktionen.FalseTrueTrue1059V1.11.22Prüfen Sie, dass alle geschäftskritischen Abläufe, inkl. der Authentifizierung, des Sessionmanagements und der Zugriffssteuerung stets synchronisiert sind.FalseTrueTrue362V1.11.33Prüfen Sie, dass alle geschäftskritischen Abläufe, einschließlich der Authentifizierung, des Sessionmanagements und der Zugriffssteuerung thread-sicher und sicher gegen TOCTOU Race Conditions sind.FalseFalseTrue367V1.1212Sicheres Datei Upload V1.12.11[GELÖSCHT, DUPLIKAT VON 12.4.1]FalseFalseFalseV1.12.22Prüfen Sie, dass vom Benutzer hochgeladene Dateien - sofern sie angezeigt oder von der Anwendung heruntergeladen werden müssen - entweder durch Oktett-Stream-Downloads oder von einer nicht verwandten Domäne, wie z.B. einem Cloud File Storage Bucket, bereitgestellt werden. Implementieren Sie geeignete Sicherheitsmaßnahmen für Dateiinhalte, um das Risiko von Angriffen mit Hilfe der hochgeladenen Datei zu reduzieren.FalseTrueTrue646V1.1313API-ArchitekturV1.1414Architektonische Anforderungen an die KonfigurationV1.14.11Prüfen Sie die Trennung von Komponenten unterschiedlicher Vertrauensstufen durch gut durchdachte Sicherheitsmaßnahmen, Firewallregeln, API-Gateways, Reverseproxies, cloudbasierte Sicherheitsgruppen o.ä.FalseTrueTrue923V1.14.22Prüfen Sie, dass digitale Signaturen, vertrauenswürdige Verbindungen und vertrauenswürdige Downloadquellen verwendet werden, um Binärdaten auf Endgeräte zu verteilen.FalseTrueTrue494V1.14.33Prüfen Sie, dass die Buildpipeline vor veralteten oder unsicheren Komponenten warnt und entsprechende Maßnahmen ergreift.FalseTrueTrue1104V1.14.44Prüfen Sie, dass die Buildpipeline einen Schritt enthält, um die sichere Deploymentversion der Anwendung automatisch zu erstellen und zu verifizieren, insbesondere wenn die Anwendungsinfrastruktur softwarebasiert ist, wie z. B. Cloudumgebungen.FalseTrueTrueV1.14.55Prüfen Sie, dass Anwendungen auf der Netzwerkebene voneinander separiert sind, z.B. per Sandbox oder Container, um Angreifer auszubremsen und davon abzuhalten, andere Anwendungen anzugreifen, insbesondere wenn sie sensible Aktionen wie eine Deserialisierung durchführen. ([C5](https://owasp.org/www-project-proactive-controls/#div-numbering))FalseTrueTrue265V1.14.66Prüfen Sie, dass die Anwendung keine nicht unterstützten, unsicheren oder veralteten clientseitigen Technologien wie NSAPI-Plugins, Flash, Shockwave, ActiveX, Silverlight, NACL oder clientseitige Java-Applets verwendet.FalseTrueTrue477V22AuthenticationV2.11PasswortsicherheitV2.1.11Prüfen Sie, dass Benutzerpasswörter mindestens 12 Zeichen lang sind, nachdem zusammenhängende Leerzeichen gekürzt wurden. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))TrueTrueTrue5215.1.1.2V2.1.22Prüfen Sie, dass Passwörter mit 64 oder mehr Zeichen erlaubt sind, jedoch nicht mehr als 128 Zeichen. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))TrueTrueTrue5215.1.1.2V2.1.33Prüfen Sie, dass Passwörter nicht gekürzt werden. Mehrere aufeinanderfolgende Leerzeichen können zu einem zusammengefasst werden. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))TrueTrueTrue5215.1.1.2V2.1.44Prüfen Sie, ob alle druckbaren Unicode-Zeichen, auch Leerzeichen oder Emojis, in Passwörtern zulässig sind.TrueTrueTrue5215.1.1.2V2.1.55Prüfen Sie, dass Benutzer ihr Passwort ändern können.TrueTrueTrue6205.1.1.2V2.1.66Prüfen Sie, dass die Passwortänderungsfunktion das bisherige sowie das neue Kennwort des Benutzers erfordert.TrueTrueTrue6205.1.1.2V2.1.77Prüfen Sie, dass die bei der Kontoregistrierung, beim Login und bei der Passwortänderung übermittelten Passwörter mit einen Satz verletzter Passwörtern verglichen werden, und zwar entweder lokal (z. B. mit den 1.000 oder 10.000 häufigsten Passwörtern, die mit der Passwortrichtlinie des Systems übereinstimmen) oder mit Hilfe einer externen API. Bei Verwendung einer API muss sichergestellt werden, dass das Klartextpasswort nicht gesendet oder anderweitig offengelegt wird. Wird das Passwort offengelegt, muss die Anwendung den Benutzer auffordern, ein neues Passwort festzulegen. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))TrueTrueTrue5215.1.1.2V2.1.88Prüfen Sie, dass ein Maß für die Passwortstärke bereitgestellt wird, damit Benutzer ein stärkeres Passwort erstellen können.TrueTrueTrue5215.1.1.2V2.1.99Prüfen Sie, dass es keine Regeln für die Zusammenstellung der Passwörter gibt, welche die Art der zulässigen Zeichen einschränken. Die Verwendung bestimmter Zeichen, wie Groß- oder Kleinschreibung, Zahlen oder Sonderzeichen sollte nicht verlangt werden. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))TrueTrueTrue5215.1.1.2V2.1.1010Prüfen Sie, dass weder periodischer Passwortwechsel notwendig ist noch eine Passworthistorie gespeichert wird.TrueTrueTrue2635.1.1.2V2.1.1111Prüfen Sie, dass die „Einfügen“-Funktion, Passworthilfen der Browser und externe Passwortmanager zugelassen sind.TrueTrueTrue5215.1.1.2V2.1.1212Prüfen Sie, dass der Benutzer wählen kann, entweder das gesamte Passwort vorübergehend angezeigt zu bekommen oder das letzte eingetippte Zeichen des Passwortes angezeigt zu bekommen.TrueTrueTrue5215.1.1.2V2.22Allgemeine Sicherheitsanforderungen an den AuthentifikatorV2.2.11Prüfen Sie, dass Maßnahmen gegen automatische Angriffe, wie das Ausprobieren von Passworten oder das Aussperren von Benutzern, wirksam umgesetzt sind. Dazu gehören das Blockieren der am häufigsten verwendeten Passwörter, Soft-Lockouts, die Begrenzung der Anzahl von Anmeldungen, CAPTCHA, wachsende Verzögerungen zwischen den Fehlversuchen, IP-Adressbeschränkungen oder risikobasierte Einschränkungen wie Standort, erste Anmeldung auf einem Gerät, kürzliche Versuche, das Konto zu entsperren oder Ähnliches. Prüfen Sie, dass nicht mehr als 100 Fehlversuche pro Stunde bei einem einzelnen Konto möglich sind.TrueTrueTrue3075.2.25.1.1.25.1.4.25.1.5.2V2.2.22Prüfen Sie, dass der Einsatz schwacher Authentifikationsmethoden, wie SMS und E-Mail, auf die sekundäre Verifizierung und Transaktionsgenehmigung beschränkt ist und nicht als Ersatz für sicherere Authentifizierungsmethoden dient. Prüfen Sie, dass stärkere Methoden vor schwachen Methoden eingesetzt werden, dass sich die Benutzer der Risiken bewusst sind oder dass geeignete Maßnahmen zur Begrenzung des Risikos getroffen werden.TrueTrueTrue3045.2.10V2.2.33Prüfen Sie, dass die Benutzer sichere Benachrichtigungen nach Aktualisierungen der Authentifizierungsdetails, wie z. B. das Zurücksetzen von Anmeldedaten, E-Mail- oder Adressänderungen, Anmeldung von unbekannten oder risikobehafteten Orten erhalten. Die Verwendung von Push-Benachrichtigungen - anstelle von SMS oder E-Mail - ist vorzuziehen. Bei fehlenden Push-Benachrichtigungen sind SMS oder E-Mail jedoch akzeptabel, solange in der Benachrichtigung keine sensiblen Informationen offengelegt werden.TrueTrueTrue620V2.2.44Prüfen Sie die Resistenz gegen Phishing durch Authentifizierung mittels Mehrfaktor-Authentifizierung, Public Key Kryptographie, Chipkarten und Push-Nachrichten, auf höheren AAL-Ebenen: clientseitige Zertifikate.FalseFalseTrue3085.2.5V2.2.55Prüfen Sie, dass der CSP und die nutzende Anwendung über zweiseitig authentifiziertes TLS kommunizieren.FalseFalseTrue3195.2.6V2.2.66Prüfen Sie, dass Authentifikationsdaten nicht wieder eingespielt werden können. Dies kann z.B. mit One Time Password (OTP) Generatoren, Chipkarten o.ä. verhindert werden.FalseFalseTrue3085.2.8V2.2.77Prüfen Sie, dass eine Authentifikation nicht unbeabsichtigt stattfinden kann. Verlangen Sie die Eingabe eines OTP-Tokens oder eine vom Benutzer initiierte Aktion, wie z.B. einen Tastendruck auf einem FIDO-Hardwaretoken.FalseFalseTrue3085.2.9V2.33Lebenszyklus des AuthentifikatorsV2.3.11Vom System generierte Anfangspasswörter oder Aktivierungscodes SOLLTEN sicher zufällig generiert werden. Sie SOLLTEN mindestens 6 Zeichen lang sein und KÖNNEN Buchstaben und Zahlen enthalten. Sie MÜSSEN nach einer kurzen Zeitspanne ablaufen. Diese Initialpasswörter dürfen nicht zum dauerhaften Passwort werden.TrueTrueTrue3305.1.1.2A.3V2.3.22Prüfen Sie, dass die Registrierung und die Verwendung von vom Teilnehmer bereitgestellten Authentifizierungsgeräten unterstützt werden, wie z. B. U2F- oder FIDO-Token.FalseTrueTrue3086.1.3V2.3.33Prüfen Sie, dass die Aufforderung zur Erneuerung zeitgebundener Authentifikatoren rechtzeitig gesendet werden.FalseTrueTrue2876.1.4V2.44Speicherung der AnmeldedatenV2.4.11Prüfen Sie, dass die Passwörter in einer Form gespeichert werden, die immun gegen Offlineangriffe ist. Passwörter MÜSSEN mit einem Salt versehen werden. Der Passworthash muss mit Hilfe einer sicheren Funktion zur Schlüsselberechnung oder einer Passwort-Hashfunktion berechnet werden. Die Funktionen zur Schlüsselberechnung und zum Passwort-Hashing nehmen ein Passwort, einen Salt und einen Kostenfaktor als Eingabewerte. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))FalseTrueTrue9165.1.1.2V2.4.22Prüfen Sie, dass das Salt mindestens 32 Bit lang ist und zufällig gewählt wird, um Saltwertkollisionen zwischen gespeicherten Hashes zu minimieren. Für jede Anmeldeinformation (Credential) MUSS ein eindeutiger Saltwert und der daraus resultierende Hash gespeichert werden. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))FalseTrueTrue9165.1.1.2V2.4.33Prüfen Sie, dass bei Verwendung von PBKDF2 der Iterationszähler so groß sein SOLLTE, wie es die Leistung des Verifikationsservers zulässt, normalerweise mindestens 100.000 Iterationen. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))FalseTrueTrue9165.1.1.2V2.4.44Prüfen Sie, dass bei Verwendung von bcrypt der Arbeitsfaktor so groß sein SOLLTE, wie es die Leistung des Verifikationsservers erlaubt, jedoch mindestens 10. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))FalseTrueTrue9165.1.1.2V2.4.55Prüfen Sie, dass eine zusätzliche Iteration einer Funktion zur Schlüsselberechnung durchgeführt wird. Dabei ist ein Saltwert zu verwenden, der nur dem Verifizierer bekannt ist. Generieren Sie den Saltwert mit einem zugelassenen Zufallsgenerator [SP 800-90Ar1]. Stellen Sie die in der letzten Revision von SP 800-131A angegebene Mindestsicherheitsstärke sicher. Der geheime Saltwert MUSS getrennt von den gehashten Passwörtern gespeichert werden, z.B. in einem speziellen Gerät wie einem HSM.FalseTrueTrue9165.1.1.2V2.55Wiederherstellung von AnmeldedatenV2.5.11Prüfen Sie, dass ein vom System generiertes Initial- oder Wiederherstellungsgeheimnis nicht im Klartext an den Benutzer gesendet wird. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))TrueTrueTrue6405.1.1.2V2.5.22Prüfen Sie, dass keine Hinweise auf Passwörter oder wissensbasierte Authentifizierung, z.B. „geheime Fragen“ vorliegen.TrueTrueTrue6405.1.1.2V2.5.33Prüfen Sie, dass die Wiederherstellung von Anmeldedaten das aktuelle Kennwort nicht preisgibt. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))TrueTrueTrue6405.1.1.2V2.5.44Prüfen Sie, dass Gemeinschafts- oder Standardkonten, z.B. „root“, „admin“, „Gast“ oder „sa“ deaktiviert oder gelöscht sind.TrueTrueTrue165.1.1.2A.3V2.5.55Prüfen Sie, dass der Benutzer informiert wird, wenn ein Authentifizierungsfaktor geändert oder ersetzt wird.TrueTrueTrue3046.1.2.3V2.5.66Prüfen Sie, dass der Prozess zur Wiederherstellung, z.B. für vergessene Passwörter, einen sicheren Kanal, z. B. TOTP oder andere Softtoken, Mobile Push oder andere Offlinekanäle, verwendet. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))TrueTrueTrue6405.1.1.2V2.5.77Prüfen Sie, dass der Identitätsnachweis bei Verlust von OTP- oder Mehrfaktor-Token auf derselben Ebene wie bei der Registrierung durchgeführt wird.FalseTrueTrue3086.1.2.3V2.66Verifizierung von TAN-ListenV2.6.11Prüfen Sie, dass die Geheimcodes nur einmal verwendet werden können.FalseTrueTrue3085.1.2.2V2.6.22Prüfen Sie, ob die Geheimcodes eine ausreichende Zufälligkeit aufweisen (112 Bit Entropie). Falls weniger als 112 Bit Entropie vorhanden sind, sind ein einzigartiger und zufälliger 32 Bit Salt und eine zugelassene Hashfunktion zu nutzen.FalseTrueTrue3305.1.2.2V2.6.33Prüfen Sie, dass Geheimcodes gegen Offlineangriffe, wie z.B. vorhersehbare Werte, immun sind.FalseTrueTrue3105.1.2.2V2.77Out-of-Band VerifiziererV2.7.11Prüfen Sie, dass Out-of-Band Authentifikatoren, die NIST „restricted“ sind, wie z.B. SMS, nicht standardmäßig angeboten werden und dass stärkere Alternativen wie Push-Nachrichten zuerst angeboten werden.TrueTrueTrue2875.1.3.2V2.7.22Prüfen Sie, dass der Out-of-Band Verifizierer bei Out-of-Band Authentifizierungsanforderungen, -Codes oder -Tokens nach 10 Minuten abläuft.TrueTrueTrue2875.1.3.2V2.7.33Prüfen Sie, dass Authentifizierungsanfragen, -Codes oder ‑Token an den Out-of-Band Verifizierer nur einmal und nur für die ursprüngliche Authentifizierungsanfrage verwendbar sind.TrueTrueTrue2875.1.3.2V2.7.44Prüfen Sie, dass der Out-of-Band Authentifizierer und der Verifizierer über einen sicheren, unabhängigen Kanal kommunizieren.TrueTrueTrue5235.1.3.2V2.7.55Prüfen Sie, dass der Out-of-Band Verifizierer nur eine gehashte Version des Authentifizierungscodes speichert.FalseTrueTrue2565.1.3.2V2.7.66Prüfen Sie, dass der initiale Authentifizierungscode von einem sicheren Zufallszahlengenerator erzeugt wird, der mindestens 20 Bit Entropie enthält. Normalerweise ist eine sechsstellige Zufallszahl ausreichend.FalseTrueTrue3105.1.3.2V2.88Ein- oder Mehrfaktor-EinwegverifiziererV2.8.11Prüfen Sie, dass zeitbasierte OTPs eine definierte Lebensdauer haben, bevor sie ablaufen.TrueTrueTrue6135.1.4.25.1.5.2V2.8.22Prüfen Sie, dass die symmetrischen Schlüssel, die zur Prüfung der eingegebenen OTPs verwendet werden, sicher geschützt sind, z.B. durch Verwendung eines HSM oder der sicheren Schlüsselspeicherung des Betriebssystems.FalseTrueTrue3205.1.4.25.1.5.2V2.8.33Prüfen Sie, dass anerkannte kryptografische Algorithmen bei der Generierung, dem Seeding und der Verifizierung verwendet werden.FalseTrueTrue3265.1.4.25.1.5.2V2.8.44Prüfen Sie, dass das zeitbasierte OTP nur einmal innerhalb des Gültigkeitszeitraums verwendet werden können.FalseTrueTrue2875.1.4.25.1.5.2V2.8.55Prüfen Sie, dass ein zeitbasiertes Mehrfaktor-OTP, das während der Gültigkeitsdauer wiederverwendet wird, protokolliert und mit sicheren Benachrichtigungen an den Inhaber des Geräts abgelehnt wird.FalseTrueTrue2875.1.5.2V2.8.66Prüfen Sie, ob physische OTP-Generatoren im Falle von Diebstahl oder Verlust gesperrt werden können. Stellen Sie sicher, dass der Widerruf sofort für alle eingeloggten Sitzungen, unabhängig vom Standort, wirksam ist.FalseTrueTrue6135.2.1V2.8.77Prüfen Sie, dass biometrische Authentifikatoren nur als sekundäre Faktoren in Verbindung mit etwas, das Sie haben oder etwas, das Sie wissen, verwendet werden dürfen.FalseTrueOptionalTrue3085.2.3V2.99Kryptografische Software und Geräte im AuthentifizierungsprozessV2.9.11Prüfen Sie, dass die bei der Authentifizierung verwendeten kryptografischen Schlüssel sicher gespeichert und gegen Offenlegung geschützt sind, z. B. durch Verwendung eines Trusted Platform Module (TPM) oder eines Hardware Security Modules (HSM) oder eines Betriebssystemdienstes.FalseTrueTrue3205.1.7.2V2.9.22Prüfen Sie, dass der Zufallswert mindestens 64 Bit lang ist und statistisch einmalig oder für die Lebensdauer des kryptografischen Geräts einmalig ist.FalseTrueTrue3305.1.7.2V2.9.33Prüfen Sie, dass anerkannte kryptografische Algorithmen bei allen kryptographischen Operationen verwendet werden.FalseTrueTrue3275.1.7.2V2.1010Service-AuthentifizierungV2.10.11Prüfen Sie, dass Intra-Service-Geheimnisse nicht auf unveränderlichen Credentials, wie Passwörtern, API-Schlüsseln oder gemeinsam genutzten privilegierten Konten beruhen.FalseTrueOS assistedTrueHSM2875.1.1.1V2.10.22Prüfen Sie, dass Servicekonten, die zur Anmeldung genutzt werden, keine Standardpasswörter, wie root / root oder admin / admin, die häufig voreingestellt sind, nutzen.FalseTrueOS assistedTrueHSM2555.1.1.1V2.10.33Prüfen Sie, dass Passworthashwerte mit ausreichendem Schutz gespeichert werden, um Offlineangriffe, zu verhindern.FalseTrueOS assistedTrueHSM5225.1.1.1V2.10.44Prüfen Sie, dass Passwörter, Zugänge zu Datenbanken o.a. Systemen, Seeds, interne Geheimnisse sowie API-Schlüssel sicher verwaltet werden. Sie dürfen nicht in den Quellcode aufgenommen bzw. in Quellcoderepositories gespeichert werden. Eine solche Speicherung muss Offline-Angriffen widerstehen. Für die Passwortspeicherung wird die Verwendung eines sicheren Softwareschlüsselspeichers (L1), eines TPM oder eines HSM (L3) empfohlen.FalseTrueOS assistedTrueHSM798V33SessionSessionmanagementV3.11Grundlegende Sicherheit des SessionmanagementsV3.1.11Prüfen Sie, dass die Anwendung niemals Sessiontoken in URL-Parametern oder Fehlermeldungen offenbart.TrueTrueTrue598V3.22Session BindingV3.2.11Prüfen Sie, ob die Anwendung bei der Authentifizierung eines Benutzers ein neues Sessiontoken generiert. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))TrueTrueTrue3847.1V3.2.22Prüfen Sie, dass Sessiontoken mindestens 64 Bit Entropie aufweisen. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))TrueTrueTrue3317.1V3.2.33Prüfen Sie, dass die Anwendung Sessiontoken im Browser nur mit sicheren Methoden wie z.B. gesicherten Cookies (siehe Abschnitt 3.4) oder den HTML 5-Methoden speichert.TrueTrueTrue5397.1V3.2.44Prüfen Sie, dass die Sessiontoken mit anerkannten kryptografischen Algorithmen generiert werden. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))FalseTrueTrue3317.1V3.33Beenden der SessionV3.3.11Prüfen Sie, dass Abmeldung und Ablauf das Sessiontoken ungültig machen, so dass die Zurück-Taste oder eine nachgeschaltete Relying Party eine authentifizierte Sitzung auch nicht zwischen den Relying Parties wiederaufnimmt. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))TrueTrueTrue6137.1V3.3.22Wenn die Benutzer eingeloggt bleiben, Prüfen Sie, dass eine erneute Authentifizierung in regelmäßigen Abständen sowohl bei aktiver Nutzung als auch nach einer Leerlaufphase erfolgt. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))True30 TageTrue12 Stunden oder 30 Minuten Inaktivität, 2FA optionalTrue12 Stunden oder 15 Minuten Inaktivität, mit 2FA6137.2V3.3.33Prüfen Sie, dass es die Anwendung ermöglicht, alle anderen aktiven Sitzungen nach einer erfolgreichen Kennwortänderung zu beenden. Dies muss in der gesamten Anwendung, der föderierten Anmeldung (falls vorhanden) und bei allen Relying Parties wirksam sein.FalseTrueTrue613V3.3.44Prüfen Sie, dass die Benutzer jede oder alle derzeit aktiven Sitzungen und Geräte sehen und sich von ihnen abmelden können.FalseTrueTrue6137.1V3.44Cookiebasiertes Session ManagementV3.4.11Prüfen Sie, dass bei Session-Cookies das Attribut „secure“ gesetzt ist. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))TrueTrueTrue6147.1.1V3.4.22Prüfen Sie, dass bei Session-Cookies das Attribut „HttpOnly“ gesetzt ist. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))TrueTrueTrue10047.1.1V3.4.33Prüfen Sie, dass Session-Cookies das 'SameSite'-Attribut verwenden, um die Anfälligkeit für Cross Site Request Forgery zu begrenzen. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))TrueTrueTrue12757.1.1V3.4.44Prüfen Sie, dass Session-Cookies das Präfix „__Host-“ verwenden (siehe Referenzen), um die Vertraulichkeit von Session-Cookies zu gewährleisten.TrueTrueTrue167.1.1V3.4.55Falls die Anwendung unter einem Domänennamen zusammen mit anderen Anwendungen veröffentlicht wird, die Session-Cookies nutzen, welche die Sitzungscookies der geprüften Anwendung außer Kraft setzen oder offenlegen könnten, prüfen Sie, dass das Pfadattribut in den Cookies einen möglichst exakten Pfad erhält. ([C6](https://owasp.org/www-project-proactive-controls/#div-numbering))TrueTrueTrue167.1.1V3.55Tokenbasiertes SessionmanagementV3.5.11Prüfen Sie, dass die Anwendung Benutzern erlaubt, OAuth-Token, die Vertrauensbeziehungen zu verknüpften Anwendungen herstellen, zurückzuziehen.FalseTrueTrue2907.1.2V3.5.22Prüfen Sie, dass die Anwendung Sessiontoken anstatt statischer API-Schlüssel verwendet, außer bei Legacy-Implementierungen.FalseTrueTrue798V3.5.33Prüfen Sie, dass zustandslose Session-Token digitale Signaturen, Verschlüsselung und andere Gegenmaßnahmen zum Schutz vor Manipulation, Enveloping, Wiedergabe, Null-Chiffren und Schlüsselaustausch-Angriffen verwenden.FalseTrueTrue345V3.66Erneute AuthentisierungV3.6.11Prüfen Sie, dass die Relying Parties gegenüber den CSPs die maximale Authentifizierungszeit angeben, und dass die CSPs den Teilnehmer erneut authentifizieren, wenn sie innerhalb dieses Zeitraums keine Sitzung verwendet haben.FalseFalseTrue6137.2.1V3.6.22Prüfen Sie, dass die CSPs die Relying Parties über das letzte Authentifizierungsereignis informieren, damit die RPs feststellen können, ob sie den Benutzer erneut authentifizieren müssen.FalseFalseTrue6137.2.1V3.77Verteidigung gegen Session Management ExploitsV3.7.11Prüfen Sie, dass die Anwendung eine gültige Login Session gewährleistet oder eine erneute Authentifizierung oder eine sekundäre Verifizierung erfordert, bevor sensible Transaktionen oder Kontenänderungen zugelassen werden.TrueTrueTrue306V44AccessMaßnahmen zur Zugriffssteuerung V4.11Design der Allgemeinen ZugriffssteuerungV4.1.11Prüfen Sie, dass die Anwendung Regeln zur Steuerung der Zugriffe auf einer vertrauenswürdigen Serviceschicht durchsetzt, insbesondere wenn die clientseitige Zugriffssteuerung umgangen werden könnte.TrueTrueTrue602V4.1.22Prüfen Sie, dass alle Benutzer- und Datenattribute sowie Richtlinieninformationen, die von der Zugriffssteuerung verwendet werden, von den Endnutzern nicht manipuliert werden können, es sei denn, dies wird ausdrücklich genehmigt.TrueTrueTrue639V4.1.33Prüfen Sie, dass das Prinzip der minimalen Berechtigung gilt: Benutzer sollten nur auf die unbedingt notwendigen Funktionen, Dateien, URLs, Controller, Dienste und andere Ressourcen zugreifen können. Dies bedeutet Schutz vor Spoofing und Ausweitung der Berechtigungen. ([C7](https://owasp.org/www-project-proactive-controls/#div-numbering))TrueTrueTrue285V4.1.44[GELÖSCHT, DUPLIKAT VON 4.1.3]FalseFalseFalseV4.1.55Prüfen Sie, dass die Zugriffssteuerungsroutinen im Fehlerfall in einen sicheren Zustand fallen. ([C10](https://owasp.org/www-project-proactive-controls/#div-numbering))TrueTrueTrue285V4.22Operative ZugriffssteuerungV4.2.11Prüfen Sie, dass sensible Daten und APIs vor direkten Objektangriffen geschützt sind, die auf das Erstellen, Lesen, Aktualisieren und Löschen von Datensätzen abzielen, z. B. das Erstellen oder Aktualisieren von Datensätzen einer anderen Person, das Anzeigen oder Löschen aller Datensätze.TrueTrueTrue639V4.2.22Prüfen Sie, dass die Anwendung oder das Framework einen starken Anti-CSRF-Mechanismus zum Schutz authentifizierter Funktionen durchsetzt, und dass eine effektive Anti-Automatisierung oder Anti-CSRF nicht authentifizierte Funktionen schützt.TrueTrueTrue352V4.33Weitere Maßnahmen zur ZugriffssteuerungV4.3.11Prüfen Sie, dass administrative Schnittstellen eine geeignete Mehrfaktorauthentifizierung verwenden, um unbefugte Nutzung zu verhindern.TrueTrueTrue419V4.3.22Prüfen Sie, dass das Durchsuchen von Verzeichnissen deaktiviert ist, es sei denn, dies ist absichtlich gewünscht. Ferner ist das Auffinden oder die Offenlegung von Datei- oder Verzeichnis-Metadaten, wie z.B. Thumbs.db, .DS_Store, .git oder .svn-Ordner, nicht zulässig.TrueTrueTrue548V4.3.33Prüfen Sie, dass die Anwendung über zusätzliche Berechtigungen (z. B. Step-Up oder adaptive Authentifizierung) für risikoarme Systeme und / oder Aufgabentrennung für brisante Anwendungen verfügt, um Betrugsbekämpfungsmaßnahmen entsprechend dem Anwendungsrisiko durchzusetzen.FalseTrueTrue732V55ValidationEingabeprüfung, die Bereinigung der Ausgaben und die ZeichencodierungV5.11EingabeprüfungV5.1.11Prüfen Sie, dass die Anwendung über Abwehrmechanismen gegen Angriffe auf HTTP-Parameter verfügt, insbesondere dann, wenn das Anwendungsframework die Quelle der Anforderungsparameter (GET, POST, Cookies, Header oder Umgebungsvariablen) nicht unterscheidet.TrueTrueTrue235V5.1.22Prüfen Sie, dass Frameworks vor Angriffen durch massenhafte Parameterzuweisung schützen, oder dass die Anwendung über Gegenmaßnahmen zum Schutz vor unsicherer Parameterzuweisung verfügt, wie z.B. das Markieren von Feldern als privat oder ähnliches. ([C5](https://owasp.org/www-project-proactive-controls/#div-numbering))TrueTrueTrue915V5.1.33Prüfen Sie, dass alle Eingaben (HTML-Formularfelder, REST-Anforderungen, URL-Parameter, HTTP-Header, Cookies, Batch-Dateien, RSS-Feeds usw.) mittels positiver Validierung (Whitelisting) validiert werden. ([C5](https://owasp.org/www-project-proactive-controls/#div-numbering))TrueTrueTrue20V5.1.44Prüfen Sie, dass strukturierte Daten stark typisiert sind und gemäß einem definierten Schema validiert werden. Dazu gehören die erlaubten Zeichen, Länge und Muster (z. B. Kreditkarten- oder Telefonnummern, oder die Prüfung, dass zwei zusammenhängende Felder stimmig sind, z.B. Ort und Postleitzahl). ([C5](https://owasp.org/www-project-proactive-controls/#div-numbering))TrueTrueTrue20V5.1.55Prüfen Sie, dass URL-Umleitungen und -Weiterleitungen nur Whitelist-Ziele zulassen, oder bei der Weiterleitung auf potenziell nicht vertrauenswürdige Inhalte einen Warnhinweis anzeigen.TrueTrueTrue601V5.22Bereinigung und SandboxingV5.2.11Prüfen Sie, dass alle nicht vertrauenswürdigen HTML-Eingaben von WYSIWYG-Editoren o.ä. ordnungsgemäß mit einer HTML-Bereinigungsbibliothek oder einer Frameworkfunktion bereinigt werden. ([C5](https://owasp.org/www-project-proactive-controls/#div-numbering))TrueTrueTrue116V5.2.22Prüfen Sie, dass unstrukturierte Daten bereinigt werden, um Sicherheitsmaßnahmen wie erlaubte Zeichen und Längenbegrenzung durchzusetzen.TrueTrueTrue138V5.2.33Prüfen Sie, dass die Anwendung zum Schutz vor SMTP- oder IMAP-Injektion Benutzereingaben bereinigt, bevor sie an Mailsysteme weitergeleitet werden.TrueTrueTrue147V5.2.44Prüfen Sie, dass die Anwendung kein eval() oder andere Funktionen zur dynamischen Ausführung von Code verwendet. Wenn es keine Alternative gibt, müssen alle Benutzereingaben, die einbezogen werden, vor der Ausführung des Programms gesäubert oder per Sandbox abgegrenzt werden.TrueTrueTrue95V5.2.55Prüfen Sie, dass die Anwendung vor Template-Injection-Angriffen schützt, indem Sie sicherstellen, dass alle Benutzereingaben, die aufgenommen werden, bereinigt oder per Sandbox abgegrenzt werden.TrueTrueTrue94V5.2.66Prüfen Sie, dass die Anwendung vor SSRF-Angriffen schützt, indem sie nicht vertrauenswürdige Daten oder HTTP-Dateimetadaten, wie z. B. Dateinamen und URL-Eingabefelder, validiert oder bereinigt. Verwenden Sie eine Whitelist von Protokollen, Domänen, Pfaden und Ports.TrueTrueTrue918V5.2.77Prüfen Sie, dass die Anwendung vom Benutzer bereitgestellte Scaleable Vector Graphics (SVG) von skriptfähigen Inhalten bereinigt, deaktiviert oder in Sandboxen abgrenzt, insbesondere in Bezug auf XSS, das aus Inline-Skripten und aus foreignObject resultiert.TrueTrueTrue159V5.2.88Prüfen Sie, dass die Anwendung vom Benutzer zur Verfügung gestellte skriptfähige Inhalte oder Inhalte von Expression Language Templates wie Markdown, CSS- oder XSL-Stylesheets, BBCode oder Ähnliches bereinigt, deaktiviert oder in Sandboxen abgrenzt.TrueTrueTrue94V5.33Ausgabecodierung und InjektionsverhinderungV5.3.11Prüfen Sie, dass die Ausgabecodierung für den Interpreter und den erforderlichen Kontext relevant ist. Verwenden Sie z. B. Codierer gezielt für HTML-Werte, HTML-Attribute, JavaScript, URL-Parameter, HTTP-Header, SMTP und andere, wie es der Kontext erfordert, insbesondere bei nicht vertrauenswürdigen Eingaben (z.B. Namen mit Unicode oder Apostroph, wie z.B. ねこ oder O'Hara). ([C4](https://owasp.org/www-project-proactive-controls/#div-numbering))TrueTrueTrue116V5.3.22Prüfen Sie, dass die Ausgabecodierung den vom Benutzer gewählten Zeichensatz sowie die Spracheinstellung beibehält, so dass jeder Unicode-Zeichenpunkt gültig ist und sicher verarbeitet wird. ([C4](https://owasp.org/www-project-proactive-controls/#div-numbering))TrueTrueTrue176V5.3.33Prüfen Sie, dass kontextabhängiges, vorzugsweise automatisches Output Escaping vor reflektierten, gespeicherten und DOM-basierten XSS schützt. ([C4](https://owasp.org/www-project-proactive-controls/#div-numbering))TrueTrueTrue79V5.3.44Prüfen Sie, dass die Datenauswahl- oder Datenbankabfragen (z.B. SQL, HQL, ORM, NoSQL) parametrisierte Abfragen, ORMs, Entity Frameworks verwenden oder anderweitig vor Datenbank-Injektionsangriffen geschützt sind. ([C3](https://owasp.org/www-project-proactive-controls/#div-numbering))TrueTrueTrue89V5.3.55Prüfen Sie, dass dort, wo keine parametrisierten oder sichereren Mechanismen vorhanden sind, eine kontextspezifische Ausgabecodierung, z. B. SQL-Escaping, zum Schutz vor Injektionsangriffen verwendet wird. ([C3, C4](https://owasp.org/www-project-proactive-controls/#div-numbering))TrueTrueTrue89V5.3.66Prüfen Sie, dass die Anwendung vor Angriffen mittels JSON-Injektion, JSON-eval() und Evaluierung von JavaScript-Ausdrücken schützt. ([C4](https://owasp.org/www-project-proactive-controls/#div-numbering))TrueTrueTrue830V5.3.77Prüfen Sie, dass die Anwendung vor LDAP-Injektionsschwachstellen schützt oder das spezifische Sicherheitsmaßnahmen zur Verhinderung der LDAP-Injektion implementiert wurden. ([C4](https://owasp.org/www-project-proactive-controls/#div-numbering))TrueTrueTrue90V5.3.88Prüfen Sie, dass die Anwendung vor dem Einfügen von Betriebssystemkommandos schützt und dass Betriebssystemaufrufe parametrisierte Abfragen oder eine kontextbezogene Ausgabecodierung der Befehlszeile verwenden. ([C4](https://owasp.org/www-project-proactive-controls/#div-numbering))TrueTrueTrue78V5.3.99Prüfen Sie, dass die Anwendung vor Local File Inclusion (LFI)- oder Remote File Inclusion (RFI)-Angriffen schützt.TrueTrueTrue829V5.3.1010Prüfen Sie, dass die Anwendung gegen XPath Injection- oder XML-Injection-Angriffe schützt. ([C4](https://owasp.org/www-project-proactive-controls/#div-numbering))TrueTrueTrue643V5.44Speicher, Strings und Unmanaged CodeV5.4.11Prüfen Sie, dass die Anwendung speichersichere Zeichenfolgen, sicherere Speicherkopien und sichere Zeigerarithmetik verwendet, um Stapel-, Puffer- oder Heapüberläufe zu erkennen oder zu verhindern.FalseTrueTrue120V5.4.22Prüfen Sie, dass Formatstrings keine potenziell feindliche Eingabe annehmen und konstant sind.FalseTrueTrue134V5.4.33Prüfen Sie, dass Zeichen-, Bereichs- und Eingabeprüfungstechniken verwendet werden, um Ganzzahlüberläufe zu verhindern.FalseTrueTrue190V5.55Prävention von DeserialisierungsangriffenV5.5.11Prüfen Sie, dass serialisierte Objekte Integritätsprüfungen verwenden oder verschlüsselt sind, um die Erstellung feindlicher Objekte oder die Manipulation von Daten zu verhindern. ([C5](https://owasp.org/www-project-proactive-controls/#div-numbering))TrueTrueTrue502V5.5.22Prüfen Sie, dass XML-Parser nur die restriktivste Konfiguration verwenden und das unsichere Funktionen wie die Auflösung externer Entitäten deaktiviert sind, um XXE zu verhindern.TrueTrueTrue611V5.5.33Prüfen Sie, dass die Deserialisierung nicht vertrauenswürdiger Daten sowohl im benutzerdefinierten Code als auch in Bibliotheken von Drittanbietern (wie JSON-, XML- und YAML-Parser) entweder verhindert oder gesichert wird.TrueTrueTrue502V5.5.44Prüfen Sie, dass beim Parsen von JSON in Browsern oder JavaScript-basierten Backends JSON.parse zum Parsen des JSON-Dokuments verwendet wird. Verwenden Sie kein eval() zum Parsen von JSON.TrueTrueTrue95V66Cryptographykryptographische KomponentenV6.11DatenklassifizierungV6.1.11Prüfen Sie, dass sensible personenbezogene Daten, oder Daten, die unter andere gesetzliche Regelungen zur Vertraulichkeit fallen, verschlüsselt gespeichert werden.FalseTrueTrue311V6.1.22Prüfen Sie, dass Gesundheitsdaten, wie z. B. medizinische Aufzeichnungen, Details zu medizinischen Geräten oder deanonymisierte Forschungsaufzeichnungen, verschlüsselt gespeichert werden.FalseTrueTrue311V6.1.33Prüfen Sie, dass Finanzdaten, wie z.B. Konten, Zahlungsausfälle oder Kredithistorie, Steuerunterlagen, Lohnhistorie, Begünstigte oder deanonymisierte Markt- oder Forschungsaufzeichnungen verschlüsselt gespeichert werden.FalseTrueTrue311V6.22AlgorithmenV6.2.11Prüfen Sie, dass alle kryptografischen Module in einen sicheren Fehlerzustand fallen und Fehler so behandelt werden, dass keine Padding-Orakel-Angriffe möglich sind.TrueTrueTrue310V6.2.22Prüfen Sie, dass allgemein anerkannte oder von der Regierung freigegebene kryptografische Algorithmen, Modi und Bibliotheken anstelle von Eigenentwicklungen verwendet werden. ([C8](https://owasp.org/www-project-proactive-controls/#div-numbering))FalseTrueTrue327V6.2.33Prüfen Sie, dass der Initialisierungsvektoren, die Chiffrierkonfiguration und die Blockmodi gemäß den neuesten Empfehlungen sicher konfiguriert werden.FalseTrueTrue326V6.2.44Prüfen Sie, dass Zufallszahlengeneratoren, Verschlüsselungs- oder Hashalgorithmen, Schlüssellängen, Runden, Chiffren oder Modi jederzeit rekonfiguriert, aktualisiert oder ausgetauscht werden können. ([C8](https://owasp.org/www-project-proactive-controls/#div-numbering))FalseTrueTrue326V6.2.55Prüfen Sie, dass unsichere Blockmodi, wie ECB u.a., Padding-Modi, wie PKCS#1 v1.5 u.a., Algorithmen mit kleinen Blockgrößen, wie Triple-DES, Blowfish u.a., sowie schwache Hashalgorithmen, wie MD5, SHA1 u.a., nicht verwendet werden, es sei denn, dies ist aus Gründen der Rückwärtskompatibilität erforderlich.FalseTrueTrue326V6.2.66Prüfen Sie, dass Nonces, Initialisierungsvektoren u. ä. nicht mehr als einmal mit einem bestimmten Verschlüsselungsschlüssel verwendet werden dürfen. Die Methode der Generierung muss für den verwendeten Algorithmus geeignet sein.FalseTrueTrue326V6.2.77Prüfen Sie, dass verschlüsselte Daten mittels Signaturen, authentifizierte Chiffriermodi oder HMAC authentifiziert werden, um sicherzustellen, dass der Chiffriertext nicht von Unbefugten verändert wird.FalseFalseTrue326V6.2.88Prüfen Sie, dass alle kryptografischen Operationen zeitkonstant sind und keine „Kurzschluss“-Operationen bei Vergleichen, Berechnungen oder Rückgaben stattfinden, um Informationslecks zu vermeiden.FalseFalseTrue385V6.33ZufallswerteV6.3.11Prüfen Sie, dass alle Zufallszahlen, zufälligen Dateinamen, zufälligen GUIDs und Zufallszeichenfolgen mit einem anerkannten kryptografisch sicheren Zufallszahlengenerator generiert werden, wenn diese Zufallswerte für einen Angreifer nicht zu erraten sein sollen.FalseTrueTrue338V6.3.22Prüfen Sie, dass zufällige GUIDs mit dem GUID v4-Algorithmus und einem kryptografisch sicheren Zufallszahlengenerator erstellt werden. GUIDs, die mit anderen Zufallszahlengeneratoren erstellt wurden, können vorhersehbar sein.FalseTrueTrue338V6.3.33Prüfen Sie, dass die Zufallszahlen mit der richtigen Entropie erzeugt werden, auch wenn die Anwendung unter starker Belastung steht, oder dass die Anwendung unter solchen Umständen angemessen reagiert.FalseFalseTrue338V6.44Management von Schlüsseln und GeheimnissenV6.4.11Prüfen Sie, dass eine Lösung für das Schlüsselmanagement, wie z.B. ein Schlüsseltresor, verwendet wird, um Geheimnisse sicher zu erstellen, zu speichern, die Nutzung zu kontrollieren und sie zu zerstören. ([C8](https://owasp.org/www-project-proactive-controls/#div-numbering))FalseTrueTrue798V6.4.22Prüfen Sie, dass das Schlüsselmaterial nicht in der Anwendung genutzt wird sondern ein Sicherheitsmodul kryptographische Operationen ausführt. ([C8](https://owasp.org/www-project-proactive-controls/#div-numbering))FalseTrueTrue320V77ErrorFehlerbehandlung und ProtokollierungV7.11ProtokollinhaltV7.1.11Prüfen Sie, dass die Anwendung keine Anmeldeinformationen oder Zahlungsdetails protokolliert. Sessiontoken sollten nur in einer irreversiblen, gehashten Form in Protokollen gespeichert werden. ([C9, C10](https://owasp.org/www-project-proactive-controls/#div-numbering))TrueTrueTrue532V7.1.22Prüfen Sie, dass die Anwendung keine sonstigen sensiblen Daten protokolliert, die z. B. gemäß Datenschutzgesetzen oder den einschlägigen Sicherheitsrichtlinien als solche definiert werden. ([C9](https://owasp.org/www-project-proactive-controls/#div-numbering))TrueTrueTrue532V7.1.33Prüfen Sie, dass die Anwendung sicherheitsrelevante Ereignisse, einschließlich erfolgreicher und fehlgeschlagener Authentifizierungsereignisse, Fehler bei der Zugriffskontrolle, Deserialisierungsfehler und Fehler bei der Eingabeprüfung protokolliert. ([C5, C7](https://owasp.org/www-project-proactive-controls/#div-numbering))FalseTrueTrue778V7.1.44Prüfen Sie, dass jedes Protokollereignis die notwendigen Informationen enthält, um bei einem Vorfall eine detaillierte Untersuchung der Timeline zu ermöglichen. ([C9](https://owasp.org/www-project-proactive-controls/#div-numbering))FalseTrueTrue778V7.22ProtokollbearbeitungV7.2.11Prüfen Sie, dass alle Authentifizierungsentscheidungen protokolliert werden, ohne dass sensible Sitzungstoken oder Passwörter gespeichert werden. Dies sollte auch die relevanten Metadaten umfassen, die für Sicherheitsuntersuchungen benötigt werden.FalseTrueTrue778V7.2.22Prüfen Sie, dass alle Authentifizierungen protokolliert werden können, und dass alle fehlgeschlagenen Versuche protokolliert werden. Dies sollte die relevanten Metadaten umfassen, die für Sicherheitsuntersuchungen benötigt werden.FalseTrueTrue285V7.33Schutz von ProtokollenV7.3.11Prüfen Sie, dass alle Komponenten Daten angemessen codieren, um Log-Injektions-Angriffe zu verhindern. ([C9](https://owasp.org/www-project-proactive-controls/#div-numbering))FalseTrueTrue117V7.3.22[GELÖSCHT, DUPLIKAT VON 7.3.1]FalseFalseFalseV7.3.33Prüfen Sie, dass die Protokolle vor unbefugtem Zugriff und Änderungen geschützt werden. ([C9](https://owasp.org/www-project-proactive-controls/#div-numbering))FalseTrueTrue200V7.3.44Prüfen Sie, dass die Zeitquellen mit der richtigen Zeit und Zeitzone synchronisiert sind. Erwägen Sie ernsthaft die Protokollierung ausschließlich in UTC, wenn die Systeme global sind, damit die forensische Analyse nach dem Vorfall unterstützt wird. ([C9](https://owasp.org/www-project-proactive-controls/#div-numbering))FalseTrueTrueV7.44FehlerbehandlungV7.4.11Prüfen Sie, dass bei Auftreten eines unerwarteten oder sicherheitsrelevanten Fehlers eine generische Meldung angezeigt wird. Ggf. kann die Meldung eine ID enthalten, die dem Supportpersonal die Untersuchung erleichtert. ([C10](https://owasp.org/www-project-proactive-controls/#div-numbering))TrueTrueTrue210V7.4.22Prüfen Sie, dass die Ausnahmebehandlung in der gesamten Codebasis verwendet wird, um erwartete und unerwartete Fehlerbedingungen zu berücksichtigen. ([C10](https://owasp.org/www-project-proactive-controls/#div-numbering))FalseTrueTrue544V7.4.33Prüfen Sie, dass ein Fehlerbehandlungsdienst der letzten Instanz definiert ist, der alle nicht behandelten Ausnahmen abfängt. ([C10](https://owasp.org/www-project-proactive-controls/#div-numbering))FalseTrueTrue431V88DataSchutz von InformationenV8.11AllgemeinesV8.1.11Prüfen Sie, dass die Anwendung sensible Daten davor schützt, in Serverkomponenten wie Loadbalancern, Proxies u.ä. zwischengespeichert zu werden.FalseTrueTrue524V8.1.22Prüfen Sie, dass alle serverseitigen temporären Kopien sensibler Daten vor unbefugtem Zugriff geschützt oder nach dem Zugriff des autorisierten Benutzers auf die sensiblen Daten bereinigt/invalidiert werden.FalseTrueTrue524V8.1.33Prüfen Sie, dass die Anwendung die Anzahl der Parameter in einer Anfrage, wie z.B. versteckte Felder, Ajax-Variablen, Cookies und Header-Werte minimiert.FalseTrueTrue233V8.1.44Prüfen Sie, dass die Anwendung eine abnormale Anzahl von Anfragen, z.B. nach IP, Benutzer, Gesamtzahl pro Stunde oder Tag o. ä., erkennt und Alarm auslöst.FalseTrueTrue770V8.1.55Prüfen Sie, dass wichtige Daten regelmäßig gesichert werden und dass die Wiederherstellung regelmäßig geübt wird.FalseFalseTrue19V8.1.66Prüfen Sie, dass die Backups sicher aufbewahrt werden, um zu verhindern, dass Daten gestohlen oder verfälscht werden.FalseFalseTrue19V8.22Clientseitiger SchutzV8.2.11Prüfen Sie, dass die Anwendung Anti-Caching Header sendet, damit sensible Daten in modernen Browsern nicht zwischengespeichert werden.TrueTrueTrue525V8.2.22Prüfen Sie, dass die im clientseitigen Speicher (z. B. lokaler HTML5-Speicher, Sitzungsspeicher, IndexedDB oder Cookies) gespeicherten Daten keine sensiblen Daten enthalten.TrueTrueTrue922V8.2.33Prüfen Sie, dass authentifizierte Daten aus dem clientseitigem Speicher, z. B. dem Browser-DOM, gelöscht werden, nachdem der Client geschlossen oder die Sitzung beendet wurde.TrueTrueTrue922V8.33Personenbezogene DatenV8.3.11Prüfen Sie, dass sensible Daten im HTTP-Textkörper oder in Headern an den Server gesendet werden, und dass die Query-String-Parameter aller HTTP-Requests keine sensiblen Daten enthalten.TrueTrueTrue319V8.3.22Prüfen Sie, dass die Benutzer ihre Daten bei Bedarf entfernen oder exportieren können.TrueTrueTrue212V8.3.33Prüfen Sie, dass die Benutzer in verständlicher Sprache über die Erfassung und Verwendung der bereitgestellten personenbezogenen Daten informiert werden und dass die Benutzer ihr Einverständnis zur Verwendung dieser Daten gegeben haben, bevor diese verwendet werden.TrueTrueTrue285V8.3.44Prüfen Sie, dass alle von der Anwendung erstellten und verarbeiteten personenbezogenen Daten identifiziert wurden und dass eine Regelung für den Umgang mit diesen Daten vorhanden ist. ([C8](https://owasp.org/www-project-proactive-controls/#div-numbering))TrueTrueTrue200V8.3.55Prüfen Sie, dass bei Zugriff auf personenbezogene Daten geprüft wird - ohne die Daten selbst zu protokollieren - ob die Daten gemäß den einschlägigen Datenschutzrichtlinien erfasst werden oder ob eine Protokollierung des Zugriffs erforderlich ist.FalseTrueTrue532V8.3.66Prüfen Sie, dass die im Speicher enthaltenen Informationen überschrieben werden, sobald sie nicht mehr benötigt werden, um Memory-Dump-Angriffe abzuschwächen.FalseTrueTrue226V8.3.77Prüfen Sie, dass zu verschlüsselnde Informationen mit anerkannten Algorithmen verschlüsselt werden, die sowohl Vertraulichkeit als auch Integrität gewährleisten. ([C8](https://owasp.org/www-project-proactive-controls/#div-numbering))FalseTrueTrue327V8.3.88Prüfen Sie, dass personenbezogene Daten in Bezug auf die Datenspeicherung klassifiziert werden, so dass alte oder veraltete Daten automatisch, nach einem Zeitplan oder je nach Situation gelöscht werden können.FalseTrueTrue285V99CommunicationsKommunikationV9.11Kommunikationssicherheit des ClientsV9.1.11Prüfen Sie, dass der Client stets TLS-Verbindungen verwendet, das nicht auf unsichere oder unverschlüsselte Konfigurationen zurückfallen. ([C8](https://owasp.org/www-project-proactive-controls/#div-numbering))TrueTrueTrue319V9.1.22Prüfen Sie mit aktuellen TLS-Testtools, dass nur starke Algorithmen und Protokolle genutzt werden. Dabei sind die stärksten Algorithmen und neuesten Protokollversionen zu bevorzugen.TrueTrueTrue326V9.1.33Prüfen Sie, dass nur die aktuell empfohlenen Versionen der TLS-Protokolle, also TLS 1.2 und TLS 1.3, genutzt werden. Die neueste Version ist dabei zu bevorzugen.TrueTrueTrue326V9.22Sicherheit der ServerkommunikationV9.2.11Prüfen Sie, dass Verbindungen zum und vom Server vertrauenswürdige TLS-Zertifikate verwenden. Werden intern generierte oder selbstsignierte Zertifikate verwendet, muss der Server so konfiguriert werden, dass er nur bestimmten internen CAs vertraut. Alle anderen müssen abgelehnt werden.FalseTrueTrue295V9.2.22Prüfen Sie, dass eine verschlüsselte Kommunikation wie TLS für alle ein- und ausgehenden Verbindungen, einschließlich für Managementports, Überwachung, Authentifizierung, API- oder Webservicecalls, Datenbank-, Cloud-, serverlose, Mainframe-, externe und Partnerverbindungen verwendet wird. Der Server darf nicht auf unsichere oder unverschlüsselte Protokolle zurückgreifen.FalseTrueTrue319V9.2.33Prüfen Sie, dass alle verschlüsselten Verbindungen zu externen Systemen, die sensible Informationen oder Funktionen beinhalten, authentifiziert sind.FalseTrueTrue287V9.2.44Prüfen Sie, dass eine ordnungsgemäßer Zertifikatssperre wie z. B. das Online Certificate Status Protocol Stapling aktiviert und konfiguriert ist.FalseTrueTrue299V9.2.55Prüfen Sie, dass TLS-Verbindungsfehler in das Backend protokolliert werden.FalseFalseTrue544V1010MaliciousBösartiger CodeV10.11Kontrollen der Code-IntegritätV10.1.11Prüfen Sie, dass ein Codeanalyse-Tool verwendet wird, das potenziell bösartigen Code, wie Zeitfunktionen, unsichere Dateioperationen und Netzwerkverbindungen erkennen kann.FalseFalseTrue749V10.22Suche nach bösartigem CodeV10.2.11Prüfen Sie, dass der Quellcode der Anwendung und die Bibliotheken von Drittanbietern keine Möglichkeiten zum Phone Home oder zur Datenerfassung enthalten. Wenn solche Funktionen vorhanden sind, holen Sie die Erlaubnis des Benutzers ein, bevor Daten gesammelt werden.FalseTrueTrue359V10.2.22Prüfen Sie, dass die Anwendung keine unnötigen oder übermäßigen Genehmigungen für datenschutzrelevante Funktionen oder Sensoren wie Kontakte, Kameras, Mikrofone oder Standorte verlangt.FalseTrueTrue272V10.2.33Prüfen Sie, dass der Quellcode der Anwendung und die Bibliotheken von Drittanbietern keine Hintertüren enthalten, wie z. B. hartcodierte oder zusätzliche undokumentierte Konten oder Schlüssel, Codeverschleierung, undokumentierte Binärblobs, Rootkits oder Anti-Debugging, unsichere Debuggingfunktionen oder andere veraltete, unsichere oder versteckte Funktionen, die bei Entdeckung böswillig verwendet werden könnten.FalseFalseTrue507V10.2.44Prüfen Sie, dass der Quellcode der Anwendung und die Bibliotheken von Drittanbietern keine Zeitbomben enthalten, wenn sie nach datums- und zeitbezogenen Funktionen suchen.FalseFalseTrue511V10.2.55Prüfen Sie, dass der Quellcode der Anwendung und die Bibliotheken von Drittanbietern keinen bösartigen Code wie Salamitaktik-Angriffe, logische Umgehungen oder Logikbomben enthalten.FalseFalseTrue511V10.2.66Prüfen Sie, dass der Quellcode der Anwendung und die Bibliotheken von Drittanbietern keine Ostereier oder andere unerwünschte Funktionen enthalten.FalseFalseTrue507V10.33Integrität der AnwendungV10.3.11Prüfen Sie, dass Updates über sichere Kanäle bezogen und digital signiert werden müssen, wenn die Anwendung über eine automatische Client- oder Server Updatefunktion verfügt. Die digitale Signatur des Updates muss validiert werden, bevor das Update installiert wird.TrueTrueTrue16V10.3.22Prüfen Sie, dass die Anwendung einen Integritätsschutz, wie Code Signing oder Subresource Integrity verwendet. Die Anwendung darf keinen Code aus nicht vertrauenswürdigen Quellen laden oder ausführen, wie z. B. das Laden von Includes, Modulen, Plugins, Codes oder Bibliotheken aus nicht vertrauenswürdigen Quellen oder dem Internet.TrueTrueTrue353V10.3.33Prüfen Sie, ob die Anwendung Schutz vor der Übernahme von Subdomänen bietet, wenn die Anwendung auf DNS-Einträge oder DNS-Subdomänen angewiesen ist, z. B. abgelaufene Domänennamen, veraltete DNS-Pointer oder CNAMEs, abgelaufene Projekte in öffentlichen Quellcoderepositories oder vorübergehende Cloud-APIs, serverlose Funktionen oder Storage Buckets (autogen-bucket-id.cloud.example.com) oder Ähnliches. Die von den Anwendungen verwendeten DNS-Namen sind regelmäßig auf Ablauf oder Änderung zu überprüfen.TrueTrueTrue350V1111BusLogicFachliche FunktionalitätV11.11Sicherheit der fachlichen FunktionenV11.1.11Prüfen Sie, dass die Anwendung nur Geschäftslogikflüsse für denselben Benutzer in sequentieller Schrittfolge und ohne das Überspringen von Schritten verarbeitet.TrueTrueTrue841V11.1.22Prüfen Sie, dass die Anwendung nur Abläufe der Geschäftslogik verarbeitet, wenn alle Schritte in realistischer menschlicher Zeit bearbeitet werden, d.h. die Transaktionen werden nicht zu schnell durch automatisierte Angreifer eingereicht.TrueTrueTrue799V11.1.33Prüfen Sie, dass die Anwendung über angemessene Grenzen für bestimmte Geschäftsaktionen oder Transaktionen verfügt, die für jeden Benutzer korrekt durchgesetzt werden.TrueTrueTrue770V11.1.44Prüfen Sie, dass die Anwendung über ausreichende Maßnahmen gegen automatische Nutzung verfügt, um Datenausleitung, übermäßige Anforderungen an die Geschäftslogik, übermäßige Dateiuploads oder DoS-Angriffe zu erkennen und sich dagegen zu schützen.TrueTrueTrue770V11.1.55Prüfen Sie, ob die Anwendung Grenzen der Geschäftslogik oder eine Validierung zum Schutz vor wahrscheinlichen Geschäftsrisiken oder Bedrohungen aufweist, die mit Hilfe von Threat Modeling oder ähnlichen Methoden ermittelt wurden.TrueTrueTrue841V11.1.66Prüfen Sie, dass die Anwendung nicht unter TOCTOU oder anderen Raceconditions für sensible Operationen leidet.FalseTrueTrue367V11.1.77Prüfen Sie die Anwendungsmonitore auf ungewöhnliche Ereignisse oder Aktivitäten aus der Sicht der Geschäftslogik. Zum Beispiel auf Versuche, Aktionen durchzuführen, die außerhalb der Reihe sind, oder Aktionen, die ein normaler Benutzer niemals versuchen würde. ([C9](https://owasp.org/www-project-proactive-controls/#div-numbering))FalseTrueTrue754V11.1.88Prüfen Sie, dass die Anwendung über konfigurierbare Web Warnmeldungen verfügt, wenn automatisierte Angriffe oder ungewöhnliche Aktivitäten entdeckt werden.FalseTrueTrue390V1212FilesDateien und andere RessourcenV12.11DateiuploadV12.1.11Prüfen Sie, dass die Anwendung keine großen Dateien akzeptiert, die den Speicher füllen oder einen DoS-Angriff verursachen könnten.TrueTrueTrue400V12.1.22Prüfen Sie, dass die Anwendung gepackte Formate, wie z.B. zip, gz, docx oder odt vor dem Entpacken auf die maximal zulässige Filegröße und die maximale Anzahl Dateien überprüft.FalseTrueTrue409V12.1.33Prüfen Sie, dass die Dateigröße und die maximale Anzahl von Dateien pro Benutzer limitiert wird, um sicherzustellen, dass ein einzelner Benutzer den Speicher nicht mit zu vielen oder übermäßig großen Dateien füllen kann.FalseTrueTrue770V12.22DateiintegritätV12.2.11Prüfen Sie, dass Dateien aus nicht vertrauenswürdigen Quellen sowohl auf der Grundlage des Dateiinhalts als auch des erwarteten Typs validiert werden.FalseTrueTrue434V12.33Ausführbare DateienV12.3.11Prüfen Sie, dass die vom Benutzer eingereichten Metadaten der Dateinamen nicht direkt vom Filesystem des Betriebssystems oder des Frameworks genutzt werden. Weiterhin ist eine URL-API zu verwenden, um vor Path Traversal zu schützen.TrueTrueTrue22V12.3.22Prüfen Sie, dass die vom Benutzer eingereichten Metadaten der Dateinamen validiert oder ignoriert werden, um die Offenlegung, Erstellung, Aktualisierung oder Entfernung lokaler Dateien zu verhindern.TrueTrueTrue73V12.3.33Prüfen Sie, dass die vom Benutzer eingereichten Metadaten der Dateinamen validiert oder ignoriert werden, um die Offenlegung oder Ausführung von serverseitigen Dateien via Remote File Inclusion (RFI) oder Serverside Request Forgery (SSRF) Angriffen zu verhindern.TrueTrueTrue98V12.3.44Prüfen Sie, dass die Anwendung vor Reflective File Download (RFD) schützt, indem sie die vom Benutzer eingereichten Dateinamen in einem JSON-, JSONP- oder URL-Parameter validiert oder ignoriert. Der Content-Type Header der Antwort muss auf text/plain gesetzt werden, und der Content-Disposition Header muss einen festen Dateinamen haben.TrueTrueTrue641V12.3.55Prüfen Sie, dass nicht vertrauenswürdige Dateimetadaten nicht direkt mit der System-API oder Bibliotheken verwendet werden, um vor OS Command Injection zu schützen.TrueTrueTrue78V12.3.66Prüfen Sie, dass die Anwendung keine Funktionen aus nicht vertrauenswürdigen Quellen, wie z. B. nicht verifizierte Inhaltsverteilungsnetzwerke, JavaScript-Bibliotheken, node npm-Bibliotheken oder serverseitige DLLs, enthält und ausführt.FalseTrueTrue829V12.44Speicherung von DateienV12.4.11Prüfen Sie, dass Dateien aus nicht vertrauenswürdigen Quellen mit eingeschränkten Berechtigungen und vorzugsweise mit starker Validierung außerhalb des Webroots gespeichert werden.TrueTrueTrue552V12.4.22Prüfen Sie, dass Dateien aus nicht vertrauenswürdigen Quellen von Antivirenscannern gescannt werden, um das Hochladen bekannter bösartiger Inhalte zu verhindern.TrueTrueTrue509V12.55Download von DateienV12.5.11Prüfen Sie, dass die Webschicht so konfiguriert ist, dass nur Dateien mit bestimmten Dateierweiterungen bedient werden, um unbeabsichtigte Informations- und Quellcodelecks zu vermeiden. Beispielsweise sollten Sicherungsdateien (z.B. .bak), temporäre Arbeitsdateien (z.B. .swp), komprimierte Dateien (.zip, .tar, .gz, usw.) und andere von den Editoren üblicherweise verwendete Erweiterungen blockiert werden, sofern sie nicht erforderlich sind.TrueTrueTrue552V12.5.22Prüfen Sie, dass direkte Anfragen an hochgeladene Dateien niemals als HTML/JavaScript-Inhalt ausgeführt werden.TrueTrueTrue434V12.66SSRF-SchutzV12.6.11Prüfen Sie, dass der Web- oder Anwendungsserver mit einer Whitelist von Ressourcen oder Systemen konfiguriert ist, an die der Server Anfragen senden oder Daten/Dateien laden kann.TrueTrueTrue918V1313APIAPI and Web ServiceV13.11Allgemeine Sicherheit von Web Services V13.1.11Prüfen Sie, dass alle Komponenten die gleichen Parser und (Zeichen-)Codierungen nutzen, um Angriffe auf Basis unterschiedlichen URI- oder File-Parsings, wie SSRF oder RFI, zu verhindern.TrueTrueTrue116V13.1.22[GELÖSCHT, DUPLIKAT VON 4.3.1]FalseFalseFalseV13.1.33Prüfen Sie, dass API-URLs keine sensiblen Informationen wie den API-Schlüssel, Sessiontoken, etc. preisgeben.TrueTrueTrue598V13.1.44Prüfen Sie, dass Berechtigungsentscheidungen sowohl an der URI, umgesetzt durch programmatische oder deklarative Sicherheit am Controller oder Router, als auch auf der Ressourcenebene, umgesetzt durch modellbasierte Berechtigungen, getroffen werden.FalseTrueTrue285V13.1.55Prüfen Sie, dass Anfragen mit unerwarteten oder fehlenden Inhaltstypen mit entsprechenden Headern zurückgewiesen werden (HTTP-Antwortstatus 406 oder 415).FalseTrueTrue434V13.22RESTful Web ServicesV13.2.11Prüfen Sie, dass aktivierte RESTful-HTTP-Methoden eine gültige Wahl für den Benutzer oder eine Aktion sind, wie z.B. verhindern, dass normale Benutzer DELETE oder PUT auf geschützte API oder Ressourcen anwenden.TrueTrueTrue650V13.2.22Prüfen Sie, dass die JSON-Schemavalidierung vorhanden und verifiziert ist, bevor Sie eine Eingabe akzeptieren.TrueTrueTrue20V13.2.33Prüfen Sie, dass RESTful-Webdienste, die Cookies verwenden, durch die Verwendung von mindestens einem oder mehrerer der folgenden Verfahren vor Cross Site Request Forgery geschützt sind: Double Submit Cookie Pattern, CSRF-Nonces oder Prüfungen des Origin-Request Headers.TrueTrueTrue352V13.2.44[GELÖSCHT, DUPLIKAT VON 11.1.4]FalseFalseFalseV13.2.55Prüfen Sie, dass die REST-Dienste explizit prüfen, ob der eingehende Contenttyp der erwartete ist, z.B. application/xml oder application/json.FalseTrueTrue436V13.2.66Prüfen Sie, dass die Message Header und die Nutzdaten vertrauenswürdig sind und während der Übertragung nicht verändert werden. Die Anforderung einer starken Verschlüsselung für den Transport (nur TLS) kann in vielen Fällen ausreichend sein, da sie sowohl die Vertraulichkeit als auch den Schutz der Integrität gewährleistet. Digitale Signaturen pro Nachricht können bei Hochsicherheitsanwendungen für zusätzliche Sicherheit beim Transportschutz sorgen, bringen aber zusätzliche Komplexität und Risiken mit sich, die gegen die Vorteile abzuwägen sind.FalseTrueTrue345V13.33SOAP Web ServiceV13.3.11Prüfen Sie, dass vor der Verarbeitung von Eingabedaten zuerst eine XSD-Schemavalidierung stattfindet, um ein korrekt geformtes XML-Dokument zu gewährleisten, gefolgt von der Validierung jedes Eingabefeldes.TrueTrueTrue20V13.3.22Prüfen Sie, dass die Nutzdaten der Nachricht mit WS-Security signiert sind, um einen zuverlässigen Transport zwischen Client und Service zu gewährleisten.FalseTrueTrue345V13.44GraphQLV13.4.11Prüfen Sie, dass eine Query Whitelist oder eine Kombination von Begrenzung der Tiefe und Anzahl verwendet werden sollte, um einen DoS-Angriff von GraphQL oder Datenschichtausdrücken als Folge teurer, verschachtelter Abfragen zu verhindern. Für fortgeschrittenere Szenarien sollte die Abfragekostenanalyse verwendet werden.FalseTrueTrue770V13.4.22Prüfen Sie, dass die Berechtigungen für die Datenschicht, z.B. GraphQL, in der Geschäftslogikschicht anstelle der Datenschicht umgesetzt ist.FalseTrueTrue285V1414ConfigKonfigurationV14.11Build- und DeployprozessV14.1.11Prüfen Sie, dass die Build- und Deploymentprozesse auf sichere und wiederholbare Weise durchgeführt werden, z. B. durch CI-/CD-Automatisierung, automatisiertes Konfigurationsmanagement und automatisierte Deploymentskripte.FalseTrueTrueV14.1.22Prüfen Sie, dass die Compilerflags so konfiguriert sind, dass sie alle verfügbaren Pufferüberlaufschutzmechanismen und Warnungen aktivieren, einschließlich der Stackrandomisierung, der Verhinderung der Datenausführung und des Buildabbruchs, wenn ein(e) unsichere(r) Pointer, Speicher, Formatstring, Integer- oder Stringoperationen gefunden wird.FalseTrueTrue120V14.1.33Prüfen Sie, dass die Serverkonfiguration gemäß den Empfehlungen des verwendeten Anwendungsservers und Frameworks gehärtet wird.FalseTrueTrue16V14.1.44Prüfen Sie, dass die Anwendung, die Konfiguration und alle Abhängigkeiten mit Hilfe automatisierter Deploymentskripte wieder installiert werden können, indem sie innerhalb eines angemessenen Zeitraums aus einem dokumentierten und getesteten Runbook erstellt oder aus Backups zeitnah wiederhergestellt werden können.FalseTrueTrueV14.1.55Prüfen Sie, dass autorisierte Administratoren die Integrität aller sicherheitsrelevanten Konfigurationen überprüfen können, um Manipulationen zu erkennen.FalseFalseTrueV14.22Management von AbhängigkeitenV14.2.11Prüfen Sie, dass alle Komponenten auf dem neuesten Stand sind, am besten mit einem Abhängigkeitsprüfer zur Build- oder Kompilierzeit. ([C2](https://owasp.org/www-project-proactive-controls/#div-numbering))TrueTrueTrue1026V14.2.22Prüfen Sie, dass alle nicht benötigten Funktionen, Dokumentationen, Beispiele und Konfigurationen entfernt werden.TrueTrueTrue1002V14.2.33Prüfen Sie, dass die Integrität externen Inhaltes durch Subresource Integrity (SRI) überprüft wird, wenn Anwendungsassets wie JavaScript-Bibliotheken, CSS oder Web-Fonts extern, z.B. bei einem Content Delivery Network oder bei einem externen Anbieter, gehostet werden.TrueTrueTrue829V14.2.44Prüfen Sie, dass Komponenten Dritter aus bekannten, vertrauenswürdigen und kontinuierlich gepflegten Repositories stammen. ([C2](https://owasp.org/www-project-proactive-controls/#div-numbering))FalseTrueTrue829V14.2.55Prüfen Sie, dass eine Softwarestückliste (Bill of Materials, SBOM) aller genutzten Bibliotheken von Drittanbietern geführt wird. ([C2](https://owasp.org/www-project-proactive-controls/#div-numbering))FalseTrueTrueV14.2.66Prüfen Sie, dass die Angriffsfläche durch Sandboxing oder Einkapselung von Bibliotheken von Drittanbietern reduziert wird, damit die Anwendung nur die erforderliche Funktionalität erhält. ([C2](https://owasp.org/www-project-proactive-controls/#div-numbering))FalseTrueTrue265V14.33Offenlegung von InformationenV14.3.11[GELÖSCHT, DUPLIKAT VON 7.4.1]FalseFalseFalseV14.3.22Prüfen Sie, dass die Debugmodi von Web- und Anwendungsserver sowie Anwendungsframework in der Produktion deaktiviert sind, um Sicherheitslücken durch Debugfunktionen oder Entwicklerkonsolen zu vermeiden.TrueTrueTrue497V14.3.33Prüfen Sie, dass die HTTP-Header und HTTP-Antworten keine detaillierten Versionsinformationen von Systemkomponenten enthalten.TrueTrueTrue200V14.44HTTP Security HeaderV14.4.11Prüfen Sie, dass jede HTTP-Antwort einen Content Type Header enthält. Für die Content types text/*, /+xml oder application/xml sollten ein sicherer Zeichensatz (z. B. UTF-8, ISO 8859-1) angeben sein. Der Inhalt muss zum angegebenen Content Type Header passen.TrueTrueTrue173V14.4.22Prüfen Sie, dass alle API-Antworten die Content-Disposition: attachment; filename=„api.json“ Header oder einen anderen geeigneten Dateinamen für den Inhaltstyp enthalten.TrueTrueTrue116V14.4.33Prüfen Sie, dass ein Content Security Policy (CSP) Response Header vorhanden ist, die dazu beiträgt, die Auswirkungen von XSS-Angriffen wie HTML-, DOM-, JSON- und JavaScript-Injektionsschwachstellen abzuschwächen.TrueTrueTrue1021V14.4.44Prüfen Sie, dass alle Antworten X-Content-Type-Optionen: nosniff Header enthalten.TrueTrueTrue116V14.4.55Prüfen Sie, dass ein HTTP Strict-Transport-Security Header in allen Antworten und für alle Unterdomänen enthalten ist, z. B. Strict-Transport-Security: max-age=15724800; includeSubdomains.TrueTrueTrue523V14.4.66Prüfen Sie, dass ein geeigneter Referrer-Policy Header enthalten ist, um das Veröffentlichen sensibler Informationen über den Referer Header zu vermeiden.TrueTrueTrue116V14.4.77Prüfen Sie, dass der Inhalt einer Webanwendung nicht standardmäßig in Seiten Dritter eingebunden werden kann. Das Einbinden der exakten Ressourcen ist nur erlaubt, wenn nötig. Dabei sind passende Content-Security-Policy: frame-ancestors und X-Frame-Options Response Header zu nutzen.TrueTrueTrue1021V14.55Prüfung der HTTP Request HeaderV14.5.11Prüfen Sie, dass der Anwendungsserver nur die von der Anwendung oder der API verwendeten HTTP-Methoden akzeptiert, einschließlich der Pre-Flight-OPTIONS. Alle ungültigen Request sollten ins Log geschrieben werden oder einen Alarm auslösen.TrueTrueTrue749V14.5.22Prüfen Sie, dass der bereitgestellte Origin Header nicht für Authentifizierungs- oder Zugriffskontrollentscheidungen verwendet wird, da der Origin Header von einem Angreifer leicht geändert werden kann.TrueTrueTrue346V14.5.33Prüfen Sie, dass der CORS-Access-Control-Allow-Origin Header eine strikte Whitelist mit vertrauenswürdigen Domains verwendet und den „Null“-Ursprung nicht unterstützt.TrueTrueTrue346V14.5.44Prüfen Sie, dass HTTP-Header, die von einem vertrauenswürdigen Proxy oder SSO-Geräten, wie z. B. einem Bearer-Token, hinzugefügt wurden, von der Anwendung authentifiziert werden.FalseTrueTrue306