Extensible Azure Security Tool (doravante referido como E.A.S.T) é uma ferramenta para avaliar os controles de segurança do Azure e, até certo ponto, do Azure AD. O principal caso de uso do EAST é a coleta de dados de segurança para avaliação em Avaliações do Azure. Essas informações (conteúdo JSON) podem então ser usadas em várias ferramentas de relatórios, que usamos para correlacionar e investigar ainda mais os dados.
Esta ferramenta está licenciada sob a licença MIT.


Colaboradores
Índice
Notas de versão
v 0.5
- Refatorações:
- Atribuição de função de Identidade Gerenciada e do Azure AD agora são feitas por um único módulo, a versão anterior mostrava sua idade e a lógica não estava mais correta. O novo módulo é
miGeneral.js
- ASB não é mais ASB, agora é o benchmark de segurança em nuvem da Microsoft, veja
query.js
v 0.4
-
Branch de pré-visualização introduzida
Mudanças:
-
A instalação agora leva em conta o uso da versão atualizada do Azure Cloud Shell em relação às dependências (Cloud Shell agora tem Node.JS v 16 instalado)
-
Verificação dos tipos de cluster Databricks conforme advertência
- Audita clusters Databricks para possível elevação de privilégio - Este controle normalmente requer permissões no cluster Databricks"
-
content.json agora possui ordenação por chave e conteúdo. Isso permite realizar verificações delta com git diff HEAD^1 ¹ pois content.json tem uma ordem predeterminada de resultados

¹ ⚠️ Palavra de cautela, se quiser verificar deltas do content.json, então content.json precisará ser "designorado" do .gitignore expondo resultados a qualquer upstream que você possa ter configurado.
Use este recurso com cautela e garanta que você não tenha um upstream público configurado para o branch em que está usando este recurso
-
Mudança de padrões de programação para evitar possíveis condições de corrida com conjuntos de dados maiores. Isto é principalmente mudanças de usar var para let em loops do tipo for await
Importante
⚠️ Status atual da ferramenta é beta
- Correções, atualizações, etc. são feitas na base de "Melhor esforço", sem garantia de tempo ou qualidade da possível correção aplicada
- Fazemos alguns ajustes adicionais antes de usar o EAST em nosso trabalho diário, como aplicar várias restrições de execução e ambiente, além de nos familiarizar com o ambiente em questão. Portanto, atualmente recomendamos que o EAST seja executado apenas em ambientes de teste e com permissões somente leitura.
- Todas as chamadas no serviço são em grande parte para IPs da Nuvem Azure, então deve funcionar bem em ambientes reforçados onde restrições de IP de saída são aplicadas. Isso reduz o risco desta ferramenta conter pacotes maliciosos que poderiam "telefonar para casa" sem também ter C2 no Azure.
- Essencialmente, executá-lo em modo somente leitura reduz muito o risco associado a possíveis pacotes NPM comprometidos (Google comprometeu NPM)
- Erros etc: Você pode proteger seu ambiente contra certos erros neste código executando a ferramenta com permissões apenas de leitura
- Grande parte do código é "COMO ESTÁ": Significa que serviu apenas ao propósito de criar um determinado resultado; Muita limpeza e modularização ainda precisam ser concluídas
- Não há testes no momento, além de certas verificações manuais, que são executadas após mudanças no main.js e em vários controles mais avançados.
- As descrições dos controles nesta fase não são o produto final, então dar feedback sobre elas, embora apreciado, não é o foco da ferramenta neste estágio
- Como o nome implica, nós o usamos como ferramenta para avaliar ambientes. Não deve ser executado sem supervisão por enquanto, e não deve ser executado em nenhum serviço exposto à internet que aceite conexões de entrada.
- A documentação pode ser descrita como incompleta por enquanto
- O EAST é focado principalmente em recursos PaaS, pois a maioria de nossas avaliações do Azure foca neste tipo de recurso
- ⚠️ Nenhuma sanitização de entrada é realizada nos parâmetros de inicialização, pois sempre se assume que a entrada desses parâmetros é controlada. Dito isso, a ferramenta usa extensivamente
exec() - Embora eu não tenha revisado todos os caminhos, acredito que alcançar execução de shellcode seja trivial. Esta ferramenta não assume entrada hostil, portanto a recomendação é que você não cole argumentos de inicialização na linha de comando sem revisá-los primeiro.
Operação da ferramenta
Dependências
Para reduzir a quantidade de código, utilizamos as seguintes dependências para operação e estética (Kudos aos mantenedores destes pacotes fantásticos)