Как стать автором
Обновить

Osmedeus — инструмент наступательной безопасности

Уровень сложностиПростой
Время на прочтение3 мин
Количество просмотров2.6K

Osmedeus — это фреймворк, позволяющий автоматизировать этап разведки при проведении тестирований на проникновение, также подходящий для выстраивания Vulerability management. Основной подход, которому следовали разработчики при создании инструмента, — не заменить все имеющиеся утилиты, а наоборот объединить их для максимальной эффективности и гибкости настроек.

Структура Osmedeus

Состоит из двух компонентов:

  • Core Engine (написан на Go, отвечает за обработку сложной логики и позволяет оптимизировать процесс работы);

  • Workflow (набор YAML файлов, которые будут выполняться в заданном порядке);

Соответственно, как мы видим на изображении, workflow состоит из определенных модулей, которые могут запускаться последовательно или параллельно, а также использовать в качестве входных данных вывод с предыдущих этапов сканирований.

Workflow

Default

Прежде, чем переходить к созданию собственного рабочего процесса, изучим, что нам уже доступно для использования после стандартной установки, сделать это можно при помощи команды osmedeus worflow list :

Default Workflow
Default Workflow

Всего представлено 10 workflow для различных целей: поиск поддоменов, определение открытых портов, выявление уязвимостей и пр.

Более подробно узнать о каждом workflow можно непосредственно в директории их расположения ~/osmedeus-base/worflow/. В YAML‑файле каждого рабочего процесса будет храниться информация об используемых модулях, порядке их запуска, а также различные дополнительные параметры. Например, содержимое cidr.yaml (определяет workflow c одноименным названием — CIDR):

Модули

Содержимое же дефолтных модулей расположено в ~/osmedeus-base/workflow/default-modules, в них можно найти конкретные шаги по запуску утилит. Выглядит это примерно так:

steps: # all the steps will run in serial
  - commands: # unix command and it will be run in parallel
      - "unix command 1 here"
      - "unix command 2 here"

Итого, мы определили — flow состоит из нескольких модулей и определяет порядок их запуска. Модуль — составная часть flow, определяет steps для запуска утилит и иных команд. Steps — это самая «маленькая» часть (атом Osmedeus), из которой выстраивается модуль, и определяющая конкретную команду.

Сканирование

Запускать сканирование можно используя workflow целиком либо при помощи любого из модулей самостоятельно.

Например, выполним анализ репозитория OWASP Juice Shop с использованием модуля repo-scan:

Работа модуля завершена успешно, по результатам сформировано 3 отчета, каждая соответствует используемой утилите, — gitleaks, trufflehog, semgrep.

Информацию о результатах сканирований можно транслировать в различные системы, что особенно удобно при настроенных регулярных сканированиях, выполняющихся по расписанию:

  • Бот/канал в Telegram;

  • Почта/Slack/Discord и пр. (например, при помощи консольного инструмента Notify от ProjectDiscovery);

  • ASPM-системы, например, DefectDojo (сделать это можно при помощи обычного cURL запроса, размещенного в отдельный шаг модуля либо определенного в отдельном модуле, созданного для экспорта данных);

Заключение

В заключение, Osmedeus является мощным многофункциональным инструментом, который позволяет использовать его для решения задач в моменте и по расписанию cron'а, а также гибко кастомизировать под решение различных задач.

В следующей части рассмотрим, как написать свой собственный модуль и подробнее остановимся на используемых для этого методах.

Теги:
Хабы:
Всего голосов 4: ↑4 и ↓0+6
Комментарии0

Публикации

Истории

Работа

Ближайшие события

7 – 8 ноября
Конференция byteoilgas_conf 2024
МоскваОнлайн
7 – 8 ноября
Конференция «Матемаркетинг»
МоскваОнлайн
15 – 16 ноября
IT-конференция Merge Skolkovo
Москва
22 – 24 ноября
Хакатон «AgroCode Hack Genetics'24»
Онлайн
28 ноября
Конференция «TechRec: ITHR CAMPUS»
МоскваОнлайн
25 – 26 апреля
IT-конференция Merge Tatarstan 2025
Казань