
Framework de Avaliação e Auditoria de Vulnerabilidades para todas as Implementações Criptográficas.
#LAMMA (BETA)
###Estrutura de Avaliação de Vulnerabilidades para todas as Implementações Criptográficas.
(Uma Iniciativa Open Source por - SECURITY MONX )
Documentação do Lamma Framework (beta)
Nome do Arquivo : README
Autor : @ajithatti
Org : Security Monx
Versão : 0.0.1
Propósito : Apresenta introdução ao Lamma Framework (beta)
Tabela de Conteúdo :
A. Informações de Licenças
B. Introdução ao Lamma Framework (beta)
C. Dependências
D. Usando o LAMMA
E. Recursos
F. Nota
G. Contribuidores
A. Informações de Licenças
LAMMA Framework (beta) e seus documentos não são cobertos por nenhuma licença.
Você é livre para usá-lo da maneira que quiser. Nenhuma condição de qualquer tipo.
Para detalhes sobre o projeto visite nosso site
"http://www.securitymonx.com/Project-LAMMA"
B. Introdução ao LAMMA Framework (beta)
O LAMMA Framework (beta) tem como objetivo ser um conjunto abrangente para
auditar criptografia, PKI e implementações relacionadas.
LAMMA (beta) suporta 4 módulos principais
REMOTE
CRYPTO
TRUST
SOURCE
REMOTE - O módulo escaneia hosts remotos quanto à configuração SSL/TLS e relata quaisquer lacunas ou vulnerabilidades descobertas.
Verificações Principais :
a) Versão SSL/TLS, gerenciamento de sessão e parâmetros configuráveis do servidor
c) Verifica o uso de conjuntos de cifras vulneráveis/obsoletas
b) Teste de certificado do servidor
Tipo de Verificação (EV/OV/DV)
Análise temporal das vulnerabilidades SSL/TLS aplicáveis
Verificação, validação
Vazamento de Informações
Módulo Comum
Força do algoritmo de assinatura
Nomes Alternativos
CRYPTO - Este módulo verifica várias primitivas criptográficas geradas por qualquer framework subjacente quanto a qualidade, backdoor e sanidade. Alguns dos
Verificações Principais :
Teste de Qualidade para Número Aleatório Gerado
Verificações de Sanidade para números primos compartilhados em múltiplas chaves RSA
Teste de Primo Seguro e Forte
Teste de módulo compartilhado
MalSha, Teste de Digest Malformado
TRUST - O módulo verifica vários armazenamentos de confiança e chaves quanto a chaves privadas inseguras e certificados não confiáveis.
Verificações Principais:
a) Chaves Privadas
Armazenadas com/sem criptografia
Permissão de acesso
Rastrear múltiplas instâncias
Extrair Primo para teste do Módulo CRYPTO
b) Chave Pública
Extrair Módulo para teste do Módulo CRYPTO
Rastrear múltiplas instâncias
b) Certificados
Verificar no armazenamento confiável e CRL
Listar certificados fixados e não confiáveis
Rastrear múltiplas instâncias
Verificação, análise temporal comum com o Módulo REMOTE
C. Dependências : O LAMMA precisa de alguns pacotes Python para funcionar. A lista dos pacotes necessários é:
1. cmd2 - Executa o shell personalizado do Lamma
pip install cmd2
2. subprocess - Invoca Openssl ou outros scripts
pip install subprocess
3. pyOpenSSL - Wrapper sobre o OpenSSL
pip install openssl
D. Usando o LAMMA :
LAMMA.py inicia o framework, com uma tela de boas-vindas e leva ao prompt do LAMMA
$> python LAMMA.py
__ _____ _____ _____ _____
| | | _ | | | _ |
| |__| | | | | | | | |
|_____|__|__|_|_|_|_|_|_|__|__|
(BETA)
Framework de Avaliação e Auditoria de Vulnerabilidades
para todas as Implementações Criptográficas.
(Um Projeto Open Source)
por
SECURITY MONX
LAMMA :
Você pode ver a microajuda em cada módulo usando o comando "help module"
LAMMA : help trust
Escaneia um armazenamento de confiança/chave fornecido por - certificados não confiáveis, chaves privadas inseguras,
LAMMA : help source
Escaneia o código-fonte em busca de funções fracas ou com backdoor conhecidas
LAMMA : help crypto
Gera chaves, hashes, números aleatórios sob vários esquemas para uma determinada contagem
LAMMA : help remote
Escaneia o host remoto e relata o perfil de configuração SSL/TLS e vulnerabilidades aplicáveis
LAMMA :
Para saber como usar cada módulo, basta digitar o nome do módulo e você obterá uma ajuda de uso elaborada.
E. Recursos :
O projeto LAMMA está em andamento. Junto com muitos recursos funcionais, estamos tentando seguir estes princípios básicos :
1. Simples : O usuário não precisa ter um conhecimento profundo de criptografia
para usar este framework. Deve ser intuitivo e simples de
usar com o mínimo de aprendizado.
2. Extensível : O framework deve ser extensível. A comunidade de usuários deve
ser capaz de estender as funcionalidades facilmente adicionando
plugins personalizados.
3. Independente : O framework em si usa OpenSSL e wrappers Python sobre ele,
mas pode ser usado para testar as implementações de Criptografia,
PKI e relacionadas, independente da tecnologia usada (como Java,
NSS, GnuTLS, SChannel) para implementá-las.
4. Automação : "Avaliação em larga escala da implementação criptográfica, com
facilidade" é nosso foco principal por trás do design deste framework
F. Nota :
a. LAMMA(beta) é um projeto vivo.
b. Atualmente é construído para a plataforma Linux
c. O código é fornecido com todos os direitos e bugs para você, sem qualquer garantia ou responsabilidade
do autor
d. Recebemos bugs, comentários, críticas, contribuições ou mesmo uma simples nota sobre sua experiência
com LAMMA (beta). Escreva para nós em
a j i t [ a t ] s e c u r i t y m o n x [ d o t ] c o m
G.Contribuidores
1. Ajit Hatti - @ajithatti <handle do twitter>
SOURCE - O módulo é principalmente para aplicar as recomendações do "Conselho de Revisão de Criptografia" da sua organização. Este módulo escaneia o código-fonte quanto ao uso de esquemas criptográficos inseguros e obsoletos.
a) Esquemas Obsoletos
Esquemas de hash da família MD
Hashes SHA/SHA1
Modo de cifra de bloco ECB/CBC
Funções rand() ou /dev/rand
<Mais Esquemas Obsoletos/Inseguros>
b) Esquemas Fracos (Esquemas com Backdoor)
Dual_EC_DRBG
prime2566v1
p224r1
secp384r1
< Mais esquemas fracos/com backdoor>
LAMMA : remote
remote [-H] [-s] [-l] [-o] [-i] [-p] [-h]
Propósito : Escanear um host remoto com o plugin fornecido sobre conexão SSL/TLS
-H [--help] : imprime esta ajuda de uso
-s [--script] : escaneia o alvo com o id do script fornecido ou 'all', 'gen', ou 'reg'
-l [--list] : lista todos os plugins e IDs de plugins
-o [--out] : relatórios são armazenados neste arquivo, caso contrário, arquivo padrão
-i [--in] : nome do arquivo de entrada com múltiplos IP:Porta especificados em cada linha
-p [--port] : porta na qual a conexão SSL ou TLS será feita
-h [--host] : IP ou nome de domínio do host remoto a ser conectado
LAMMA :
Exemplo de uso do módulo "remote", estamos escaneando "null.co.in" para plugins em gen e os resultados serão armazenados no arquivo final.html.
LAMMA : remote -h null.co.in -p 443 -s gen -o final.html
[*] Serviço de Escaneamento Lamma [Iniciado] ...
[+] Parâmetros definidos para este Escaneamento :
Testes a Executar => gen Host Alvo => null.co.in
Porta alvo => 443
Relatórios serão armazenados no arquivo => final.html
[+] Iniciando o escaneamento
Iniciar gen
[+] Iniciando... /home/evader/Desktop/RELEASE/LAMMA/modules/remote-module/gen
Now Executing: server_config.py -h null.co.in -p 443 -o final.html
Now Executing: scan_ssl.py -h null.co.in -p 443 -o final.html
[+] Escaneamento concluído...
LAMMA :
Saída do módulo de escaneamento "remote" para "null.co.in"
--- Iniciando Verificações de Configuração do Servidor para host - null.co.in ---
Resposta do Servidor :
HTTP/1.1 500 Internal Server Error
Server: nginx
Date: Fri, 03 Jun 2016 18:05:58 GMT
Content-Type: text/html
Connection: close
X-Powered-By: PHP/5.5.9-1ubuntu4.16
Validação da Cadeia de Certificados :
Certificado da Digital Signature Trust Co. : é Válido
Certificado da Let's Encrypt : é Válido
Certificado da null.co.in : é Válido
A Cadeia de Certificados é verificada e Confiável
--- Verificações de Configuração do Servidor concluídas...
--- Escaneamento do host iniciado ---
Nome do Host Remoto :null.co.in
IPv4 do Host Remoto :104.237.152.34
Porta do Host Remoto :443
Conjunto de Cifras usado : ECDHE-RSA-AES128-GCM-SHA256
Nome do Sujeito = null.co.in
Nome do Emissor = Let's Encrypt Authority X1
Data de Início : 20160313112800Z
Data de Término : 20160611112800Z
Algoritmo de Assinatura : sha256WithRSAEncryption
subjectAltName:
jobs.null.co.in
null.co.in
www.null.co.in
[INFO] O Tipo de Verificação dos Certificados : DV
Tamanho da Chave Pública [2048]
--- Fim do Escaneamento SSL ---