SlideShare a Scribd company logo
Data Mining in the service of nmap
Sergey Ignatov, Omar “beched” Ganiev
sergey@ctf.su, beched@incsecurity.ru
Data Mining in the service of nmap
$who
Data Mining in the service of nmap
Проблема
Мир не стоит не месте, все развивается, сетевые сканеры в
том числе. Начиная от дедушки nmap 1.0 (September 1, 1997),
сканеры развиваются в раличных направлениях.
● Сканирование всего интернета (zmap)
● Сканирование уязвимостей в сервисах (nmap scripting
engine и другие коммерческие сканеры безопаности)
● Интегрированный TCP стек (polarbear from IOActive)
Data Mining in the service of nmap
Но сканирования обнаруживаются IDS/IPS
:(
Data Mining in the service of nmap
Обход
● Сканирование через сторонние сервисы (ftp bounce, proxy)
● Уязвимости в самом IDS/IPS
● Всякие сетевые хитрости (https://nmap.org/book/man-
bypass-firewalls-ids.html)
● Сканировать медленнее чем IDS хранит историю
● Рассмотрим именно такой подход сканирования с
задержками, мы хотим его сделать эффективнее
Data Mining in the service of nmap
Как найти максимальное количество
портов за минимальное количество
запросов?
Data Mining in the service of nmap
Internet Census 2012
● http://internetcensus2012.bitbucket.org
● 420K взломанных домашних маршрутизаторов (пароли по
умолчанию)
● Просканировали весь интернет!
● Dataset: 9TB of raw logfiles (500Gb in zpaq)
Data Mining in the service of nmap
Методика
● На основе данных о всех хостах в интернете строим
оракул, который будет предсказывать наиболее вероятные
порты
● Идея очень проста: порты не встречаются сами по себе,
они встречаются группами, так давайте хранить не список
самых вероятных портов, а список самых вероятных групп
Data Mining in the service of nmap
Методика
● По сути группы соответствуют различным классам сетевых
устройств/сервисов
● Если нашли открытые порты X,Y и закрытый Z, то
вероятнее всего будут открыты порты из групп где есть
порты X или Y, и нет Z
Data Mining in the service of nmap
Методика
● Сначала мы пытались применить всякие умные алгоритмы
и machine learning, делая вид, что умеем это
● Но дерево решений для сканирования будет
экспоненциального размера, значит, его построение тоже
экспоненциально
● Алгоритмы классификации не в тему
Data Mining in the service of nmap
Методика
● Что ещё можно? Можно пробовать кластеризовать
результаты скана и получить классы сервисов (“сайт”,
“циска”, “винда”, …)
● Проблема: в датасете интернет-скана много NAT-узлов,
отравляющих обучение
● Проблема: в датасете много зафаерволенных хостов, в
которых виден только порт 80
Data Mining in the service of nmap
Методика
● Для кластеризации нужно метрическое пространство
● Можно взять какой-нибудь simhash, или можно взять длину
LCS, которая динамически вычисляется за произведение
длин последовательностей
● Но у нас около 10^7 уникальных последовательностей, а
подходящая кластеризация работает не лучше чем за
квадрат
● К тому же из NAT-последовательностей надо вычленять
разумные подпоследовательности портов
Data Mining in the service of nmap
Методика
● Keep It Simple, Stupid!
● Давайте просто сортировать статистику =)
● В качестве базовой статистики, по которой начинаем
сканировать без предварительных знаний, для начала
возьмём топ портов
Data Mining in the service of nmap
Сколько открытых портов в интернете?
Data Mining in the service of nmap
TOP13 самых встречаемых групп
Data Mining in the service of nmap
TOP13 самых встречаемых групп
Data Mining in the service of nmap
Чем плох NMap?
● Чем плох NMap? Много чем, там много наследия прошлого
● Главное - он медленный
● По умолчанию NMap сканит по топу портов (4243 порта),
при полном наборе сканит случайным образом
Data Mining in the service of nmap
Результаты
● Пока что с лобовым алгоритмом и предварительной статой
уже получилось ускорение на 42% относительно NMap
● Статистику измеряли путём имитации сканирования
● При этом сравнивалось, за какое количество запросов наш
алгоритм находит столько же портов, сколько всего нашёл
NMap (по умолчанию он не ищет дальше своего топа)
Data Mining in the service of nmap
Результаты
Data Mining in the service of nmap
Планы на будущее
● Патч для nmap, изменяемая стратегия сканирования
● Данные по интранету (внутренние пентесты)
● Компактный словарь
(сейчас 150Мб и самый полный 666Мб)
● Более точная кластеризация на основе данных протокола
(Тип сервиса, версия, ОС и т.д.)
● ...
Data Mining in the service of nmap
Вопросы
Q?
sergey@ctf.su
beched@incsecurity.ru

More Related Content

What's hot

Подходы к сигнатурному статическому анализу
Подходы к сигнатурному статическому анализуПодходы к сигнатурному статическому анализу
Подходы к сигнатурному статическому анализуPositive Development User Group
 
Технологии анализа бинарного кода приложений: требования, проблемы, инструменты
Технологии анализа бинарного кода приложений: требования, проблемы, инструментыТехнологии анализа бинарного кода приложений: требования, проблемы, инструменты
Технологии анализа бинарного кода приложений: требования, проблемы, инструментыPositive Development User Group
 
Введение в Python и Django
Введение в Python и DjangoВведение в Python и Django
Введение в Python и DjangoTaras Lyapun
 
разработка бизнес приложений (8)
разработка бизнес приложений (8)разработка бизнес приложений (8)
разработка бизнес приложений (8)Alexander Gornik
 
Профилирование кода на C/C++ в *nix системах
Профилирование кода на C/C++ в *nix системахПрофилирование кода на C/C++ в *nix системах
Профилирование кода на C/C++ в *nix системахAleksander Alekseev
 
Хорошо поддерживаемое приложение
Хорошо поддерживаемое приложениеХорошо поддерживаемое приложение
Хорошо поддерживаемое приложениеNikolay Sivko
 
Flask как хорошее решение для веб проекта
Flask как хорошее решение для веб проектаFlask как хорошее решение для веб проекта
Flask как хорошее решение для веб проектаPython Meetup
 
Автоматизация построения правил для Approof
Автоматизация построения правил для ApproofАвтоматизация построения правил для Approof
Автоматизация построения правил для ApproofPositive Hack Days
 
14 HappyDev-lite-2015 autumn. Дмитрий Вахрушев. Зачем вам изучать Python?
14 HappyDev-lite-2015 autumn. Дмитрий Вахрушев. Зачем вам изучать Python?14 HappyDev-lite-2015 autumn. Дмитрий Вахрушев. Зачем вам изучать Python?
14 HappyDev-lite-2015 autumn. Дмитрий Вахрушев. Зачем вам изучать Python?HappyDev-lite
 
Автоматизация построения правил для Approof
Автоматизация построения правил для ApproofАвтоматизация построения правил для Approof
Автоматизация построения правил для ApproofPositive Development User Group
 
Функциональное тестирование высоконагруженных проектов / Илья Пастушков (2ГИС)
Функциональное тестирование высоконагруженных проектов / Илья Пастушков (2ГИС)Функциональное тестирование высоконагруженных проектов / Илья Пастушков (2ГИС)
Функциональное тестирование высоконагруженных проектов / Илья Пастушков (2ГИС)Ontico
 
Sergii Tsypanov: "Tricky enterprise"
Sergii Tsypanov: "Tricky enterprise"Sergii Tsypanov: "Tricky enterprise"
Sergii Tsypanov: "Tricky enterprise"LogeekNightUkraine
 
Семантическое ядро рунета - высоконагруженная сontent-based рекомендательная ...
Семантическое ядро рунета - высоконагруженная сontent-based рекомендательная ...Семантическое ядро рунета - высоконагруженная сontent-based рекомендательная ...
Семантическое ядро рунета - высоконагруженная сontent-based рекомендательная ...Ontico
 
My talk at YouCon Saratov 2016
My talk at YouCon Saratov 2016My talk at YouCon Saratov 2016
My talk at YouCon Saratov 2016Alex Chistyakov
 
Anton Tsitou "Cycle ORM and Graphs"
Anton Tsitou "Cycle ORM and Graphs"Anton Tsitou "Cycle ORM and Graphs"
Anton Tsitou "Cycle ORM and Graphs"Fwdays
 
Golang в действии: Как нам удается писать highload приложение на (не?)подходя...
Golang в действии: Как нам удается писать highload приложение на (не?)подходя...Golang в действии: Как нам удается писать highload приложение на (не?)подходя...
Golang в действии: Как нам удается писать highload приложение на (не?)подходя...Daniel Podolsky
 
C++ Core Guidelines
C++ Core Guidelines C++ Core Guidelines
C++ Core Guidelines Sergey Zubkov
 
Жизнь проекта на production
Жизнь проекта на productionЖизнь проекта на production
Жизнь проекта на productionNikolay Sivko
 
postgresql monitoring by okmeter.io
postgresql monitoring by okmeter.iopostgresql monitoring by okmeter.io
postgresql monitoring by okmeter.ioNikolay Sivko
 

What's hot (20)

Подходы к сигнатурному статическому анализу
Подходы к сигнатурному статическому анализуПодходы к сигнатурному статическому анализу
Подходы к сигнатурному статическому анализу
 
Кто сказал «WAF»?
Кто сказал «WAF»?Кто сказал «WAF»?
Кто сказал «WAF»?
 
Технологии анализа бинарного кода приложений: требования, проблемы, инструменты
Технологии анализа бинарного кода приложений: требования, проблемы, инструментыТехнологии анализа бинарного кода приложений: требования, проблемы, инструменты
Технологии анализа бинарного кода приложений: требования, проблемы, инструменты
 
Введение в Python и Django
Введение в Python и DjangoВведение в Python и Django
Введение в Python и Django
 
разработка бизнес приложений (8)
разработка бизнес приложений (8)разработка бизнес приложений (8)
разработка бизнес приложений (8)
 
Профилирование кода на C/C++ в *nix системах
Профилирование кода на C/C++ в *nix системахПрофилирование кода на C/C++ в *nix системах
Профилирование кода на C/C++ в *nix системах
 
Хорошо поддерживаемое приложение
Хорошо поддерживаемое приложениеХорошо поддерживаемое приложение
Хорошо поддерживаемое приложение
 
Flask как хорошее решение для веб проекта
Flask как хорошее решение для веб проектаFlask как хорошее решение для веб проекта
Flask как хорошее решение для веб проекта
 
Автоматизация построения правил для Approof
Автоматизация построения правил для ApproofАвтоматизация построения правил для Approof
Автоматизация построения правил для Approof
 
14 HappyDev-lite-2015 autumn. Дмитрий Вахрушев. Зачем вам изучать Python?
14 HappyDev-lite-2015 autumn. Дмитрий Вахрушев. Зачем вам изучать Python?14 HappyDev-lite-2015 autumn. Дмитрий Вахрушев. Зачем вам изучать Python?
14 HappyDev-lite-2015 autumn. Дмитрий Вахрушев. Зачем вам изучать Python?
 
Автоматизация построения правил для Approof
Автоматизация построения правил для ApproofАвтоматизация построения правил для Approof
Автоматизация построения правил для Approof
 
Функциональное тестирование высоконагруженных проектов / Илья Пастушков (2ГИС)
Функциональное тестирование высоконагруженных проектов / Илья Пастушков (2ГИС)Функциональное тестирование высоконагруженных проектов / Илья Пастушков (2ГИС)
Функциональное тестирование высоконагруженных проектов / Илья Пастушков (2ГИС)
 
Sergii Tsypanov: "Tricky enterprise"
Sergii Tsypanov: "Tricky enterprise"Sergii Tsypanov: "Tricky enterprise"
Sergii Tsypanov: "Tricky enterprise"
 
Семантическое ядро рунета - высоконагруженная сontent-based рекомендательная ...
Семантическое ядро рунета - высоконагруженная сontent-based рекомендательная ...Семантическое ядро рунета - высоконагруженная сontent-based рекомендательная ...
Семантическое ядро рунета - высоконагруженная сontent-based рекомендательная ...
 
My talk at YouCon Saratov 2016
My talk at YouCon Saratov 2016My talk at YouCon Saratov 2016
My talk at YouCon Saratov 2016
 
Anton Tsitou "Cycle ORM and Graphs"
Anton Tsitou "Cycle ORM and Graphs"Anton Tsitou "Cycle ORM and Graphs"
Anton Tsitou "Cycle ORM and Graphs"
 
Golang в действии: Как нам удается писать highload приложение на (не?)подходя...
Golang в действии: Как нам удается писать highload приложение на (не?)подходя...Golang в действии: Как нам удается писать highload приложение на (не?)подходя...
Golang в действии: Как нам удается писать highload приложение на (не?)подходя...
 
C++ Core Guidelines
C++ Core Guidelines C++ Core Guidelines
C++ Core Guidelines
 
Жизнь проекта на production
Жизнь проекта на productionЖизнь проекта на production
Жизнь проекта на production
 
postgresql monitoring by okmeter.io
postgresql monitoring by okmeter.iopostgresql monitoring by okmeter.io
postgresql monitoring by okmeter.io
 

Similar to Data mining for nmap acceleration

СВЯТ ЛОГИН «Як провести penetration testing c metasploit framework» QADay 2019
СВЯТ ЛОГИН «Як провести penetration testing c metasploit framework» QADay 2019СВЯТ ЛОГИН «Як провести penetration testing c metasploit framework» QADay 2019
СВЯТ ЛОГИН «Як провести penetration testing c metasploit framework» QADay 2019QADay
 
7.5. Pwnie express IRL
7.5. Pwnie express IRL7.5. Pwnie express IRL
7.5. Pwnie express IRLdefconmoscow
 
Taras Tatarinov - Применение аппаратных закладок pwnie express на примере реа...
Taras Tatarinov - Применение аппаратных закладок pwnie express на примере реа...Taras Tatarinov - Применение аппаратных закладок pwnie express на примере реа...
Taras Tatarinov - Применение аппаратных закладок pwnie express на примере реа...DefconRussia
 
Олег Царев, Кирилл Коринский Сравнительный анализ хранилищ данных
Олег Царев, Кирилл Коринский   Сравнительный анализ хранилищ данныхОлег Царев, Кирилл Коринский   Сравнительный анализ хранилищ данных
Олег Царев, Кирилл Коринский Сравнительный анализ хранилищ данныхSiel01
 
Как сделать веб-карту, сохранить здоровье и возненавидеть IE
Как сделать веб-карту, сохранить здоровье и возненавидеть IEКак сделать веб-карту, сохранить здоровье и возненавидеть IE
Как сделать веб-карту, сохранить здоровье и возненавидеть IEАртём Кудзев
 
Андрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими руками
Андрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими рукамиАндрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими руками
Андрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими рукамиIBS
 
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)Ontico
 
[jeeconf-2011] Java Platform Performance BoF
[jeeconf-2011] Java Platform Performance BoF[jeeconf-2011] Java Platform Performance BoF
[jeeconf-2011] Java Platform Performance BoFAleksey Shipilev
 
TMPA-2013 Sartakov: Genode
TMPA-2013 Sartakov: GenodeTMPA-2013 Sartakov: Genode
TMPA-2013 Sartakov: GenodeIosif Itkin
 
Параллельные и распределенные вычисления
Параллельные и распределенные вычисленияПараллельные и распределенные вычисления
Параллельные и распределенные вычисленияMATLAB
 
Александр Крижановский (NatSys Lab)
Александр Крижановский (NatSys Lab)Александр Крижановский (NatSys Lab)
Александр Крижановский (NatSys Lab)Ontico
 
Сергей Еланцев - Troubleshooting
Сергей Еланцев - Troubleshooting   Сергей Еланцев - Troubleshooting
Сергей Еланцев - Troubleshooting Yandex
 
Работа с Big Data
Работа с Big Data Работа с Big Data
Работа с Big Data MATLAB
 
Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центр
Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центрМониторинг веб-проектов: штаб оперативного реагирования и аналитический центр
Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центрsportgid
 
Организация сети и безопасность
Организация сети и безопасностьОрганизация сети и безопасность
Организация сети и безопасностьOpenStackRU
 
Hadoop > cascading -> cascalog (very short)
Hadoop  > cascading -> cascalog (very short)Hadoop  > cascading -> cascalog (very short)
Hadoop > cascading -> cascalog (very short)Andrew Panfilov
 
Антон Щербаков, Отказоустойчивость на примере aviasales — почему даже если на...
Антон Щербаков, Отказоустойчивость на примере aviasales — почему даже если на...Антон Щербаков, Отказоустойчивость на примере aviasales — почему даже если на...
Антон Щербаков, Отказоустойчивость на примере aviasales — почему даже если на...Tanya Denisyuk
 
Rabovoluk presentation yaroslav-2
Rabovoluk presentation yaroslav-2Rabovoluk presentation yaroslav-2
Rabovoluk presentation yaroslav-2kuchinskaya
 
Михаил Белопухов: OpenBSD: Куда катится крипто?
Михаил Белопухов: OpenBSD: Куда катится крипто?Михаил Белопухов: OpenBSD: Куда катится крипто?
Михаил Белопухов: OpenBSD: Куда катится крипто?Yandex
 

Similar to Data mining for nmap acceleration (20)

СВЯТ ЛОГИН «Як провести penetration testing c metasploit framework» QADay 2019
СВЯТ ЛОГИН «Як провести penetration testing c metasploit framework» QADay 2019СВЯТ ЛОГИН «Як провести penetration testing c metasploit framework» QADay 2019
СВЯТ ЛОГИН «Як провести penetration testing c metasploit framework» QADay 2019
 
7.5. Pwnie express IRL
7.5. Pwnie express IRL7.5. Pwnie express IRL
7.5. Pwnie express IRL
 
Taras Tatarinov - Применение аппаратных закладок pwnie express на примере реа...
Taras Tatarinov - Применение аппаратных закладок pwnie express на примере реа...Taras Tatarinov - Применение аппаратных закладок pwnie express на примере реа...
Taras Tatarinov - Применение аппаратных закладок pwnie express на примере реа...
 
Олег Царев, Кирилл Коринский Сравнительный анализ хранилищ данных
Олег Царев, Кирилл Коринский   Сравнительный анализ хранилищ данныхОлег Царев, Кирилл Коринский   Сравнительный анализ хранилищ данных
Олег Царев, Кирилл Коринский Сравнительный анализ хранилищ данных
 
Как сделать веб-карту, сохранить здоровье и возненавидеть IE
Как сделать веб-карту, сохранить здоровье и возненавидеть IEКак сделать веб-карту, сохранить здоровье и возненавидеть IE
Как сделать веб-карту, сохранить здоровье и возненавидеть IE
 
Андрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими руками
Андрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими рукамиАндрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими руками
Андрей Николаенко, IBS. NVMf: 5 млн IOPS по сети своими руками
 
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
NVMf: 5 млн IOPS по сети своими руками / Андрей Николаенко (IBS)
 
[jeeconf-2011] Java Platform Performance BoF
[jeeconf-2011] Java Platform Performance BoF[jeeconf-2011] Java Platform Performance BoF
[jeeconf-2011] Java Platform Performance BoF
 
TMPA-2013 Sartakov: Genode
TMPA-2013 Sartakov: GenodeTMPA-2013 Sartakov: Genode
TMPA-2013 Sartakov: Genode
 
Ixia NVS (rus)
Ixia NVS (rus)Ixia NVS (rus)
Ixia NVS (rus)
 
Параллельные и распределенные вычисления
Параллельные и распределенные вычисленияПараллельные и распределенные вычисления
Параллельные и распределенные вычисления
 
Александр Крижановский (NatSys Lab)
Александр Крижановский (NatSys Lab)Александр Крижановский (NatSys Lab)
Александр Крижановский (NatSys Lab)
 
Сергей Еланцев - Troubleshooting
Сергей Еланцев - Troubleshooting   Сергей Еланцев - Troubleshooting
Сергей Еланцев - Troubleshooting
 
Работа с Big Data
Работа с Big Data Работа с Big Data
Работа с Big Data
 
Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центр
Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центрМониторинг веб-проектов: штаб оперативного реагирования и аналитический центр
Мониторинг веб-проектов: штаб оперативного реагирования и аналитический центр
 
Организация сети и безопасность
Организация сети и безопасностьОрганизация сети и безопасность
Организация сети и безопасность
 
Hadoop > cascading -> cascalog (very short)
Hadoop  > cascading -> cascalog (very short)Hadoop  > cascading -> cascalog (very short)
Hadoop > cascading -> cascalog (very short)
 
Антон Щербаков, Отказоустойчивость на примере aviasales — почему даже если на...
Антон Щербаков, Отказоустойчивость на примере aviasales — почему даже если на...Антон Щербаков, Отказоустойчивость на примере aviasales — почему даже если на...
Антон Щербаков, Отказоустойчивость на примере aviasales — почему даже если на...
 
Rabovoluk presentation yaroslav-2
Rabovoluk presentation yaroslav-2Rabovoluk presentation yaroslav-2
Rabovoluk presentation yaroslav-2
 
Михаил Белопухов: OpenBSD: Куда катится крипто?
Михаил Белопухов: OpenBSD: Куда катится крипто?Михаил Белопухов: OpenBSD: Куда катится крипто?
Михаил Белопухов: OpenBSD: Куда катится крипто?
 

More from beched

Attacks against machine learning algorithms
Attacks against machine learning algorithmsAttacks against machine learning algorithms
Attacks against machine learning algorithmsbeched
 
Hacking as eSports
Hacking as eSportsHacking as eSports
Hacking as eSportsbeched
 
Find maximum bugs in limited time
Find maximum bugs in limited timeFind maximum bugs in limited time
Find maximum bugs in limited timebeched
 
Owasp web application security trends
Owasp web application security trendsOwasp web application security trends
Owasp web application security trendsbeched
 
Воркшоп по анализ защищённости веб-приложений
Воркшоп по анализ защищённости веб-приложенийВоркшоп по анализ защищённости веб-приложений
Воркшоп по анализ защищённости веб-приложенийbeched
 
Vulnerabilities in data processing levels
Vulnerabilities in data processing levelsVulnerabilities in data processing levels
Vulnerabilities in data processing levelsbeched
 
Пост-эксплуатация веб-приложений в тестах на проникновение
Пост-эксплуатация веб-приложений в тестах на проникновениеПост-эксплуатация веб-приложений в тестах на проникновение
Пост-эксплуатация веб-приложений в тестах на проникновениеbeched
 
Алгоритмы пентестов. BaltCTF 2012
Алгоритмы пентестов. BaltCTF 2012Алгоритмы пентестов. BaltCTF 2012
Алгоритмы пентестов. BaltCTF 2012beched
 

More from beched (8)

Attacks against machine learning algorithms
Attacks against machine learning algorithmsAttacks against machine learning algorithms
Attacks against machine learning algorithms
 
Hacking as eSports
Hacking as eSportsHacking as eSports
Hacking as eSports
 
Find maximum bugs in limited time
Find maximum bugs in limited timeFind maximum bugs in limited time
Find maximum bugs in limited time
 
Owasp web application security trends
Owasp web application security trendsOwasp web application security trends
Owasp web application security trends
 
Воркшоп по анализ защищённости веб-приложений
Воркшоп по анализ защищённости веб-приложенийВоркшоп по анализ защищённости веб-приложений
Воркшоп по анализ защищённости веб-приложений
 
Vulnerabilities in data processing levels
Vulnerabilities in data processing levelsVulnerabilities in data processing levels
Vulnerabilities in data processing levels
 
Пост-эксплуатация веб-приложений в тестах на проникновение
Пост-эксплуатация веб-приложений в тестах на проникновениеПост-эксплуатация веб-приложений в тестах на проникновение
Пост-эксплуатация веб-приложений в тестах на проникновение
 
Алгоритмы пентестов. BaltCTF 2012
Алгоритмы пентестов. BaltCTF 2012Алгоритмы пентестов. BaltCTF 2012
Алгоритмы пентестов. BaltCTF 2012
 

Data mining for nmap acceleration

  • 1. Data Mining in the service of nmap Sergey Ignatov, Omar “beched” Ganiev sergey@ctf.su, beched@incsecurity.ru
  • 2. Data Mining in the service of nmap $who
  • 3. Data Mining in the service of nmap Проблема Мир не стоит не месте, все развивается, сетевые сканеры в том числе. Начиная от дедушки nmap 1.0 (September 1, 1997), сканеры развиваются в раличных направлениях. ● Сканирование всего интернета (zmap) ● Сканирование уязвимостей в сервисах (nmap scripting engine и другие коммерческие сканеры безопаности) ● Интегрированный TCP стек (polarbear from IOActive)
  • 4. Data Mining in the service of nmap Но сканирования обнаруживаются IDS/IPS :(
  • 5. Data Mining in the service of nmap Обход ● Сканирование через сторонние сервисы (ftp bounce, proxy) ● Уязвимости в самом IDS/IPS ● Всякие сетевые хитрости (https://nmap.org/book/man- bypass-firewalls-ids.html) ● Сканировать медленнее чем IDS хранит историю ● Рассмотрим именно такой подход сканирования с задержками, мы хотим его сделать эффективнее
  • 6. Data Mining in the service of nmap Как найти максимальное количество портов за минимальное количество запросов?
  • 7. Data Mining in the service of nmap Internet Census 2012 ● http://internetcensus2012.bitbucket.org ● 420K взломанных домашних маршрутизаторов (пароли по умолчанию) ● Просканировали весь интернет! ● Dataset: 9TB of raw logfiles (500Gb in zpaq)
  • 8.
  • 9. Data Mining in the service of nmap Методика ● На основе данных о всех хостах в интернете строим оракул, который будет предсказывать наиболее вероятные порты ● Идея очень проста: порты не встречаются сами по себе, они встречаются группами, так давайте хранить не список самых вероятных портов, а список самых вероятных групп
  • 10. Data Mining in the service of nmap Методика ● По сути группы соответствуют различным классам сетевых устройств/сервисов ● Если нашли открытые порты X,Y и закрытый Z, то вероятнее всего будут открыты порты из групп где есть порты X или Y, и нет Z
  • 11. Data Mining in the service of nmap Методика ● Сначала мы пытались применить всякие умные алгоритмы и machine learning, делая вид, что умеем это ● Но дерево решений для сканирования будет экспоненциального размера, значит, его построение тоже экспоненциально ● Алгоритмы классификации не в тему
  • 12. Data Mining in the service of nmap Методика ● Что ещё можно? Можно пробовать кластеризовать результаты скана и получить классы сервисов (“сайт”, “циска”, “винда”, …) ● Проблема: в датасете интернет-скана много NAT-узлов, отравляющих обучение ● Проблема: в датасете много зафаерволенных хостов, в которых виден только порт 80
  • 13. Data Mining in the service of nmap Методика ● Для кластеризации нужно метрическое пространство ● Можно взять какой-нибудь simhash, или можно взять длину LCS, которая динамически вычисляется за произведение длин последовательностей ● Но у нас около 10^7 уникальных последовательностей, а подходящая кластеризация работает не лучше чем за квадрат ● К тому же из NAT-последовательностей надо вычленять разумные подпоследовательности портов
  • 14. Data Mining in the service of nmap Методика ● Keep It Simple, Stupid! ● Давайте просто сортировать статистику =) ● В качестве базовой статистики, по которой начинаем сканировать без предварительных знаний, для начала возьмём топ портов
  • 15. Data Mining in the service of nmap Сколько открытых портов в интернете?
  • 16. Data Mining in the service of nmap TOP13 самых встречаемых групп
  • 17. Data Mining in the service of nmap TOP13 самых встречаемых групп
  • 18. Data Mining in the service of nmap Чем плох NMap? ● Чем плох NMap? Много чем, там много наследия прошлого ● Главное - он медленный ● По умолчанию NMap сканит по топу портов (4243 порта), при полном наборе сканит случайным образом
  • 19. Data Mining in the service of nmap Результаты ● Пока что с лобовым алгоритмом и предварительной статой уже получилось ускорение на 42% относительно NMap ● Статистику измеряли путём имитации сканирования ● При этом сравнивалось, за какое количество запросов наш алгоритм находит столько же портов, сколько всего нашёл NMap (по умолчанию он не ищет дальше своего топа)
  • 20. Data Mining in the service of nmap Результаты
  • 21. Data Mining in the service of nmap Планы на будущее ● Патч для nmap, изменяемая стратегия сканирования ● Данные по интранету (внутренние пентесты) ● Компактный словарь (сейчас 150Мб и самый полный 666Мб) ● Более точная кластеризация на основе данных протокола (Тип сервиса, версия, ОС и т.д.) ● ...
  • 22. Data Mining in the service of nmap Вопросы Q? sergey@ctf.su beched@incsecurity.ru