Не прошло и месяца, как специалисты из Мичиганского университета выпустили программу Zmap, которая способна с одного-единственного ПК, подключенного к сети по гигабитному каналу, просканировать все адресное пространство IPv4 за 45 минут. Естественно, имеется в виду только время рассылки пакетов, без учета последующих действий.

Теперь вышел еще один сканер под названием Masscan с примерно такой же производительностью и таким же методом работы — через собственный сетевой драйвер PF_RING DNA, собственный TCP-стек, в обход ядра операционной системы.

Разработчик уверяет, что программа на 1-гигабитном канале генерирует 1,6 млн SYN-пакетов в секунду (под Linux) или 300 тыс. (в виртуальной машине или под Windows). На 10-гигабитном канале производительность системы превышает 10 млн пакетов в секунду, а подключив к северу восемь сетевых карт по 10 гигабит, можно добиться производительности 100 млн пакетов в секунду.

Чтобы не повалить подсеть, куда направлено сканирование, сканер осуществляет принудительную рандомизацию IP-адресов. Авторы пришлось немало поломать голову, как сделать это наиболее эффективным способом, чтобы не уменьшать скорость сканирования.

range = ip_count * port_count;
for (i = 0; i < range; i++) {
    x = encrypt(i);
    ip   = pick(addresses, x / port_count);
    port = pick(ports,     x % port_count);
    scan(ip, port);
}

Если так пойдет и дальше, то через несколько лет, когда 10-гигабитные каналы станут более обычным делом, чуть ли не каждый школьник сможет просканировать интернет со своего домашнего ПК.

Оставить мнение