Einleitung — Suche nach Sicherheitsnachweisen und OSINT
Öffentlich zugängliche SafeBase-Portale bedienen gleichzeitig zwei Zielgruppen:
- Interessenten, die einen Nachweis Ihrer Sicherheitslage benötigen
- Sicherheitsforscher (Blue und Red Teamer)
Jedes grüne Häkchen offenbart eine Maßnahme, die (vermeintlich) heute existiert; jedes fehlende Häkchen ist ein ebenso deutlicher Hinweis auf das, was nicht vorhanden ist.
Was diese Erkennungsmethode leistet
Der in diesem Beitrag beschriebene Ansatz:
- Extrahiert jeden Kontroll-Titel direkt aus dem HTML-Body mithilfe von Nuclei im Headless-Modus
- Normalisiert diese Titel über ein einziges Regex-basiertes Template zu maschinenlesbaren Befunden
- Gibt JSON/CLI-Treffer interner Sicherheitsmaßnahmen aus
Warum diese Daten erheben?
Compliance-Frameworks wie:
- ISO 27001
- SOC 2
- PCI-DSS
- Regionale Datenschutzbestimmungen
…verlangen Nachweise, dass Sicherheitsmaßnahmen vorhanden und wirksam sind.
SafeBase vereinfacht dies, indem es den Bedarf an endlosen E-Mail-Wechseln und Dokumentenanforderungen beseitigt.
Warum das eigene Trust Centre scrapen?
Auch wenn Sie es selbst aufgebaut haben, gibt es triftige Gründe:
Kontinuierliche Sicherstellung
Prüfer erwarten zunehmend fortlaufende Nachweise in EchtzeitÄnderungserkennung
Kontrollnamen, Gruppierungen oder Richtlinien können sich nach Updates oder Übernahmen ändernDrittanbieter-Mappings
Die JSON-Ausgabe erlaubt die Zuordnung zu Frameworks wie NIST 800-53
Mehrwert für Blue Team vs. Red Team
| Team | Nutzen |
|---|---|
| Blue Team | Stellt sicher, dass öffentliche Aussagen korrekt bleiben |
| Red Team | Identifiziert Lücken durch Vergleich mit internen Kontrollbibliotheken |
Erkennung
Manuelle Prüfung funktioniert, skaliert aber nicht.
Stattdessen verwendet dieser Ansatz ProjectDiscovery / Nuclei, ein schnelles Scan-Tool auf Basis von YAML-Templates.
Warum Nuclei?
- Template-gesteuerte Erkennung
- Hochgeschwindigkeits-Scanning
- Einfach anpassbar
- Ideal für großangelegte Automatisierung
Matchers
Das Template enthält 70 Matchers.
Beispiele für Regex-Matchers
- type: regex
name: firewall
regex: ['(?i)Firewall(?:[\s\S]{0,600}?data-testid="enabled")?']
- type: regex
name: incident-response-policy
regex: ['(?i)Incident\s+Response\s+Policy(?:[\s\S]{0,600}?data-testid="enabled")?']
Verwendete Regex-Techniken
| Problem | Lösung |
|---|---|
| Unterschiedliche Groß-/Kleinschreibung | Flag (?i) |
| Gemischte Leer-/Zeilenumbrüche | \s+ |
| Unbekannter Abstand zwischen Titel und Icon | [\s\S]{0,600}? |
Eliminierung von False Positives
Ein DSL-Matcher erhöht die Genauigkeit:
- type: dsl
name: names
dsl:
- 'status_code == 200'
- 'contains_any(body, "Powered by SafeBase")'
condition: and
Was geprüft wird
Beide Bedingungen müssen wahr sein:
- Antwort-Statuscode ist 200
- HTML enthält "Powered by SafeBase"
Umgehung der Cloudflare WAF
Die meisten SafeBase-Portale befinden sich hinter der Cloudflare WAF, die Scraping-Versuche blockiert.
Lösung: Headless-Modus
Über Nucleis Headless-Chromium-Ausführung:
- Löst JavaScript-Challenges
- Umgeht Cloudflare Managed Challenge
- Rendert dynamische Inhalte
Headless-Konfiguration
headless:
- steps:
- action: navigate
args:
url: "{{BaseURL}}"
- action: sleep
args:
duration: 1s
Erläuterung
navigate
Startet Chromium und lädt die Ziel-URLsleep (1s)
Ermöglicht:- JavaScript-Ausführung
- Cookie-Setzen
- Vollständiges Seiten-Rendering
Verzögerung erhöhen, wenn das HTML unvollständig erscheint.
Fehlerbehebung
Falls Ergebnisse fehlen:
- Ihre IP könnte blockiert sein
- Gegebenenfalls einen Proxy verwenden
Scanning im großen Maßstab
1. Zielliste erstellen
# domains.txt
https://trust.gitlab.com
https://security.projectdiscovery.io
https://trust.your-vendor-here.com
Sie können auch einbeziehen:
- Subdomains
- Gecrawlte Endpunkte
2. Nuclei mit Parallelität ausführen
nuclei \
-t safebase-checks-enabled.yaml \
-headless \
-l matches.txt \
-c 50 \
-o safebase-scan.json
Wichtige Flags
| Flag | Zweck |
|---|---|
-l |
Eingabedatei |
-c 50 |
Parallele Browser (ressourcenintensiv) |
-o |
Ausgabedatei |
Ausgabeoptionen
- JSON
- CSV
- Stdout
Ergebnisse können weitergeleitet werden an:
- S3
- Slack
- SIEM
Template-Repository
https://github.com/rxerium/internal-security-detect
3. Automatisierung über CI/CD
GitHub Actions Beispiel
jobs:
safebase-scan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
- run: |
nuclei -t safebase-checks-enabled.yaml -headless -l domains.txt -c 50 -o results.json
- name: Upload artefact
uses: actions/upload-artifact@v4
with:
name: safebase-results
path: results.json
Abschließende Gedanken
Diese Technik ist auf Organisationen beschränkt, die SafeBase verwenden, zeigt jedoch ein wirkungsvolles Konzept:
Passives OSINT kann sich mit Compliance, Sicherheitsnachweis und Erkennung überschneiden.
Durch die Nutzung öffentlich zugänglicher Trust-Portale können Forscher:
- Kontroll-Frameworks analysieren
- Sicherheitsaussagen validieren
- Änderungen automatisch erkennen
…alles ohne Authentifizierung oder direkten Systemzugriff.