
Cadre d'évaluation des vulnérabilités et d'audit pour toutes les implémentations cryptographiques.
#LAMMA (BETA)
###Cadre d'évaluation des vulnérabilités pour toutes les implémentations cryptographiques.
(Une initiative Open Source par - SECURITY MONX)
Documentation du Framework Lamma (beta)
Nom du fichier : README
Auteur : @ajithatti
Organisation : Security Monx
Version : 0.0.1
Objectif : Donne une introduction au Framework Lamma (beta)
Table des matières :
A. Informations sur les licences
B. Introduction au Framework Lamma (beta)
C. Dépendances
D. Utilisation de LAMMA
E. Fonctionnalités
F. Note
G. Contributeurs
A. Informations sur les licences
Le Framework LAMMA (beta) et ses documents ne sont couverts par aucune licence.
Vous êtes libre de l'utiliser comme vous le souhaitez. Aucune condition.
Pour plus de détails sur le projet, visitez notre site web
"http://www.securitymonx.com/Project-LAMMA"
B. Introduction au Framework LAMMA (beta)
Le Framework LAMMA (beta) vise à être une suite complète pour
auditer la cryptographie, la PKI et les implémentations associées.
LAMMA (beta) prend en charge 4 modules principaux
REMOTE
CRYPTO
TRUST
SOURCE
REMOTE - Le module analyse les hôtes distants pour la configuration SSL/TLS et signale toute lacune ou vulnérabilité découverte.
Vérifications principales :
a) Version SSL/TLS, gestion des sessions et paramètres configurables du serveur
c) Vérification de l'utilisation de suites de chiffrement vulnérables/obsolètes
b) Test du certificat serveur
Type de vérification (EV/OV/DV)
Analyse chronologique des vulnérabilités SSL/TLS applicables
Vérification, validation
Fuites d'informations
Modulus commun
Force de l'algorithme de signature
Noms alternatifs
CRYPTO - Ce module vérifie diverses primitives cryptographiques générées par tout framework sous-jacent pour la qualité, les portes dérobées et la cohérence. Parmi les
Vérifications principales :
Test de qualité pour les nombres aléatoires générés
Tests de cohérence pour les nombres premiers partagés dans plusieurs clés RSA
Test de nombre premier sûr et fort
Test de modulus partagé
MalSha, test de condensé malformé
TRUST - Le module vérifie divers magasins de confiance et de clés pour les clés privées non sécurisées et les certificats non fiables.
Vérifications principales :
a) Clés privées
Stockées avec ou sans chiffrement
Permissions d'accès
Suivi des instances multiples
Extraction des nombres premiers pour le test du module CRYPTO
b) Clé publique
Extraction du modulus pour le test du module CRYPTO
Suivi des instances multiples
b) Certificats
Vérification dans le magasin de confiance et la CRL
Liste des certificats épinglés et non fiables
Suivi des instances multiples
Vérification, analyse chronologique commune avec le module REMOTE
C. Dépendances : LAMMA nécessite quelques paquets Python pour fonctionner. La liste des paquets requis est :
1. cmd2 - Exécute le shell personnalisé de Lamma
pip install cmd2
2. subprocess - Invoque Openssl ou d'autres scripts
pip install subprocess
3. pyOpenSSL - Wrapper autour d'OpenSSL
pip install openssl
D. Utilisation de LAMMA :
LAMMA.py lance le framework, avec un écran d'accueil et mène à l'invite LAMMA
$> python LAMMA.py
__ _____ _____ _____ _____
| | | _ | | | _ |
| |__| | | | | | | | |
|_____|__|__|_|_|_|_|_|_|__|__|
(BETA)
Cadre d'évaluation et d'audit des vulnérabilités
pour toutes les implémentations cryptographiques.
(Un projet Open Source)
par
SECURITY MONX
LAMMA :
Vous pouvez consulter l'aide rapide de chaque module avec la commande "help module"
LAMMA : help trust
Analyse un magasin de confiance/clés donné pour - certificats non fiables, clés privées non sécurisées,
LAMMA : help source
Analyse le code source pour les fonctions faibles ou avec portes dérobées connues
LAMMA : help crypto
Génère des clés, des hachages, des nombres aléatoires selon divers schémas pour un nombre donné
LAMMA : help remote
Analyse l'hôte distant et rapporte le profil de configuration SSL/TLS et les vulnérabilités applicables
LAMMA :
Pour savoir comment utiliser chaque module, tapez simplement le nom du module et vous obtiendrez une aide d'utilisation détaillée.
E. Fonctionnalités :
Le projet LAMMA est un travail en cours. En plus de nombreuses fonctionnalités, nous essayons de respecter ces principes de base :
1. Simple : L'utilisateur n'a pas besoin d'une compréhension approfondie de la cryptographie
pour utiliser ce framework. Il doit être intuitif et simple à
utiliser avec un apprentissage minimal.
2. Extensible : Le framework doit être extensible. La communauté d'utilisateurs doit
pouvoir étendre facilement les fonctionnalités en ajoutant des plugins
personnalisés.
3. Indépendant : Le framework utilise lui-même OpenSSL et des wrappers Python
mais peut être utilisé pour tester la cryptographie, la PKI et les implémentations
associées, indépendamment de la technologie utilisée (Java,
NSS, GnuTLS, SChannel) pour les concevoir.
4. Automatisation : "Évaluation à grande échelle de l'implémentation cryptographique, avec
facilité" est notre objectif principal derrière la conception de ce framework
F. Note :
a. LAMMA(beta) est un projet vivant.
b. Actuellement, il est conçu pour la plateforme Linux
c. Le code est fourni avec tous les droits et bugs à vous, sans aucune garantie ni responsabilité
de la part de l'auteur
d. Nous accueillons les bugs, commentaires, critiques, contributions ou même un simple mot sur votre expérience
avec LAMMA (beta). Écrivez-nous à
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. Contributeurs
1. Ajit Hatti - @ajithatti <handle twitter>
SOURCE - Le module sert principalement à appliquer les recommandations du "Cryptography Review Board" de votre organisation. Ce module analyse le code source pour détecter l'utilisation de schémas cryptographiques non sécurisés et obsolètes.
a) Schémas obsolètes
Famille de hachage MD
Hachages SHA/SHA1
Mode de chiffrement par blocs ECB/CBC
Fonctions rand() ou /dev/rand
<Autres schémas obsolètes/non sécurisés>
b) Schémas faibles (schémas avec portes dérobées)
Dual_EC_DRBG
prime2566v1
p224r1
secp384r1
<Autres schémas plus faibles/avec portes dérobées>
LAMMA : remote
remote [-H] [-s] [-l] [-o] [-i] [-p] [-h]
Objectif : Analyser un hôte distant avec un plugin donné via une connexion SSL/TLS
-H [--help] : affiche cette aide d'utilisation
-s [--script] : analyser la cible avec l'ID de script donné ou 'all','gen', ou 'reg'
-l [--list] : liste tous les plugins et leurs ID
-o [--out] : les rapports sont stockés dans ce fichier, sinon fichier par défaut
-i [--in] : nom du fichier d'entrée avec plusieurs IP:Port spécifiés sur chaque ligne
-p [--port] : port sur lequel la connexion SSL ou TLS doit être établie
-h [--host] : adresse IP ou nom de domaine de l'hôte distant à connecter
LAMMA :
Exemple d'utilisation du module "remote", nous analysons "null.co.in" pour les plugins dans gen et les résultats seront stockés dans le fichier final.html.
LAMMA : remote -h null.co.in -p 443 -s gen -o final.html
[*] Service d'analyse Lamma [Démarré] ...
[+] Paramètres définis pour cette analyse :
Tests à exécuter => gen Hôte cible => null.co.in
Port cible => 443
Les rapports seront stockés dans le fichier => final.html
[+] Démarrage de l'analyse
Kick gen
[+] Démarrage... /home/evader/Desktop/RELEASE/LAMMA/modules/remote-module/gen
Exécution en cours : server_config.py -h null.co.in -p 443 -o final.html
Exécution en cours : scan_ssl.py -h null.co.in -p 443 -o final.html
[+] Analyse terminée...
LAMMA :
Sortie du module d'analyse "remote" pour "null.co.in"
--- Début des vérifications de configuration du serveur pour l'hôte - null.co.in ---
Réponse du serveur :
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
Validation de la chaîne de certificats :
Certificat de Digital Signature Trust Co. : est valide
Certificat de Let's Encrypt : est valide
Certificat de null.co.in : est valide
La chaîne de certificats est vérifiée et fiable
--- Vérifications de configuration du serveur terminées...
--- Analyse de l'hôte démarrée ---
Nom de l'hôte distant : null.co.in
IPv4 de l'hôte distant : 104.237.152.34
Port de l'hôte distant : 443
Suite de chiffrement utilisée : ECDHE-RSA-AES128-GCM-SHA256
Nom du sujet = null.co.in
Nom de l'émetteur = Let's Encrypt Authority X1
Date de début : 20160313112800Z
Date de fin : 20160611112800Z
Algorithme de signature : sha256WithRSAEncryption
subjectAltName:
jobs.null.co.in
null.co.in
www.null.co.in
[INFO] Le type de vérification des certificats : DV
Taille de la clé publique [2048]
--- Fin de l'analyse SSL ---