
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).