powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Тяпничный анализатор ботнетов
102 сообщений из 102, показаны все 5 страниц
Тяпничный анализатор ботнетов
    #39061149
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здарова други!

В продолжение топиков:

Тяпничная география

ботнет

а также во избежание уныния, тоски и печали по поводу лежачих тут и там сайтов по
воле вредных и противных DDOS -еров я создаю этот топик для обсуждения идей
а также реализаций по противостоянию т.н. ботнетам.

Не буду многословен как фарисей. Начнём с такого старта.

Входные данные:

Логи атакующих с IP

Доп сведения. Класс атаки.

Дополнительные входные данные:

Базы, списки, блэклисты вредных и известных атакующих (из Torrent, Emule e.t.c.)

Открые источники whois, популярные онлайн сервисы которые предоставляют инфу об IP адресах и диапазонах

Хардкодные источники. Формулы. Таблицы. Калькуляторы IP диапазонов, сеток, масок, классов сетей. Методологии и алгоритмы. Умные книжки и Network API.

Выходные данные:

Аналитика. Рекомендации. Ранжирование угроз

Команды для firewall, которые помогут админу быстро ликвидировать проблему.


P.S. Ценная инфа, базы, блэклисты приветствуются но не забываем о действующих
правилах форума а также местных законах. Если вы вдруг (!) внезапно решили
перекинуть мемберу файлик - то пользуйтесь личкой. Не постите сюда инфу из
за которой топик могут закрыть. Спасибо за понимание.

Слуга ваш покорный,
mayton
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39061445
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Подкину еще дровишек. Данные по ботнету я отсортировал и добавил накопление %
для Парето. Правда до 80% не дотянул. Слишком много мелких items (по 1 атаке на сетку).

Для сетки 50.32.0.0 добавил гео-привязку (Strasburg).

Вобщем вот.
BeginIP EndIp Country Region City Rate Percentage cumulative (%)50.32.0.0 50.63.255.255 US Strasburg 97 20.00%184.168.0.0 184.168.255.255 US AZ Scottsdale 78 36.08%173.201.186.8 173.201.208.142 US AZ Scottsdale 19 40.00%182.50.128.0 182.50.159.255 SG 17 43.51%97.74.24.0 97.74.24.185 US MD Hyattsville 12 45.98%72.167.168.0 72.167.255.255 US AZ Scottsdale 11 48.25%178.250.240.0 178.250.247.255 RU 66 Saint Petersburg 10 50.31%97.74.138.216 97.74.148.97 US AZ Scottsdale 9 52.16%97.74.24.188 97.74.24.255 US MD Hyattsville 8 53.81%208.109.154.173 208.109.239.127 US AZ Scottsdale 5 54.85%123.30.112.0 123.31.255.255 VN 44 Hanoi 5 55.88%
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39061497
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Какая тут аналитика? Ну... over 50% херячат из Strasburg, Scottsdale (USA). Не знаю.
Может кто-то еще предложит другой ракурс или другой срез.
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39061521
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну и ценный выхлоп. В нашем кейсе я-бы начал по Rate

Код: python
1.
2.
3.
$ iptables -I INPUT -m iprange --src-range 50.32.0.0-50.63.255.255 -j DROP
$ iptables -I INPUT -s 184.168.0.0/184.168.255.255 -j DROP
...
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39061522
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Конкретно по тому ботнету бесполезно IP анализировать и к географии привязывать. Заражен может быть любой комп сети. То что какой-то город чуть выделяется, так тут возможно из-за того что в одном городе меж собой народ плотнее общается, например один качнул зараженную прогу, понравилась, с друзьями поделился.

Надо анализировать поведение:
1. Строим модель поведения легального пользователя. К каким скриптам обращается, с какой частотой и т.д. и т.п.
2. Сравниваем поведение конкретного IP с эталонным. Не сошлось - баним конкретно этот IP.

Для п.1. у нас нет инфы. Да и хз как в цифрах вывести этот эталон.

Тупо банить диапазонами тут вообще не вариант, посмотри как редко там обращения. 20-30 штук в час. Т.е. банить надо надолго. Допустим оказался твой самый ценный ВИП-пользователь в одном диапазоне с ботом и ты обоих забанил :)

PS Делаю обертку для твоей ГЕО-IP таблицы. Закончу выложу в тот топик.
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39061529
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TНадо анализировать поведение:
1. Строим модель поведения легального пользователя. К каким скриптам обращается, с какой частотой и т.д. и т.п.
2. Сравниваем поведение конкретного IP с эталонным. Не сошлось - баним конкретно этот IP.


(откинувшись в кресле)

Ты знаешь... это уже тянет на нейронную сеть. Поведение.... Я-бы не рискнул пока рассуждать на эту тему.
Нет у меня понимания этой модели. Может нарисуешь алгоритм там... диаграммы состояний.
А так вообщем неясно.
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39061550
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TТупо банить диапазонами тут вообще не вариант, посмотри как редко там обращения. 20-30 штук в час. Т.е. банить надо надолго. Допустим оказался твой самый ценный ВИП-пользователь в одном диапазоне с ботом и ты обоих забанил :)

Согласен. С другой стороны какая випу разница зобанен его сегмент или нет если сайт лежит?
Вот пускай посидит в бане пока владелец ботнета не решит кинуть всю сетку на другую жертву.
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39061553
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Про нейронные сети в первую очередь подумал, но кроме общих слов ничего не знаю про них.

Как выразить поведение в цифрах ХЗ, я это уже написал. Думаю надо как-то выявить не только IP, но и сессию (например по времени обращений) дальше смотреть сколько раз конкретный IP обращается к конкретному скрипту. Возможно будет несколько эталонных моделей, т.е. пользователи с разными типами поведения (например юзер и модератор).
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39061554
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты хочешь автоматизировать бан конкретретных IP ?
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39061555
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TPS Делаю обертку для твоей ГЕО-IP таблицы. Закончу выложу в тот топик.
Не спеши. Расскажи что за обёртка. Что за API. Меня интересует функционал поисков
по доп условиям. Например WHERE country="CHINA" ... e.t.c.

И еще. У меня уже давно есть репка. Лей сюда.
https://sourceforge.net/p/countryipdiagram/code/HEAD/tree/
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39061566
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonСогласен. С другой стороны какая випу разница зобанен его сегмент или нет если сайт лежит?
Вот пускай посидит в бане пока владелец ботнета не решит кинуть всю сетку на другую жертву.
В данном случае сайт не лежит. Он просто делает то что не должен делать (рассылает спам, ддосит кого-нибудь и т.д.). По сути тот сайт это просто часть ботнета и это напрягает владельца сайта.
Надо определится с чем мы боремся: зомбирование вирусом или ущерб от зомби.
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39061570
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ты-же знаешь что пятничные топики это мозго-штурмы. Во что выродится идея - я не знаю.
Я ожидаю больше сведений и предложений от владельцев ресурсов сайтов.
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39061588
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonDima TPS Делаю обертку для твоей ГЕО-IP таблицы. Закончу выложу в тот топик.
Не спеши. Расскажи что за обёртка. Что за API. Меня интересует функционал поисков
по доп условиям. Например WHERE country="CHINA" ... e.t.c.

И еще. У меня уже давно есть репка. Лей сюда.
https://sourceforge.net/p/countryipdiagram/code/HEAD/tree/
Пока просто заливка и нормализация. Но чувствую все идет в сторону sqlite :)

по-хорошему надо определить круг вопросов какие надо решать. Посчитать WHERE country="CHINA" будет элементарно. А что-то типа WHERE country="CHINA" and ip in (...) гораздо сложнее.

Мой интерес: потестить разные задачи свойственные СУБД без использования СУБД, можно sqlite. Никогда не пользовался sqlite, интересно потестить.

В репку меня добавь.
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39061590
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добавил.
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39061600
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonТы-же знаешь что пятничные топики это мозго-штурмы. Во что выродится идея - я не знаю.
Я ожидаю больше сведений и предложений от владельцев ресурсов сайтов.
Это удел хостинг-провайдеров. 99% владельцев сайтов несознательные товарищи. Им сделали сайт, получили деньги и досвиданья. Дальше нет никого кто хоть как-то попытается понять как там сайт работает. Поэтому хостер просто анализирует трафик, примитивно, нездоровую активность блокирует (например мне вырубили на сайте отправку почтой алертов сайта мне, админу, просто оказалось много алертов), а в случае ддоса хостер просто вырубает атакуемый сайт, если он на хостинге сайтов (т.е. на одном IP куча сайтов), меняет IP в DNS и тупо убивает обращение на новый IP. Легко, просто, но провайдер решает свои проблемы, т.е. изолировать остальных от больного, т.е. полная жопа тому кого ддосят. И этот жертва ддоса уже не в состоянии что-то поделать самостоятельно, до него просто не доходит то что надо анализировать.
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39061601
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Хорошая мысль насчёт смены IP.
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39061611
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А мой интерес - гео-поиск. Структуры данных. И нетрадиционные dbms.
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39061618
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonХорошая мысль насчёт смены IP.
Хорошая, если ддосят не по IP из DNS :) т.е. по DNS имени. Это практика провайдеров. ИМХУ правильно поступают, т.к. все остальные решения еще хуже.

У меня не совсем сайт в общем понимании. У меня сайт выполняет роль центрального сервера, файлообменник, т.е. на него ходят проги, а не люди.
Поэтому я просто оборону построил: насоздават кучу виртуалок (передастов) которые тупо транслируют обрашение к сайту. До кучи они являются кэшем разгружая сервер. Передасты на разных провайдерах. Если передаст умрет или его заддосят то ничего страшного, прога переключится на другой передаст. На самый крайний случай есть механизм передачи списка активных передастов когда все известные проге лежат, чтобы можно было быстро поднять виртуалку с передастом (5-10 минут).
Вобщем где мой сервер знают только передасты, а он никому кроме них не отвечает. Минусы есть, но надежность важнее.
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39061620
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonА мой интерес - гео-поиск. Структуры данных. И нетрадиционные dbms.
Ты свой интерес формально вырази. Может интересы совпадут. По мне "гео-поиск" это взять компас/навигатор и добираться на конкретную точку, занимательно, но к ИТ вообще отношения не имеет.
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39061628
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonнетрадиционные dbms.
Из традиционных можно сделать нетрадиционные с традиционным функционалом. Именно этим интересен sqlite, т.к. на замену традиционным СУБД он не тянет. Ваять стебелек 2.0 тоже не интересно, ты его часто поминаешь, как я понял это аналог СУБД на массивах, если есть ссылки на исходники или откомпилированный код - поделись, интересно поизучать.
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39061671
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima Tmaytonнетрадиционные dbms.
Из традиционных можно сделать нетрадиционные с традиционным функционалом. Именно этим интересен sqlite, т.к. на замену традиционным СУБД он не тянет. Ваять стебелек 2.0 тоже не интересно, ты его часто поминаешь, как я понял это аналог СУБД на массивах, если есть ссылки на исходники или откомпилированный код - поделись, интересно поизучать.
В моём понимании нетрадиционные - это те которые используют нетрадиционные способы
хранения данных. Column oriented например.
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39062004
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonИ еще. У меня уже давно есть репка. Лей сюда.
https://sourceforge.net/p/countryipdiagram/code/HEAD/tree/
Залил. Можешь потестить. Пока просто загрузка из CSV, проверка пересечений и поиск записи для конкретного IP.
Там время загрузки выводится, затести полный файл сколько грузится. Надо ли вообще его в бинарный вид перегонять.

Надо теперь определиться какие выборки потребуются, т.е. какие запросы будут. Исходя из этого изобретать как результаты выдавать.
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39062009
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
make не проходит

Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
In file included from geoip.cpp:7:0:
geoip.h:98:1: error: stray '\361' in program
 bool сompare_range_start(const ip_range_t& lhs, const ip_range_t& rhs)
 ^
geoip.h:173:2: error: stray '\361' in program
  std::sort(ip_range.begin(), ip_range.end(), сompare_range_start);
  ^
geoip.h:203:2: error: stray '\361' in program
  std::vector<ip_range_t>::iterator it = std::lower_bound(ip_range.begin(), ip_range.end(), x, сompare_range_start); 
  ^
geoip.h: In member function 'bool geoip::init_csv(const char*)':
geoip.h:153:63: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
   ip_range.push_back(ip_range_t(val[0], val[1], (ip_place_t*) pl_id));
                                                               ^
geoip.h:176:37: error: cast from 'const ip_place_t*' to 'int' loses precision [-fpermissive]
  prev->place = pl_recode[(int)prev->place];
                                     ^
geoip.h:178:36: error: cast from 'const ip_place_t*' to 'int' loses precision [-fpermissive]
   cur->place = pl_recode[(int)cur->place]; // замена на постоянные ссылки
                                    ^
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39062022
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Там русская "с" в compare_... Поправил. Затестил в линуксе g++ x64 - посерьезнее ошибки полезли. Преобразования типов.
Как разберусь - напишу.
MSVCх32 компилирует.

Может кто подскажет, проблема в следующем:
есть указатель на структуру, мне надо туда записать int (id структуры в массиве), а потом, когда массив появится заменить int на указатель.
Код: sql
1.
2.
3.
4.
5.
6.
geoip.h:153:63: warning: cast to pointer from integer of different size [-Wint-to-pointer-cast]
   ip_range.push_back(ip_range_t(val[0], val[1], (ip_place_t*) pl_id));
                                                               ^
geoip.h:176:37: error: cast from ‘const ip_place_t*’ to ‘int’ loses precision [-fpermissive]
  prev->place = pl_recode[(int)prev->place];
                                     ^


т.е. в ip_range.push_back() я даю int как вместо указателя, это проходит, но с warning
А когда пытаюсь обратно поменять - уже нет. pl_recode[] массив ip_place_t*

Как это правильно сделать? Код тут
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39062033
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Починил, надо size_t использовать. Можно тестить.
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39062077
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пока не летает.
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39062078
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Образец файла я уже где-то приаттачивал. Но ничего. Еще раз положу.

GeoIpCity.csv
Код: sql
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
startIpNum,endIpNum,country,region,city,postalCode,latitude,longitude,dmaCode,areaCode
1.0.0.0,1.7.255.255,"AU","","","",-27.0000,133.0000,,
1.9.0.0,1.9.255.255,"MY","","","",2.5000,112.5000,,
1.10.10.0,1.10.10.255,"AU","","","",-27.0000,133.0000,,
1.11.0.0,1.11.255.255,"KR","","","",37.0000,127.5000,,
1.12.0.0,1.15.255.255,"CN","","","",35.0000,105.0000,,
1.16.0.0,1.19.255.255,"KR","","","",37.0000,127.5000,,
1.21.0.0,1.21.255.255,"JP","","","",36.0000,138.0000,,
..
..
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39062093
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поправил. Я пропатчил твой csv под русскоязычный csv с ; чтобы в экселе смотреть. Сейчас оба понимает. Убрал вылет при ошибке.
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39062096
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T, скайп есть?
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39062108
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonDima T, скайп есть?
У жены на ноуте есть. Я эту хрень не признаю. Параннойя. Камеры все отключены в биосе. У меня есть аська (на работе) и сотовый на все остальные случаи. Аську форум заменяет, хочешь позвоню, но светить номер тут не буду. Вроде личка тут есть, заглянул в профиль, поставил галку "разрешить личные сообщения", где их читать хз.
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39062112
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TmaytonDima T, скайп есть?
У жены на ноуте есть. Я эту хрень не признаю. Параннойя. Камеры все отключены в биосе. У меня есть аська (на работе) и сотовый на все остальные случаи. Аську форум заменяет, хочешь позвоню, но светить номер тут не буду. Вроде личка тут есть, заглянул в профиль, поставил галку "разрешить личные сообщения", где их читать хз.
Ладно бох с ним. Я хотел БД тебе оправить. В любом случае бенчмаркить надо на чём-то более плотном.
45 мегебайт в формате 7zip. Куда лить?
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39062119
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЛадно бох с ним. Я хотел БД тебе оправить. В любом случае бенчмаркить надо на чём-то более плотном.
45 мегебайт в формате 7zip. Куда лить?
Можно в файлообменник какой-нибудь выложить. Качаться потом будет долго, но это уже мои проблемы.
Зарегал ящик. Шли сюда x3_x3_x3_x3@bk.ru
Если не полезет, побей на части. Популярное имя, нет у ИТ-шников фантазии, я не исключение.
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39062135
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T, отправил.
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39062139
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Несколько интересных копипаст с хабра. С их позволения. Под катом.

автор/blog/158945/Система защиты нашего сервиса Qrator основана на множестве математических построений. Как обычно отвечает Яндекс на вопрос «а как у вас поиск устроен?»? Да просто! Берем текст, токенчики, разделители, строим индескы, ранжируем. У нас примерно то же самое, только мы решаем задачу по анализу и фильтрации трафика. Ее решением занято множество людей.


Поведенческий анализ — один из наиболее эффективных методов фильтрации трафика. Мы рассматриваем сайт как дерево переходов. В узлах дерева находятся странички, а в ребра мы закладываем вероятность перехода и задержку при переходе. В основе лежит тот простой факт, что роботы и люди видят веб-страницы по-разному. Когда времени на обучение достаточно, люди «натаптывают» в этих переходах определенные уплотнения — тропинки. Всё посетители, которые из них выпадают, с той или иной вероятностью являются роботами. Вроде бы всё просто. С другой стороны, если прикинуть, какие объемы памяти и вычислительные ресурсы понадобятся для обработки, ты поймешь, что, наверное, при текущих вычислительных мощностях это не так-то просто.


Я перечислил свойства ботнета на слайде для одной достаточно старой презентации. Когда я делал тот слайд, он казался мне абсолютно правильным:
Жадность. Ботнет старается нанести приложениям как можно больше вреда за единицу времени.
Ущербность. Ботнет не являет браузером. Это некий HTTP-стек, встроенный в червь. Как правило, он не умеет ставить корректные заголовки, не обладает JS-движком или обладает в ограниченном виде.
Самосохранение. Ботнет — ценный ресурс, и любые действия, приводящие к сокращению его размера приносят прямые финансовые убытки атакующим. Ботнет старается не производить действий, которые могли бы его демаскировать и отразиться на материнской системе.
Транснациональность. Ботнеты раскиданы по всему «шарику».
Конечность.
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39062314
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дима проясни плиз. Я не совсем понял назначение последнего аргумента.

Вот к примеру я хочу найти сведения по IP = 223.133.70.1 (Токио).
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
D:\Country-IP-diagram\trunk\GeoIP>geoip
load GEO IP table from CSV

geoip file1.csv [-ip XX.XX.XX.XX]
  -ip find range for IP

D:\Country-IP-diagram\trunk\GeoIP>geoip GeoIPCity.csv 223.133.70.1
Load from file GeoIPCity.csv ...
Load 5748952 ranges, 128996 places
Load 5778 ms. Prepare 1715 ms


Непонятненько... Я вроде ничо не нашёл.
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39062340
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Скачал. Странный какой-то zip. Распаковался только свежим 7-zip. WinRAR и встроенный виндовый распаковщик не справились. Старый 7z тоже ниасилил.

Поизучал набор городов. Названия некоторых городов длинные. 46 знаков, например "Pakistan Employees Cooperative Housing Society", Думаю надо вынести строками в отдельный кусок памяти и указатели давать. Так 4-5 Мб памяти сэкономится.

Регионы нумеруются внутри каждой страны. Правда некоторые города попадают в несколько регионов. Таких 1543 в первых 65 тыс.городов (всего 129 тыс.).
Также там бардак с названиями городов, есть "RU#48 Moscow" и "RU#48 Moskva"

latitude;longitude я так понимаю это геогр. широта/долгота. Восновном они одинаковые для каждого (country,region,city), но есть исключения, немного отличаются для разных диапазонов одного города, думаю для них проще среднее посчитать и привязать к (country,region,city).
Нужны они?

dmaCode;areaCode какие-то почтовые коды, мало где заполнениы, думаю не надо их.

По скорости не быстро получается, у меня парсится 4,2 сек., надо бинарник делать.
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39062344
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonДима проясни плиз. Я не совсем понял назначение последнего аргумента.
Непонятненько... Я вроде ничо не нашёл.
Неправильно вызывал.
Код: sql
1.
2.
3.
4.
5.
...\GeoIP>geoip.exe GeoIPCity.csv -ip 223.133.70.1
Load from file GeoIPCity.csv ...
Load 5748952 ranges, 129002 places
Load 4266 ms. Prepare 310 ms. Use 67370+6676 Kb
IP: 223.133.70.1 at 223.133.70.0-223.133.127.255 JP/40/Tokyo
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39062496
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TПоизучал набор городов. Названия некоторых городов длинные. 46 знаков, например "Pakistan Employees Cooperative Housing Society", Думаю надо вынести строками в отдельный кусок памяти и указатели давать. Так 4-5 Мб памяти сэкономится.

Я-бы хотел сохранить достоверную информацию. И думаю что нам 4-5 Мб памяти погоды не делают.
На крайняк можно создать бинарный индекс по CSV-файлу. Тоесть ключевая информация это
{ beginIp (uint32), endIp(uint32), offset } а всё остальное - просто атрибуты.

Регионы нумеруются внутри каждой страны. Правда некоторые города попадают в несколько регионов. Таких 1543 в первых 65 тыс.городов (всего 129 тыс.).
Также там бардак с названиями городов, есть "RU#48 Moscow" и "RU#48 Moskva"

Да. Бардак имеется. Впрочем эта БД всё равно устарела. Но важна правильная концепция.

latitude;longitude я так понимаю это геогр. широта/долгота. Восновном они одинаковые для каждого (country,region,city), но есть исключения, немного отличаются для разных диапазонов одного города, думаю для них проще среднее посчитать и привязать к (country,region,city).
Нужны они?

Сохранить их стоит. Я планировал отображать атакующих на карте. В крайнем случае давать ссылки на
гугл-мап или яндекс-карты.

dmaCode;areaCode какие-то почтовые коды, мало где заполнениы, думаю не надо их.
Здесь не знаю. Не готов что-либо сказать. 5-разрядные почтовые zip-коды имеют смысл для США.
Для других стран - сильно сомневаюсь.

По скорости не быстро получается, у меня парсится 4,2 сек., надо бинарник делать.
ОК. Делай бинарник. Обрати внимание на BerkeleyDB. Возможно поможет. Полезная штука.
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39062502
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Обновись. Переделал загрузку, добавил координаты, добавил поиск нескольких IP.
Код: sql
1.
geoip.exe GeoIPCity.csv -ip 223.133.70.1 -ip 192.168.0.1


Потести.
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39062505
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39062533
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Похоже у тебя рантайм и компилятор разные. Попробуй добавить ключ -static
Код: sql
1.
c++ geoip.cpp -o geoip.exe -O2 -static 


Если все нормально - exe должен стать заметно больше размером.
Если будет ругаться - почитай хелп как статически залинковать рантайм с++
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39062557
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1) Да. Дело было в рантайме.

2) Можно координаты добавлять в виде ссылки на какой-нить гео-локатор.

Для Токио. (Масштаб=5, широта и долгота (35.6850,139.7514))

https://www.openstreetmap.org/#map=5/35.6850/139.7514
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39062568
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton2) Можно координаты добавлять в виде ссылки на какой-нить гео-локатор.

Для Токио. (Масштаб=5, широта и долгота (35.6850,139.7514))

https://www.openstreetmap.org/#map=5/35.6850/139.7514
можно на гугл https://www.google.ru/maps/@35.685,139.7514,10z

Думаю всегда не надо. Добавлю ключик -map. Может еще вывод в html чтобы ссылки были ссылками?
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39062600
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima Tmayton2) Можно координаты добавлять в виде ссылки на какой-нить гео-локатор.

Для Токио. (Масштаб=5, широта и долгота (35.6850,139.7514))

https://www.openstreetmap.org/#map=5/35.6850/139.7514
можно на гугл https://www.google.ru/maps/@35.685,139.7514,10z

Думаю всегда не надо. Добавлю ключик -map. Может еще вывод в html чтобы ссылки были ссылками?
Да это мысль. У нас почти CGI скриптик получился. Вывести структуру GeoIp + фрейм со ссылкой на гуглокарту.
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39062659
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonОбрати внимание на BerkeleyDB.
Почитал. Так sqlite по сути тоже самое. Можно и то и другое потестить.
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39062666
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TmaytonОбрати внимание на BerkeleyDB.
Почитал. Так sqlite по сути тоже самое. Можно и то и другое потестить.
Беркли привлекательнее. SQLite обременён SQL-стеком а Беркли - по сути либа.
Хотя у лайта возможно на некоторых запросах будет скорость из за in-memory.
Хотя.. бустрап у Беркли должен быть нулевой.... а хер ево знает надо тестить.
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39062757
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Оракл уже посравнивал Berkeley DB and SQLite (PDF)
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39063091
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T, попробовал BerkeleyDB (Java-порт). Многабукв вышло. Нет никакого ORM.
Для сериализации объекта нужно написать что-то своё причем возвращающее byte[].

Лет 10 назад я юзал Беркли на С++. Там оно как-то проще было. В плане положить
стурктуру или объект в хранилище.

Чуть позже опубликую код на сорсфорже.
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39063129
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Почитал немного про BerkeleyDB, я так понял это гигантские ассоциативные массивы бинарных данных с надежным хранением. Аналог их базы в С++ будет map<string, string>.
По сути я тоже самое сделал, тоже массивы, только без хранения. Т.е. должно быть быстрее берклея.
Допилю сегодня сохранение в бинарник. Структуру опишу, можешь загрузчик к себе сделать.
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39063418
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вовсе не обязательно их размер должен быть гигантским. От юзкейса зависит.
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39063443
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonВовсе не обязательно их размер должен быть гигантским. От юзкейса зависит.
Это понятно. Я в том смысле что в беркли можно с гигантскими массивами работать не заморачиваясь на размер адресного пространства. В нашем случае размеры скромные.

PS Зафиксировал запись в бинарник. Читается в 100 раз быстрее CSV
Создать бинарник
Код: sql
1.
geoip.exe GeoIPCity.csv -store GeoIPСity.dat 


Грузится с него
Код: sql
1.
geoip.exe GeoIPCity.dat -ip 1.2.3.4 -ip 2.65.154.3


Структура описана в data_struct.txt
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39063529
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Круть. Работает.

Только странно как-то что одна утилита в себе воплощает 2 функционала. И поиск и конвертирование БД.

Кроме того есть маленький баг. Несуществующий адрес в диапазонах тем не менее найден.

Код: sql
1.
2.
3.
4.
5.
6.
7.
D:\Country-IP-diagram\trunk\GeoIP>geoip geoip.dat -ip 192.168.0.1
Load from file geoip.dat ...
Load 78 ms. Use 89827+2015+1980 Kb
IP: 192.168.0.1 at 0.0.0.0-0.0.0.0 Unknown (0.0000;0.0000)

D:\Country-IP-diagram\trunk\GeoIP>echo %ERRORLEVEL%
0
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39063543
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonКроме того есть маленький баг. Несуществующий адрес в диапазонах тем не менее найден.
Код: sql
1.
IP: 192.168.0.1 at 0.0.0.0-0.0.0.0 Unknown (0.0000;0.0000)


Это не баг а фича :) специально добавил диапазон "0.0.0.0-0.0.0.0 Unknown" для случаев когда найти не удалось. Так всегда что-то возвращается. Иначе обработка усложняется, проверки лишние надо.
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39063586
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я вот думаю.... как-бы ее к админским задачам прикрутить. Лог ДДоса видел?

Вооот. Представь себе что сидит бедняга админ и мучается как ему нашу утилиту применить овер 9000 раз
к 9000 записям в логе. И получить 9 тыщ сведений по географии.

Разумеется ты свой API сделаешь. Разработчик ибо. А ему как?
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39063606
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ХЗ как. Предлагай варианты. Не админ, их практик не знаю.

Самый тупой способ: давать на вход лог и выискивать в нем эвристикой IP. Эвристика не сложная три точки, а по краям и в середине цифры.
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39063648
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну... можно как-то так. Админ берёт свой чортов лог. Сам фильтрует там ip через
grep и правила выборки атаки. Далее очищенный список ip-шников идёт на stdin
в нашу утилиту. А на выходе мы получаем опять-же в csv данные по гео-привязке.

Ну как-то так:

Код: sql
1.
$ grep [ddos_rule] < apache-2015-02-03.log | geoip_filter > ddos-2015-02-03-geo.log
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39064592
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зафиксировал парсер логов. Можешь потестить. Как запускать в readme.txt

С форматами вывода пока не разбирался. Будут чуть позже и сsv и html.
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39064645
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T, не надо html. Формат репорта уже неважен. Тот кто сильно хочет - возьмет
Excel и сконвертит сам. Вот сортировочку по 1-му полю надо бы.

Прогнал 1-й файл отсюдова 18132793
Код: sql
1.
2.
3.
4.
5.
6.
7.
64 at 0.0.0.0-0.0.0.0 Unknown
1 at 24.117.66.0-24.117.66.255 US.MO.Kirksville
1 at 27.254.0.0-27.254.255.255 TH
2 at 45.4.219.0-45.255.255.255 US.CA.San Francisco
1 at 46.29.48.0-46.29.55.255 ES
1 at 46.45.128.0-46.45.191.255 TR
....



И сделать дефолное имя файла-базы. Чтоб на 1 параметр меньше было.

А я тем временем впал в глубкий коматоз размышлизм по графической части.
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39064654
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Нашёл еще интересную инфу к размышлению http://habrahabr.ru/company/netangels/blog/149302/

+базёнка оттудова http://noc.masterhost.ru/allrunet/runet
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39064656
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonDima T, не надо html. Формат репорта уже неважен. Тот кто сильно хочет - возьмет
Это просто. Я уже заточил код под форматы вывода. Мелочь осталась.
maytonВот сортировочку по 1-му полю надо бы.
А вот с этим гимор будет.
Если глянешь geoip::print() то увидишь что там сначала строится мап по [ip_range_t*] затем выводятся значения. Надо его перестроить наоборот, т.е. мап[-значение] = ip_range_t*, затем выводить. Причем значения повторяются в отличии от уникального ip_range_t*. Вобщем нетривиально в итоге. Надо голову еще поломать как поправить. Подумаю.

PS Просится тут sqlite. Добивал "oder by ... desc" и готово.
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39064657
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Про TARPIT интересно пишут. Это не просто защита. Это в некотором роде контратака.
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39064740
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Мда. БД наша дырявая... Не нашёлся перец. И ведь сервисы Vuze как-то определяют что страна - "RU".
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39064803
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут есть
Там же свежий список по рунету.

Надо его как-то долить в твою таблицу.
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39064847
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот еще база Вроде обновляется и бесплатно качать не запрещают . Поизучаю вечером.
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39065264
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonDima T, не надо html. Формат репорта уже неважен. Тот кто сильно хочет - возьмет
Excel и сконвертит сам. Вот сортировочку по 1-му полю надо бы.
добавил вывод в csv (ключ -csv)
html попозже сделаю, со ссылками на гуглокарту.

maytonИ сделать дефолное имя файла-базы. Чтоб на 1 параметр меньше было.
Сделаю поиск базы по имени geoip.dat - если нет - ошибка. А загрузку ключиком -import. Заодно попробую импорт этой сделать 18212806

По другим параметрам тоже мысли есть как переделать.
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39065286
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Начал дизассебмлировать Vuze-вский плагин геолокации. Сюрприз №1. Сорцы в нём. Хехе.
Сюрприз №2. Он использует БД maxmind и судя по всему укомплектован
генератором бинарей.

Хехе.
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39065392
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
У них есть свежая бесплатная в csv http://dev.maxmind.com/geoip/geoip2/geolite2/ в платной какая-то доп.инфа, типа провайдеров и т.п.
формат немного сменили, названия городов вынесли в отдельную таблицу. Думаю оттуда надо брать.
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39065413
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Lite - это облегченный вариант. Что там чистили - ХЗ. Но сведений явно меньше.
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39065520
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonLite - это облегченный вариант. Что там чистили - ХЗ. Но сведений явно меньше.
Строк меньше. 5,7 млн. в твоем файле, 2,5 млн. в этом.

Подсунул GeoLite2-City-Blocks-IPv4.csv как лог своей проге:
Код: sql
1.
2.
3.
...
1(0.0%) at Unknown (0.0.0.0-0.0.0.0)
Total 2498733 IP


Какая-то лажа. Надо считалку перепроверять, похоже при группировке какой-то косяк. Добавил вывод в лог отсутствующие - получилось 306 тыс. диапазонов неизвестных.
И еще куда-то 7 IP проимелось, их там 2498740.

Разбираюсь.
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39065565
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima T, ты разбирался с SqlLite? Это хорошо. Там можно за 10 минут скриптик набросать для загрузки
в БД. После этого БД можно использовать для тестов. Чтобы сверять цифры с данными твоего приложения.
Количество адресов. Диапазонов. e.t.c.
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39065581
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonDima T, ты разбирался с SqlLite?
Не разбирался. Ни разу не пользовался. Планировал сделать версию 2.0 с ним.

Затестить потери я могу другими способами. Тут дело не в этом. Там какая-то непонятная хрень происходит, при группировке пропадают IP из неизвестных диапазонов. Причем глючит только если подсунуть именно этот файл. Разбираюсь.
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39065747
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поправил косяк в отчете. Надо же было додуматься хранить указатели на элементы вектора, который увеличивается :) Странно что не вылетало.
Вот результат прогона GeoLite2-City-Blocks-IPv4.csv как лога
IP countPersentPlaceRange fromRange to30634712.3%Unknown0.0.0.00.0.0.063000.3%US.NJ.Mount Laurel73.0.0.073.60.2.25559420.2%US.NJ.Mount Laurel73.139.18.073.194.177.25551640.2%US50.32.0.050.63.255.25547700.2%US108.36.64.0108.55.255.25545720.2%FR109.8.32.0109.31.255.25542820.2%FR78.193.0.078.222.255.25535550.1%IN.07.New Delhi117.211.84.0117.240.31.25533160.1%IN182.73.0.0182.79.255.25532970.1%US108.71.68.0108.95.255.25529780.1%FR2.0.0.02.15.255.25526430.1%US107.0.0.0107.15.255.25525560.1%GB2.24.0.02.31.255.25524140.1%MX187.200.0.0187.255.255.25519960.1%FR109.214.0.0109.223.255.25519570.1%GB109.145.0.0109.151.255.25517230.1%US.FL.Lake Mary32.180.0.032.223.255.25516960.1%US.CA.San Francisco45.4.219.045.255.255.25516420.1%US.WA.Kirkland50.11.128.050.13.255.25514710.1%AU101.96.0.0101.128.0.25514440.1%BR186.225.73.0187.0.31.25513990.1%JP180.25.192.0180.63.255.25513260.1%IN14.139.0.014.143.255.25512610.1%DE178.7.16.0178.15.255.25512440.0%CA.QC.Montreal184.160.16.0184.163.191.25512400.0%CA.ON.Ottawa47.17.176.047.46.31.25511970.0%GB2.123.192.02.127.251.25511700.0%US.DC.Washington38.0.0.038.96.7.25511060.0%US184.176.0.0184.189.191.25511050.0%US108.28.136.0108.32.128.25510130.0%CA184.64.0.0184.71.31.25510060.0%AU1.178.0.01.179.255.25510050.0%CH.01.Full178.192.0.0178.197.255.255...

306347 новых диапазонов. Думаю надо делать загрузку этого файла как основу и через него прогнать твой. Т.е. наоборот, посмотреть что есть у тебя и нет у них. А дальше будет видно: или как-то сливать в один или этим пользоваться.

Остался еще вопрос с потерянными 7 IP при разборе GeoLite2-City-Blocks-IPv4.csv, с этим позже поразбираюсь.
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39066267
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
300 тысяч неизвестных? Это херово...
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39066411
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton300 тысяч неизвестных? Это херово...
Точно 306348
Поправил свой искатель IP в логах. Некоторые криво разбирались из-за того что на стыке буферов чтения оказывались.

Надо грузить эту таблицу как основу и прогонять через нее твою таблицу как лог. По результату будет видно куда дальше двигаться. Делаю загрузчик.
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39066455
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Понимаю что ты - фанат кодить на сях но в данном исследовании совершенно необязательно
себя ограничивать. Возможно имеет смысл откатать модель и тесты на Excel, SQLite, скриптики
на Питоне. А когда всё взлетит - портировать.
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39066499
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonПонимаю что ты - фанат кодить на сях но в данном исследовании совершенно необязательно
себя ограничивать. Возможно имеет смысл откатать модель и тесты на Excel, SQLite, скриптики
на Питоне. А когда всё взлетит - портировать.
Эксель вообще не вариант, просто не справится. SQLite могу заменить на фокс или MSSQL, его интересно поизучать в плане использования как локальную СУБД, но тут несвойственная SQL'ю задача, теория РСУБД не заточена на работу с диапазонами.

Питон и пр. высокоуровневые алгоритмические ЯП просто не знаю, и пока не вижу смысла тратить время на изучение.
Интересен С. Как инструмент реализации нестандартых алгоритмов. Причем как быстро работающей реализации. Есть небольшой опыт на С написания длл, обеспечивающих низкоуровневый функционал, недоступный из других языков. Например перехват вызовов WinAPI и шифрование/дешифрование данных на диске. Но что-то высокоуровневое на С я не писал (несколько простых поделок), даже банальных конвертеров как тут не писал, надо понять стоит ли начинать. Эта задача самое то что мне надо.

На счет портирования: была обратная мысль, в конце сделать экспорт в разных форматах, от csv до скриптов MSSQL, MySQL и т.п.

В-третьих: я уже придумал куда мне пристроить эту наработку :)
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39066515
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TВ-третьих: я уже придумал куда мне пристроить эту наработку :)
Поставишь на мобилу?
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39066655
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще мысль. Нужно вести белый список. Например все кто атакуют "по ту сторону proxy"
имеют более низкий индекс угрозы. Их трафик искусственно ограничен способностями
proxy и выбор протоколов ограничен.

Еще мысль по поводу пробелов в базе. Можно создать "протокол обновления" этой базы
через доступные http сервисы типа whois, whoip e.t.c.
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39066681
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЕще мысль. Нужно вести белый список. Например все кто атакуют "по ту сторону proxy"
имеют более низкий индекс угрозы. Их трафик искусственно ограничен способностями
proxy и выбор протоколов ограничен.
Сложно как-то. Тут проблемы решать на прокси надо, т.к. через него в т.ч. нормальные соединения будут проблематичны. А для того куда проксируется будет всего один IP в белом списке - IP прокси. Известен заранее.
А для прокси все "по ту сторону", т.е. задача сводится к исходной.

maytonЕще мысль по поводу пробелов в базе. Можно создать "протокол обновления" этой базы
через доступные http сервисы типа whois, whoip e.t.c.
Через вэб-сервисы думаю не получится. Большое количество обращений они за деньги обслуживают. Обратился несколько тысяч раз - тебя забанили и попросили денег заплатить.
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39066714
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonЕще мысль по поводу пробелов в базе. Можно создать "протокол обновления" этой базы
через доступные http сервисы типа whois, whoip e.t.c.
Через вэб-сервисы думаю не получится. Большое количество обращений они за деньги обслуживают. Обратился несколько тысяч раз - тебя забанили и попросили денег заплатить.[/quot]
Да нам много не надо. Завести в системе табличку (ого вот уже БД нужна) где будет очередь
реквестов на уточнение данных. И долбить сервис но не чаще чем раз в минуту.

Типа:
idIPDTRegGeoIPresult0123.34.56.782015/10/02 08:31:00?
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39066749
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonДа нам много не надо. Завести в системе табличку (ого вот уже БД нужна) где будет очередь
реквестов на уточнение данных. И долбить сервис но не чаще чем раз в минуту.
Тут главная засада что сервисы не сообщают диапазон куда IP попал, т.е. табличка ответов в нашу исходную структуру не очень вписывается. Если хранить отдельно табличку IP с ответами, то в итоге она неслабо распухнет и тут уже точно полноценная БД потребуется :)

Для оптимизации потребуется центральное хранилище (большая БД) и дальше двусторонняя репликация. Вот мы и построили полноценную распределенную БД

И второй момент: место расположения разные сервисы могут называть по-разному. Я ссылку на список рунета давал, там все замечательно, подробно, но по-русски. Без эвристики его проблематично скрестить со списком из англоязычных источников.
Списком с maxmind еще не занялся, мельком глянул, там есть русский справочник, но насколько он совпадает с названиями из списка рунета? Сравнивать ведь по написанию придется.
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39067261
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот еще сервис есть. Второй параметр - адрес. Правда он диапазоны не выдает.

http://ipinfo.io/89.188.113.72/json
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39067265
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39067293
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Еще один с бесплатной базой https://db-ip.com/db/
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39067302
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonВот еще сервис есть. Второй параметр - адрес. Правда он диапазоны не выдает.

http://ipinfo.io/89.188.113.72/json
У этих ограничение 1000 в сутки. Даже раз в минуту уже часто будет http://ipinfo.io/pricing
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39067348
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dima TЕще один с бесплатной базой https://db-ip.com/db/
Круть.
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39067352
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Загрузил GeoLite2-City-Blocks-IPv4.csv в качестве основной базы
Код: sql
1.
Total 2498739 Range, 3615074842 IP


В твоем файле было
Код: sql
1.
Total 5748952 Range, 3161017686 IP


Прогнал твой файл как лог: неизвестных 13109 диапазонов
Прогнал файл отсюда 18227665 : неизвестных 13094 диапазонов

Такая вот статистика. Думаю в принципе неплохо: меньше чем 300 тыс. Но интересно на эти 13 тыс. взглянуть. Скорее всего 13 тыс. еще на два надо поделить, т.к. там два IP - начало и конец. А 300 тыс. было в формате IP/маска.

Я загрузчик немного не доделал, там с названием городов непонятка какая-то. Только страна прочиталась. На расчет не повлияло. Закончу, зафиксирую.

Тут 18227665 файл вроде как не "lite", но без координат.
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39067374
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разобрался с названиями городов. И похоже я понял в чем lite заключается.
Они сгруппировали рядом стоящие диапазоны до страны.IP countPersentPlaceRange fromRange to131480.1%Unknown0.0.0.00.0.0.090320.1%United States174.192.0.0174.223.255.25585640.1%Italy81.117.0.081.117.255.25570540.1%France91.160.0.091.175.255.25570040.1%Italy81.122.0.081.122.255.25553420.0%Italy81.115.0.081.115.255.25542660.0%Italy81.119.128.081.119.159.25542320.0%United States72.112.0.072.127.255.25540740.0%Germany78.47.128.078.47.255.25536880.0%Germany88.198.128.088.198.255.25534790.0%Italy81.123.128.081.123.255.25534640.0%Italy80.206.0.080.206.127.25531200.0%Italy93.47.0.093.47.127.25530160.0%Germany93.240.0.093.255.255.25529920.0%United States64.195.64.064.195.127.25527080.0%Italy81.114.0.081.114.127.25525950.0%United States.TX.San Antonio98.129.64.098.129.127.25525480.0%Italy81.116.96.081.116.127.25525260.0%Italy217.223.128.0217.223.255.25525220.0%Belgium94.110.0.094.110.255.25523690.0%United Kingdom188.28.0.0188.28.127.25523270.0%United States97.40.0.097.47.255.25523240.0%United States32.168.0.032.175.255.25522760.0%Germany89.56.0.089.63.255.25522450.0%Italy88.41.0.088.41.127.25522380.0%United States97.184.0.097.191.255.25522030.0%Germany78.47.64.078.47.127.25521950.0%Switzerland164.128.128.0164.128.255.25521490.0%France213.56.240.0213.56.247.25521420.0%Germany78.46.192.078.46.255.25521380.0%United States72.254.0.072.255.255.25520880.0%United States97.168.0.097.175.255.25520830.0%Italy217.222.192.0217.222.255.25520700.0%United States.TX.Dallas69.13.0.069.13.255.25520540.0%Japan.13.Tokyo219.166.0.0219.166.255.25520400.0%Germany88.198.64.088.198.127.25520380.0%United States.TX.San Antonio174.143.0.0174.143.63.25520240.0%United States4.160.0.04.175.255.25520220.0%Germany.NW.Host62.138.0.062.138.255.25520160.0%Netherlands213.53.192.0213.53.255.25520140.0%United States69.96.0.069.103.255.25519850.0%Japan114.48.0.0114.48.255.25518760.0%United States97.136.0.097.143.255.25518240.0%Australia112.141.0.0112.141.255.25517950.0%Italy80.207.64.080.207.127.25517860.0%Belgium62.88.0.062.88.127.25517840.0%Netherlands212.153.0.0212.153.255.25517760.0%United States72.96.0.072.103.255.25517700.0%Denmark62.79.0.062.79.255.25517600.0%Germany89.52.0.089.55.255.25517230.0%United States4.128.0.04.143.255.25517210.0%France213.56.48.0213.56.55.25517140.0%United States.WA.Seattle98.96.0.098.97.255.25516980.0%Norway84.49.128.084.49.191.25516860.0%Italy82.189.0.082.189.127.25516560.0%United Kingdom94.2.0.094.2.63.25516280.0%Italy88.37.192.088.37.255.25516240.0%Japan219.163.0.0219.163.255.25515980.0%United States66.58.0.066.58.127.25515560.0%Italy81.124.0.081.127.255.25515500.0%United States97.152.0.097.159.255.25515100.0%United States.VA.Ashburn63.20.0.063.23.255.25514930.0%Norway89.8.0.089.9.255.25514760.0%China.11.Beijing219.238.0.0219.239.255.25514730.0%Italy81.119.0.081.119.127.25514460.0%United States70.220.0.070.223.255.25514300.0%Italy88.39.192.088.39.255.25514270.0%Taiwan211.72.0.0211.72.127.25514120.0%United Kingdom94.196.128.094.196.191.25514020.0%Italy80.207.32.080.207.63.25513980.0%Puerto Rico67.203.192.067.203.255.25513930.0%Brazil200.246.0.0200.247.255.25513900.0%United States97.20.0.097.23.255.25513720.0%United States.WA.Seattle128.95.0.0128.95.255.25513720.0%Taiwan211.20.128.0211.20.255.25513500.0%China.65.├Ьr├╝mqi222.82.0.0222.82.255.25513460.0%United States97.164.0.097.167.255.25513410.0%Italy81.116.128.081.116.191.25513280.0%Italy85.44.128.085.44.191.25513240.0%Australia125.63.128.0125.63.255.25513220.0%United States97.224.0.097.227.255.25513220.0%Puerto Rico67.206.192.067.206.255.25513210.0%Brazil200.212.0.0200.213.255.25513180.0%United Kingdom94.4.128.094.4.191.25513140.0%United States97.244.0.097.247.255.25513120.0%United States97.128.0.097.131.255.25513050.0%Hungary195.199.0.0195.199.127.25513000.0%Japan61.199.128.061.199.255.25512920.0%Italy81.112.192.081.112.255.25512830.0%Italy88.45.64.088.45.127.25512820.0%United States97.200.0.097.203.255.25512740.0%United States.VT.Hinesburg68.142.48.068.142.63.25512700.0%United States174.8.0.0174.15.255.25512580.0%United States97.12.0.097.15.255.25512500.0%United States97.0.0.097.3.255.25512440.0%United States97.220.0.097.223.255.25512430.0%Malaysia121.121.128.0121.121.255.25512340.0%Netherlands.NH.Amsterdam83.119.128.083.119.255.25512300.0%Switzerland164.128.0.0164.128.63.25512290.0%Italy.25.Milan151.23.0.0151.23.255.255

В итоге IP там все, но с названиями все плохо.

Сейчас readme пререпишу и зафиксирую. Переделал командную строку полностью.
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39067392
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Зафиксировал. Думаю надо еще пару ключиков сделать:
-find <place>
будет выводить все строки лога где <place> начало из названия диапазона.
Т.е. частный случай
Код: sql
1.
geoip GeoIPCity.csv -find Unknown -out Unknown.csv


выведет все строки с неизвестными IP
или так
Код: sql
1.
geoip GeoIPCity.csv -find China -out China.csv


-export <format>
Экспорт в разных форматах, от 1-2 файлового csv до скриптов для заливки на разные SQL сервера.

Комбинациями этих двух ключей можно будет резать/клеить файлы из разных источников.

Дополнительно еще переделаю загрузку из CSV, чтобы она не была жестко привязана к колонке, а определяла где-какая по заголовку. Получится универсальный конвертер IPGEO баз.
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39067423
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дим. Я всё таки хотел чтоб были 2 штуки утилиты. Одна - конвертер из ЦСВ в бинарь. А другай - конкретно поиск.
Понимаешь этим софтом должны пользоваться админы. Ладно мы разберёмся. А админу как?

Ему - некогда. Ему - бегом-бегом. Он едва grep с awk-ом раскурил. И то для узких задач. А тут - уже
целый информационный комплекс.
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39067445
Basil A. Sidorov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
"Огорчу я тебя до невозможности".
Админ не будет использовать эту хрень - он не спецназ, чтобы устраивать маски шоу в пункте-источнике, а без этого знание геоположения интересно только в качестве "послепотомного" развлечения.
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39067456
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
OMG! Да гдеж я такое предлагал-то?
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39067582
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonДим. Я всё таки хотел чтоб были 2 штуки утилиты. Одна - конвертер из ЦСВ в бинарь. А другай - конкретно поиск.
Понимаешь этим софтом должны пользоваться админы. Ладно мы разберёмся. А админу как?
Давай разделю. Вынесу все конвертации в geoipcfg.exe Не сложно.

Немного поразмышлял о применимости админами:
1. Админам нужны подсети (1.12.0.0/16), а не наши диапазоны (1.12.0.0-1.12.255.555) т.к. у них все админится в подсетях. Например твой файл в большинстве случаев полное соответствие, но есть записи где в одном диапазоне несколько подсетей.
2. Один город/региод/страна имеет несколько диапазонов, в результате наша группировка по диапазонам и сортировка по убыванию теряет информативность.

Думаю надо как-то разделить задачи: админам дать подсети с анализом активности каждой, гео-аналитикам дать города/регионы/страны.

Вывод: надо полноценную СУБД, т.е. пора начинать осваивать sqlite и делать версию 2.0. :)

PS Только сначала разделю исходники и парсер csv поправлю, он еще пригодится.
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39067594
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я-бы предложил базы класть в каталог

Код: sql
1.
2.
3.
4.
5.
$user_home/.geoip/

или

%USERPROFILE%/.geoip/



и по умолчанию считать что они там всегда лежат. Уберём лишний дефолтный аргумент.
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39067601
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
maytonи по умолчанию считать что они там всегда лежат. Уберём лишний дефолтный аргумент.
Аргументы лишние уже убраны, обновись, почитай readme.txt
Пути отсутствуют, обращение по имени, жеско вшито имя "geoip.dat", т.е. сначала в текущей папке ищется. Предусмотрю настройку пути, чтобы в коде задать в одном месте.
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39067733
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Что за страна с кодом XK ?

Код: sql
1.
2.
3.
4.
5.
6.
7.
Hi.  267 Country Codes
0 [main] ERROR com.maxmind.geoip.csvtodat.CsvToDat  - XK is unknown
2 [main] ERROR com.maxmind.geoip.csvtodat.CsvToDat  - XK is unknown
347 [main] ERROR com.maxmind.geoip.csvtodat.CsvToDat  - XK is unknown
347 [main] ERROR com.maxmind.geoip.csvtodat.CsvToDat  - XK is unknown
6638 [main] ERROR com.maxmind.geoip.csvtodat.CsvToDat  - XK is unknown
....
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39067790
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
https://en.wikipedia.org/wiki/ISO_3166-1_alpha-2#XK The code XK is being used by the European Commission,[19] Switzerland,[20] the Deutsche Bundesbank,[21] SWIFT,[22] and other organizations as a temporary country code for Kosovo.[23]
Тут есть справочник городов отдельно.

geoname_idlocale_codecontinent_codecontinent_namecountry_iso_codecountry_namesubdivision_1_iso_codesubdivision_1_namesubdivision_2_iso_codesubdivision_2_namecity_namemetro_codetime_zone786714enEUEuropeXKKosovo"Komuna e Prishtines"PristinaEurope/Belgrade
Как-то криво все с ними, я для полного наименования взял country_iso_code.subdivision_1_iso_code.city_name если второго нет - третье игнорируется. Надо поправить.
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39067925
Dima T
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Разделил на две софтины. Для админов и продвинутых :)
Для продвинутых (geoipcfg) это конвертер c импортом и экспортом. Добавил ключ -unknown для выборки строк с неизвестными IP и круг замкнулся: можно резать/клеить данные из любых источников. Можно тестить.

Потестил -unknown и получил интересный результат в одном из источников: "0.0.0.0","0.255.255.255","US","California","Los Angeles"
Рушит всю мою схему хранения. "0.0.0.0" у меня Unknown

Вроде как "0.0.0.0" не может быть. Курю инет по этому поводу.
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39068133
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Коллеги, вы очень увлеченно что-то строите.
Но можно поинтересоваться целью сего процесса? Пусть даже она заключается в простом интересе, но я и этого не вижу.

Попутно интересно, а как предполагается быть с таким - http://geektimes.ru/company/ua-hosting/blog/263398/ ?
В данном случае ботнет, как некая единая структура, просто отсутствует.
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39068159
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Это был пятничный топик.
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39068177
miksoft
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ну хорошо, подожду до пятницы :)
...
Рейтинг: 0 / 0
Тяпничный анализатор ботнетов
    #39068223
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не нужно ждать. Это мозговой штурм бро. Во что он выльется - я не знаю.

И не нужно искать умных смыслов.
...
Рейтинг: 0 / 0
102 сообщений из 102, показаны все 5 страниц
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Тяпничный анализатор ботнетов
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]