
Определите, действительно ли ваша вычислительная среда уязвима к конкретной уязвимости, учитывая все факторы, влияющие на *фактическую* эксплуатируемость (выполнение в рантайме, конфигурация, разрешения, наличие средства смягчения, ОС и т.д.)
Author: 2022 - настоящее время, Rezilion
Description: Проверка уязвимостей
Development: Январь 2022 - настоящее время
Documentation: См. веб-сайт, README
«Am I Exploitable?» — это проект с открытым исходным кодом на Python, созданный для удовлетворения потребности в проверке, является ли ваша система эксплуатируемой для конкретных уязвимостей. Проект помогает понять, подвержены ли вы конкретной уязвимости, и объясняет, какой компонент в вашей системе является уязвимым, а какой — нет. Проект может создавать граф, представляющий логику проверки в соответствии с выполняемыми нами проверками уязвимостей. MI-X поддерживает машиночитаемый вывод. Результаты могут быть экспортированы в три различных формата файлов: json, csv и text. После выполнения инструмента вы увидите процесс проверки — он выведет, какие проверки были выполнены на хосте/контейнере, а также рекомендации по исправлению и смягчению последствий. Мы хотим создать сообщество исследователей и программистов, которые смогут добавлять проверки уязвимостей для новых, критических или известных уязвимостей. Как только появляется новая уязвимость, мы можем предложить этот сервис, который помогает людям проверить, эксплуатируемы ли они. Кроме того, проверки уязвимостей, написанные нами на данный момент, могут быть расширены некоторыми проверками, которые мы могли пропустить.
Пример графа процесса проверки для CVE-2021-4034 (также известного как PwnKit):
Каждый может свободно использовать «Am I Exploitable?» на условиях лицензии AGPL-3.0 (см. файл LICENSE).
am_i_exploitable.py — основной файл, который обрабатывает пользовательский ввод и вызовы CVE.cves — Python-пакет, содержащий Python-файл для каждой поддерживаемой в данный момент уязвимости.modules — Python-пакет, содержащий модули.
Модули — это реализации кода, которые используются в различных файлах CVE.Инструмент поддерживает следующие дистрибутивы Linux:
Ubuntu, Debian, Red Hat, Centos, Fedora, SUSE, SLES, Amazon
Частичная поддержка Alpine
Частичная поддержка Windows
Перед установкой MI-X убедитесь, что на вашей машине есть следующее:
openjdk10)Чтобы установить требования:
Проверьте ваш дистрибутив ОС, можно использовать следующую команду:
cat /etc/os-release
Определите, какой пакетный менеджер использует ваш дистрибутив ОС:
apt - Ubuntu, Debian
yum - Red Hat, CentOS, Fedora, SUSE, SLES, Amazon
apk - Alpine
Установите соответствующие пакеты с помощью пакетного менеджера вашего дистрибутива ОС
Для корректного выполнения MI-X необходимо установить graphviz и требуемые Python-модули с помощью pip:
pip install -r requirements.txt
Самые последние наработки можно получить через git.
git clone https://github.com/Rezilion/mi-x.git
cd mi-x && python3 am_i_exploitable.py
Шаблон команды сканирования
python3 am_i_exploitable.py -v cve_yyyy_xxxx -c True -g True -f json
Сканирование машины с запущенными контейнерами на наличие log4shell.
python3 am_i_exploitable.py -v log4shell -c True -f json

Указывает уязвимость, которая будет проверена (по умолчанию не задано).
Синтаксис:
Если аргумент не задан, появится меню с сообщением, представляющим текущие поддерживаемые уязвимости.
Сканирует все запущенные контейнеры на хосте (по умолчанию False).
Сканирует определённые контейнеры на хосте, получая имена запущенных контейнеров, разделённые пробелами (по умолчанию не задано).
Экспортирует результаты в один из трёх возможных форматов вывода: json, csv, text
Указывает, показывать ли описание уязвимости или нет (по умолчанию True).
Указывает, показывать ли блок-схему процесса проверки (по умолчанию False).
Помощь, чтобы понять, как запустить код
Нашли проблему или у вас есть отличная идея? Дайте нам знать:
Вклад приветствуется, его можно внести через GitHub.
См. CONTRIBUTING.md для получения дополнительной информации о том, как их отправлять.
«Am I Exploitable?» протестирован на Windows и большинстве распространённых операционных систем Linux. Документация (README) и отладочная информация (установите параметр debug в 'True') должны покрыть большинство вопросов и проблем.
Сообщить об ошибках можно через GitHub или отправив электронное письмо на указанный выше адрес электронной почты.
Спасибо сообществу за использование и поддержку программного обеспечения с открытым исходным кодом.
Множество комментариев, ошибок/исправлений и вопросов — ключ к успеху и постоянной мотивации в разработке таких инструментов.