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

Machinae — это инструмент для сбора информации об угрозах с публичных сайтов/каналов, касающихся различных данных безопасности: IP-адресов, доменных имён, URL, адресов электронной почты, хешей файлов и SSL-отпечатков. Он был вдохновлён инструментом Automater, ещё одним отличным средством для сбора информации. Проект 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).
Также вам потребуется скачать последнюю версию файла конфигурации и поместить её
в /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 независимо от настроек вывода. Для отключения подробного режима используйте .
Machinae поставляется со встроенной поддержкой следующих источников данных:
В планах — добавление новых источников данных.
Machinae поддерживает HTTP Basic Auth для сайтов, требующих её, через флаг
--auth/-a. Вам потребуется создать YAML-файл с вашими учётными данными,
который будет содержать ключ для сайта, требующего учётные данные, и список из
двух элементов: имя пользователя и пароль или API-ключ. Например, для
включённого сайта PassiveTotal это может выглядеть так:
passivetotal: ['[email protected]', 'my_api_key']
В конфигурации сайта в разделе request вы увидите такой ключ, как:
json:
request:
url: '...'
auth: passivetotal
Значение auth: passivetotal указывает на ключ в файле аутентификации,
переданном через командную строку.
Следующие сайты отключены по умолчанию:
fortinet_classify)telize)totalhash_ip)domaintools_parsed_whois)domaintools_reverse_whois)domaintools_reputation)passivetotal_pdns)passivetotal_whois)passivetotal_sslcert)passivetotal_components)passivetotal_trackers)maxmind)Machinae поставляется с ограниченным набором форматов вывода: обычный, обычный с экранированием точек и JSON. В будущем мы планируем добавить дополнительные форматы.
*** СКОРО ***
Лицензия MIT (MIT)
Copyright (c) 2015 Hurricane Labs LLC
Настоящим предоставляется бесплатное разрешение любому лицу, получившему копию данного программного обеспечения и сопутствующей документации (далее — «Программное обеспечение»), на безвозмездное использование Программного обеспечения без ограничений, включая, без ограничений, права на использование, копирование, изменение, слияние, публикацию, распространение, сублицензирование и/или продажу копий Программного обеспечения, а также разрешение лицам, которым предоставляется данное Программное обеспечение, делать это при соблюдении следующих условий:
Вышеуказанное уведомление об авторских правах и данное разрешение должны быть включены во все копии или значительные части Программного обеспечения.
ПРОГРАММНОЕ ОБЕСПЕЧЕНИЕ ПРЕДОСТАВЛЯЕТСЯ «КАК ЕСТЬ», БЕЗ КАКИХ-ЛИБО ГАРАНТИЙ, ЯВНЫХ ИЛИ ПОДРАЗУМЕВАЕМЫХ, ВКЛЮЧАЯ, НО НЕ ОГРАНИЧИВАЯСЬ, ГАРАНТИЯМИ ТОВАРНОЙ ПРИГОДНОСТИ, СООТВЕТСТВИЯ КОНКРЕТНОЙ ЦЕЛИ И НЕНАРУШЕНИЯ ПРАВ. НИ В КОЕМ СЛУЧАЕ АВТОРЫ ИЛИ ПРАВООБЛАДАТЕЛИ НЕ НЕСУТ ОТВЕТСТВЕННОСТИ ПО КАКИМ-ЛИБО ИСКАМ, УБЫТКАМ ИЛИ ИНЫМ ТРЕБОВАНИЯМ, ВОЗНИКАЮЩИМ ИЗ ДОГОВОРА, ДЕЛИКТА ИЛИ ДРУГИХ ДЕЙСТВИЙ, СВЯЗАННЫХ С ПРОГРАММНЫМ ОБЕСПЕЧЕНИЕМ ИЛИ ЕГО ИСПОЛЬЗОВАНИЕМ, ДАЖЕ ЕСЛИ БЫЛИ УВЕДОМЛЕНЫ О ВОЗМОЖНОСТИ ТАКИХ УБЫТКОВ.
-qПо умолчанию Machinae выполняет все сервисы из конфигурации, которые
подходят по типу цели и не помечены как default: false. Чтобы изменить
это поведение, вы можете:
all, чтобы запустить все сервисы,
включая те, что помечены как default: false.Обратите внимание, что в обоих случаях проверка otype по-прежнему применяется.
Machinae поддерживает передачу HTTP-прокси в командной строке с помощью
аргумента -H/--http-proxy. Если прокси не указан, machinae ищет стандартные
переменные окружения HTTP_PROXY и HTTPS_PROXY, а также менее стандартные
http_proxy и https_proxy.
И наконец, следует передать список целей. Все аргументы, кроме перечисленных выше опций, будут интерпретироваться как цели.
fraudguard)shodan)