Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
mariana-trench — Инструмент статического анализа безопасности для приложений Android и Java. | Kitploit
Инструменты/GitHubGitHub/facebook/mariana-trench
Безопасность AndroidСтатический анализАнализ уязвимостейАнализ КодаМобильная безопасность
GitHubfacebook/mariana-trench

mariana-trench

Инструмент статического анализа безопасности для приложений Android и Java.

Репозиторий
1.2k1562 ч 27 мин назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться
Сайт

Mariana Trench

логотип

MIT License .github/workflows/tests.yml

Mariana Trench — это статический анализатор безопасности, ориентированный на Android.

Это руководство поможет вам установить Mariana Trench на свою машину и найти первую уязвимость удалённого выполнения кода в небольшом тестовом приложении. Инструкции также доступны на нашем веб-сайте.

Предварительные требования

Mariana Trench требует свежую версию Python. На MacOS можно получить актуальную версию через homebrew:

root@kitploit:~
$ brew install python3

На Linux, основанном на Debian (Ubuntu, Mint, Debian), можно использовать apt-get:

root@kitploit:~
$ sudo apt-get install python3 python3-pip python3-venv

Также предполагается, что у вас установлен Android SDK и определена переменная окружения $ANDROID_SDK, указывающая на расположение SDK.

Далее в руководстве мы предполагаем, что вы работаете внутри виртуального окружения. Его можно настроить так:

root@kitploit:~
$ python3 -m venv ~/.venvs/mariana-trench
$ source ~/.venvs/mariana-trench/bin/activate
(mariana-trench)$

Название виртуального окружения перед приглашением оболочки указывает на то, что виртуальное окружение активно.

Установка Mariana Trench

Внутри виртуального окружения установить Mariana Trench так же просто, как выполнить:

root@kitploit:~
(mariana-trench)$ pip install mariana-trench

Примечание: установка через pip в настоящее время не поддерживается на Mac с процессором Apple Silicon; вы можете собрать из исходников, следуя инструкциям в Руководстве разработчика.

Запуск Mariana Trench

Мы будем использовать небольшое приложение, которое является частью нашей документации. Вы можете получить его, выполнив:

root@kitploit:~
(mariana-trench)$ git clone https://github.com/facebook/mariana-trench
(mariana-trench)$ cd mariana-trench/

Теперь мы готовы запустить анализ:

root@kitploit:~
(mariana-trench)$ mariana-trench \
  --system-jar-configuration-path=configuration/default_system_jar_paths.json \
  --model-generator-configuration-paths=configuration/default_generator_config.json \
  --lifecycles-paths=configuration/lifecycles.json \
  --rules-paths=configuration/rules.json \
  --apk-path=documentation/sample-app/app/build/outputs/apk/debug/app-debug.apk \
  --source-root-directory=documentation/sample-app/app/src/main/java \
  --model-generator-search-paths=configuration/model-generators/

# ...
INFO Analyzed 68937 models in 7.47s. Found 9 issues!
# ...

Анализ нашёл 9 проблем в нашем тестовом приложении. Результатом анализа является набор спецификаций для каждого метода приложения.

Постобработка

Сами спецификации не предназначены для чтения человеком. Нам нужен дополнительный шаг обработки, чтобы сделать результаты более наглядными. Для этого мы используем SAPP, который устанавливается через PyPi:

root@kitploit:~
(mariana-trench)$ sapp --tool=mariana-trench analyze .
(mariana-trench)$ sapp --database-name=sapp.db server --source-directory=documentation/sample-app/app/src/main/java
# ...
2021-05-12 12:27:22,867 [INFO]  * Running on http://localhost:13337/ (Press CTRL+C to quit)

Последняя строка вывода сообщает, что SAPP запустил локальный веб-сервер, позволяющий просматривать результаты. Откройте ссылку, и вы увидите 4 проблемы, найденные анализом.

Изучение результатов

Давайте сосредоточимся на проблеме удалённого выполнения кода, найденной в тестовом приложении. Вы можете определить её по коду проблемы 1 (для всех удалённых выполнений кода) и вызываемому методу void MainActivity.onCreate(Bundle). Имея всего 4 проблемы, легко найти её вручную, но когда запускается больше правил, фильтр в правом верхнем углу страницы становится очень полезным.

Отображение одной проблемы

Проблема сообщает вам, что Mariana Trench обнаружил удалённое выполнение кода в MainActivity.onCreate, где данные поступают из Activity.getIntent на расстоянии одного вызова и перетекают в конструктор ProcessBuilder через 3 вызова. Нажмите «Traces» в правом верхнем углу проблемы, чтобы увидеть пример трассы.

Трасса, выявленная Mariana Trench, состоит из трёх частей.

Трасса источника представляет, откуда поступают данные. В нашем примере трасса очень короткая: Activity.getIntent вызывается непосредственно в MainActivity.onCreate. Источник трассы

Корень трассы представляет место, где встречаются трасса источника и трасса стока. В нашем примере это метод onCreate активности. Корень трассы

Последняя часть трассы — трасса стока: это то, где данные из источника стекают в сток. В нашем примере от onCreate к onClick, к execute и, наконец, в конструктор ProcessBuilder. Сток трассы

Настройка Mariana Trench

Вы, возможно, спрашиваете себя: «Как инструмент узнает, какие данные контролируются пользователем, а что является стоком?» Это руководство предназначено для быстрого начала работы с небольшим приложением. Мы не рассматривали, как настраивать Mariana Trench. Подробнее об этом можно прочитать на нашем веб-сайте в разделе Конфигурация.

Участие в разработке

Подробное руководство по сборке из исходников и разработке Mariana Trench можно найти в Руководстве разработчика на нашем веб-сайте.

Лицензия

Mariana Trench распространяется под лицензией MIT.

Скачать инструмент