
Marco de evaluación y auditoría de vulnerabilidades para todas las implementaciones criptográficas.
#LAMMA (BETA)
###Marco de Evaluación de Vulnerabilidades para todas las Implementaciones Criptográficas.
(Una Iniciativa de Código Abierto por - SECURITY MONX )
Documentación del Framework Lamma (beta)
Nombre del archivo : README
Autor : @ajithatti
Organización : Security Monx
Versión : 0.0.1
Propósito : Proporciona una introducción al Framework Lamma (beta)
Tabla de Contenidos :
A. Información de Licencias
B. Introducción al Framework Lamma (beta)
C. Dependencias
D. Uso de LAMMA
E. Características
F. Nota
G. Contribuidores
A. Información de Licencias
El Framework LAMMA (beta) y sus documentos no están cubiertos por ninguna licencia.
Eres libre de usarlo de cualquier manera que desees. Sin condiciones de ningún tipo.
Para más detalles sobre el proyecto visita nuestro sitio web
"http://www.securitymonx.com/Project-LAMMA"
B. Introducción al Framework LAMMA (beta)
El Framework LAMMA (beta) aspira a ser un conjunto completo para
auditar criptografía, PKI e implementaciones relacionadas.
LAMMA (beta) soporta 4 módulos principales
REMOTE
CRYPTO
TRUST
SOURCE
REMOTE - El módulo escanea hosts remotos en busca de configuraciones SSL/TLS e informa cualquier brecha o vulnerabilidad descubierta.
Comprobaciones principales:
a) Versión de SSL/TLS, gestión de sesiones y parámetros configurables del servidor
c) Comprobaciones de uso de conjuntos de cifrado vulnerables/obsoletos
b) Prueba de certificado del servidor
Tipo de verificación (EV/OV/DV)
Análisis de línea de tiempo de vulnerabilidades SSL/TLS aplicables
Verificación, validación
Fugas de información
Common Modulus
Fortaleza del algoritmo de firma
Nombres alternativos
CRYPTO - Este módulo verifica los diversos primitivos criptográficos generados por cualquier marco subyacente en cuanto a calidad, puerta trasera y cordura. Algunas de
Comprobaciones principales:
Prueba de calidad para números aleatorios generados
Comprobaciones de cordura para números primos compartidos en múltiples claves RSA
Prueba de primo seguro y fuerte
Prueba de módulo compartido
MalSha, Prueba de resumen malformado
TRUST - El módulo verifica varios almacenes de confianza y claves en busca de claves privadas inseguras y certificados no confiados.
Comprobaciones principales:
a) Claves privadas
Almacenadas con/sin cifrado
Permisos de acceso
Rastrear múltiples instancias
Extraer primo para la prueba del módulo CRYPTO
b) Clave pública
Extraer módulo para la prueba del módulo CRYPTO
Rastrear múltiples instancias
b) Certificados
Comprobar en almacén de confianza y CRL
Listar certificados fijados y no confiados
Rastrear múltiples instancias
Verificación, análisis de línea de tiempo común con el módulo REMOTE
C. Dependencias : LAMMA necesita algunos paquetes de Python para su funcionamiento. La lista de paquetes requeridos es:
1. cmd2 - Ejecuta el shell personalizado de Lamma
pip install cmd2
2. subprocess - Invoca Openssl u otros scripts
pip install subprocess
3. pyOpenSSL - Envoltorio sobre OpenSSL
pip install openssl
D. Uso de LAMMA :
LAMMA.py inicia el framework, con una pantalla de bienvenida y lleva al prompt de LAMMA
$> python LAMMA.py
__ _____ _____ _____ _____
| | | _ | | | _ |
| |__| | | | | | | | |
|_____|__|__|_|_|_|_|_|_|__|__|
(BETA)
Marco de Evaluación y Auditoría de Vulnerabilidades
para todas las Implementaciones Criptográficas.
(Un Proyecto de Código Abierto)
por
SECURITY MONX
LAMMA :
Puedes ver la ayuda micro de cada módulo usando el comando "help module"
LAMMA : help trust
Escanea un almacén de confianza/claves dado en busca de certificados no confiados, claves privadas inseguras,
LAMMA : help source
Escanea el código fuente en busca de funciones conocidas débiles o con puerta trasera
LAMMA : help crypto
Genera claves, hashes, números aleatorios bajo varios esquemas para un número dado
LAMMA : help remote
Escanea el host remoto e informa el perfil de configuración SSL/TLS y vulnerabilidades aplicables
LAMMA :
Para saber cómo usar cada módulo, simplemente escribe el nombre del módulo y obtendrás una ayuda de uso detallada.
E. Características :
El proyecto LAMMA está en desarrollo. Junto con muchas características funcionales, intentamos adherirnos a estos principios básicos:
1. Simple : El usuario no necesita tener un conocimiento profundo de criptografía
para usar este framework. Debe ser intuitivo y simple de
usar con un aprendizaje mínimo.
2. Extensible : El framework debe ser extensible. La comunidad de usuarios debería
poder extender las funcionalidades fácilmente agregando plugins
personalizados.
3. Independiente : El framework en sí mismo utiliza OpenSSL y envoltorios de Python sobre él,
pero puede usarse para probar implementaciones de Criptografía, PKI y afines,
independientemente de la tecnología utilizada (como Java,
NSS, GnuTLS, SChannel) para diseñarlas.
4. Automatización : "Evaluación a gran escala de la implementación criptográfica, con
facilidad" es nuestro principal enfoque detrás del diseño de este framework
F. Nota :
a. LAMMA(beta) es un proyecto vivo.
b. Actualmente está construido para la plataforma Linux
c. El código se proporciona con todos los derechos y errores sin ninguna garantía o responsabilidad
por parte del autor
d. Agradecemos errores, comentarios, críticas, contribuciones o incluso una simple nota sobre tu experiencia
con LAMMA (beta). Escríbenos a
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 <twitter handle>
SOURCE - El módulo está principalmente para hacer cumplir las recomendaciones del "Comité de Revisión de Criptografía" de su organización. Este módulo escanea el código fuente en busca de uso de esquemas criptográficos inseguros y obsoletos.
a) Esquemas obsoletos
Esquemas de hash de la familia MD
Hashes SHA/SHA1
Modo de cifrado de bloque ECB/CBC
Funciones rand() o /dev/rand
<Más esquemas obsoletos/inseguros>
b) Esquemas débiles (Esquemas con puerta trasera)
Dual_EC_DRBG
prime2566v1
p224r1
secp384r1
<Más esquemas débiles/con puerta trasera>
LAMMA : remote
remote [-H] [-s] [-l] [-o] [-i] [-p] [-h]
Propósito : Escanear un host remoto con el plugin dado a través de conexión SSL/TLS
-H [--help] : imprime esta ayuda de uso
-s [--script] : escanea el objetivo con el id de script dado, o 'all', 'gen', o 'reg'
-l [--list] : lista todos los plugins y sus IDs
-o [--out] : los informes se almacenan en este archivo, si no, archivo por defecto
-i [--in] : nombre del archivo de entrada con múltiples IP:Puerto especificados en cada línea
-p [--port] : puerto en el que se realizará la conexión SSL o TLS
-h [--host] : IP o nombre de dominio del host remoto a conectar
LAMMA :
Ejemplo de uso del módulo "remote", estamos escaneando "null.co.in" para plugins en gen y los resultados se almacenarán en el archivo final.html.
LAMMA : remote -h null.co.in -p 443 -s gen -o final.html
[*] Servicio de Escaneo Lamma [Iniciado] ...
[+] Parámetros establecidos para este escaneo:
Pruebas a ejecutar => gen Host objetivo => null.co.in
Puerto objetivo => 443
Los informes se almacenarán en el archivo => final.html
[+] Iniciando el escaneo
Kick gen
[+] Iniciando... /home/evader/Desktop/RELEASE/LAMMA/modules/remote-module/gen
Ahora ejecutando: server_config.py -h null.co.in -p 443 -o final.html
Ahora ejecutando: scan_ssl.py -h null.co.in -p 443 -o final.html
[+] Escaneo completado...
LAMMA :
Salida del módulo de escaneo "remote" para "null.co.in"
--- Iniciando comprobaciones de configuración del servidor para el host - null.co.in ---
Respuesta del 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
Validación de la cadena de certificados:
Certificado de Digital Signature Trust Co. : es válido
Certificado de Let's Encrypt : es válido
Certificado de null.co.in : es válido
La cadena de certificados está verificada y es confiable
--- Comprobaciones de configuración del servidor completadas...
--- Iniciando escaneo del host ---
Nombre del host remoto :null.co.in
IPv4 del host remoto :104.237.152.34
Puerto del host remoto :443
Suite de cifrado utilizada : ECDHE-RSA-AES128-GCM-SHA256
Nombre del sujeto = null.co.in
Nombre del emisor = Let's Encrypt Authority X1
Fecha de inicio : 20160313112800Z
Fecha de fin : 20160611112800Z
Algoritmo de firma : sha256WithRSAEncryption
subjectAltName:
jobs.null.co.in
null.co.in
www.null.co.in
[INFO] Tipo de verificación del certificado : DV
Tamaño de clave pública [2048]
--- Fin del escaneo SSL ---