#LAMMA (BETA)
###すべての暗号実装のための脆弱性評価フレームワーク
(SECURITY MONX によるオープンソースイニシアチブ)
Lamma Framework ドキュメント (beta)
ファイル名 : README
著者 : @ajithatti
組織 : Security Monx
バージョン : 0.0.1
目的 : Lamma Framework (beta) の紹介
目次 :
A. ライセンス情報
B. Lamma Framework (beta) の紹介
C. 依存関係
D. LAMMA の使用
E. 機能
F. 注意
G. 貢献者
A. ライセンス情報
LAMMA Framework (beta) とそのドキュメントはライセンスがありません。
いかなる方法でも自由に使用できます。一切の条件はありません。
プロジェクトの詳細については、Webサイトをご覧ください。
"http://www.securitymonx.com/Project-LAMMA"
B. LAMMA Framework (beta) の紹介
LAMMA Framework (beta) は、暗号、PKI、および関連実装の監査のための包括的なスイートを目指しています。
LAMMA (beta) は4つの主要モジュールをサポートしています
REMOTE
CRYPTO
TRUST
SOURCE
REMOTE - モジュールはリモートホストのSSL/TLS構成をスキャンし、発見されたギャップや脆弱性を報告します。
主なチェック:
a) SSL/TLSバージョン、セッション管理、サーバー設定可能パラメータ
c) 脆弱/非推奨の暗号スイートの使用チェック
b) サーバー証明書テスト
検証タイプ (EV/OV/DV)
該当するSSL/TLS脆弱性のタイムライン分析
検証、妥当性確認
情報漏洩
共通モジュラス
署名アルゴリズムの強度
代替名
CRYPTO - このモジュールは、基礎となるフレームワークによって生成されたさまざまな暗号プリミティブを品質、バックドア、健全性についてチェックします。
主なチェック:
生成された乱数の品質テスト
複数のRSA鍵における共有素数の健全性チェック
安全で強い素数のテスト
共有モジュラステスト
MalSha, Malformed Digest Test
TRUST - モジュールはさまざまなトラストストアやキーストアをチェックします - 安全でない秘密鍵と信頼できない証明書。
主なチェック:
a) 秘密鍵
暗号化あり/なしで保存
アクセス権限
複数インスタンスの追跡
CRYPTOモジュールテストのための素数抽出
b) 公開鍵
CRYPTOモジュールテストのためのモジュラス抽出
複数インスタンスの追跡
b) 証明書
信頼できるストアとCRLのチェック
ピン留めされた証明書と信頼できない証明書の一覧表示
複数インスタンスの追跡
検証、REMOTEモジュールと共通のタイムライン分析
SOURCE - モジュールは主に組織の「暗号レビュー委員会」の推奨事項を強制します。このモジュールはソースコードをスキャンして、安全でない非推奨の暗号スキームの使用をチェックします。
a) 非推奨スキーム
MDファミリのハッシュスキーム
SHA/SHA1ハッシュ
ECB/CBCブロック暗号モード
rand() または /dev/rand 関数
<その他の非推奨/安全でないスキーム>
b) 弱いスキーム(バックドアされたスキーム)
Dual_EC_DRBG
prime2566v1
p224r1
secp384r1
<その他の弱い/バックドアされたスキーム>
C. 依存関係 : LAMMAは動作のためにいくつかのPythonパッケージが必要です。必要なパッケージのリストは次のとおりです:
1. cmd2 - Lammaのカスタムシェルを実行します
pip install cmd2
2. subprocess - Opensslや他のスクリプトを呼び出します
pip install subprocess
3. pyOpenSSL - OpenSSLのラッパー
pip install openssl
D. LAMMA の使用 :
LAMMA.py がフレームワークを起動し、ウェルカム画面を表示して LAMMA プロンプトに移行します
$> python LAMMA.py
__ _____ _____ _____ _____
| | | _ | | | _ |
| |__| | | | | | | | |
|_____|__|__|_|_|_|_|_|_|__|__|
(BETA)
Vulnerability Assessment and Auditing Framework
for all the Crypto Implementations.
(An Open Source Project)
by
SECURITY MONX
LAMMA :
各モジュールの簡単なヘルプは、"help module" コマンドで表示できます
LAMMA : help trust
指定されたトラスト/キーストアをスキャン - 信頼できない証明書、安全でない秘密鍵、
LAMMA : help source
ソースコードをスキャンして既知の弱いまたはバックドアされた関数を検出
LAMMA : help crypto
指定された数だけ様々なスキームで鍵、ハッシュ、乱数を生成
LAMMA : help remote
リモートホストをスキャンし、SSL/TLS構成プロファイルと該当する脆弱性を報告
LAMMA :
各モジュールの使用方法を知るには、モジュール名を入力するだけで詳細な使用方法のヘルプが表示されます。
LAMMA : remote
remote [-H] [-s] [-l] [-o] [-i] [-p] [-h]
目的 : 指定されたプラグインを使用してリモートホストをSSL/TLS接続でスキャン
-H [--help] : この使用方法のヘルプを表示
-s [--script] : 指定されたスクリプトIDまたは'all','gen','reg'でターゲットをスキャン
-l [--list] : すべてのプラグインとプラグインIDを一覧表示
-o [--out] : レポートはこのファイルに保存(デフォルトファイルの代わり)
-i [--in] : 各行にIP:Portを指定した入力ファイル名
-p [--port] : SSLまたはTLS接続を行うポート
-h [--host] : 接続するリモートホストのIPまたはドメイン名
LAMMA :
E. 機能 :
LAMMA プロジェクトは進行中の作業です。多くの機能とともに、以下の基本原則に従うよう努めています:
1. シンプル : ユーザーは暗号に関する深い知識がなくても
このフレームワークを使用できます。直感的で最小限の学習で
使用できるようにすべきです。
2. 拡張可能 : フレームワークは拡張可能であるべきです。ユーザーコミュニティが
カスタムプラグインを追加することで容易に機能を拡張できるように
すべきです。
3. 独立 : フレームワーク自体は OpenSSL とその上の Python ラッパーを使用しますが、
暗号、PKI、および関連実装をテストするために使用でき、使用されている技術
(Java、NSS、GnuTLS、SChannel など)に依存しません。
4. 自動化 : 「暗号実装の大規模評価を容易に行う」ことが
このフレームワーク設計の主な焦点です
F. 注意 :
a. LAMMA(beta) は生きているプロジェクトです。
b. 現在は Linux プラットフォーム用に構築されています
c. コードは、著者からのいかなる保証や責任もなく、すべての権利とバグを含めて提供されます
d. バグ、コメント、批評、貢献、または LAMMA (beta) のご経験に関する簡単なメモを歓迎します。以下のアドレスまでお知らせください
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. 貢献者
1. Ajit Hatti - @ajithatti <twitter handle>
"remote" モジュールの使用例。"null.co.in" をスキャンし、gen プラグインを使用、結果は final.html ファイルに保存されます。
LAMMA : remote -h null.co.in -p 443 -s gen -o final.html
[*] Lamma Scanning Service [Started] ...
[+] このスキャンに設定されたパラメータ:
実行するテスト => gen ターゲットホスト => null.co.in
ターゲットポート => 443
レポートはファイル => final.html に保存されます
[+] スキャンを開始
gen を起動
[+] 起動中... /home/evader/Desktop/RELEASE/LAMMA/modules/remote-module/gen
実行中: server_config.py -h null.co.in -p 443 -o final.html
実行中: scan_ssl.py -h null.co.in -p 443 -o final.html
[+] スキャン完了...
LAMMA :
"null.co.in" に対する "remote" スキャンモジュールの出力
--- Starting Server Config Checks for host - null.co.in ---
Server Response :
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
Certificate Chain validation :
Cert of Digital Signature Trust Co. : 有効
Cert of Let's Encrypt : 有効
Cert of null.co.in : 有効
証明書チェーンは検証済みで信頼できます
--- Server Configuration checks Complete...
--- Scanning host started ---
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] The Certificates Verification type : DV
Public Key Size [2048]
--- End of the SSL Scan ---