
Автоматизированный сборщик данных об угрозах безопасности, который запрашивает публичные источники и API для получения информации об угрозах по IP-адресам, доменам, URL, хэшам и SSL-отпечаткам, с конфигурацией на основе YAML и выводом в JSON.

Machinae — это инструмент для сбора информации об угрозах с публичных сайтов/каналов, касающихся различных данных безопасности: IP-адресов, доменных имён, URL, адресов электронной почты, хешей файлов и SSL-отпечатков. Он был вдохновлён инструментом [Automater][1], ещё одним отличным средством для сбора информации. Проект Machinae родился из желания улучшить Automater в 4 направлениях:
Machinae можно установить с помощью pip3:
pip3 install machinae
Или, если вы любите приключения, напрямую из github:
pip3 install git+https://github.com/HurricaneLabs/machinae.git
Для этого в вашей системе должны быть установлены необходимые зависимости для
компиляции модулей Python (на системах на базе Debian — python3-dev), а также
пакет разработки libyaml (на системах на базе Debian — libyaml-dev).
Также вам потребуется скачать [последнюю версию файла конфигурации][2] и поместить её
в /etc/machinae.yml.
Machinae поддерживает простую систему слияния конфигураций, позволяющую вносить
изменения в настройки без правки предоставленного нами machinae.yml, что упрощает
обновления. Это работает следующим образом: загружается общесистемная конфигурация по умолчанию
(по умолчанию /etc/machinae.yml), после чего с ней сливается общесистемная
локальная конфигурация (/etc/machinae.local.yml) и, наконец, локальная конфигурация
пользователя (~/.machinae.yml). Общесистемная конфигурация также может находиться
в текущей рабочей директории, быть задана через переменную окружения
MACHINAE_CONFIG или, разумеется, через параметры командной строки -c или
--config. Слияние конфигураций можно отключить с помощью опции --nomerge, после чего
Machinae будет загружать только общесистемную конфигурацию по умолчанию (или переданную в командной строке).
В качестве примера: предположим, вы хотите включить сайт Fortinet Category, который по умолчанию
отключён. Вы могли бы изменить /etc/machinae.yml, но эти изменения будут перезаписаны
при обновлении. Вместо этого вы можете поместить следующее в /etc/machinae.local.yml
или ~/.machinae.yml:
fortinet_classify:
default: true
Или, наоборот, отключить сайт, например VirusTotal pDNS:
vt_ip:
default: false
vt_domain:
default: false
Использование Machinae очень похоже на Automater:
usage: machinae [-h] [-c CONFIG] [--nomerge] [-d DELAY] [-f FILE] [-i INFILE] [-v]
[-o {D,J,N,S}] [-O {ipv4,ipv6,fqdn,email,sslfp,hash,url}] [-q]
[-s SITES] [-a AUTH] [-H HTTP_PROXY]
[--dump-config | --detect-otype]
...
Подробнее об опциях -c/--config и --nomerge см. выше.
Machinae поддерживает опцию -d/--delay, как и Automater. Однако Machinae
по умолчанию использует 0.
Вывод Machinae управляется двумя аргументами:
-o задаёт формат вывода; после него может следовать один символ,
указывающий желаемый тип вывода:
-f/--file задаёт файл, в который должен быть записан вывод. По умолчанию
используется "-" для stdout.Machinae попытается автоматически определить тип переданной цели (в Machinae
цели называются «наблюдаемыми объектами», а тип — «otype»). Это определение можно
переопределить опцией -O/--otype. Доступные варианты перечислены в справке.
По умолчанию Machinae работает в подробном режиме. В этом режиме он выводит
информацию о состоянии запрашиваемых сервисов в консоль по мере их опроса.
Этот вывод всегда направляется в stdout независимо от настроек вывода. Для
отключения подробного режима используйте -q.
По умолчанию Machinae выполняет все сервисы из конфигурации, которые
подходят по типу цели и не помечены как default: false. Чтобы изменить
это поведение, вы можете:
all, чтобы запустить все сервисы,
включая те, что помечены как default: false.Обратите внимание, что в обоих случаях проверка otype по-прежнему применяется.
Machinae поддерживает передачу HTTP-прокси в командной строке с помощью
аргумента -H/--http-proxy. Если прокси не указан, machinae ищет стандартные
переменные окружения HTTP_PROXY и HTTPS_PROXY, а также менее стандартные
http_proxy и https_proxy.
И наконец, следует передать список целей. Все аргументы, кроме перечисленных выше опций, будут интерпретироваться как цели.
Machinae поставляется со встроенной поддержкой следующих источников данных:
В планах — добавление новых источников данных.
Machinae поддерживает HTTP Basic Auth для сайтов, требующих её, через флаг
--auth/-a. Вам потребуется создать YAML-файл с вашими учётными данными,
который будет содержать ключ для сайта, требующего учётные данные, и список из
двух элементов: имя пользователя и пароль или API-ключ. Например, для
включённого сайта PassiveTotal это может выглядеть так:
passivetotal: ['[email protected]', 'my_api_key']
В конфигурации сайта в разделе request вы увидите такой ключ, как:
json:
request:
url: '...'
auth: passivetotal
Значение auth: passivetotal указывает на ключ в файле аутентификации,
переданном через командную строку.
Следующие сайты отключены по умолчанию: