
Werkzeug zur Erkennung der externen und internen Netzwerkangriffsfläche
ASF zielt darauf ab, Organisationen als Überwachungsinstanz für die Angriffsfläche zu schützen. Mit einem „Objekt“, das eine Domäne, IP-Adresse oder CIDR (intern oder extern) sein kann, entdeckt ASF Assets/Subdomains, zählt deren Ports und Dienste auf, verfolgt Änderungen und dient als kontinuierliches und flexibles Angriffs- und Alarmierungs-Framework, das eine zusätzliche Unterstützungsebene gegen 0-Day-Schwachstellen mit öffentlich verfügbaren Proof-of-Concepts bietet.
Der Mangel an Unterstützung und Flexibilität, um die Entdeckung dynamischer Assets und ihrer zugehörigen Schwachstellen durch kontinuierliches Scannen oder Ausnutzen in einer einzigen Ansicht zu automatisieren, war die treibende Kraft für die Entwicklung von ASF. Die derzeitigen Lösungen sind durch die Technologie oder das Programm, für das sie entwickelt wurden, eingeschränkt. Wir wollten eine Lösung, die skalierbar ist und gleichzeitig beliebte Open-Source-Sicherheitstools zur Bewältigung des gesamten Schwachstellen-Lebenszyklus nutzt.
ASF ist eine besondere Art von Open-Source-Projekten, die ein leistungsstarkes Arsenal an Werkzeugen nutzt, das in einer einzigen Ansicht auf einer GUI zusammengefasst ist. Das Architekturdiagramm von ASF ist unten dargestellt:

Neueste Version von Kali Linux (getestet auf 64 Bit) - https://kali.org/get-kali/
Mindestens 16 GB RAM
1 TB Festplatte - XFS-Dateisystem empfohlen
Führen Sie die folgenden Schritte als root-Benutzer aus, um das Attack Surface Framework zu installieren und auszuführen.
Repository klonen
/opt/-Verzeichnis.git clone https://github.com/vmware-labs/attack-surface-framework.git /opt/asf
cd /opt/asf/
Umgebungsdatei konfigurieren
Erstellen Sie eine .env.prod-Datei im Projektverzeichnis. Dies ist entscheidend für die ordnungsgemäße Ausführung von setup.sh.
Hinweis: Sie können eine .env.prod-Datei generieren oder von backup.env.prod kopieren und die notwendigen Änderungen vornehmen, um sie an Ihre Umgebung anzupassen.
Beispielstruktur von .env.prod:
# Django settings, don't enable debug on production!
DEBUG=True
DJANGO_ADMIN_ENABLED=True
#LOGIN CONFIGURATIONS
LOGIN_FORM=True
SOCIAL_AUTH_GOOGLE_ENABLED=False
SOCIAL_AUTH_GITHUB_ENABLED=False
DJANGO_SAML2_ENABLED=False #Enable Social Authenticatio with Google.
SAML2_SSO_URL=https://saml2.local
SAML2_ASF_URL=https://atttacksurfaceframework.local
ALLOWED_HOSTS=*,localhost, config('SERVER', default='127.0.0.1')
MONGO_USER=admin
MONGO_PASSWORD=
MONGO_URL=
MONGO_PORT=27017
JIRA_ENABLED=False
JIRA_TOKEN=
JIRA_URL=
JIRA_USER=
JIRA_SEVERITY={"info":"Lowest","low":"Low","medium":"Medium","high":"High","critical":"Highest"}
JIRA_PROJECT=""
WPScan_Default_Severity=medium
Hinweis: MongoDB ist für die Alarmierungs- oder Berichtsfunktionen von ASF erforderlich.
docker run -dp 27017:27017 -v local-mongo:/data/db --name local-mongo --restart=always -e MONGO_INITDB_ROOT_USERNAME=<<>> -e MONGO_INITDB_ROOT_PASSWORD=<<>> mongo
.env.prod mit den folgenden Details:MONGO_USER=admin
MONGO_PASSWORD=
MONGO_URL=
MONGO_PORT=27017
Führen Sie ./setup.sh aus
Für lokale Kali-Linux-Umgebung: Navigieren Sie in Ihrem Webbrowser zu http://127.0.0.1:2021, um auf ASF zuzugreifen
ASF ist nicht für die öffentliche Bereitstellung gedacht. Angenommen, Sie installieren es bei einem Cloud-Anbieter oder sogar auf einer lokalen Instanz, empfehlen wir den Zugriff über Portweiterleitung per SSH. Hier ist ein Beispiel:
ssh -i "key.pem" -L 2021:127.0.0.1:2021 user@yourhost - For ASF GUI
Öffnen Sie dann Ihren Browser und gehen Sie zu:
http://127.0.0.1:2021 - For ASF - user:youruser pass:yourpass (provided in initial setup)
Sicherheitstipp: Stellen Sie sicher, dass jede Komponente, einschließlich MongoDB, sicher konfiguriert ist und dass auf ASF sicher zugegriffen wird, auch intern. Die Einhaltung von Sicherheitsbest Practices ist bei der Implementierung von ASF in Ihre Sicherheitsstrategie entscheidend.
Zusätzlich können Sie Social Login konfigurieren, indem Sie die entsprechende Social-Login-Funktion in .env.prod aktivieren.
#LOGIN CONFIGURATIONS
LOGIN_FORM=True
SOCIAL_AUTH_GOOGLE_ENABLED=True (False)
SOCIAL_AUTH_GITHUB_ENABLED=True (False)
DJANGO_SAML2_ENABLED=True (False)
Navigieren Sie zum Admin-Panel http://127.0.0.1:2021/admin, um die Social App hinzuzufügen.
Beachten Sie, dass wenn Social Login aktiviert, aber nicht im Admin-Panel konfiguriert ist, ASF die Anmeldeseite nicht anzeigt – um dies rückgängig zu machen, deaktivieren Sie einfach den Social Login in .env.prod
Um die Jira-Integration und Ticketing zu aktivieren, unterstützt ASF das Setzen der folgenden Werte in der .env.prod-Datei:
JIRA_ENABLED=True
JIRA_TOKEN=
JIRA_URL=
JIRA_USER=
JIRA_SEVERITY={"info":"Lowest","low":"Low","medium":"Medium","high":"High","critical":"Highest"}
JIRA_PROJECT=
Um den Wordpress-Scan in Red-Team-Modulen zu verwenden, fügen Sie das WPScan-API-Token in Zeile 7 von redteam/wpscan/wpscan.sh ein.
ASF hat zwei Bereiche:
A) Extern: Für Ihre öffentlich zugänglichen Assets.
B) Intern: Assets in Ihrem Unternehmensnetzwerk.
Für den externen Bereich durchläuft der Ablauf vier grundlegende Schritte:
A.1 Ziele – Hier geben Sie Ihre Ziele ein

A.2 Discovery – Modul, das den Amass-Prozess ausführt, um öffentlich zugängliche Assets zu entdecken. Sie können Ihre Konfigurationsdatei erstellen, um Ihre API-Schlüssel einzurichten: https://github.com/OWASP/Amass/blob/master/examples/config.ini

A.3 Enumeration – Modul, das den NMAP-Prozess ausführt, um Ports/Dienste zu ermitteln und Filter für das Redteam-Modul zu erstellen. Die Standardeinstellung sucht nach --top-ports 200, aber Sie können es Ihren Bedürfnissen anpassen in /opt/asf/tools/nmap/*.sh

A.4 Redteam – Modul, das Untermodule ausführt, die sich in "/opt/asf/redteam" befinden

Hinweis: Für den internen Bereich durchläuft der Ablauf A.1 (Ziele), A.3 (Enumeration) und A.4 (Redteam).
Das attack-surface-framework-Projektteam heißt Beiträge aus der Community willkommen. Bevor Sie mit attack-surface-framework arbeiten, lesen Sie bitte unsere Developer Certificate of Origin. Alle Beiträge zu diesem Repository müssen gemäß der Beschreibung auf dieser Seite signiert werden. Ihre Signatur bestätigt, dass Sie den Patch geschrieben haben oder das Recht haben, ihn als Open-Source-Patch weiterzugeben. Ausführlichere Informationen finden Sie in CONTRIBUTING.md.
Attack Surface Framework Copyright 2021 VMware, Inc.
Die nachstehend aufgeführte BSD-2-Lizenz (die „Lizenz“) gilt für alle Teile des Attack Surface Framework-Projekts. Sie dürfen diese Datei nur in Übereinstimmung mit der Lizenz verwenden.
BSD-2-Lizenz
Die Weiterverbreitung und Nutzung in Quell- und Binärform, mit oder ohne Änderungen, ist unter der Voraussetzung gestattet, dass die folgenden Bedingungen erfüllt sind:
Weiterverbreitungen des Quellcodes müssen den obigen Urheberrechtshinweis, diese Liste der Bedingungen und den folgenden Haftungsausschluss enthalten.
Weiterverbreitungen in Binärform müssen den obigen Urheberrechtshinweis, diese Liste der Bedingungen und den folgenden Haftungsausschluss in der Dokumentation und/oder anderen Materialien, die mit der Verteilung bereitgestellt werden, wiedergeben.
DIESE SOFTWARE WIRD VON DEN URHEBERRECHTSINHABERN UND BEITRAGENDEN "OHNE MÄNGELGEWÄHR" BEREITGESTELLT, UND JEGLICHE AUSDRÜCKLICHE ODER STILLSCHWEIGENDE GEWÄHRLEISTUNGEN, EINSCHLIESSLICH, ABER NICHT BESCHRÄNKT AUF DIE STILLSCHWEIGENDEN GEWÄHRLEISTUNGEN DER MARKTGÄNGIGKEIT UND EIGNUNG FÜR EINEN BESTIMMTEN ZWECK, WERDEN ABGELEHNT. IN KEINEM FALL HAFTEN DIE URHEBERRECHTSINHABER ODER BEITRAGENDEN FÜR DIREKTE, INDIREKTE, BEILÄUFIG ENTSTANDENE, BESONDERE, EXEMPLARISCHE ODER FOLGESCHÄDEN (EINSCHLIESSLICH, ABER NICHT BESCHRÄNKT AUF DIE BESCHAFFUNG VON ERSATZWAREN ODER -DIENSTLEISTUNGEN; NUTZUNGSAUSFALL, DATENVERLUST ODER GEWINNUNTERBRECHUNG; ODER GESCHÄFTSUNTERBRECHUNG) WIE AUCH IMMER VERURSACHT UND AUF JEDER HAFTUNGSTHEORIE, SEI ES VERTRAGSHALTUNG, STRIKTE HAFTUNG ODER UNERLAUBTE HANDLUNG (EINSCHLIESSLICH FAHRLÄSSIGKEIT ODER ANDERWEITIG), DIE AUS DER NUTZUNG DIESER SOFTWARE ENTSTEHEN, SELBST WENN AUF DIE MÖGLICHKEIT SOLCHER SCHÄDEN HINGEWIESEN WURDE.
Attack Surface Framework Copyright 2021 VMware, Inc.
Dieses Produkt wird Ihnen unter der BSD-2-Lizenz (der „Lizenz“) lizenziert. Sie dürfen dieses Produkt nur in Übereinstimmung mit der BSD-2-Lizenz verwenden.
Dieses Produkt kann eine Reihe von Unterkomponenten mit separaten Urheberrechtshinweisen und Lizenzbedingungen enthalten. Ihre Nutzung dieser Unterkomponenten unterliegt den Bedingungen der Lizenz der jeweiligen Unterkomponente, wie in der LICENSE-Datei vermerkt.