
Ferramenta para descobrir a superfície de ataque de rede externa e interna
ASF visa proteger organizações atuando como um cão de guarda da superfície de ataque, fornecendo um “Objeto” que pode ser: um Domínio, endereço IP ou CIDR (Interno ou Externo). O ASF descobrirá ativos/subdomínios, enumerará suas portas e serviços, rastreará deltas e servirá como uma estrutura contínua e flexível de ataque e alerta, aproveitando uma camada adicional de suporte contra vulnerabilidades de dia zero com PoCs publicamente disponíveis.
A falta de suporte e flexibilidade para automatizar a descoberta de ativos dinâmicos e suas vulnerabilidades associadas por meio de varredura contínua ou exploração em um único painel foi a força motriz para a criação do ASF. As soluções atuais são restritas pela tecnologia ou pelo programa para o qual foram construídas. Queríamos uma solução que fosse escalável e também utilizasse ferramentas populares de segurança de código aberto para lidar com todo o ciclo de vida de vulnerabilidades.
ASF é uma linhagem de projetos de código aberto que aproveita um poderoso arsenal de ferramentas envolto em um único painel sobre uma GUI. O diagrama arquitetural do ASF está ilustrado abaixo:

Última versão do Kali Linux (testado em 64 bits) - https://kali.org/get-kali/
Pelo menos 16 GB de RAM
1 TB de HD - sistema de arquivos XFS recomendado
Execute os seguintes passos como usuário root para instalar e executar o Attack Surface Framework.
Clone o Repositório
/opt/.git clone https://github.com/vmware-labs/attack-surface-framework.git /opt/asf
cd /opt/asf/
Configure o Arquivo de Ambiente
Crie um arquivo .env.prod no diretório do projeto. Isso é crucial para que o setup.sh seja executado corretamente.
Nota: Você pode gerar um arquivo .env.prod ou copiar de backup.env.prod, fazendo as alterações necessárias para se adaptar ao seu ambiente.
Exemplo de estrutura do .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
Nota: MongoDB é necessário para as funções de alerta ou relatórios do 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 com os seguintes detalhes:MONGO_USER=admin
MONGO_PASSWORD=
MONGO_URL=
MONGO_PORT=27017
Execute ./setup.sh
Para Ambiente Kali Linux Local: Navegue até http://127.0.0.1:2021 no seu navegador web para acessar o ASF
O ASF não deve ser exposto publicamente. Supondo que você o instale em um provedor de nuvem ou mesmo em uma instância local, recomendamos acessá-lo usando encaminhamento de porta via SSH. Aqui está um exemplo:
ssh -i "key.pem" -L 2021:127.0.0.1:2021 user@yourhost - Para GUI do ASF
Então abra seu navegador e vá para:
http://127.0.0.1:2021 - Para ASF - user:seuusuario pass:suasenha (fornecido na configuração inicial)
Dica de Segurança: Certifique-se de que cada componente, incluindo MongoDB, esteja configurado com segurança e que o ASF seja acessado de forma segura, mesmo internamente. Seguir as práticas recomendadas de segurança é crucial ao implementar o ASF em sua estratégia de segurança.
Além disso, você pode configurar o login social ativando o recurso de login social apropriado no .env.prod
#LOGIN CONFIGURATIONS
LOGIN_FORM=True
SOCIAL_AUTH_GOOGLE_ENABLED=True (False)
SOCIAL_AUTH_GITHUB_ENABLED=True (False)
DJANGO_SAML2_ENABLED=True (False)
Navegue até o painel de administração http://127.0.0.1:2021/admin para adicionar o aplicativo social.
Observe que se o login social estiver habilitado e não configurado no painel de administração, o ASF não exibirá a página de login - para reverter, basta desabilitar o Login Social no .env.prod
Para habilitar a integração e emissão de tickets no Jira, o ASF suporta a configuração dos seguintes valores no arquivo .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=
Para usar o Wordpress Scan nos módulos Red team, insira o token da API WPScan na linha #7 do arquivo redteam/wpscan/wpscan.sh
O ASF possui dois escopos:
A) Externo: Para seus ativos publicamente expostos.
B) Interno: Ativos em sua rede corporativa.
Para o escopo Externo, o fluxo passa por quatro etapas básicas:
A.1 Alvos - Aqui é onde você insere seus alvos

A.2 Descoberta - Módulo que executa o processo Amass para descobrir ativos publicamente expostos. Fique à vontade para criar seu arquivo de configuração para configurar suas chaves de API https://github.com/OWASP/Amass/blob/master/examples/config.ini

A.3 Enumeração - Módulo que executa o processo NMAP para enumerar portas/serviços e criar filtros para o módulo Redteam. A configuração padrão é procurar por --top-ports 200, mas você pode adaptá-la às suas necessidades em /opt/asf/tools/nmap/*.sh

A.4 Redteam - Módulo que executa submódulos localizados em "/opt/asf/redteam"

Nota: Para o escopo Interno, o fluxo passa por A.1(Alvos), A.3(Enumeração) e A.4(Redteam).
A equipe do projeto attack-surface-framework recebe contribuições da comunidade. Antes de começar a trabalhar com o attack-surface-framework, leia nosso Developer Certificate of Origin. Todas as contribuições para este repositório devem ser assinadas conforme descrito nessa página. Sua assinatura certifica que você escreveu o patch ou tem o direito de repassá-lo como um patch de código aberto. Para informações mais detalhadas, consulte CONTRIBUTING.md.
Attack Surface Framework Copyright 2021 VMware, Inc.
A licença BSD-2 (a "Licença") estabelecida abaixo se aplica a todas as partes do projeto Attack Surface Framework. Você não pode usar este arquivo exceto em conformidade com a Licença.
Licença BSD-2