41
крытым. Метод Connect() является легко обнаруживаемым благодаря наличию
многочисленных попыток подключения с одного адреса и ошибок установле-
ния соединения (поскольку атакующий узел после соединения с сервером сра-
зу обрывает его).
Метод сканирования TCP-портов флагом SYN известен еще как «скани-
рование с установлением наполовину открытого соединения» поскольку уста-
новление полного TCP-соединения не производится. Вместо этого атакующий
отправляет на определенный порт сервера SYN-пакет, как бы намереваясь
создать соединение, и ожидает ответ. Наличие в ответе флагов SYN|ACK оз-
начает, что порт открыт и прослушивается сервером. Получение в ответ TCP-
пакета с флагом RST означает, что порт закрыт и не прослушивается. В случае
приема SYN|ACK-пакета узел немедленно отправляет RST-пакет для сброса
устанавливаемого сервером соединения.
Метод сканирования TCP-портов флагом FIN известен по-другому как
«обратное стелс-сканирование с использованием флага FIN». Идея метода за-
ключается в том, что согласно RFC 793 на прибывший FIN-пакет на закрытый
порт сервер должен ответить RST-пакетом. FIN-пакеты на открытые порты
игнорируются объектом сканирования.
Метод сканирования TCP-портов флагом ACK похож на FIN-
сканирование, известен по-другому как «обратное стелс-сканирование с ис-
пользованием флага ACK». Идея метода заключается в том, что согласно RFC
793 на прибывший ACK-пакет на закрытый порт сервер должен ответить RST-
пакетом. ACK-пакеты на открытые порты игнорируются объектом сканирова-
ния.
Методы сканирования XMAS («Новогодняя елка») и NULL заключают-
ся в отправке на сервер TCP-пакета с установленными всеми флагами (XMAS)
либо со всеми сброшенными флагами (NULL). В соответствии с RFC 793 на
прибывший пакет с данными значениями флагов на закрытый порт сервер
должен ответить RST-пакетом. Такие пакеты на открытые порты игнорируют-
ся объектом сканирования.
Указанные выше методы сканирования позволяют злоумышленнику вы-
яснить наличие открытых TCP-портов на атакуемом узле. Для обнаружения
открытых UDP-портов применяется иной подход.
Выполнить анализ открытых UDP-портов злоумышленнику несколько
сложнее, чем TCP-портов. Причина в том, что в отличие от протокола TCP,
UDP является протоколом с негарантированной доставкой данных. Поэтому
UDP-порт не посылает подтверждение приема запроса на установление со-
единения, и нет никакой гарантии, что отправленные UDP-порту данные ус-
пешно дойдут до него. Тем не менее большинство серверов в ответ на пакет,
прибывший на закрытый UDP-порт, отправляют ICMP-сообщение «Порт не-
доступен» (Port Unreachable — PU). Таким образом, если в ответ на UDP-
пакет пришло ICMP-сообщение PU, то сканируемый порт является закрытым,
в противном случае (при отсутствии PU) порт открыт.