|
|
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
Здарова други! В продолжение топиков: Тяпничная география ботнет а также во избежание уныния, тоски и печали по поводу лежачих тут и там сайтов по воле вредных и противных DDOS -еров я создаю этот топик для обсуждения идей а также реализаций по противостоянию т.н. ботнетам. Не буду многословен как фарисей. Начнём с такого старта. Входные данные: Логи атакующих с IP Доп сведения. Класс атаки. Дополнительные входные данные: Базы, списки, блэклисты вредных и известных атакующих (из Torrent, Emule e.t.c.) Открые источники whois, популярные онлайн сервисы которые предоставляют инфу об IP адресах и диапазонах Хардкодные источники. Формулы. Таблицы. Калькуляторы IP диапазонов, сеток, масок, классов сетей. Методологии и алгоритмы. Умные книжки и Network API. Выходные данные: Аналитика. Рекомендации. Ранжирование угроз Команды для firewall, которые помогут админу быстро ликвидировать проблему. P.S. Ценная инфа, базы, блэклисты приветствуются но не забываем о действующих правилах форума а также местных законах. Если вы вдруг (!) внезапно решили перекинуть мемберу файлик - то пользуйтесь личкой. Не постите сюда инфу из за которой топик могут закрыть. Спасибо за понимание. Слуга ваш покорный, mayton ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2015, 12:23 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
Подкину еще дровишек. Данные по ботнету я отсортировал и добавил накопление % для Парето. Правда до 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% ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2015, 16:02 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
Какая тут аналитика? Ну... over 50% херячат из Strasburg, Scottsdale (USA). Не знаю. Может кто-то еще предложит другой ракурс или другой срез. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2015, 16:59 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
Ну и ценный выхлоп. В нашем кейсе я-бы начал по Rate Код: python 1. 2. 3. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2015, 17:26 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
Конкретно по тому ботнету бесполезно IP анализировать и к географии привязывать. Заражен может быть любой комп сети. То что какой-то город чуть выделяется, так тут возможно из-за того что в одном городе меж собой народ плотнее общается, например один качнул зараженную прогу, понравилась, с друзьями поделился. Надо анализировать поведение: 1. Строим модель поведения легального пользователя. К каким скриптам обращается, с какой частотой и т.д. и т.п. 2. Сравниваем поведение конкретного IP с эталонным. Не сошлось - баним конкретно этот IP. Для п.1. у нас нет инфы. Да и хз как в цифрах вывести этот эталон. Тупо банить диапазонами тут вообще не вариант, посмотри как редко там обращения. 20-30 штук в час. Т.е. банить надо надолго. Допустим оказался твой самый ценный ВИП-пользователь в одном диапазоне с ботом и ты обоих забанил :) PS Делаю обертку для твоей ГЕО-IP таблицы. Закончу выложу в тот топик. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2015, 17:27 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
Dima TНадо анализировать поведение: 1. Строим модель поведения легального пользователя. К каким скриптам обращается, с какой частотой и т.д. и т.п. 2. Сравниваем поведение конкретного IP с эталонным. Не сошлось - баним конкретно этот IP. (откинувшись в кресле) Ты знаешь... это уже тянет на нейронную сеть. Поведение.... Я-бы не рискнул пока рассуждать на эту тему. Нет у меня понимания этой модели. Может нарисуешь алгоритм там... диаграммы состояний. А так вообщем неясно. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2015, 17:34 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
Dima TТупо банить диапазонами тут вообще не вариант, посмотри как редко там обращения. 20-30 штук в час. Т.е. банить надо надолго. Допустим оказался твой самый ценный ВИП-пользователь в одном диапазоне с ботом и ты обоих забанил :) Согласен. С другой стороны какая випу разница зобанен его сегмент или нет если сайт лежит? Вот пускай посидит в бане пока владелец ботнета не решит кинуть всю сетку на другую жертву. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2015, 17:57 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
Про нейронные сети в первую очередь подумал, но кроме общих слов ничего не знаю про них. Как выразить поведение в цифрах ХЗ, я это уже написал. Думаю надо как-то выявить не только IP, но и сессию (например по времени обращений) дальше смотреть сколько раз конкретный IP обращается к конкретному скрипту. Возможно будет несколько эталонных моделей, т.е. пользователи с разными типами поведения (например юзер и модератор). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2015, 18:01 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
Ты хочешь автоматизировать бан конкретретных IP ? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2015, 18:03 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
Dima TPS Делаю обертку для твоей ГЕО-IP таблицы. Закончу выложу в тот топик. Не спеши. Расскажи что за обёртка. Что за API. Меня интересует функционал поисков по доп условиям. Например WHERE country="CHINA" ... e.t.c. И еще. У меня уже давно есть репка. Лей сюда. https://sourceforge.net/p/countryipdiagram/code/HEAD/tree/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2015, 18:05 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
maytonСогласен. С другой стороны какая випу разница зобанен его сегмент или нет если сайт лежит? Вот пускай посидит в бане пока владелец ботнета не решит кинуть всю сетку на другую жертву. В данном случае сайт не лежит. Он просто делает то что не должен делать (рассылает спам, ддосит кого-нибудь и т.д.). По сути тот сайт это просто часть ботнета и это напрягает владельца сайта. Надо определится с чем мы боремся: зомбирование вирусом или ущерб от зомби. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2015, 18:18 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
Ты-же знаешь что пятничные топики это мозго-штурмы. Во что выродится идея - я не знаю. Я ожидаю больше сведений и предложений от владельцев ресурсов сайтов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2015, 18:22 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
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, интересно потестить. В репку меня добавь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2015, 18:52 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
Добавил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2015, 18:58 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
maytonТы-же знаешь что пятничные топики это мозго-штурмы. Во что выродится идея - я не знаю. Я ожидаю больше сведений и предложений от владельцев ресурсов сайтов. Это удел хостинг-провайдеров. 99% владельцев сайтов несознательные товарищи. Им сделали сайт, получили деньги и досвиданья. Дальше нет никого кто хоть как-то попытается понять как там сайт работает. Поэтому хостер просто анализирует трафик, примитивно, нездоровую активность блокирует (например мне вырубили на сайте отправку почтой алертов сайта мне, админу, просто оказалось много алертов), а в случае ддоса хостер просто вырубает атакуемый сайт, если он на хостинге сайтов (т.е. на одном IP куча сайтов), меняет IP в DNS и тупо убивает обращение на новый IP. Легко, просто, но провайдер решает свои проблемы, т.е. изолировать остальных от больного, т.е. полная жопа тому кого ддосят. И этот жертва ддоса уже не в состоянии что-то поделать самостоятельно, до него просто не доходит то что надо анализировать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2015, 19:34 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
Хорошая мысль насчёт смены IP. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2015, 19:37 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
А мой интерес - гео-поиск. Структуры данных. И нетрадиционные dbms. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2015, 19:47 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
maytonХорошая мысль насчёт смены IP. Хорошая, если ддосят не по IP из DNS :) т.е. по DNS имени. Это практика провайдеров. ИМХУ правильно поступают, т.к. все остальные решения еще хуже. У меня не совсем сайт в общем понимании. У меня сайт выполняет роль центрального сервера, файлообменник, т.е. на него ходят проги, а не люди. Поэтому я просто оборону построил: насоздават кучу виртуалок (передастов) которые тупо транслируют обрашение к сайту. До кучи они являются кэшем разгружая сервер. Передасты на разных провайдерах. Если передаст умрет или его заддосят то ничего страшного, прога переключится на другой передаст. На самый крайний случай есть механизм передачи списка активных передастов когда все известные проге лежат, чтобы можно было быстро поднять виртуалку с передастом (5-10 минут). Вобщем где мой сервер знают только передасты, а он никому кроме них не отвечает. Минусы есть, но надежность важнее. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2015, 19:57 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
maytonА мой интерес - гео-поиск. Структуры данных. И нетрадиционные dbms. Ты свой интерес формально вырази. Может интересы совпадут. По мне "гео-поиск" это взять компас/навигатор и добираться на конкретную точку, занимательно, но к ИТ вообще отношения не имеет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2015, 20:02 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
maytonнетрадиционные dbms. Из традиционных можно сделать нетрадиционные с традиционным функционалом. Именно этим интересен sqlite, т.к. на замену традиционным СУБД он не тянет. Ваять стебелек 2.0 тоже не интересно, ты его часто поминаешь, как я понял это аналог СУБД на массивах, если есть ссылки на исходники или откомпилированный код - поделись, интересно поизучать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2015, 20:14 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
Dima Tmaytonнетрадиционные dbms. Из традиционных можно сделать нетрадиционные с традиционным функционалом. Именно этим интересен sqlite, т.к. на замену традиционным СУБД он не тянет. Ваять стебелек 2.0 тоже не интересно, ты его часто поминаешь, как я понял это аналог СУБД на массивах, если есть ссылки на исходники или откомпилированный код - поделись, интересно поизучать. В моём понимании нетрадиционные - это те которые используют нетрадиционные способы хранения данных. Column oriented например. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 25.09.2015, 20:59 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
maytonИ еще. У меня уже давно есть репка. Лей сюда. https://sourceforge.net/p/countryipdiagram/code/HEAD/tree/ Залил. Можешь потестить. Пока просто загрузка из CSV, проверка пересечений и поиск записи для конкретного IP. Там время загрузки выводится, затести полный файл сколько грузится. Надо ли вообще его в бинарный вид перегонять. Надо теперь определиться какие выборки потребуются, т.е. какие запросы будут. Исходя из этого изобретать как результаты выдавать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2015, 17:32 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
make не проходит Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2015, 17:50 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
Там русская "с" в compare_... Поправил. Затестил в линуксе g++ x64 - посерьезнее ошибки полезли. Преобразования типов. Как разберусь - напишу. MSVCх32 компилирует. Может кто подскажет, проблема в следующем: есть указатель на структуру, мне надо туда записать int (id структуры в массиве), а потом, когда массив появится заменить int на указатель. Код: sql 1. 2. 3. 4. 5. 6. т.е. в ip_range.push_back() я даю int как вместо указателя, это проходит, но с warning А когда пытаюсь обратно поменять - уже нет. pl_recode[] массив ip_place_t* Как это правильно сделать? Код тут ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2015, 18:32 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
Починил, надо size_t использовать. Можно тестить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2015, 19:05 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
Пока не летает. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2015, 20:26 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
Образец файла я уже где-то приаттачивал. Но ничего. Еще раз положу. GeoIpCity.csv Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2015, 20:29 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
Поправил. Я пропатчил твой csv под русскоязычный csv с ; чтобы в экселе смотреть. Сейчас оба понимает. Убрал вылет при ошибке. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2015, 20:51 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
Dima T, скайп есть? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2015, 20:56 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
maytonDima T, скайп есть? У жены на ноуте есть. Я эту хрень не признаю. Параннойя. Камеры все отключены в биосе. У меня есть аська (на работе) и сотовый на все остальные случаи. Аську форум заменяет, хочешь позвоню, но светить номер тут не буду. Вроде личка тут есть, заглянул в профиль, поставил галку "разрешить личные сообщения", где их читать хз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2015, 21:16 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
Dima TmaytonDima T, скайп есть? У жены на ноуте есть. Я эту хрень не признаю. Параннойя. Камеры все отключены в биосе. У меня есть аська (на работе) и сотовый на все остальные случаи. Аську форум заменяет, хочешь позвоню, но светить номер тут не буду. Вроде личка тут есть, заглянул в профиль, поставил галку "разрешить личные сообщения", где их читать хз. Ладно бох с ним. Я хотел БД тебе оправить. В любом случае бенчмаркить надо на чём-то более плотном. 45 мегебайт в формате 7zip. Куда лить? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2015, 21:24 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
maytonЛадно бох с ним. Я хотел БД тебе оправить. В любом случае бенчмаркить надо на чём-то более плотном. 45 мегебайт в формате 7zip. Куда лить? Можно в файлообменник какой-нибудь выложить. Качаться потом будет долго, но это уже мои проблемы. Зарегал ящик. Шли сюда x3_x3_x3_x3@bk.ru Если не полезет, побей на части. Популярное имя, нет у ИТ-шников фантазии, я не исключение. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2015, 21:38 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
Dima T, отправил. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2015, 22:02 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
Несколько интересных копипаст с хабра. С их позволения. Под катом. автор/blog/158945/Система защиты нашего сервиса Qrator основана на множестве математических построений. Как обычно отвечает Яндекс на вопрос «а как у вас поиск устроен?»? Да просто! Берем текст, токенчики, разделители, строим индескы, ранжируем. У нас примерно то же самое, только мы решаем задачу по анализу и фильтрации трафика. Ее решением занято множество людей. Поведенческий анализ — один из наиболее эффективных методов фильтрации трафика. Мы рассматриваем сайт как дерево переходов. В узлах дерева находятся странички, а в ребра мы закладываем вероятность перехода и задержку при переходе. В основе лежит тот простой факт, что роботы и люди видят веб-страницы по-разному. Когда времени на обучение достаточно, люди «натаптывают» в этих переходах определенные уплотнения — тропинки. Всё посетители, которые из них выпадают, с той или иной вероятностью являются роботами. Вроде бы всё просто. С другой стороны, если прикинуть, какие объемы памяти и вычислительные ресурсы понадобятся для обработки, ты поймешь, что, наверное, при текущих вычислительных мощностях это не так-то просто. Я перечислил свойства ботнета на слайде для одной достаточно старой презентации. Когда я делал тот слайд, он казался мне абсолютно правильным: Жадность. Ботнет старается нанести приложениям как можно больше вреда за единицу времени. Ущербность. Ботнет не являет браузером. Это некий HTTP-стек, встроенный в червь. Как правило, он не умеет ставить корректные заголовки, не обладает JS-движком или обладает в ограниченном виде. Самосохранение. Ботнет — ценный ресурс, и любые действия, приводящие к сокращению его размера приносят прямые финансовые убытки атакующим. Ботнет старается не производить действий, которые могли бы его демаскировать и отразиться на материнской системе. Транснациональность. Ботнеты раскиданы по всему «шарику». Конечность. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.09.2015, 22:07 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
Дима проясни плиз. Я не совсем понял назначение последнего аргумента. Вот к примеру я хочу найти сведения по IP = 223.133.70.1 (Токио). Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. Непонятненько... Я вроде ничо не нашёл. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2015, 12:19 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
Скачал. Странный какой-то 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 сек., надо бинарник делать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2015, 12:48 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
maytonДима проясни плиз. Я не совсем понял назначение последнего аргумента. Непонятненько... Я вроде ничо не нашёл. Неправильно вызывал. Код: sql 1. 2. 3. 4. 5. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2015, 12:53 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
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. Возможно поможет. Полезная штука. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2015, 16:55 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
Обновись. Переделал загрузку, добавил координаты, добавил поиск нескольких IP. Код: sql 1. Потести. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2015, 17:02 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
Похоже у тебя рантайм и компилятор разные. Попробуй добавить ключ -static Код: sql 1. Если все нормально - exe должен стать заметно больше размером. Если будет ругаться - почитай хелп как статически залинковать рантайм с++ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2015, 17:42 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
1) Да. Дело было в рантайме. 2) Можно координаты добавлять в виде ссылки на какой-нить гео-локатор. Для Токио. (Масштаб=5, широта и долгота (35.6850,139.7514)) https://www.openstreetmap.org/#map=5/35.6850/139.7514 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2015, 18:12 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
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 чтобы ссылки были ссылками? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2015, 18:27 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
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 + фрейм со ссылкой на гуглокарту. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2015, 19:08 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
maytonОбрати внимание на BerkeleyDB. Почитал. Так sqlite по сути тоже самое. Можно и то и другое потестить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2015, 20:57 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
Dima TmaytonОбрати внимание на BerkeleyDB. Почитал. Так sqlite по сути тоже самое. Можно и то и другое потестить. Беркли привлекательнее. SQLite обременён SQL-стеком а Беркли - по сути либа. Хотя у лайта возможно на некоторых запросах будет скорость из за in-memory. Хотя.. бустрап у Беркли должен быть нулевой.... а хер ево знает надо тестить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.09.2015, 21:17 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
Оракл уже посравнивал Berkeley DB and SQLite (PDF) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2015, 05:31 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
Dima T, попробовал BerkeleyDB (Java-порт). Многабукв вышло. Нет никакого ORM. Для сериализации объекта нужно написать что-то своё причем возвращающее byte[]. Лет 10 назад я юзал Беркли на С++. Там оно как-то проще было. В плане положить стурктуру или объект в хранилище. Чуть позже опубликую код на сорсфорже. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2015, 13:58 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
Почитал немного про BerkeleyDB, я так понял это гигантские ассоциативные массивы бинарных данных с надежным хранением. Аналог их базы в С++ будет map<string, string>. По сути я тоже самое сделал, тоже массивы, только без хранения. Т.е. должно быть быстрее берклея. Допилю сегодня сохранение в бинарник. Структуру опишу, можешь загрузчик к себе сделать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2015, 14:31 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
Вовсе не обязательно их размер должен быть гигантским. От юзкейса зависит. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2015, 17:35 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
maytonВовсе не обязательно их размер должен быть гигантским. От юзкейса зависит. Это понятно. Я в том смысле что в беркли можно с гигантскими массивами работать не заморачиваясь на размер адресного пространства. В нашем случае размеры скромные. PS Зафиксировал запись в бинарник. Читается в 100 раз быстрее CSV Создать бинарник Код: sql 1. Грузится с него Код: sql 1. Структура описана в data_struct.txt ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2015, 17:45 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
Круть. Работает. Только странно как-то что одна утилита в себе воплощает 2 функционала. И поиск и конвертирование БД. Кроме того есть маленький баг. Несуществующий адрес в диапазонах тем не менее найден. Код: sql 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2015, 19:05 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
maytonКроме того есть маленький баг. Несуществующий адрес в диапазонах тем не менее найден. Код: sql 1. Это не баг а фича :) специально добавил диапазон "0.0.0.0-0.0.0.0 Unknown" для случаев когда найти не удалось. Так всегда что-то возвращается. Иначе обработка усложняется, проверки лишние надо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2015, 19:19 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
Я вот думаю.... как-бы ее к админским задачам прикрутить. Лог ДДоса видел? Вооот. Представь себе что сидит бедняга админ и мучается как ему нашу утилиту применить овер 9000 раз к 9000 записям в логе. И получить 9 тыщ сведений по географии. Разумеется ты свой API сделаешь. Разработчик ибо. А ему как? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2015, 20:20 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
ХЗ как. Предлагай варианты. Не админ, их практик не знаю. Самый тупой способ: давать на вход лог и выискивать в нем эвристикой IP. Эвристика не сложная три точки, а по краям и в середине цифры. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2015, 21:02 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
Ну... можно как-то так. Админ берёт свой чортов лог. Сам фильтрует там ip через grep и правила выборки атаки. Далее очищенный список ip-шников идёт на stdin в нашу утилиту. А на выходе мы получаем опять-же в csv данные по гео-привязке. Ну как-то так: Код: sql 1. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.09.2015, 22:50 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
Зафиксировал парсер логов. Можешь потестить. Как запускать в readme.txt С форматами вывода пока не разбирался. Будут чуть позже и сsv и html. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2015, 19:02 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
Dima T, не надо html. Формат репорта уже неважен. Тот кто сильно хочет - возьмет Excel и сконвертит сам. Вот сортировочку по 1-му полю надо бы. Прогнал 1-й файл отсюдова 18132793 Код: sql 1. 2. 3. 4. 5. 6. 7. И сделать дефолное имя файла-базы. Чтоб на 1 параметр меньше было. А я тем временем впал в глубкий коматоз размышлизм по графической части. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2015, 20:01 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
Нашёл еще интересную инфу к размышлению http://habrahabr.ru/company/netangels/blog/149302/ +базёнка оттудова http://noc.masterhost.ru/allrunet/runet ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2015, 20:25 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
maytonDima T, не надо html. Формат репорта уже неважен. Тот кто сильно хочет - возьмет Это просто. Я уже заточил код под форматы вывода. Мелочь осталась. maytonВот сортировочку по 1-му полю надо бы. А вот с этим гимор будет. Если глянешь geoip::print() то увидишь что там сначала строится мап по [ip_range_t*] затем выводятся значения. Надо его перестроить наоборот, т.е. мап[-значение] = ip_range_t*, затем выводить. Причем значения повторяются в отличии от уникального ip_range_t*. Вобщем нетривиально в итоге. Надо голову еще поломать как поправить. Подумаю. PS Просится тут sqlite. Добивал "oder by ... desc" и готово. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2015, 20:27 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
Про TARPIT интересно пишут. Это не просто защита. Это в некотором роде контратака. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2015, 20:34 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
Мда. БД наша дырявая... Не нашёлся перец. И ведь сервисы Vuze как-то определяют что страна - "RU". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2015, 23:52 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
Вот еще база Вроде обновляется и бесплатно качать не запрещают . Поизучаю вечером. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2015, 09:07 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
maytonDima T, не надо html. Формат репорта уже неважен. Тот кто сильно хочет - возьмет Excel и сконвертит сам. Вот сортировочку по 1-му полю надо бы. добавил вывод в csv (ключ -csv) html попозже сделаю, со ссылками на гуглокарту. maytonИ сделать дефолное имя файла-базы. Чтоб на 1 параметр меньше было. Сделаю поиск базы по имени geoip.dat - если нет - ошибка. А загрузку ключиком -import. Заодно попробую импорт этой сделать 18212806 По другим параметрам тоже мысли есть как переделать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2015, 15:01 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
Начал дизассебмлировать Vuze-вский плагин геолокации. Сюрприз №1. Сорцы в нём. Хехе. Сюрприз №2. Он использует БД maxmind и судя по всему укомплектован генератором бинарей. Хехе. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2015, 15:17 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
У них есть свежая бесплатная в csv http://dev.maxmind.com/geoip/geoip2/geolite2/ в платной какая-то доп.инфа, типа провайдеров и т.п. формат немного сменили, названия городов вынесли в отдельную таблицу. Думаю оттуда надо брать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2015, 16:32 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
Lite - это облегченный вариант. Что там чистили - ХЗ. Но сведений явно меньше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2015, 16:45 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
maytonLite - это облегченный вариант. Что там чистили - ХЗ. Но сведений явно меньше. Строк меньше. 5,7 млн. в твоем файле, 2,5 млн. в этом. Подсунул GeoLite2-City-Blocks-IPv4.csv как лог своей проге: Код: sql 1. 2. 3. Какая-то лажа. Надо считалку перепроверять, похоже при группировке какой-то косяк. Добавил вывод в лог отсутствующие - получилось 306 тыс. диапазонов неизвестных. И еще куда-то 7 IP проимелось, их там 2498740. Разбираюсь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2015, 18:03 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
Dima T, ты разбирался с SqlLite? Это хорошо. Там можно за 10 минут скриптик набросать для загрузки в БД. После этого БД можно использовать для тестов. Чтобы сверять цифры с данными твоего приложения. Количество адресов. Диапазонов. e.t.c. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2015, 18:53 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
maytonDima T, ты разбирался с SqlLite? Не разбирался. Ни разу не пользовался. Планировал сделать версию 2.0 с ним. Затестить потери я могу другими способами. Тут дело не в этом. Там какая-то непонятная хрень происходит, при группировке пропадают IP из неизвестных диапазонов. Причем глючит только если подсунуть именно этот файл. Разбираюсь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2015, 19:10 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
Поправил косяк в отчете. Надо же было додуматься хранить указатели на элементы вектора, который увеличивается :) Странно что не вылетало. Вот результат прогона 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, с этим позже поразбираюсь. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2015, 08:06 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
300 тысяч неизвестных? Это херово... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2015, 15:44 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
mayton300 тысяч неизвестных? Это херово... Точно 306348 Поправил свой искатель IP в логах. Некоторые криво разбирались из-за того что на стыке буферов чтения оказывались. Надо грузить эту таблицу как основу и прогонять через нее твою таблицу как лог. По результату будет видно куда дальше двигаться. Делаю загрузчик. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2015, 18:02 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
Понимаю что ты - фанат кодить на сях но в данном исследовании совершенно необязательно себя ограничивать. Возможно имеет смысл откатать модель и тесты на Excel, SQLite, скриптики на Питоне. А когда всё взлетит - портировать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2015, 19:22 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
maytonПонимаю что ты - фанат кодить на сях но в данном исследовании совершенно необязательно себя ограничивать. Возможно имеет смысл откатать модель и тесты на Excel, SQLite, скриптики на Питоне. А когда всё взлетит - портировать. Эксель вообще не вариант, просто не справится. SQLite могу заменить на фокс или MSSQL, его интересно поизучать в плане использования как локальную СУБД, но тут несвойственная SQL'ю задача, теория РСУБД не заточена на работу с диапазонами. Питон и пр. высокоуровневые алгоритмические ЯП просто не знаю, и пока не вижу смысла тратить время на изучение. Интересен С. Как инструмент реализации нестандартых алгоритмов. Причем как быстро работающей реализации. Есть небольшой опыт на С написания длл, обеспечивающих низкоуровневый функционал, недоступный из других языков. Например перехват вызовов WinAPI и шифрование/дешифрование данных на диске. Но что-то высокоуровневое на С я не писал (несколько простых поделок), даже банальных конвертеров как тут не писал, надо понять стоит ли начинать. Эта задача самое то что мне надо. На счет портирования: была обратная мысль, в конце сделать экспорт в разных форматах, от csv до скриптов MSSQL, MySQL и т.п. В-третьих: я уже придумал куда мне пристроить эту наработку :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2015, 21:27 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
Dima TВ-третьих: я уже придумал куда мне пристроить эту наработку :) Поставишь на мобилу? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 01.10.2015, 22:04 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
Еще мысль. Нужно вести белый список. Например все кто атакуют "по ту сторону proxy" имеют более низкий индекс угрозы. Их трафик искусственно ограничен способностями proxy и выбор протоколов ограничен. Еще мысль по поводу пробелов в базе. Можно создать "протокол обновления" этой базы через доступные http сервисы типа whois, whoip e.t.c. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2015, 08:37 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
maytonЕще мысль. Нужно вести белый список. Например все кто атакуют "по ту сторону proxy" имеют более низкий индекс угрозы. Их трафик искусственно ограничен способностями proxy и выбор протоколов ограничен. Сложно как-то. Тут проблемы решать на прокси надо, т.к. через него в т.ч. нормальные соединения будут проблематичны. А для того куда проксируется будет всего один IP в белом списке - IP прокси. Известен заранее. А для прокси все "по ту сторону", т.е. задача сводится к исходной. maytonЕще мысль по поводу пробелов в базе. Можно создать "протокол обновления" этой базы через доступные http сервисы типа whois, whoip e.t.c. Через вэб-сервисы думаю не получится. Большое количество обращений они за деньги обслуживают. Обратился несколько тысяч раз - тебя забанили и попросили денег заплатить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2015, 09:02 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
maytonЕще мысль по поводу пробелов в базе. Можно создать "протокол обновления" этой базы через доступные http сервисы типа whois, whoip e.t.c. Через вэб-сервисы думаю не получится. Большое количество обращений они за деньги обслуживают. Обратился несколько тысяч раз - тебя забанили и попросили денег заплатить.[/quot] Да нам много не надо. Завести в системе табличку (ого вот уже БД нужна) где будет очередь реквестов на уточнение данных. И долбить сервис но не чаще чем раз в минуту. Типа: idIPDTRegGeoIPresult0123.34.56.782015/10/02 08:31:00? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2015, 09:32 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
maytonДа нам много не надо. Завести в системе табличку (ого вот уже БД нужна) где будет очередь реквестов на уточнение данных. И долбить сервис но не чаще чем раз в минуту. Тут главная засада что сервисы не сообщают диапазон куда IP попал, т.е. табличка ответов в нашу исходную структуру не очень вписывается. Если хранить отдельно табличку IP с ответами, то в итоге она неслабо распухнет и тут уже точно полноценная БД потребуется :) Для оптимизации потребуется центральное хранилище (большая БД) и дальше двусторонняя репликация. Вот мы и построили полноценную распределенную БД И второй момент: место расположения разные сервисы могут называть по-разному. Я ссылку на список рунета давал, там все замечательно, подробно, но по-русски. Без эвристики его проблематично скрестить со списком из англоязычных источников. Списком с maxmind еще не занялся, мельком глянул, там есть русский справочник, но насколько он совпадает с названиями из списка рунета? Сравнивать ведь по написанию придется. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2015, 10:07 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
Вот еще сервис есть. Второй параметр - адрес. Правда он диапазоны не выдает. http://ipinfo.io/89.188.113.72/json ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2015, 16:10 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
Еще один с бесплатной базой https://db-ip.com/db/ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2015, 16:48 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
maytonВот еще сервис есть. Второй параметр - адрес. Правда он диапазоны не выдает. http://ipinfo.io/89.188.113.72/json У этих ограничение 1000 в сутки. Даже раз в минуту уже часто будет http://ipinfo.io/pricing ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2015, 17:00 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
Dima TЕще один с бесплатной базой https://db-ip.com/db/ Круть. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2015, 17:58 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
Загрузил GeoLite2-City-Blocks-IPv4.csv в качестве основной базы Код: sql 1. В твоем файле было Код: sql 1. Прогнал твой файл как лог: неизвестных 13109 диапазонов Прогнал файл отсюда 18227665 : неизвестных 13094 диапазонов Такая вот статистика. Думаю в принципе неплохо: меньше чем 300 тыс. Но интересно на эти 13 тыс. взглянуть. Скорее всего 13 тыс. еще на два надо поделить, т.к. там два IP - начало и конец. А 300 тыс. было в формате IP/маска. Я загрузчик немного не доделал, там с названием городов непонятка какая-то. Только страна прочиталась. На расчет не повлияло. Закончу, зафиксирую. Тут 18227665 файл вроде как не "lite", но без координат. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2015, 18:10 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
Разобрался с названиями городов. И похоже я понял в чем 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 пререпишу и зафиксирую. Переделал командную строку полностью. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2015, 19:04 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
Зафиксировал. Думаю надо еще пару ключиков сделать: -find <place> будет выводить все строки лога где <place> начало из названия диапазона. Т.е. частный случай Код: sql 1. выведет все строки с неизвестными IP или так Код: sql 1. -export <format> Экспорт в разных форматах, от 1-2 файлового csv до скриптов для заливки на разные SQL сервера. Комбинациями этих двух ключей можно будет резать/клеить файлы из разных источников. Дополнительно еще переделаю загрузку из CSV, чтобы она не была жестко привязана к колонке, а определяла где-какая по заголовку. Получится универсальный конвертер IPGEO баз. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2015, 19:38 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
Дим. Я всё таки хотел чтоб были 2 штуки утилиты. Одна - конвертер из ЦСВ в бинарь. А другай - конкретно поиск. Понимаешь этим софтом должны пользоваться админы. Ладно мы разберёмся. А админу как? Ему - некогда. Ему - бегом-бегом. Он едва grep с awk-ом раскурил. И то для узких задач. А тут - уже целый информационный комплекс. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2015, 20:59 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
"Огорчу я тебя до невозможности". Админ не будет использовать эту хрень - он не спецназ, чтобы устраивать маски шоу в пункте-источнике, а без этого знание геоположения интересно только в качестве "послепотомного" развлечения. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2015, 21:56 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
OMG! Да гдеж я такое предлагал-то? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 02.10.2015, 22:12 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
maytonДим. Я всё таки хотел чтоб были 2 штуки утилиты. Одна - конвертер из ЦСВ в бинарь. А другай - конкретно поиск. Понимаешь этим софтом должны пользоваться админы. Ладно мы разберёмся. А админу как? Давай разделю. Вынесу все конвертации в geoipcfg.exe Не сложно. Немного поразмышлял о применимости админами: 1. Админам нужны подсети (1.12.0.0/16), а не наши диапазоны (1.12.0.0-1.12.255.555) т.к. у них все админится в подсетях. Например твой файл в большинстве случаев полное соответствие, но есть записи где в одном диапазоне несколько подсетей. 2. Один город/региод/страна имеет несколько диапазонов, в результате наша группировка по диапазонам и сортировка по убыванию теряет информативность. Думаю надо как-то разделить задачи: админам дать подсети с анализом активности каждой, гео-аналитикам дать города/регионы/страны. Вывод: надо полноценную СУБД, т.е. пора начинать осваивать sqlite и делать версию 2.0. :) PS Только сначала разделю исходники и парсер csv поправлю, он еще пригодится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2015, 13:13 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
Я-бы предложил базы класть в каталог Код: sql 1. 2. 3. 4. 5. и по умолчанию считать что они там всегда лежат. Уберём лишний дефолтный аргумент. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2015, 13:44 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
maytonи по умолчанию считать что они там всегда лежат. Уберём лишний дефолтный аргумент. Аргументы лишние уже убраны, обновись, почитай readme.txt Пути отсутствуют, обращение по имени, жеско вшито имя "geoip.dat", т.е. сначала в текущей папке ищется. Предусмотрю настройку пути, чтобы в коде задать в одном месте. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2015, 14:03 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
Что за страна с кодом XK ? Код: sql 1. 2. 3. 4. 5. 6. 7. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 03.10.2015, 21:48 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
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 если второго нет - третье игнорируется. Надо поправить. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2015, 08:09 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
Разделил на две софтины. Для админов и продвинутых :) Для продвинутых (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" не может быть. Курю инет по этому поводу. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 04.10.2015, 18:46 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
Коллеги, вы очень увлеченно что-то строите. Но можно поинтересоваться целью сего процесса? Пусть даже она заключается в простом интересе, но я и этого не вижу. Попутно интересно, а как предполагается быть с таким - http://geektimes.ru/company/ua-hosting/blog/263398/ ? В данном случае ботнет, как некая единая структура, просто отсутствует. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2015, 10:11 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
Это был пятничный топик. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2015, 10:49 |
|
||
|
Тяпничный анализатор ботнетов
|
|||
|---|---|---|---|
|
#18+
Ну хорошо, подожду до пятницы :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.10.2015, 11:02 |
|
||
|
|

start [/forum/topic.php?all=1&fid=16&tid=1340915]: |
0ms |
get settings: |
8ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
190ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
87ms |
get tp. blocked users: |
1ms |
| others: | 242ms |
| total: | 558ms |

| 0 / 0 |
