
ioc2rpz — это место, где threat intelligence встречается с DNS.
ioc2rpz™: Решение для безопасности DNS — ioc2rpz™ — это мощный DNS-сервер, который преобразует индикаторы угроз в действенные фиды зон политики ответа (RPZ). Он автоматизирует процесс обновления, обеспечивая защиту вашей сети от новейших угроз, включая вредоносные домены и IP-адреса. Преобразуя фиды IOC в RPZ, ioc2rpz™ выступает в качестве критически важного связующего звена между информацией об угрозах и безопасностью DNS, совместимого с DNS-серверами, поддерживающими RPZ, такими как ISC Bind или PowerDNS.
DNS является управляющей плоскостью Интернета. Обычно DNS используется во благо, но:

ISC Bind является фактическим стандартом сервера имён. С введением зон политики ответа (Response Policy Zones) в ISC BIND 9.8 стало простой задачей отслеживать и сдерживать вредоносное ПО на уровне DNS. RPZ поддерживается в рекурсоре PowerDNS версии 4.0.0 и выше. Knot DNS также частично поддерживает RPZ.
По сравнению с традиционными решениями сетевой защиты, DNS-сервер может обрабатывать миллионы индикаторов без снижения производительности, однако ранее не существовало автоматизированного и эффективного способа поддержания зон политики ответа на первичных DNS-серверах.
Обычно индикаторы компрометации распространяются в виде открытого текста, но в разных форматах, и лишь немногие поставщики IOC предоставляют их через RPZ.
ioc2rpz™ — это пользовательский DNS-сервер, который автоматически преобразует индикаторы (например, вредоносные FQDN, IP-адреса) из различных источников в фиды RPZ и автоматически поддерживает/обновляет их. Фиды могут распространяться на любые открытые и/или коммерческие DNS-серверы, поддерживающие RPZ, например ISC Bind, PowerDNS. Вы можете запустить собственный DNS-сервер с фильтрацией RPZ на роутере, настольном компьютере, сервере и даже Raspberry Pi. Единственным ограничением является системная память.
С ioc2rpz™ вы можете определять собственные фиды, действия и предотвращать нежелательные взаимодействия.
ioc2rpz™ преобразует фиды IOC в зоны политики ответа (RPZ). Вы можете смешивать фиды для генерации одной RPZ или нескольких RPZ. Доверенные домены и IP-адреса можно заносить в белый список. ioc2rpz™ поддерживает истечение срока действия индикаторов и соответствующим образом перестраивает зоны.
Текущий выпуск поддерживает: локальные файлы, файлы/запросы через http/https/ftp и скрипты оболочки для доступа к другим типам ресурсов. Вы можете использовать любой формат файла, если вы можете написать REGEX для извлечения индикаторов, и индикаторы разделяются символами новой строки и/или возврата каретки (/n, /r, /r/n).
ioc2rpz построен на Erlang/OTP с деревом супервизоров, обеспечивающим отказоустойчивость и автоматическое восстановление. Подробнее см. docs/architecture.md.``` ioc2rpz_app (application) └── ioc2rpz_sup (supervisor) ├── ioc2rpz_db_sup — ETS table heir process ├── ioc2rpz_tcp_sup — TCP listener pool (5 workers) ├── ioc2rpz_udp_sup — UDP listener ├── ioc2rpz_tls_sup — TLS/DoT listener pool (5 workers) [if cert configured] └── ioc2rpz_rest_sup — Cowboy HTTPS (REST API + DoH) [if cert configured]
Key modules:
| Module | Ответственность |
|--------|----------------|
| `ioc2rpz.erl` | TCP/TLS DNS рабочий — приём, разбор, проверка, ответ |
| `ioc2rpz_udp.erl` | UDP DNS слушатель — SOA-запросы |
| `ioc2rpz_conn.erl` | Получение источников IOC (HTTP/HTTPS/файл/shell) |
| `ioc2rpz_db.erl` | Кэш зон и пакетов на основе ETS |
| `ioc2rpz_sup.erl` | Главный супервизор, загрузка конфигурации, планирование зон |
| `ioc2rpz_rest.erl` | REST API управления (Cowboy) |
| `ioc2rpz_doh.erl` | Обработчик DNS-over-HTTPS |
## Как использовать ioc2rpz™
Вы можете использовать ioc2rpz™ с любым DNS-сервером, поддерживающим зоны политики ответов, например, последние версии ISC BIND, PowerDNS и любые коммерческие DNS-серверы на их основе (например, Infoblox, Blue Cat, Efficient IP). Пример конфигурационного файла bind (named.conf) находится в папке cfg.
<p align="center"><a href="http://www.youtube.com/watch?feature=player_embedded&v=bvhyMFa_mBM" target="_blank"><img src="https://raw.githubusercontent.com/Homas/ioc2rpz/master/ioc2rpz_demo.png"></a></p>
## Веб-интерфейс ioc2rpz™
[ioc2rpz.gui](https://github.com/Homas/ioc2rpz.gui) — это веб-интерфейс управления, разрабатываемый как отдельный проект. Он не требуется для работы ioc2rpz™.
## Поддержка протоколов