Группа исследователей из Мичиганского университета представила на конференции USENIX Security новый открытый инструмент для сканирования сетей - ZMap (https://zmap.io/). Отличительной особенностью ZMap является свехвысокая скорость сканирования адресов, делающая инструмент пригодным для проведения глобальных исследований Сети. На обычной настольной системе с гигабитным Ethernet-соединением ZMap способен обеспечить скорость сканирования в 1.4 млн пакетов в секунду, что позволяет просканировать весь диапазон публичных IPv4-адресов всего за 45 минут. Код ZMap распространяется (https://github.com/zmap/zmap) под лицензией Apache.
Если утилиты, такие как nmap, проектировались для сканирования небольших сегментов сетей, то архитектура (https://zmap.io/paper.html) zmap изначально рассчитана на сканирование всего адресного пространства. В отличие от nmap, zmap не отслеживает состояние каждого отдельного соединения, не пытается учитывать таймауты, не поддерживает повторную отправку недошедших пакетов и не занимается распределением нагрузки. Вместо этого, zmap оперирует статистическими показателями, выбирая адреса в результате случайной выборки. Для отправки проверочных запросов zmap непосредственно генерирует Ethernet-кадры, минуя TCP/IP стек, что позволяет добиться максимальной производительности, которую может обеспечить сетевая карта. В итоге, zmap обеспечивает скорость сканировния, превышающую показатели nmap в 1300 раз.
ZMap поддерживает (https://zmap.io/documentation.html) достаточно гибкий набор опций, позволяющих определять интенсивность проверки и ограничивать пропускную способность. Вместо конкретных диапазонов сканируемых адресов задаётся общий лимит, позволяющий просканировать определённое число случайных адресов из всего адресного пространства. Для указания какие подсети следует сканировать, а какие нет, можно определить черный и белый списки подсетей. Результат может быть сохранён в обычный текстовый файл или записан в БД Redis.Система построена на модульной основе и поддерживает интеграцию с произвольными инструментами для исследования сети. Среди поддерживаемых методов сканирования реализована проверка портов через отправку SYN-запросов TCP, проверка доступности адреса через echo-запросы ICMP и проверка через UDP. Из областей применения ZMap отмечается изучение степени внедрения тех или иных протоколов, мониторинг доступности сервисов и помощь в понимании структуры больших распределённых по всей Сети систем.
Из проведённых с использованием ZMap исследований отмечается анализ всей инфраструктуры HTTPS, который выявил 42 млн сертификатов, из которых только 6.9 млн входят в область доверия браузеров. В процессе сканирования также было выявлено два набора неправильно выданных SSL-сертификатов. Другое исследование было направлено на оценку степени устранения раскрытой (http://www.opennet.me/opennews/art.shtml?num=36057) в январе уязвимости в устройствах с поддержкой UPnP. Из выявленных в процессе сканирования 15.7 млн устройств, уязвимость по прежнему присутствует в 3.3 млн из них.URL: http://threatpost.com/scanning-the-internet-in-45-minutes/10...
Новость: http://www.opennet.me/opennews/art.shtml?num=37696
А есть ли для неё web-морда или GUI - интерфейс?
спросил человек, у людей которые только сами увидели этот софт, т.к. он только вышел... если у него модульная структура, да и открытые исходники, то скоро к популярному скриптовому языку прикрутят, типо питон/перл
Оно тока для серьезных дядек, которые шарят в теме. Так что...
И это к лучшему. Ядерные бомбы папуасам не игрушка. Эта штука 10.0.0.0/8 перебрала минуты за три.
10.0.0.0/8 - это очень может быть. А вот переберёт ли она 11.0.0.0/8 за три минуты?
читайте новость ну, весь инет за 45 минут! ВЕСЬ!
> читайте новость ну, весь инет за 45 минут! ВЕСЬ!Ну ничего, вот придет IPv6, вот тогда вашим сканерам придет...
>Ну ничего, вот придет IPv6, вот тогда вашим сканерам придет...
hacker$ botnet_scan_for_ipv6 --all-internet --inlclude-ipv4
==========================================
The result is saved in the database.
Scan time: 854 ms.
==========================================
hacker$
Улыбнуло )))
он просто поржать! там то время ответа в разы меньше,чем лок.сеть!
> 10.0.0.0/8 - это очень может быть. А вот переберёт ли она 11.0.0.0/8
> за три минуты?Я просто представляю себе возможности оборудования и представляю, что должно быть у провайдера для обеспнчнния в течении 45-ти минут такой работы сети. Например, даже обычная гигабитная карта 1.4 миллиона пакетов не выдаст.
Выдаст. Предел на честном гигабите ~ 1.44 Mpps. Судя по описанию, тулза работает кернел-модулем вместо штатного драйвера сетёвки. На выход загонит, а вот принять назад хотя бы 700 kpps ответов - без грамотных оффлоадов никак.
Но флудогон таки знатный. Для домашников - так вообще ОМП.
> Выдаст. Предел на честном гигабите ~ 1.44 Mpps. Судя по описанию, тулза
> работает кернел-модулем вместо штатного драйвера сетёвки. На выход загонит, а вот
> принять назад хотя бы 700 kpps ответов - без грамотных оффлоадов
> никак.
> Но флудогон таки знатный. Для домашников - так вообще ОМП.Я думаю, что предел у обычных сетевых карт гораздо меньше - раза в три. Оставив вопрос о провайдере этих домашников открытым.
> Я думаю, что предел у обычных сетевых карт гораздо меньше - раза в три.Зависит от паршивости драйверов и прочая уже.
> Оставив вопрос о провайдере этих домашников открытым.
Да, домашние локалки с роутером из древнего писюка с фряхой - умрут жестокой смертью, если вы об этом.
Зачем ему модуль в ядре, когда есть RAW-сокеты? Модуль они предлагают для того, чтобы ядро не отвечало RST на полученные SYN-ACK, что даёт возможность нормально грабить кара^Wбаннеры сервисов.
Им сокеты вообще не очень понравились, и raw и не raw.
А у меня не собирается) пишет../lib/blacklist.c:127:27: error: division by zero [-Werror=div-by-zero]
allowed, allowed*100./(1L << 32));
^
cc1: all warnings being treated as errors
make: *** [blacklist.o] Error 1
и все)
> А у меня не собирается) пишет
> ../lib/blacklist.c:127:27: error: division by zero [-Werror=div-by-zero]
> allowed, allowed*100./(1L << 32));
>
>
> ^
> cc1: all warnings being treated as errors
> make: *** [blacklist.o] Error 1
> и все)ну в общем сам подправил исходник и все)
У вас компилер какой-то шибко вумный, похоже на ложное срабатывание.
clang
> clangВидно птицу по помету. У таких вечно грабли на ровном месте лезут.
> clangНу так зачем людям мозги сношать? Это не полноценный компилятор же.
>>> clang
>> Ну так зачем людям мозги сношать? Это не полноценный компилятор же.clang компилирует по стандарту
призме пригодится
Поздновато они сие представили... Хотя, может, и наоборот вовремя - лишний повод обратить внимание на IPv6 :)
> Поздновато они сие представили... Хотя, может, и наоборот вовремя - лишний повод
> обратить внимание на IPv6 :)Я как-то не вижу победоносного марша v6 по планете.
IPv6 - гОвно.
Я не пойму как там конкретные IP range указать для сканирования?
grep'ом отфильтруй
> Я не пойму как там конкретные IP range указать для сканирования?Только подсеть, вида адрес/маска. Ядерная бомба не нуждается в прецизионной наводке на цель, там плюс-минус пять метров ничего не решают :)
-w, --whitelist-file=path File of subnets to constrain scan to, in CIDR
notation, e.g. 192.168.0.0/16
Оно?
Неа, не оно. -w ничего не решает почему-то. Пробовал положить туда x.x.x.0/24, но zmap все равно сканил все подряд. Как-то вместе с blacklist можно сделать. Только это надо в него вписать range до x.x.x.0/24 и range после x.x.x.0/24 :))
> Неа, не оно. -w ничего не решает почему-то. Пробовал положить туда x.x.x.0/24,
> но zmap все равно сканил все подряд.Что-то вы не так делаете. Я вот чудно просканил всю локалку за считанные минуты. Узнал много нового :).
>> Неа, не оно. -w ничего не решает почему-то. Пробовал положить туда x.x.x.0/24,
>> но zmap все равно сканил все подряд.
> Что-то вы не так делаете. Я вот чудно просканил всю локалку за
> считанные минуты. Узнал много нового :).Да не для того zmap создавался. В локалке он работает так же как nmap.
> Да не для того zmap создавался. В локалке он работает так же как nmap.Только вот nmap-у даже в самых розовых мечтах не снилось засканить 10.0.0.0/8 за три минуты. А этот - запросто.
>> Да не для того zmap создавался. В локалке он работает так же как nmap.
> Только вот nmap-у даже в самых розовых мечтах не снилось засканить 10.0.0.0/8
> за три минуты. А этот - запросто.за эти три минуты Вы рискуете положить половину своего коммуникационного оборудования. Написали же специально об этом авторы.
> за эти три минуты Вы рискуете положить половину своего коммуникационного оборудования.Ничего не легло. Заодно и проверил. И да, как ты понимашеь, это был мой собственный кусок сети, где если что-то упадет - я же и буду это чинить потом.
> Написали же специально об этом авторы.
Ну если ваше оборудование дрянь - используйте лимитирование PPS или битрейта. Ждать ессно придется дольше чем 3 минуты в этом случае.
может так нужно указывать диапазон?Configuration Files
ZMap supports configuration files instead of requiring all options to be specified on the command-line. A configuration can be created by specifying one long-name option and the value per line such as:
interface "eth1"
source-ip 1.1.1.4-1.1.1.8
source-ip это не target совсем. Это если у вас на сервере несколько IP адресов, как я понял.
Source address(es) to send packets from. Either single IP or range (e.g. 10.0.0.1-10.0.0.9)
Отменить, фигню спорол. Сорри.
Осталось засунуть 1.4 млн пакетов в секунду в uplink :)
> Осталось засунуть 1.4 млн пакетов в секунду в uplink :)Это ведь не проблема софта, верно?
"Вместо этого, zmap оперирует <b>статистическими показателями</b>, выбирая адреса в результате случайной выборки."
Не понятно, никто не обратил внимания что это не сканер всех адресов?
> "Вместо этого, zmap оперирует <b>статистическими показателями</b>, выбирая адреса в результате
> случайной выборки."
> Не понятно, никто не обратил внимания что это не сканер всех адресов?Как раз сканер всех адресов, но можно указать и не все. Он по другому работает с сетью, быстрее чем nmap, но менее надёжно. Байка о случайной выборке - незнание переводчиком математики и англицкого языка - посмотрите "2.1 Addressing Probes" в источнике, там всё понятно должно быть. Просканировать все адреса можно, не переживайте.
Самая интересная для обывателя область применения сканера - поиск того что можно легко взломать, после прочтения оригинала будет остановлена атака на wordpress :)
Вот, к примеру, они нашли 86% всех Tor'овских серверов:
>Uncovering unadvertised services, such as hidden Tor
>bridges. We show that ZMap can locate 86% of
>hidden Tor bridges via comprehensive enumeration.как и море дырявых D-Link'ов.
> Вот, к примеру, они нашли 86% всех Tor'овских серверов:
>>Uncovering unadvertised services, such as hidden Tor
>>bridges. We show that ZMap can locate 86% of
>>hidden Tor bridges via comprehensive enumeration.
> как и море дырявых D-Link'ов.Всех "неуловимых Джо" назвали поименно. :)
Интересно хотя бы после этого народ задумается о своей безопасности?Я в свое время грешным делом купил д-линк, *?%;*%, пришлось тут же шить линуксовой прошивкой, чтоб оно было не совсем тупым кирпичом, полегчало тут же, с той поры стараюсь обходить сторонкой.
Разумно в каждый дырявый D-Link засунуть Торовский сервер. :-)
> Не понятно, никто не обратил внимания что это не сканер всех адресов?Это флудогенератор всех адресов, который круто флудит и смотрит прилетело ли чего в ответ :).
Вообще классная вещь для покладания DPI флудом на 80-е порты xD
Оно окуклится базу классификации теребить.Причем даже хендшейка не надо - достаточно представляться запросом :) Не базу классификации - так базу сеансов.
> Оно окуклится базу классификации теребить.Тем хуже для DPI :).
>Ethernet-кадры, минуя TCP/IP стекА маршрутизировать эти "вумные" пакеты кто будет? Так в домашней сети и останутся?
>>Ethernet-кадры, минуя TCP/IP стек
> А маршрутизировать эти "вумные" пакеты кто будет? Так в домашней сети и
> останутся?роутер.
ваш кэп
> А маршрутизировать эти "вумные" пакеты кто будет?Те же кто и обычно. Если он стушуется от такой нагрузки - сам виноват.
>>Ethernet-кадры, минуя TCP/IP стек
> А маршрутизировать эти "вумные" пакеты кто будет? Так в домашней сети и
> останутся?В чем проблема? Там же не сказано, что в них нет заголовков более высокого уровня. (Без которых сканировать порты и приложения какбэ нереально.)