Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #72, НОЯБРЬ 2006 г.

рекогносцировка на небоскребе

КРИС КАСПЕРСКИ

Спецвыпуск: Хакер, номер #072, стр. 072-058-4


Алгоритм сборки IP-пакетов изменился в худшую сторону, и частично перекрывающиеся пакеты теперь безжалостно отбраковываются как неверные, порочные и вообще недостойные существования (по всей видимости, программистам лень было топтать клавиатуру, вот они и «срезали углы»). Исключение составляет ситуация, когда два пакета перекрываются на 100%, - тогда отбрасывается последний пакет в пользу первого, хотя LINUX-системы поступают с точностью до наоборот. Вообще же говоря, проблем со сборкой перекрывающихся пакетов у всех систем хватает и каждая из них имеет свои особенности, в результате чего принятые данные искажаются до неузнаваемости или пакет не собирается вообще! Рисунок, приведенный ниже, показывает порядок сборки UDP-пакета, состоящего из нескольких перекрывающихся фрагментов. Как видно, Виста оказывается далеко не на высоте.

[новые TCP-/UDP-порты.]

Нормальный клиентский узел вообще не должен содержать никаких открытых TCP-/UDP-портов! Он даже может не обрабатывать ICMP-сообщения, в частности, игноровать echo-запросы (на чем основан ping) и не отправлять уведомлений о «казни» пакета с «просроченным» TTL (на чем основана работа утилиты tracert), хотя все это считается дурным тоном и создает больше проблем, чем их решает.

Наличие открытых портов указывает на присутствие серверных служб, обслуживающих удаленных клиентов. Каждая такая служба — потенциальный источник дыр, переполняющихся буферов и прочих лазеек, через которые просачиваются черви, а воинствующие хакеры берут компьютер на абордаж.

Вот неполный список портов, открываемых системой в конфигурации по умолчанию:

- IPV6 UDP;

- MS-RPC (135);

- NTP (123);

- SMB (445);

- ISAKMP (500);

- UPNP (1900);

- WEB SERVICES DISCOVERY (3702);

- WINDOWS COLLABORATION (54745);

- СОВМЕСТНЫЙ ДОСТУП К ФАЙЛАМ И ПРИНТЕРАМ (137, 138);

- ПОРТЫ-ПРИЗРАКИ - (49767, 62133);

- IPV4 UDP;

- TEREDO (4380, 61587);

- MS-RPC (135);

- SMB (445);

- NBT (139);

- NRP 3540;

- IPV4 TCP;

- P2P GROUPING MEETINGS (3587);

- WINDOWS COLLABORATION (54744);

- СОВМЕСТНЫЙ ДОСТУП К ФАЙЛАМ И ПРИНТЕРАМ (137, 138).

Изобилие открытых портов подогревает хакерский интерес и создает серьезную угрозу безопасности. Только наивный может верить в то, что все эти сервисы реализованы без ошибок, тем более что ошибки уже начинают выползать. Как видно, IPv6 отображает часть UDP-портов на IPv4, однако забывает «объяснить» этот факт своему же собственному брандмауэру, и если мы закрываем печально известный 135-й порт на IPv4, его необходимо закрыть так же и на IPv6, равно, как и наоборот.

В ранних бетах факт закрытия портов было очень легко обнаружить, поскольку при попытке установки соединения с несуществующим портом система возвращала пакет с флагом RST (как, собственно, и положено делать по RFC). Соответственно, порты, не возвратившие пакета с таким флагом, но и не установившие соединения, все-таки существуют, но закрыты брандмауэром, который можно легко обойти, например, через RPC. Правда, эта лазейка была быстро закрыта, но зато при отправке сообщения на несуществующий UDP IPv6-порт до сих пор возвращается ICMPv6-сообщение об ошибке, опять-таки позволяющее отличить отсутствующие порты от портов, закрытых брандмауэром.

Назад на стр. 072-058-3  Содержание  Вперед на стр. 072-058-5