
Schwachstellenbewertungs- und Prüfungsrahmen für alle Krypto-Implementierungen.
#LAMMA (BETA)
###Schwachstellenbewertungsrahmen für alle Krypto-Implementierungen.
(Eine Open-Source-Initiative von - SECURITY MONX )
Lamma Framework Dokumentation (beta)
Dateiname : README
Autor : @ajithatti
Organisation : Security Monx
Version : 0.0.1
Zweck : Gibt eine Einführung in das Lamma Framework (beta)
Inhaltsverzeichnis :
A. Lizenzinformationen
B. Einführung in das Lamma Framework (beta)
C. Abhängigkeiten
D. Verwendung von LAMMA
E. Funktionen
F. Hinweis
G. Mitwirkende
A. Lizenzinformationen
Das LAMMA Framework (Beta) und seine Dokumente sind ohne Lizenzen.
Sie können es nach Belieben verwenden. Es gibt keinerlei Bedingungen.
Details zum Projekt finden Sie auf unserer Website
"http://www.securitymonx.com/Project-LAMMA"
B. Einführung in das LAMMA Framework (Beta)
Das LAMMA Framework (Beta) zielt darauf ab, eine umfassende Suite für
die Prüfung von Kryptografie, PKI und verwandten Implementierungen zu sein.
LAMMA (Beta) unterstützt 4 Hauptmodule
REMOTE
CRYPTO
TRUST
SOURCE
REMOTE - Das Modul scannt entfernte Hosts auf SSL/TLS-Konfiguration und meldet etwaige Lücken und entdeckte Schwachstellen.
Primäre Prüfungen :
a) SSL/TLS-Version, Sitzungsverwaltung und konfigurierbare Serverparameter
c) Überprüfung auf Verwendung anfälliger/veralteter Cipher-Suiten
b) Serverzertifikatstest
Verifizierungstyp (EV/OV/DV)
Zeitlinienanalyse anwendbarer SSL/TLS-Schwachstellen
Verifizierung, Validierung
Informationslecks
Gemeinsamer Modulus
Stärke des Signaturalgorithmus
Alternative Namen
CRYPTO - Dieses Modul prüft die verschiedenen Krypto-Primitiven, die von jedem zugrunde liegenden Framework generiert werden, auf Qualität, Backdoor und Korrektheit. Einige wenige
Primäre Prüfungen :
Qualitätstest für generierte Zufallszahlen
Korrektheitsprüfungen für gemeinsame Primzahlen in mehreren RSA-Schlüsseln
Test auf sichere und starke Primzahlen
Test auf gemeinsamen Modulus
MalSha, Malformed-Digest-Test
TRUST - Das Modul prüft verschiedene Vertrauens- und Schlüsselspeicher auf - unsichere private Schlüssel und nicht vertrauenswürdige Zertifikate.
Primäre Prüfungen:
a) Private Schlüssel
Gespeichert mit/ohne Verschlüsselung
Zugriffsberechtigung
Mehrere Instanzen verfolgen
Primzahl extrahieren für CRYPTO-Modultest
b) Öffentlicher Schlüssel
Modulus extrahieren für CRYPTO-Modultest
Mehrere Instanzen verfolgen
c) Zertifikate
Überprüfung im vertrauenswürdigen Speicher und CRL
Gepinnte und nicht vertrauenswürdige Zertifikate auflisten
Mehrere Instanzen verfolgen
Verifizierung, Zeitlinienanalyse gemeinsam mit REMOTE-Modul
C. Abhängigkeiten : LAMMA benötigt einige Python-Pakete für seine Funktion. Die Liste der erforderlichen Pakete ist :
1. cmd2 - Führt die benutzerdefinierte Shell von Lamma aus
pip install cmd2
2. subprocess - Aufruf von OpenSSL oder anderen Skripten
pip install subprocess
3. pyOpenSSL - Wrapper über OpenSSL
pip install openssl
D. Verwendung von LAMMA :
LAMMA.py startet das Framework mit einem Begrüßungsbildschirm und führt zur LAMMA-Eingabeaufforderung
$> python LAMMA.py
__ _____ _____ _____ _____
| | | _ | | | _ |
| |__| | | | | | | | |
|_____|__|__|_|_|_|_|_|_|__|__|
(BETA)
Schwachstellenbewertungs- und Auditierungs-Framework
für alle Krypto-Implementierungen.
(Ein Open-Source-Projekt)
von
SECURITY MONX
LAMMA :
Sie können die Mikrohilfe für jedes Modul mit dem Befehl "help module" anzeigen
LAMMA : help trust
Scannt einen gegebenen Vertrauens-/Schlüsselspeicher auf nicht vertrauenswürdige Zertifikate, unsichere private Schlüssel,
LAMMA : help source
Scannt den Quellcode auf bekannte schwache oder backdoorierte Funktionen
LAMMA : help crypto
Generiert Schlüssel, Hashes, Zufallszahlen unter verschiedenen Schemata für eine gegebene Anzahl
LAMMA : help remote
Scannt den entfernten Host und meldet das SSL/TLS-Konfigurationsprofil und anwendbare Schwachstellen
LAMMA :
Um zu erfahren, wie Sie jedes Modul verwenden, geben Sie einfach den Modulnamen ein, und Sie erhalten eine ausführliche Nutzungshilfe.
E. Funktionen :
Das LAMMA-Projekt ist in Arbeit. Wir versuchen, neben vielen funktionalen Merkmalen an diesen grundlegenden Prinzipien festzuhalten :
1. Einfach : Der Benutzer muss kein tiefes Verständnis der Kryptografie haben,
um dieses Framework zu nutzen. Es sollte intuitiv und einfach zu
bedienen sein mit minimalem Lernaufwand.
2. Erweiterbar : Das Framework sollte erweiterbar sein. Die Benutzergemeinschaft sollte
in der Lage sein, die Funktionalitäten leicht durch Hinzufügen
benutzerdefinierter Plugins zu erweitern.
3. Unabhängig : Das Framework selbst verwendet OpenSSL und Python-Wrapper darüber,
kann aber verwendet werden, um die Kryptografie, PKI & verwandte
Implementierungen zu testen, unabhängig von der verwendeten Technologie
wie (Java, NSS, GnuTLS, SChannel), um sie zu entwickeln.
4. Automatisierung : "Großflächige Bewertung der Krypto-Implementierung mit Leichtigkeit"
ist unser Hauptaugenmerk hinter dem Design dieses Frameworks
F. Hinweis :
a. LAMMA(Beta) ist ein lebendiges Projekt.
b. Derzeit ist es für die Linux-Plattform gebaut.
c. Der Code wird mit allen Rechten und Fehlern ohne jegliche Garantie oder Haftung
des Autors zur Verfügung gestellt.
d. Wir begrüßen Fehlerberichte, Kommentare, Kritik, Beiträge oder auch nur eine kurze Notiz
über Ihre Erfahrungen mit LAMMA (Beta). Schreiben Sie uns an
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. Mitwirkende
1. Ajit Hatti - @ajithatti <twitter handle>
SOURCE - Das Modul dient hauptsächlich dazu, die Empfehlungen des "Cryptography Review Board" Ihrer Organisation durchzusetzen. Dieses Modul scannt den Quellcode auf die Verwendung unsicherer und veralteter kryptografischer Schemata.
a) Veraltete Schemata
Hashing-Schemata der MD-Familie
SHA/SHA1-Hashes
ECB/CBC-Blockchiffrier-Modus
rand()- oder /dev/rand-Funktionen
<Weitere veraltete/unsichere Schemata>
b) Schwache Schemata (Backdoorierte Schemata)
Dual_EC_DRBG
prime2566v1
p224r1
secp384r1
<Weitere schwächere/backdoorierte Schemata>
LAMMA : remote
remote [-H] [-s] [-l] [-o] [-i] [-p] [-h]
Zweck : Scannt einen entfernten Host mit dem angegebenen Plugin über SSL/TLS-Verbindung
-H [--help] : gibt diese Nutzungshilfe aus
-s [--script] : scannt das Ziel mit der angegebenen Skript-ID oder 'all', 'gen', oder 'reg'
-l [--list] : listet alle Plugins und Plugin-IDs auf
-o [--out] : Berichte werden in dieser Datei gespeichert, sonst Standarddatei
-i [--in] : Eingabedateiname mit mehreren IP:Port-Angaben pro Zeile
-p [--port] : Port, über den die SSL- oder TLS-Verbindung hergestellt werden soll
-h [--host] : IP oder Domänenname des zu verbindenden entfernten Hosts
LAMMA :
Beispielnutzung des "remote"-Moduls: Wir scannen "null.co.in" nach Plugins in "gen", die Ergebnisse werden in der Datei "final.html" gespeichert.
LAMMA : remote -h null.co.in -p 443 -s gen -o final.html
[*] Lamma Scanning Service [Started] ...
[+] Parameter für diesen Scan festgelegt :
Tests zum Ausführen => gen Zielhost => null.co.in
Zielport => 443
Berichte werden in Datei gespeichert => final.html
[+] Scan starten
Kick gen
[+] Starte... /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
[+] Scan abgeschlossen...
LAMMA :
Ausgabe des "remote"-Scanmoduls für "null.co.in"
--- Start der Serverkonfigurationsprüfungen für Host - null.co.in ---
Serverantwort :
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
Zertifikatskettenvalidierung :
Zertifikat der Digital Signature Trust Co. : ist gültig
Zertifikat von Let's Encrypt : ist gültig
Zertifikat von null.co.in : ist gültig
Zertifikatskette ist verifiziert und vertrauenswürdig
--- Serverkonfigurationsprüfungen abgeschlossen...
--- Scannen des Hosts gestartet ---
Remote Host name :null.co.in
Remote Host IPv4 :104.237.152.34
Remote Host Port :443
Cipher Suite used : ECDHE-RSA-AES128-GCM-SHA256
Subject Name = null.co.in
Issuer Name = Let's Encrypt Authority X1
Start Date : 20160313112800Z
End Date : 20160611112800Z
Signature Algorithm : sha256WithRSAEncryption
subjectAltName:
jobs.null.co.in
null.co.in
www.null.co.in
[INFO] Der Zertifikatsverifizierungstyp : DV
Public Key Size [2048]
--- End of the SSL Scan ---