Приоткрывая завесу
Код Red Worm
В июле 2001 года фильтр IIS (Internet Information Server – информационный сервер Internet) фирмы Микрософт был преобразован в автоматическую программу, названную червем. Используя брешь в системе защиты IIS, червь сначала атаковал один IIS, а затем, пользуясь скомпрометированной системой, нападал на другие системы IIS. Червь предназначался для двух вещей. Во-первых, для стирания Web-страницы инфицированной системы. И, во-вторых, для координации DdoS-атаки против Белого дома. Червь потерпел неудачу, не достигнув своих целей, в основном из-за своевременной квалифицированной реакции штаба информационных технологий Белого дома (White House IT staff).
Последствия от нападения червя не ограничились уязвимыми операционными системами Windows или Белым домом. В результате атаки были переполнены журналы серверов HTTP, неуязвимых к нападению, и был найден оригинальный способ воздействия на маршрутизаторы цифровой абонентской линии (DSL-Digital Subscriber Line) фирмы Cisco. После нападения червя на маршрутизаторы DSL с интерфейсом Web-администрирования они работали неустойчиво, аварийно завершались, способствуя тем самым отказу в обслуживании. В результате клиенты Qwest и некоторых других известных Интернет-провайдеров остались без доступа к сети, пораженной червем. Из-за деятельности червя инфицированная сеть была перегружена операциями сканирования.
Утечка информации
Утечку информации можно сравнить с протечкой воды из прохудившихся труб. Почти всегда утечка информации нежелательна и заканчивается неприятностями. Как правило, утечка информации – результат неправильного обращения с ресурсом, от которого зависит возможность нападения. Точно так же как генералы полагаются на сведения разведчиков, проникших в тыл врага, так и злоумышленники проникают в сеть для выполнения аналогичных задач, собирая информацию о программах, операционных системах и архитектуре сети, намеченной для нападения.
Пути утечки информации
Пути утечки информации различны. Один из возможных путей – баннеры. Баннеры – текст, предъявляемый пользователю при регистрации в системе посредством той или иной службы. Баннеры можно найти в протоколах FTP (File Transfer Protocol), SMTP (Simple Mail Transfer Protocol), POP3 (Post Office Protocol v. 3, оболочках безопасности (SSH-secure shell), службе telnet. Большинство программного обеспечения этих служб услужливо предоставляют внешним пользователям информацию о своей версии и конфигурации, как показано на рис. 3.3.
Рис. 3.3. Версия демона SSH
Другой путь – сообщения об ошибках. Часто Web-сервера предоставляют избыточную информацию о себе при возникновении исключительных условий. Исключительные условия определяются обстоятельствами, отличными от нормальных условий работы, например запросом несуществующей страницы или неопознанной командой. В этой ситуации лучше всего предусмотреть возможность настройки формата выдачи диагностических сообщений или тщательно продумать (workaround) формат выдачи диагностики. На рисунке 3.4 показано излишне болтливое сообщение об ошибке Apache.
Рис. 3.4. Разглашение информации о версии HTTP-сервера
Анализ протоколов Обзор путей утечки информации будет неполным, если не сказать об анализе протоколов (protocol analysis). Существуют различные варианты анализа протоколов. В одном из вариантов используются ограничения, предусмотренные при разработке протоколов якобы для предотвращения выдачи избыточной информации о системе. Посмотрите на этот FTP-запрос system type:
[email protected]:~$ telnet parabola.cipherpunks.com 21
Trying 192.168.1.2...
Connected to parabola.cipherpunks.com.
Escape character is “^]”.
220 parabola FTP server (Version: 9.2.1-4) ready.
SYST
215 UNIX Type: L8 Version: SUNOS
В HTTP – аналогичная проблема. Посмотрите, как выбалтывается информация о системе в заголовке HTTP посредством команды HEAD:
[email protected]:~$ telnet www.cipherpunks.com 80
Trying 192.168.1.2...
Connected to www.cipherpunks.com.
Escape character is “^]”.
HEAD / HTTP/1.0
HTTP/1.1 200 OK
Date: Wed, 05 Dec 2001 11:25:13 GMT
Server: Apache/1.3.22 (Unix)
Last-Modified: Wed, 28 Nov 2001 22:03:44 GMT
ETag: “30438-44f-3c055f40”
Accept-Ranges: bytes
Content-Length: 1103
Connection: close
Content-Type: text/html
Connection closed by foreign host.
Кроме этих вариантов, злоумышленники при анализе протоколов используют и другие. Один из них – анализ ответов в IP-протоколе. Атака основана на уже упомянутой идее, но реализуется на более низком уровне. Автоматизированный инструментарий типа Network Mapper или Nmap предоставляет удобные средства для сбора информации о системе, на которую готовится нападение, включая общедоступные порты системы и установленную на ней операционную систему. Посмотрите на результаты сканирования Nmap:
[email protected]:~$ nmap -sS -O parabola.cipherpunks.com
Starting nmap V. 2.54BETA22 (www.insecure.org/nmap/)
Interesting ports on parabola.cipherpunks.com (192.168.1.2):
(The 1533 ports scanned but not shown below are in state:
closed)
Port State Service
21/tcp open ftp
22/tcp open ssh
25/tcp open smtp
53/tcp open domain
80/tcp open http
Remote operating system guess: Solaris 2.6 – 2.7 Uptime 5.873 days (since Thu Nov 29 08:03:04 2001)
Nmap run completed – 1 IP address (1 host up) scanned in 67 seconds
Во-первых, давайте выясним смысл флажков, использованных для сканирования системы parabola. Флаг sS используется при SYN-сканировании для исследования полуоткрытых соединений с целью определения открытых портов хоста. O флаг указывает Nmap на необходимость идентификации операционной системы, если это возможно, на основе ранее выявленных и сохраненных в базе данных особенностей реакции систем на сканирование. Как вы можете видеть, Nmap смог идентифицировать все открытые порты системы и достаточно точно определить операционную систему системы parabola (на самом деле это была операционная система Solaris 7, выполняющаяся на платформе Sparc). Приведенные примеры показывают пути утечки информации, которые помогли злоумышленнику собрать обширные сведения о сети при подготовке к нападению.
...
Примечание
Один примечательный проект, связанный с утечкой информации, – исследование протокола ICMP (протокол управляющих сообщений в сети Internet), проводимое Офиром Аркином (Ofir Arkin). На его сайте www.sys-security.com размещено несколько html-страниц, на которых обсуждаются методы использования ICMP для сбора важной информации. Две страницы, озаглавленные «Identifying ICMP Hackery Tools Used In The Wild Today» («Современный инструментарий дикого хакера для идентификации ICMP») и «ICMP Usage In Scanning» («Использование ICMP для сканирования»), доступны на www.sys-security.com/html/papers.html. Они не предназначены для щепетильных людей, но содержат много информации.
Утечка информации об архитектуре сети
Это общая проблема. Некоторые программы любезно и охотно предоставляют важную информацию об архитектуре сети. Протоколы типа SNMP (Simple Network Management Protocol) предусматривают открытое описание соединений для взаимодействия с другими системами. Ухудшает положение дел и то, что в очень многих реализациях протокола SNMP для ограничения предоставления сведений об архитектуре сети применяются примитивные или легкоугадываемые процедуры аутентификации.
Печально, но SNMP все еще широко используется. Например, маршрутизаторы Cisco поддерживают SNMP. Некоторые операционные системы типа Solaris устанавливают и запускают SNMP-средства по умолчанию. Помимо других уязвимостей, найденных в этих средствах, их использование с конфигурацией по умолчанию – явно плохая практика.
Утечка с Web-серверов
Предварительно уже говорилось о чрезмерно болтливых Web-серверах, сообщающих назойливым пользователям лишние сведения о себе при некоторых режимах их работы. Эта проблема еще более усложняется, когда используются такие вещи, как PHP, CGI (Common Gateway Interface) и мощные машины поиска. Подобно любому другому инструментарию, они могут использоваться как на пользу, так и во вред.
Так, PHP, CGI и машины поиска могут использоваться для создания интерактивных Web-средств, настраиваемой среды пользователя для работы в Интернете и автоматизации предпринимательской деятельности. А могут использоваться и для злонамеренных действий, особенно если в их реализации есть ошибки. Беглое знакомство с документом ARIS (Attack Registry and Intelligence Service) показывает, что под номером 3 в нем значится тип атак, использующих обход директории («Generic Directory Traversal Attack»). (Этим типам атак в документе предшествуют атаки с использованием ISAPI и нападения типа cmd.exe, которые на момент написания книги были очень многочисленными и разнообразными.) В группу атак на основе обхода директории входят атаки типа dot-dot (..) или атаки относительного пути (…), в ходе которых в URL добавляются точки для выяснения, приведет ли это к переходу в другую директорию и выдаче листинга или выполнению программы на Web-сервере.
Сценарии, которые предоставляют возможность обхода директорий, позволяют не только кому-либо сменить директорию и просмотреть список файлов системы. Они позволяют злоумышленнику прочитать любой файл, читаемый HTTP-сервером с учетом монопольного использования и группового членства. А это, в свою очередь, может позволить пользователю получить доступ к файлу паролей
passwd в директории /etc и к другим непривилегированным файлам Unix-систем или иных систем, например Microsoft Windows, привести к чтению (а потенциально и к записи) привилегированных файлов. Любые данные, полученные в результате этого типа атак, могут быть использованы для подготовки более опасных нападений. Web-сценарии и приложения должны стать темой тщательного рассмотрения еще до их установки. Подробнее познакомиться с ARIS можно по адресу http://ARIS.securityfocus.com.