Abdeckung
Was yof abdeckt und was nicht
Klasse für Klasse: wonach yof in deinem Code sucht, was der „Automatisierter Testlauf“ an einer laufenden App testet und was keines von beiden tut.
So liest du die Tabelle
- Im Code: Muster, nach denen die Regeln in den Dateien eines verknüpften Repositorys suchen. Eine Regel findet ein Muster und führt den Code nicht aus, deshalb müssen die meisten dieser Funde bestätigt werden.
- Live: Tests an einer laufenden App. Der „Automatisierter Testlauf“ ist in Entwicklung und nicht im Verkauf, also ist nichts mit dieser Markierung schon für Kunden verfügbar.
- Nicht abgedeckt: was keines von beiden tut. Ein Bericht liest sich nie so, als wäre das geprüft worden.
| Klasse | Im Code | Live | Nicht abgedeckt |
|---|---|---|---|
| SQL-Injection |
|
| Eingaben, die durch eine andere Funktion oder Datei laufen, gespeicherte Injection (zweiter Ordnung) und Fehler in einem ORM. |
| NoSQL-Injection |
|
| Abfragesprachen anderer Dokumentdatenbanken und andere Sprachen als JavaScript und TypeScript. |
| Command-Injection |
|
| Argumente, die in ein ohne Shell aufgerufenes Programm eingeschleust werden, und andere Sprachen. |
| Template-Injection |
|
| Templates, die aus einer Datenbank gelesen werden, und Template-Engines, die im Browser laufen. |
| Code-Auswertung |
| Kein Live-Test | Auswertung über ein Sandbox-Objekt und andere Sprachen. |
| Cross-Site-Scripting |
|
| Trust-Bypässe von Angular und Vue, Autoescape-Einstellungen von Server-Templates, gespeicherte Skripte und ein Nachweis in einem echten Browser. |
| Offene Weiterleitung |
|
| Listen erlaubter Adressen, die es gibt und die sich umgehen lassen. |
| Server-Side Request Forgery |
|
| DNS-Rebinding, Weiterleitungen, die nach innen führen, und die Erreichbarkeit von Cloud-Metadaten. |
| Cross-Site Request Forgery |
|
| Andere Frameworks als Apps im Express-Stil, eine Prüfung durch einen Proxy und ob die Standardeinstellungen des Browsers die Route schützen. |
| Riskantes Laden von Objekten |
|
| Java ObjectInputStream, .NET BinaryFormatter und externe XML-Entitäten. |
| Schwache Kryptografie |
|
| Schlüssellängen, Protokollversionen und Zertifikate des laufenden Dienstes, eigene Kryptografie und Seitenkanäle. |
| Passwörter in Code und Konfiguration |
| Kein Live-Test | Die Git-Historie gelöschter Dateien, ob ein gefundenes Passwort noch funktioniert, und ein einzelnes einfaches Wort ohne Ziffer und Symbol. |
| Datei-Uploads |
|
| Was der Speicherdienst oder das CDN mit der Datei macht, Schadsoftware im Upload und Größenlimits. |
| Dockerfile |
| Kein Live-Test | Gebaute Images und die Betriebssystempakete darin werden nicht gescannt. Das Support-Ende ist nur für sechs offizielle Basis-Images bekannt. |
| docker-compose |
| Kein Live-Test | Die laufenden Container und env-Dateien, die nicht im Repository liegen. |
| Kubernetes-Manifeste |
| Kein Live-Test | Der laufende Cluster, nicht gerenderte Helm-Templates, RBAC, Netzwerk- und Admission-Richtlinien und Dateien mit YAML-Ankern. |
| Terraform |
| Kein Live-Test | Das Cloud-Konto selbst: Was bereitgestellt ist, kann von den Dateien abweichen. Werte aus Variablen, Modulen oder Funktionen, andere Anbieter und andere Ressourcentypen. |
Außerhalb jeder Zeile
- Gebaute Container-Images und die Betriebssystem-Pakete darin werden nicht gescannt.
- Diese Regeln lesen Dateien. Das laufende System sehen sie nicht an: den Cluster, das Cloud-Konto oder das Verhalten der laufenden App.
- Anfragedaten werden nur innerhalb einer Funktion oder eines Handlers verfolgt. Ein Wert, der zuerst durch eine andere Funktion oder Datei geht, wird nicht verfolgt.
- Sprachen: Die Syntaxregeln lesen JavaScript und TypeScript. Für Python gibt es die einfachen, exakten Formen. Für PHP, Ruby, Go, Java, Kotlin und C# gibt es einige einzeilige Formen. Andere Sprachen lesen diese Regeln nicht.
Von automatischen Prüfungen nie abgedeckt
- Fehler in der Geschäftslogik, etwa ein Preis oder ein Schritt, den jemand überspringen kann.
- Schwachstellen, die noch niemand kennt (Zero-Days).
- Menschen und Abläufe: Phishing, von Hand geteilte Passwörter, wer Zugriff hat.
- Alles außerhalb des in diesem Bericht genannten Umfangs und jede Änderung nach seinem Datum.
Dies ist kein Penetrationstest.