Honeypot для ботов

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

Нам понадобится нода, на ней мы будем слушать 2 процесса tcpdump:

tcpdump -n "tcp[tcpflags] & (tcp-syn) != 0" - слушает только syn пакеты, это запросы на установление tcp соединения
tcpdump -n inbound and udp - слушает все входящие udp пакеты, т.к. у меня не будет стоять никаких udp сервисов, весь входящий udp- это боты

Минимально рабочий код под логгер будет такой:

const spawn = require('child_process').spawn;

const udpdump = spawn('tcpdump', ['-n', 'inbound', 'and', 'udp']); // спавним процессы, которые будем слушать
const tcpdump = spawn('tcpdump', ['-n', 'tcp[tcpflags] & (tcp-syn) != 0']);

udpdump.stdout.on('data', (data) => { // вешаем листенер
  let lines = `${data}`.split('
'); // разбиваем полученный блок данных на строки
  console.log(lines); // что-то с этим делаем
});

tcpdump.stdout.on('data', (data) => { // и то же самое для tcp
  let lines = `${data}`.split('
');
  console.log(lines);
});

Полные исходники на гитхабе: https://github.com/hololoev/honeypot_tcpdump_logger

В моём случае я всё фигачу в локальную mysql базу, с ней проще работать, чем с файлами. Затем раз в минуту по, крону, данные аггрегируются и складываются в /downloads. Таким образом при каждом обновлении страницы не приходится обращаться в мускуль и выкачивать тысячи строк, данные уже готовы.

Под ханипот поднята отдельная виртуалка, на которую не направлен никакой домен, но там поднят http сервер, который тоже отлавливает http сканы и складывает в ту же бд: https://github.com/hololoev/honeypot_http_logger

Как ни странно был свободен домен honeypot.pro, не долго думая я его зарегал и зафигачил по-быстрому страничку со статой.

За почти неделю honeypot отловил:

Total adressestcp Scansudp Scanshttp Scans
501144167621132

Как я и говорил в начале, tcp сканов в разы больше чем http. Именно по tcp перебираются пароли от ssh, ftp, rdp и ещё много от чего.

Карта топ 100 самых активных IP адресов:

Там же доступны дампы данных. Логи пока планирую хранить за неделю, дальше будет видно.

Update:

Т.к я из Штормвола уволился, то и надобность в этом проекте отпала. Поэтому сорян, сайт закрыл. Но код на гитхабе так и остаётся, юзайте.



Поиск PHP программиста в 2018 году

Так получается, что мы уже полгода ищем php программиста. 3 человека за это время уже успели у нас поработать, 1 из них продержался даже целый месяц. И складывается впечатление что рынок php мёртв. Да и ваще php умер.

Focusrite scarlett works well on linux (2nd gen)

Если вы живёте на линуксах и думаете брать или не брать focusrite scarlett - берите, определяется как universal usb audio, работает без глюков, звук выдаёт отличный.


(0) Комментариев