
Фреймворк для оценки уязвимостей и аудита для всех криптографических реализаций.
#LAMMA (БЕТА)
###Фреймворк оценки уязвимостей для всех крипто-реализаций.
(Инициатива с открытым исходным кодом от - SECURITY MONX )
Документация по фреймворку Lamma (бета)
Имя файла : README
Автор : @ajithatti
Организация : Security Monx
Версия : 0.0.1
Назначение : Дает введение в фреймворк Lamma (бета)
Содержание :
A. Информация о лицензиях
B. Введение в фреймворк Lamma (бета)
C. Зависимости
D. Использование LAMMA
E. Особенности
F. Примечание
G. Участники
A. Информация о лицензиях
Фреймворк LAMMA (бета) и его документы не имеют никаких лицензий.
Вы можете использовать его любым способом. Никаких условий.
Подробнее о проекте на нашем сайте
"http://www.securitymonx.com/Project-LAMMA"
B. Введение в фреймворк LAMMA (бета)
Фреймворк LAMMA (бета) стремится стать комплексным набором для
аудита криптографии, PKI и связанных реализаций.
LAMMA (бета) поддерживает 4 основных модуля
REMOTE
CRYPTO
TRUST
SOURCE
REMOTE - Модуль сканирует удаленные хосты на предмет конфигурации SSL/TLS и сообщает о любых пробелах и уязвимостях.
Основные проверки :
a) Версия SSL/TLS, управление сессиями и настраиваемые параметры сервера
c) Проверка на использование уязвимых/устаревших наборов шифров
b) Тест сертификата сервера
Тип проверки (EV/OV/DV)
Анализ временной шкалы применимых уязвимостей SSL/TLS
Проверка, валидация
Утечки информации
Общий модуль
Стойкость алгоритма подписи
Альтернативные имена
CRYPTO - Этот модуль проверяет различные криптопримитивы, сгенерированные любой базовой платформой, на качество, наличие бэкдоров и корректность.
Основные проверки :
Тест качества сгенерированных случайных чисел
Проверка корректности общих простых чисел в нескольких RSA-ключах
Тест на безопасные и сильные простые числа
Тест общего модуля
MalSha, тест искаженного дайджеста
TRUST - Модуль проверяет различные хранилища доверия и ключей на наличие небезопасных закрытых ключей и недоверенных сертификатов.
Основные проверки:
a) Закрытые ключи
Хранение с шифрованием/без шифрования
Права доступа
Отслеживание нескольких экземпляров
Извлечение простого числа для теста модуля CRYPTO
b) Открытые ключи
Извлечение модуля для теста модуля CRYPTO
Отслеживание нескольких экземпляров
c) Сертификаты
Проверка в доверенном хранилище и 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
__ _____ _____ _____ _____
| | | _ | | | _ |
| |__| | | | | | | | |
|_____|__|__|_|_|_|_|_|_|__|__|
(БЕТА)
Фреймворк оценки уязвимостей и аудита
для всех крипто-реализаций.
(Проект с открытым исходным кодом)
от
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 :
Пример использования модуля "remote": мы сканируем "null.co.in" для плагинов из набора gen, результаты будут сохранены в файл final.html.
LAMMA : remote -h null.co.in -p 443 -s gen -o final.html
[*] Сервис сканирования Lamma [Запущен] ...
[+] Параметры, установленные для этого сканирования:
Тесты для запуска => gen Целевой хост => null.co.in
Целевой порт => 443
Отчеты будут сохранены в файл => final.html
[+] Запуск сканирования
Kick 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 :
Вывод модуля сканирования "remote" для "null.co.in"
--- Начало проверок конфигурации сервера для хоста - null.co.in ---
Ответ сервера :
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
Проверка цепочки сертификатов :
Сертификат Digital Signature Trust Co. : действителен
Сертификат Let's Encrypt : действителен
Сертификат null.co.in : действителен
Цепочка сертификатов проверена и заслуживает доверия
--- Проверки конфигурации сервера завершены...
--- Сканирование хоста начато ---
Имя удаленного хоста :null.co.in
IPv4 удаленного хоста :104.237.152.34
Порт удаленного хоста :443
Используемый набор шифров : ECDHE-RSA-AES128-GCM-SHA256
Имя субъекта = null.co.in
Имя издателя = Let's Encrypt Authority X1
Дата начала : 20160313112800Z
Дата окончания : 20160611112800Z
Алгоритм подписи : sha256WithRSAEncryption
subjectAltName:
jobs.null.co.in
null.co.in
www.null.co.in
[INFO] Тип проверки сертификатов : DV
Размер открытого ключа [2048]
--- Конец SSL-сканирования ---
E. Особенности :
Проект LAMMA находится в разработке. Наряду со многими функциональными возможностями мы стараемся придерживаться следующих основных принципов :
1. Простота : Пользователю не нужно глубокое понимание криптографии
для использования этого фреймворка. Он должен быть интуитивно
понятным и простым в использовании с минимальным обучением.
2. Расширяемость : Фреймворк должен быть расширяемым. Сообщество пользователей
должно иметь возможность легко расширять функционал, добавляя
собственные плагины.
3. Независимость : Сам фреймворк использует OpenSSL и обертки Python над ним,
но может использоваться для тестирования криптографии, PKI и
связанных реализаций независимо от используемой технологии (Java,
NSS, GnuTLS, SChannel) для их разработки.
4. Автоматизация : "Крупномасштабная оценка крипто-реализаций с легкостью" —
наша главная цель при разработке этого фреймворка.
F. Примечание :
a. LAMMA (бета) — это живой проект.
b. В настоящее время он создан для платформы Linux.
c. Код предоставляется со всеми правами и ошибками без каких-либо гарантий
или ответственности со стороны автора.
d. Мы приветствуем сообщения об ошибках, комментарии, критику, вклад или
просто заметку о вашем опыте работы с LAMMA (бета). Пишите нам по адресу
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>