
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).
L'équipe du projet attack-surface-framework accueille les contributions de la communauté. Avant de commencer à travailler avec attack-surface-framework, veuillez lire notre Certificat d'origine du développeur. Toutes les contributions à ce dépôt doivent être signées comme décrit sur cette page. Votre signature certifie que vous avez écrit le patch ou que vous avez le droit de le transmettre en tant que patch open source. Pour des informations plus détaillées, référez-vous à CONTRIBUTING.md.
Attack Surface Framework Copyright 2021 VMware, Inc.
La licence BSD-2 (la « Licence ») énoncée ci-dessous s'applique à toutes les parties du projet Attack Surface Framework. Vous ne pouvez pas utiliser ce fichier sauf en conformité avec la Licence.
Licence BSD-2
La redistribution et l'utilisation sous forme source et binaire, avec ou sans modification, sont autorisées à condition que les conditions suivantes soient remplies :
Les redistributions du code source doivent conserver l'avis de copyright ci-dessus, cette liste de conditions et l'avertissement suivant.
Les redistributions sous forme binaire doivent reproduire l'avis de copyright ci-dessus, cette liste de conditions et l'avertissement suivant dans la documentation et/ou d'autres matériels fournis avec la distribution.
CE LOGICIEL EST FOURNI PAR LES DÉTENTEURS DU COPYRIGHT ET LES CONTRIBUTEURS « EN L'ÉTAT » ET TOUTE GARANTIE EXPRESSE OU IMPLICITE, Y COMPRIS, MAIS SANS S'Y LIMITER, LES GARANTIES IMPLICITES DE QUALITÉ MARCHANDE ET D'ADAPTATION À UN USAGE PARTICULIER SONT DÉCLINÉES. EN AUCUN CAS LE DÉTENTEUR DU COPYRIGHT OU LES CONTRIBUTEURS NE SERONT TENUS RESPONSABLES DE TOUT DOMMAGE DIRECT, INDIRECT, ACCESSOIRE, SPÉCIAL, EXEMPLAIRE OU CONSÉCUTIF (Y COMPRIS, MAIS SANS S'Y LIMITER, L'ACQUISITION DE BIENS OU DE SERVICES DE SUBSTITUTION ; LA PERTE D'UTILISATION, DE DONNÉES OU DE PROFITS ; OU L'INTERRUPTION D'ACTIVITÉ) QUELLE QU'EN SOIT LA CAUSE ET SUR TOUTE THÉORIE DE RESPONSABILITÉ, QUE CE SOIT EN CONTRAT, EN RESPONSABILITÉ STRICTE OU EN DÉLIT (Y COMPRIS LA NÉGLIGENCE OU AUTRE) DÉCOULANT DE L'UTILISATION DE CE LOGICIEL, MÊME SI AVISÉ DE LA POSSIBILITÉ DE TELS DOMMAGES.
Attack Surface Framework Copyright 2021 VMware, Inc.
Ce produit vous est concédé sous la licence BSD-2 (la « Licence »). Vous ne pouvez pas utiliser ce produit sauf en conformité avec la licence BSD-2.
Ce produit peut inclure un certain nombre de sous-composants avec des avis de copyright et des conditions de licence distincts. Votre utilisation de ces sous-composants est soumise aux termes et conditions de la licence du sous-composant, comme indiqué dans le fichier LICENSE.