
Outil de découverte de la surface d'attaque réseau externe et interne
ASF vise à protéger les organisations en agissant comme un chien de garde de la surface d'attaque, à condition de fournir un « Objet » qui peut être un : Domaine, Adresse IP ou CIDR (Interne ou Externe). ASF découvrira les actifs/sous-domaines, énumérera leurs ports et services, suivra les évolutions (deltas) et servira de cadre d'attaque et d'alerte continu et flexible, offrant une couche de support supplémentaire contre les vulnérabilités zero-day disposant de POC publics.
Le manque de support et de flexibilité pour automatiser la découverte d'actifs dynamiques et de leurs vulnérabilités associées via une analyse continue ou une exploitation dans un seul paneau de verre a été la force motrice derrière la création d'ASF. Les solutions actuelles sont limitées par la technologie ou le programme pour lequel elles sont conçues. Nous voulions une solution évolutive qui utilise également des outils de sécurité open source populaires pour gérer l'ensemble du cycle de vie des vulnérabilités.
ASF est une race de projets open source exploitant un arsenal puissant d'outils enveloppés dans un seul paneau de verre surmonté d'une interface graphique. Le diagramme architectural d'ASF est illustré ci-dessous :

Dernière version de Kali Linux (testée sur 64 bits) - https://kali.org/get-kali/
Au moins 16 Go de RAM
1 To de disque dur - Système de fichiers XFS recommandé
Exécutez les étapes suivantes en tant qu'utilisateur root pour installer et exécuter Attack Surface Framework.
Cloner le dépôt
/opt/.git clone https://github.com/vmware-labs/attack-surface-framework.git /opt/asf
cd /opt/asf/
Configurer le fichier d'environnement
Créez un fichier .env.prod dans le répertoire du projet. Ceci est crucial pour que setup.sh s'exécute correctement.
Remarque : Vous pouvez générer un fichier .env.prod ou le copier à partir de backup.env.prod, en effectuant les modifications nécessaires pour l'adapter à votre environnement.
Exemple de structure de .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
Remarque : MongoDB est nécessaire pour les fonctions d'alerte ou de rapport d'ASF.
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 avec les détails suivants :MONGO_USER=admin
MONGO_PASSWORD=
MONGO_URL=
MONGO_PORT=27017
Exécutez ./setup.sh
Pour un environnement Kali Linux local : Accédez à http://127.0.0.1:2021 dans votre navigateur web pour accéder à ASF
ASF n'est pas destiné à être exposé publiquement ; en supposant que vous l'installiez sur un fournisseur cloud ou même sur une instance locale, nous recommandons d'y accéder en utilisant le transfert de port via SSH. Voici un exemple :
ssh -i "key.pem" -L 2021:127.0.0.1:2021 user@yourhost - Pour l'interface graphique d'ASF
Ouvrez ensuite votre navigateur et allez à :
http://127.0.0.1:2021 - Pour ASF - utilisateur:votreutilisateur motdepasse:votremotdepasse (fourni lors de l'installation initiale)
Conseil de sécurité : Assurez-vous que chaque composant, y compris MongoDB, est configuré de manière sécurisée, et que l'accès à ASF est sécurisé, même en interne. Le respect des bonnes pratiques de sécurité est crucial lors de la mise en œuvre d'ASF dans votre stratégie de sécurité.
Vous pouvez également configurer la connexion sociale en activant la fonctionnalité appropriée dans .env.prod :
#LOGIN CONFIGURATIONS
LOGIN_FORM=True
SOCIAL_AUTH_GOOGLE_ENABLED=True (False)
SOCIAL_AUTH_GITHUB_ENABLED=True (False)
DJANGO_SAML2_ENABLED=True (False)
Naviguez vers le panneau d'administration http://127.0.0.1:2021/admin pour ajouter l'application sociale.
Notez que si la connexion sociale est activée et non configurée dans le panneau d'administration, ASF n'affichera pas la page de connexion - pour revenir en arrière, désactivez simplement la connexion sociale dans .env.prod
Pour activer l'intégration Jira et la gestion des tickets, ASF supporte la définition des valeurs suivantes dans le fichier .env.prod :
JIRA_ENABLED=True
JIRA_TOKEN=
JIRA_URL=
JIRA_USER=
JIRA_SEVERITY={"info":"Lowest","low":"Low","medium":"Medium","high":"High","critical":"Highest"}
JIRA_PROJECT=
Pour utiliser Wordpress Scan dans les modules Red Team, insérez le jeton API WPScan à la ligne #7 de redteam/wpscan/wpscan.sh
ASF a deux portées :
A) Externe : Pour vos actifs exposés publiquement.
B) Interne : Actifs dans votre réseau d'entreprise.
Pour la portée externe, le flux passe par quatre étapes de base :
A.1 Cibles - C'est ici que vous saisissez vos cibles

A.2 Découverte - Module qui exécute le processus Amass pour découvrir les actifs exposés publiquement ; n'hésitez pas à créer votre fichier de configuration pour configurer vos clés API https://github.com/OWASP/Amass/blob/master/examples/config.ini

A.3 Énumération - Module qui exécute le processus NMAP pour énumérer les ports/services et créer des filtres pour le module Red Team. La configuration par défaut recherche --top-ports 200 mais vous pouvez l'adapter à vos besoins dans /opt/asf/tools/nmap/*.sh

A.4 Red Team - Module qui exécute des sous-modules situés dans "/opt/asf/redteam"

Remarque : Pour la portée interne, le flux passe par A.1 (Cibles), A.3 (Énumération) et A.4 (Red Team).