DNS Monster
Пассивный сбор и мониторинг DNS, написанный на Golang с Clickhouse и Grafana: dnsmonster реализует пакетный сниффер для DNS-трафика.
Он может принимать трафик из pcap-файла, лайв интерфейса или сокета dnstap, и может использоваться для индексации и хранения тысяч DNS-запросов в секунду (было показано, что он способен индексировать 200k+ DNS-запросов в секунду на обычном компьютере).
Его цель – быть масштабируемым, простым и легким в использовании, и помочь командам безопасности понять детали DNS-трафика предприятия.
dnsmonster не стремится отслеживать DNS-переговоры, его цель – индексировать DNS-пакеты, как только они поступают.
Он также не стремится нарушить конфиденциальность конечных пользователей, имея возможность маскировать IP-адрес источника от 1 до 32 бит, что делает данные потенциально неотслеживаемыми.
ВАЖНОЕ ПРИМЕЧАНИЕ: Код до версии 1.x считается бета-версией и может быть изменен. Пожалуйста, ознакомьтесь с примечаниями к выпуску для каждого тега, чтобы увидеть список сценариев взлома между каждым выпуском, и как уменьшить потенциальную потерю данных
Основные возможности
- Может использовать афпакет Linux и захват пакетов с нулевой копией.
- Поддерживает BPF
- Может выполнять фаззинг исходного IP-адреса для повышения конфиденциальности
- Может иметь коэффициент выборки перед обработкой
- Может иметь список “skip” fqdns, чтобы избежать записи некоторых доменов/суффиксов/префиксов в хранилище, тем самым улучшая производительность БД
- Может иметь список “разрешенных” доменов, чтобы только регистрировать попадания определенных доменов в Clickhouse/Stdout/File.
- Модульный вывода с различной логикой для каждого потока вывода. В настоящее время stdout/file/clickhouse
- Горячая загрузка пропускающих и разрешающих файлов доменов
- Автоматическая политика сохранения данных с использованием атрибута TTL ClickHouse
- Встроенная приборная панель с использованием Grafana
- Может поставляться в виде одного статически связанного бинарного файла
- Возможность конфигурирования с помощью переменных Env, опций командной строки или конфигурационного файла
- Возможность выборки выходных метрик с помощью функции ClickHouse’s SAMPLE
- Высокая степень сжатия благодаря встроенному в ClickHouse хранилищу LZ4
- Поддерживает DNS по TCP, фрагментированный DNS (udp/tcp) и IPv6.
- Поддержка dnstrap через сокет Unix или TCP
СКАЧАТЬ