Слабые места сайта возникают при неправильной конфигурации сервера или в случае нехватки знаний в области безопасности у веб-администратора. Тем не менее, эти недостатки легко устраняются. Иногда "брешь" появляется из-за недостаточно четкого планирования защиты, ошибки в программном обеспечении, либо она заложена в самой природе протоколов интернета. Устранение этих проблем требует глубокого понимания связанных с ними вопросов. В данной лекции рассказывается об известных уязвимых местах IIS, об их использовании при выполнении атак на серверы Microsoft IIS.
Веб-сайт подвергается атакам на взлом по ряду причин. Одной из причин является то, что коммерческое программное обеспечение, на котором построены веб-сайты, представляет собой сложные и комплексные платформы. Как и любое другое, оно иногда содержит ошибки ("баги"), которые и используются взломщиками. Другая причина заключена в самой технологии интернет-протоколов, согласно которой функционирует вся сеть интернет. При их создании изначально не учитывались вопросы безопасности. Интернет-протоколы появились в результате нововведений, усовершенствований, совместных разработок в области информационных технологий, выполняемых в научно-исследовательских институтах, группах индустриальных стандартов и на частных предприятиях, чтобы открыть доступ к информации большому количеству людей. Целью этих технологий было объединение людей, а не их разграничение.
Несмотря на то, что впоследствии были разработаны способы обеспечения безопасности интернет-протоколов, их архитектура в общем и целом осталась уязвимой, а затраты на усиление информационной безопасности порой превышают затраты на введение новой архитектуры.
Открытая и единая природа протоколов интернета явилась одной из главных причин его небывалой популярности. Они стали настоящими стандартами, благодаря чему продукты от различных производителей взаимодействуют на удивление слаженно. К сожалению, из-за наличия проблем с их безопасностью разработчики программного обеспечения вынуждены время от времени совершенствовать свои продукты. На рынке появилось новое направление программных средств, предназначенных для обеспечения безопасности информации. Многие компании широко применяют эти средства для достижения наилучших результатов в области защиты своих систем.
Давайте вначале ознакомимся с кратким описанием протоколов интернета. Работа интернета основана на функционировании набора специализированных
| Протокол | Описание |
|---|---|
| Internet Protocol (IP) | Используется для управления инфраструктурой и присвоения компьютерам адресов, уникальным образом идентифицирующих каждый узел числом, состоящим из идентификаторов сети и узла. IP-адрес может выглядеть так: 192.168.222.101. |
| Internet Control |
Обеспечивает механизм передачи сообщений об ошибках в протоколе IP на узел, сгенерировавший IP-пакет; используется для уведомления об ошибках, возникших при передаче данных. |
| Dynamic Host Control Protocol (DHCP) | Разрешает динамическое присвоение IP-адресов узлам в контролируемой подсети для устранения поддержки фиксированного IP-адреса каждого узла. |
| Transmission Control Protocol (TCP) | Управляет коммуникационными действиями между процессами в объединенных узлах, работающих независимо от инфраструктуры, управляемой протоколом IP. |
| User Datagram Protocol (UDP) | Является альтернативой TCP, используется для передачи данных между процессами, не требующими надежной доставки по причине того, что процессы самостоятельно исправляют ошибки. |
| File Transfer Protocol (FTP) | Простой и надежный протокол для обмена файлами между узлами. |
| Point-to-Point Protocol (PPP) | Обеспечивает надежную связь и набор опций для автоматизации процессов входа в систему и настройки удаленных узлов. |
| Simple Mail Transfer Protocol (SMTP) | Используется для передачи исходящих сообщений электронной почты с одного узла на другой. |
| Используется для передачи входящих сообщений электронной почты с одного узла на другой. | |
| Simple |
Используется в процессе управления сетью при сборе данных для анализа и составления отчета о производительности сетей. |
| Используется веб-браузерами и веб-серверами для осуществления запросов и отправки содержимого в формате HTML. |
Приведенные протоколы TCP/IP определяют набор стандартов, используемых разработчиками программного обеспечения для обмена данными между двумя компьютерами. Это позволяет программным приложениям правильно осуществлять доставку данных. Каждый протокол играет свою собственную роль при обмене информацией.
Аббревиатура "IP" является сокращением от Internet Protocol (Протокол интернета), т.е. от названия одного из протоколов TCP/IP. Его роль заключается в идентификации компьютеров (называемых узлами или хостами), между которыми производится обмен данными.
Протокол Internet Control Message Protocol (ICMP) функционирует параллельно протоколу IP и позволяет маршрутизаторам отправлять сообщения друг другу для определения оптимального и надежного пути от одного компьютера к другому в сложнейшей среде глобальной сети. На рисунке 2.1 приведена схема инфраструктуры интернета и показан принцип IP-адресации.
(рис 2.1) Протоколы интернета позволяют системам обмениваться информацией независимо от их физического расположенияПротоколы Transmission Control Protocol (TCP) и User Datagram Protocol (UDP) (в меньшей степени) используются для управления транспортировкой данных между двумя компьютерами. С их помощью открываются и закрываются соединения, доставляются и верифицируются данные при обмене информацией.
Сеть интернет чрезвычайно велика, а вид IP-адреса пугает пользователей (хотя форма адреса является стандартной для компьютеров), поэтому требуется некоторая централизованная служба для успешного нахождения требуемых компьютеров. Централизованная служба имен (Domain Name System, DNS) позволяет пользователям находить информацию и отправлять сообщения электронной почты с использованием понятного для людей языка. С помощью DNS можно открыть сайт своей библиотеки, введя в веб-браузере адрес URL (Universal Resource Locator), например, www.mylibrary.com, вместо малоинформативного адреса 196.221.68.124. Можно отправить сообщения электронной почты на santa@northpole.org вместо 64.230.64.121@232.110.98.101.
Совет. Имена доменов в Соединенных Штатах Америки контролируются некоммерческой организацией
ICANN (Internet Corporation for Assigned Names and Numbers), являющейся полугосударственной структурой. Она также называется InterNIC. В Европе и Азии имеются собственные системы управления доменными именами.
Служба доменных имен отслеживает информацию, необходимую для поиска какой-либо системы, чтобы это не выполнял каждый отдельно взятый компьютер.
При информационном обмене требуются различные протоколы передачи-приема данных. Например, при обмене данными интернета используется протокол HTTP (
(рис 2.2) Иерархическая структура системы доменных имен DNSКаждый компьютер в сети интернет теоретически может быть связан напрямую с другим компьютером, но на самом деле интернет работает по-другому. Компьютеры используют веб-браузер или программу электронной почты и взаимодействуют с серверами, на которых работают соответствующие службы приложений: веб-сервер HTTP, сервер электронной почты SMTP, сетевые службы FTP (общий доступ к файлам) и Telnet (удаленные терминалы). На многих серверах выполняются одновременно несколько служб приложений. Поэтому программное обеспечение для интернета использует набор портов, идентифицируемых по номерам в диапазоне от 1 до 65535. Номера портов позволяют операционной системе сервера управлять несколькими приложениями или сетевыми службами, а также клиентскими соединениями в каждой службе. Службы HTTP обычно используют порт 80, службы SMTP – порт 25, службы FTP – порты 20 и 21. Более подробный, но далеко не полный, перечень служб приведен в табл. 2.2.
Пакет протоколов интернета содержит около ста наименований. Здесь же приведены только общие сведения, необходимые для последующего изучения материала.
| Служба | Используемый порт | Транспортировка | Функция |
|---|---|---|---|
| FTP | 21 | TCP | Передача файлов. |
| Telnet | 23 | TCP | Удаленные терминалы. |
| SMTP | 25 | TCP | Исходящая почта. |
| Служба имен (DNS) | 53 | UDP | Списки имен интернета. |
| HTTP | 80 | TCP | Сеть. |
| POP | 109, 110 | TCP | Входящая почта. |
| Программа удаленного контроля ( |
111 | TCP и UDP | Удаленное выполнение программ. |
| Сетевой протокол передачи новостей (NNTP) | 119 | TCP | Списки новостей интернета. |
| Сетевой протокол времени ( |
123 | UDP | Синхронизация времени. |
| NetBIOS (Win NT) | 135, 139, 137, 138 | TCP, UDP | Сетевые подключения Windows (не TCP/IP). |
| NetBIOS (Win2000) | 135, 139, 137, 138, 445 | TCP и UDP | Сетевые подключения Windows (не TCP/IP). |
| Протокол доступа к сообщениям в сети интернет (IMAP) | 143 | UDP | Почтовый протокол. |
| SNMP | 161, 162 | TCP и UDP | Управление сетью. |
| Пограничный сетевой протокол ( |
179 | TCP | Управление пограничным шлюзом |
| Облегченный протокол службы каталогов (LDAP) | 389 | TCP и UDP | Службы каталогов. |
| Протокол защищенных сокетов (SSL) | 443 | TCP | Защищенные, зашифрованные данные сети. |
| 514 | UDP | Сетевой журнал. | |
| "Демон" линейного принтера (LPD) | 515 | TCP | |
| 1080 | TCP | Сетевой прокси-сервер. |
Институт системного администрирования, сетевых подключений и безопасности (SANS) включает в себя более чем 90 000 системных администраторов, профессионалов в области безопасности и сетевых администраторов, что делает данную организацию наиболее заметной структурой, занимающейся безопасностью интернета. Члены SANS публикуют свои исследования, различные статьи, учебные пособия и новости, обмениваясь информацией друг с другом и с общей массой пользователей.
Каждый год институт SANS составляет перечень наиболее опасных угроз, которым подвержены компьютеры и компьютерные сети. Этот перечень носит название "The Twenty Most
В следующем разделе содержится сокращенный вариант перечня SANS с описанием проблем и набором дополнительных сведений. Раздел "Переполнение буфера" содержит информацию с веб-сайта Symantec (http://www.Symantec.com).
Некоторые уязвимые места в защите являются общими для всех информационных систем. Например, любая система, использующая парольную защиту, подвержена атакам при небезопасной работе с паролями. Поэтому, независимо от того, используется ли Windows или UNIX, веб-сервер имеет следующие слабые места.
Большая часть программного обеспечения, включая операционные системы и приложения, поставляется с инсталляционной программой, автоматически копирующей и настраивающей его на компьютере. Однако инсталляционные программы зачастую устанавливают большее число компонентов, чем требуется. Многие администраторы не знают об этом, что приводит к появлению "дыр" в программном обеспечении их компьютерных систем.
При инсталляции приложений часто устанавливаются ненужные демонстрационные программы и сценарии. При установке операционной системы почти всегда инсталлируются дополнительные службы и соответствующие им открытые порты. Через эти порты злоумышленники и проникают в систему.
Одним из наиболее уязвимых мест в защите веб-сервера являются демонстрационные сценарии, которые используются злоумышленниками для несанкционированного доступа в систему или для получения информации о системе. Демонстрационные сценарии, как правило, не проходят контроля качества, которому подвергается другое программное обеспечение. В результате они становятся прекрасной целью для атак, вызывающих переполнение отведенной сценарию оперативной памяти, что позволяет злоумышленнику внедрить свою собственную программу в память и выполнить ее.
Решение этой проблемы, включающее в себя закрытие портов и удаление демонстрационных сценариев, является частью процесса, называемого усилением системы. Этот процесс будет детально обсуждаться в лекции 3.
Большая часть операционных систем изначально настроена на использование паролей, что является первой и единственной преградой на пути злоумышленника. Если злоумышленник определит имя и пароль учетной записи, он сможет войти в сеть.
Во многих системах содержатся встроенные учетные записи, учетные записи по умолчанию с паролями по умолчанию. Такие учетные записи имеют один и тот же пароль во всех установленных копиях программного продукта. Злоумышленники, как правило, проверяют их наличие, так как они хорошо известны в хакерских кругах. Удивительно большое число администраторов допускают существование этих учетных записей в своих системах.
Легко угадываемые пароли представляют собой большую проблему, так как злоумышленники используют "грубые" атаки (т.е. атаки, заключающиеся в попытках угадать пароль) или атаки с применением словарей паролей, генерирующих слова и комбинации символов. Если длина пароля мала, и он состоит только из букв алфавита, то его взлом для хакера – не проблема.
Для предотвращения таких атак администраторам и пользователям нужно избегать использования в паролях имен людей, домашних животных или названий мест. Сложность угадывания пароля зависит от количества символов в пароле: чем больше символов, тем труднее угадать пароль. Используйте при работе так называемые сильные пароли, состоящие, как минимум, из восьми символов и являющихся комбинациями чисел, специальных знаков пунктуации и букв алфавита в верхнем и нижнем регистрах (если система позволяет указывать пароли с разным регистром символов).
При нарушении защиты система восстановления требует наличия "свежих" резервных копий и проверенных способов восстановления данных. В одних компаниях ежедневно резервируются данные, но их работоспособность не проверяется. В других – создается политика резервирования данных, но не предусматривается политика восстановления. Подобные ошибки проявляются уже после того, как хакер проник в сеть и уничтожил или повредил данные. Всегда следует разрабатывать политику резервирования и восстановления, проверять ее и улучшать!
Как легальные пользователи, так и злоумышленники подключаются к системам через открытые порты. Чем больше портов открыто, тем вероятнее, что кто-нибудь сможет подключиться к компьютеру. Следует иметь несколько открытых портов на брандмауэре, а именно: порт 80 для HTTP на веб-сервере, порты 25 и 110 для SMTP и POP. Из-за этих портов возникают проблемы, если не знать о том, что они существуют и находятся в открытом состоянии. Если оставить открытый порт незащищенным, злоумышленнику понадобится лишь средство сканирования для его обнаружения, после чего он выполнит через этот порт эксплоит, входящий в комплект хакерского программного обеспечения.
Наилучшим способом избавления от ненужных портов является закрытие всех портов до единого с последующим открытием только необходимых портов по очереди при настройке системы.
Хакеры, как правило, маскируют свой IP-адрес адресом узла внутренней сети, так как в этом случае он действует под видом полноправного члена сети и его проникновение трудно распознать. Внутренние пользователи обычно имеют привилегированный доступ к информации и системам, недоступным для внешних пользователей. Поэтому внешний пользователь, работающий под видом внутреннего, сможет использовать эти привилегии для выполнения злоумышленных действий. Такой тип атак называется спуфингом (
Одной из аксиом безопасности является высказывание: "Идеальный случай – предотвращение всех атак, но обнаружение злоумышленника жизненно необходимо". Если вы подверглись атаке, то без журналов вряд ли сможете узнать, что злоумышленники сделали с системой. Без журнала вашей организации придется либо перезагружать операционные системы с исходных носителей в надежде, что зарезервированные данные не повреждены, либо продолжать использование системы, опасаясь, что злоумышленник все еще контролирует ее. Нельзя обнаружить атаку, если не знать, что происходит в сети. Журналы содержат подробные сведения о том, что произошло, какие системы были атакованы, а какие подверглись несанкционированному доступу. О журналах будет идти речь в лекции 5.
Большая часть серверов, включая Microsoft IIS, поддерживает программы общего шлюзового интерфейса (Common Gateway Interface, CGI), обеспечивающие работу с веб-страницами и возможность поиска и сбора данных. К сожалению, несанкционированный доступ к этим программам позволит получить прямой доступ к операционной системе веб-сервера и запустить программу с привилегиями программного обеспечения самого веб-сервера. В атаках на взлом CGI используются их уязвимые места для повреждения веб-страниц, хищения информации о кредитных картах, установки "черных ходов" для дальнейших вторжений.
В зависимости от использования сценариев и/или CGI предпринимаются меры по защите. Надстройки безопасности Microsoft устраняют некоторые уязвимые места IIS, возникающие при использовании сценариев. В лекции 11 рассказывается об этих мерах.
Веб-сайты уязвимы для атак, заключающихся в распространении вирусов, червей или "троянских коней". Злоумышленные коды могут поступать из самых различных
В дополнение к общим уязвимым местам каждая вычислительная платформа имеет свой собственный уникальный набор уязвимых мест. Из-за своей широкой популярности Windows 2000 и IIS подвергаются более частым атакам, и их уязвимые места представляют большую опасность. Далее мы расскажем обо всех уязвимых местах, известных на момент написания книги. Все они устраняются с помощью установки Microsoft Service Pack 2 для Windows 2000, однако появляются новые опасности, поэтому регулярно проверяйте перечень уязвимых мест на веб-сайте SANS по адресу http://www.sans.org/top20.htm.
Универсальный код Unicode представляет собой производственный стандарт программного обеспечения, облегчающий адаптацию программных продуктов для различных операционных систем и переводящий содержимое веб-сайта (программы) на различные языки. В данном стандарте каждому символу присвоен уникальный номер независимо от платформы, программы или языка. Стандарт Unicode одобрен большинством производителей программного обеспечения, включая Microsoft, а исходный код Unicode является частью Windows 2000 и IIS.
Использование стандарта Unicode в продуктах Microsoft послужило причиной возникновения уязвимого места. Отправив на сервер IIS особым образом написанный адреса URL, содержащий некорректную последовательность Unicode UTF-8, злоумышленник может вызвать беспорядочный проход системы по каталогам и выполнение случайных сценариев. Эта атака также известна под названием атаки на прохождение каталогов (directory
В Windows 2000 и IIS обнаружено большое число уязвимых мест, через которые осуществляются атаки на переполнение буфера. "Прорехи" в защите также позволяют проводить атаки, вызывающие сбой в работе веб-сервера IIS, выполнение произвольного кода, использование целевого веб-сервера в качестве инструмента для атаки на стороннюю систему. Ниже приведен краткий обзор таких уязвимых мест.
Возможность
В системах Windows NT и Windows 2000 многие локальные службы работают в учетной записи SYSTEM или LocalSystem (для Windows 2000). Эта учетная запись используется в критических системных операциях. При получении одним компьютером системных данных с другого компьютера учетная запись SYSTEM открывает недействительную сессию соединения для этого компьютера.
Учетная запись SYSTEM имеет неограниченные привилегии и не требует пароля при доступе, поэтому пользователь не сможет войти в систему под этой учетной записью. Учетной записи SYSTEM иногда требуется доступ к информации, расположенной на других компьютерах и представляющей собой общие файлы SMB, имена пользователей и т.д. Так как она не может войти в систему с помощью идентификатора пользователя и пароля, то использует для получения доступа недействительный сеанс соединения. К сожалению, с помощью недействительного сеанса осуществляют вход в систему и злоумышленники. Это относится как к Windows 2000, так и к Windows NT.
Несмотря на то, что большинству пользователей Windows не требуется поддержка
Уязвимость паролей в
Важно. Не откладывайте установку обновлений Microsoft Service Pack и Security Update, которые устраняют эти уязвимые места, если действующий веб-сайт от них не защищен. Перечень уязвимых мест открыт для общего пользования, поэтому можно предположить, что хакеры изучили его и имеют дополнительную информацию, доступную в хакерских кругах. Не позволяйте хакерам опережать вас!
Хакеры знают об уязвимости атакуемых ими систем. Большую часть времени при подготовке и осуществлении атаки хакеры отводят под составление перечня систематических процедур, которые помогут им выяснить эти уязвимые места с наименьшими затратами. Наверняка злоумышленники сначала проверят систему-жертву на наличие открытых портов NetBIOS. После этого они просмотрят учетные записи и пароли по умолчанию, которые не были изменены с момента установки системы. Следовательно, если вы не умеете эффективно устранять "дыры", хакер рано или поздно обнаружит их посредством рекогносцировки.
В лекции 1 говорилось, что одни хакеры находят свои цели случайным образом, а другие концентрируют внимание на конкретных целях, используя в качестве "орудия" отправку массовых ping-запросов. Координаты ответивших компьютеров помещаются в список потенциальных жертв. Если хакер идентифицировал сервер и "нацелился" на него, он выполнит ping-запрос (см. рис. 2.3), чтобы убедиться в его работе, перед дальнейшей разведкой или перед непосредственной атакой.
Сканирование является следующим этапом сбора информации и осуществляется изнутри или извне компьютерной сети. Это эффективный метод рекогносцировки, так как виртуально все приложения и службы, использующие интернет-коммуникации, осуществляют прием и отправку данных через один и тот же набор стандартных
(рис 2.3) Перед выполнением атаки хакер осуществляет ping-запрос сервера-жертвы
Ping-запросы, отдельные или массовые, используют атрибуты протокола интернета для получения информации. Операционные системы всех компьютеров имеют встроенную утилиту для осуществления ping-запросов. Утилита по отправке ping-запросов отправляет пакет запроса ICMP ECHO указанной системе и ожидает ответа ICMP ECHO. Если ответ получен, ping-утилита выводит сообщение о том, что система-жертва работает. Если ответ не получен, выводится соответствующее сообщение. Для осуществления массовых ping-запросов необходима программа, осуществляющая их отправку по адресам указанного диапазона.
Некоторые средства отправки ping-запросов и адреса URL, необходимые для их загрузки, указаны в табл. 1.2. Системы, приславшие ответ, отображаются в виде "живых" адресов (см. рис. 2.4).
(рис 2.4) Данные, полученные путем массового ping-запроса (скриншот программы Grims Ping для Windows 2000)Сканирование посредством ping-запросов можно обнаружить. По этой причине осторожные хакеры, как правило, избегают использования случайного ping-сканирования. Если есть такая возможность, они выполняют ping-запросы избирательно в надежде, что отдельный ping-запрос не будет замечен, или используют другие формы рекогносцировки.
Простым способом защиты от внешних ping-запросов является блокирование ping-сканирования посредством фильтрации ICMP на сетевых экранах и маршрутизаторах. Администраторы, для которых проблема безопасности является одной из главных, обычно настраивают эти устройства на отклонение всех ping-запросов, поступающих извне. Но такая защита работает до тех пор, пока сетевой экран не будет взломан.
При сканировании портов также используются атрибуты TCP, UDP и ICMP, но выполняются другие действия. Сканирование портов осуществляется программой для сбора информации о состоянии портов TCP и UDP системы-жертвы. Сканер отправляет пакет данных (зонд) на порт с последующим ожиданием ответа. По полученному ответу определяется, является ли порт открытым, занятым или закрытым, он содержит косвенные данные о том, какое приложение использует данный порт. Ниже приведен пример сканирования, направленного на отдельный компьютер, с помощью утилиты Nmap.
Interesting ports on (xxx.xxx.x.xx): Port State Protocol Service 21 open tcp ftp 80 open tcp http
В зависимости от используемой программы сканируются отдельные порты отдельного компьютера, выполняется массовое сканирование портов и компьютеров. В интернете доступно множество бесплатных средств сканирования. Самой популярной является программа Nmap, доступная как для Microsoft Windows, так и для UNIX. Часто используется программа Nessus. Обе программы содержат широкий набор возможностей сканирования для зондирования больших и малых компьютерных сетей.
Сканирование порта позволяет с определенной степенью конфиденциальности выяснить, какие приложения и службы выполняются на компьютере-жертве. Например, если открыты порты 21 и 80, хакер может предположить, что на компьютере работают службы протоколов FTP и HTTP соответственно. Это достаточно весомая информация, так как каждый порт, ожидающий приема данных, является потенциальным каналом связи с компьютером-жертвой, а каждое приложение или служба представляет собой точку атаки, если хакер знает об уязвимых местах системы (или имеет соответствующую программу).
Существует большое количество методов сканирования, однако в каждом конкретном случае требуется свой метод. Хакер ищет компромисс между затрачиваемым временем и уровнем секретности своих действий. В зависимости от обстоятельств хакер либо осуществляет действия безнаказанно и не боится быть обнаруженным, либо действует осторожно с применением каких-либо хитростей. Сканирование всесторонне использует возможности интернет-протокола.
) и ), автором которых является Fyodor. Для получения более подробной информации посетите эти веб-сайты.
Ниже приведены описания нескольких методов сканирования TCP. Некоторые из этих методов предотвращают обнаружение и работают извне сети, если периметровая защита ограничена фильтрацией пакетов. В разделе "Проблема. TCP-соединения" приведена информация, с помощью которой вы разберетесь в терминах, если еще не знакомы с TCP/IP.
Если вы знакомы с принципами установки соединений TCP, то вам будет легче разобраться в способах реализации атак с использованием протоколов. Для надежной транспортировки данных узлы TCP устанавливают между собой сеансы соединения посредством механизма "трехстороннего рукопожатия".
Механизм подключения использует проверочные биты, имеющиеся в передающихся между узлами пакетах. Ниже приведен перечень проверочных битов с указанием назначения каждого из них.
"Трехстороннее рукопожатие" проводит синхронизацию соединения с обоих концов, что позволяет обеим сторонам согласовываться по начальным номерам последовательности. Этот механизм гарантирует готовность обеих сторон к передаче данных и то, что стороны знают о своей готовности. Необходимо, чтобы пакеты не передавались вообще или не передавались повторно во время установки сессии или после ее завершения.
Каждый узел
Методы сканирования UDP менее эффективны, чем сканирование TCP, так как атрибуты и возможности этих протоколов различны. В процессе передачи данных через UDP происходит мало "рукопожатий" и установок соединения, поэтому средство сканирования не сможет собрать достаточно информации. Тем не менее, сканирование UDP используется хакерами; многие программы типа "троянский конь", такие как Back Orifice, используют протокол UDP, так как трафик UDP сложнее обнаружить и остановить. В результате средство сканирования UDP может найти "черный ход" через уже имеющуюся на жертве программу "троянский конь".
Средства сканирования UDP отправляют на порт пустые пакеты, ответ на которые и будет информативным результатом сканирования. Если порт закрыт, операционная система ответит, что данный порт недоступен. Если порт открыт, то пустой пакет, скорее всего, будет проигнорирован. Следовательно, отсутствие ответа обычно означает, что порт открыт, если только порт не защищен устройством периметровой защиты, блокирующим весь трафик UDP.
Перечень уязвимых мест SANS/
Иногда хакер использует программное обеспечение компьютера для выяснения версии веб-сервера или операционной системы. Простой и часто используемый метод заключается в получении клиента службы Telnet и попытке входа в систему. На веб-сервере это действие осуществляется с помощью подключения через Telnet к порту 80 сервера (порт служб HTTP). На уязвимых системах при попытке входа в систему сервер отображает сообщение с указанием информации о производителе и версии (независимо от того, был ли вход в систему успешным).
Сканирование операционных систем осуществляется с помощью таких программ, как Nmap и Nessus. Они используют утилиту сбора данных, которая выясняет вид стека TCP/IP жертвы посредством отправляемых пакетов-зондов и сопоставляет полученные данные с информацией в базе данных, чтобы выяснить производителя и версию программного обеспечения исследуемого компьютера. Как правило, для успешной идентификации недостаточно одного зонда, однако средства сканирования являются автоматизированными, что обеспечивает высокую скорость и простоту работы.
Для обмана хакеров администраторы часто изменяют сообщения веб-сервера с указанием в нем ложного имени производителя и версии программного обеспечения. Тем не менее, этот способ не очень эффективен против хакеров, имеющих большой опыт работы с Microsoft IIS, так как успешное сканирование операционной системы быстро сужает круг возможных версий IIS.
Одним из способов защиты от обнаружения сканирования является использование средства FTP
Некоторые методы сканирования позволяют сканирующим пакетам преодолевать периметровую защиту. Сетевые экраны с фильтрацией пакетов иногда не обнаруживают сканирующие пакеты, разбивающие дейтаграммы в заголовках TCP, так как фильтр не распознает полный заголовок TCP, соответствующий правилам фильтрации, и пакет не блокируется.
Существует много эксплоитов, наиболее известными из которых являются следующие.
Эксплоиты, использующие ошибки в конфигурации, требуют от хакера много времени и усилий для поиска ошибок и последующего проникновения в систему. Эксплоиты других категорий требуют от него большей сообразительности и находчивости. За исключением случая, когда хакер просто повторно использует существующую программу-эксплоит, ему требуется написать некоторый код и разработать схему его доставки. Но, опять-таки, с помощью набора хакерских средств программист довольно просто скомпилирует атакующую программу и выполнит эксплоит. Другое дело – распределенные эскплоиты. Их использование требует тщательнейшего планирования и подготовки, но это компенсируется тем, что таким атакам, как правило, очень трудно противостоять.
В зависимости от полученных данных хакер может иметь достаточно информации для осуществления направленной атаки. Узнав об открытых портах на компьютере-жертве, о приложении или службе, использующей этот порт, выяснив поставщика и номер версии программного обеспечения, хакер может начинать атакующие действия. Имея на руках указанную информацию, взломщик обратится за помощью к своим собственным ресурсам (среди которых непременно будет перечень уязвимых мест SANS/
Иногда хакер находит незащищенный порт при подключении с помощью программы Telnet. В случае неудачи злоумышленник попытается войти в систему под учетной записью пользователя, найти домашний каталог со списком файлов и подкаталогов и т.д. Атака может быть направлена и на использование других служб IIS, таких как FTP и NNTP.
Одной из серьезных опасностей, угрожающих сайтам в новом тысячелетии, является угроза новейших злоумышленных и вредоносных атак. Вирусы, черви, "троянские кони", умышленно размещенные синтаксические ошибки на интерактивных веб-страницах и программы, написанные самими хакерами, представляют собой разновидности вредоносного кода. За последние два года в сети интернет появились довольно изощренные атаки, и их становится все больше и больше.
Атаки с помощью вредоносного кода бывают как направленными, так и ненаправленными. Сайт является частью интернета, поэтому даже если у вас нет врагов, и вы не выделяетесь из общей массы пользователей, он является потенциальной целью для таких атак. Атаки с вредоносным кодом выполняют такие действия, как DoS, искажение графической информации, удаление файлов и
Вредоносный код, расположенный на веб-страницах, является сравнительно новой угрозой, о которой будет кратко рассказано в разделе "Сценарии и Java-апплеты" данной лекции.
Различия между вирусами, червями и "троянскими конями" совсем незначительны. Эти вредоносные программы отличаются друг от друга по своей форме и способу воздействия. Ниже приведены определения этих программ, взятые из глоссария терминов Агентства национальной безопасности США.
На практике некоторые атаки с использованием вредоносного кода реализуются посредством комбинации каждого из трех типов в некий гибрид. По этой причине границы между типами вредоносного программного обеспечения размыты, а классические определения – некорректны. Тем не менее, с помощью определений можно составить некоторую классификацию. Большую опасность представляет то, что атаки с использованием вредоносных программ осуществляются множеством различных способов с разнообразными методами маскировки и всевозможными хитроумными уловками. Вы можете не заметить скрытой угрозы, но нужно находиться в постоянной готовности, чтобы противостоять ей.
При атаке с применением вредоносного кода обычно выполняется одно (в худшем случае, все) из перечисленных действий.
Особенности вирусов. Определение вируса является слишком упрощенным, но все же полезным. Существует множество вирусов, каждый из которых имеет свои индивидуальные особенности. Вирусы обычно попадают на компьютер при помощи пользователей, после чего распространяются на другие компьютеры, с которыми он взаимодействует. Например, вирусы
Постоянно увеличивающаяся сложность и изощренность вирусов представляет собой серьезную проблему для профессионалов в области информационной безопасности. Сетевые экраны не способны серьезно противостоять вирусам, если политика безопасности позволяет обмениваться сообщениями электронной почты, а брандмауэр настроен на беспрепятственное прохождение соответствующих пакетов данных. Программное обеспечение, предназначенное для обнаружения вирусов, приносит ощутимую пользу, но это относится только к известным вирусам, в то время как без помех распространяются новые вирусы, не распознаваемые программой защиты.
Все вирусы похожи друг на друга тем, что они являются программами, содержащими инструкции для выполнения, и написаны на языках программирования, включая C, Java, Visual Basic и языки макросов Microsoft Office. Вирусы вставляют самих себя в несущие файлы, что способствует их скорейшей загрузке в
Некоторые вирусы, называемые полиморфными, мутируют и изменяются, преобразуясь в другие разновидности вирусов во избежание обнаружения и пресечения своих действий. Мутирующие вирусы осложняют работу программных систем защиты, осуществляющих обнаружение вирусов, которые работают по принципу нахождения характерных признаков вирусов, являющихся их ключевыми программными инструкциями. После изменения этих признаков в процессе
Данное исследование базируется на данных компании Symantec Corp., (© 2001). Вирус W32.Simile заражал исполняемые фалы в папках на всех жестких дисках компьютера-жертвы и на любых удаленных устройствах, с которыми взаимодействовал этот компьютер. Вирус не представлял серьезной опасности, однако в определенные дни осуществлялось отображение сообщений.
Вирус содержал строку " Metaphor v1 by The Mental Driller/29A ". Эта строка отображалась 17 мая, июня, сентября и декабря после запуска инфицированного исполняемого файла. 14 мая на всех компьютерах с поддержкой шрифта
Предполагалось, что W32.Simile изначально распространился через электронную почту. После заражения компьютера в интрасети W32.Simile заражал и веб-сервер IIS, если зараженный компьютер содержал диск, связанный с веб-сервером. Вирус W32.Simile мог проникнуть на веб-сервер через интернет, если зараженная программа выполнялась на сервере после ее внедрения через переполнение буфера.
Данный вирус являлся полиморфным и использовал в своих действиях методы скрытия точки входа. Другими словами, вирус записывал себя в случайное место и осуществлял шифрование строки с целью повышения сложности обнаружения. При своем запуске вирус перестраивался для изменения характерных признаков. Происходило как сокращение, так и увеличение объема кода вируса для предотвращения неконтролируемого роста, присущего другим метаморфическим вирусам. Вирус содержал множество тестов для предотвращения заражения файлов, предназначенных для захвата вируса.
После модификации вирус осуществлял поиск файлов .exe в текущей папке, а затем во всех папках на фиксированных и удаленных дисках. Как правило, он заражал исполняемые файлы Win32, имеющиеся в системе и написанные на языке C, и воздействовал, в основном, на файлы операционной системы.
Особенности червей. Червь по своей природе аналогичен вирусу. Иногда термин "червь" используется по отношению к вирусу, так как некоторые вирусы используют механизмы распространения, присущие червям. Тем не менее, с технической точки зрения червь отличается от вируса, так как первый представляет собой самодостаточную программу, а не программу, присоединенную к другой программе. Кроме этого, в отличие от вирусов, которые скрываются во вложениях электронной почты и запускаются пользователем при открытии вложения, атака червей представляет собой полностью автоматизированную процедуру. После успешного проникновения в систему они полностью устанавливают и загружают самих себя, выполняя эти действия в рамках атаки, а затем осуществляют автоматическое самораспространение.
Полностью автоматизированные черви наносят огромный ущерб за малый промежуток времени. Червь Code Red, чей механизм распространения осуществлял рассеянное сканирование для определения уязвимых серверов IIS, стал примером того, насколько разрушительны последствия успешных действий червя. Черви распространяются экспоненциально, так как одна жертва распространяет вирус на несколько других, каждая из которых, в свою очередь, выполняет то же самое. На рисунке 2.5 показан график, предоставленный Ассоциацией анализа данных интернета (CAIDA.org), на котором показано распространение червя Code Red более чем на 350 000 серверов за 13 часов.
Червь является независимой программой, и ему свойственны действия по самосохранению. Эффективным методом самосохранения является скрытие. Разработчики червей пытаются маскировать черви под легальные процессы, выполняющиеся в системе компьютера. По этой причине файлы, добавляемые червями в систему компьютера, имеют обычные, не "режущие" взгляд имена (например, MS Windows содержит огромное количество файлов с расширениями .vxb, .
Создатель червя усложняет процесс его устранения требованием более высоких привилегий, нежели уровень пользователя компьютера, на котором червь был установлен.
Как и вирус, червь может мутировать и изменять свой внешний вид, чтобы всегда быть на шаг впереди своих противников. Такие программы, как VBS
(рис 2.5) Червь Code Red распространился более чем на 350 000 серверов за 13 часовЭто исследование основано на данных отчета "Nimda
Nimda серьезно нарушил целостность и безопасность атакованных систем, что позволило злоумышленникам завладеть полными привилегиями администраторов компьютеров-жертв, получить доступ ко всей файловой системе и внести бесчисленные изменения в системные файлы и настройки реестра.
Червь распространял сам себя на новые компьютеры посредством четырех отдельных механизмов.
Механизмы распространения на серверы IIS, описанные выше, требуют сканирования интернета инфицированной системой на предмет поиска уязвимых серверов IIS. Данный червь осуществлял заражение своих соседей по IP-адресу. Он выбирал узлы с идентичной первой или второй частью (имеется в виду адрес с идентичным значением в крайних правых полях, например, xxx.xxx.654.3210). Это действие приводило к массовой сетевой активности на сайтах с несколькими зараженными системами. В частности, можно было наблюдать эффект переполнения
Червь вносил бесчисленное множество изменений в файловую систему жертвы, включая создание большого числа копий самого себя под различными именами. В некоторых случаях создавалось столько копий червя, что оказывалось занятым все пространство жесткого диска. Именами файлов червя являлись Admin.dll, Load.exe, MMC.EXE, readme.exe, Riched20.dll и MEP*.TMP.EXE.
Действие червя зависело от операционной системы жертвы, от имени файла, под видом которого выполнялся червь, а также от
Для сканирования сети червь запускал до двухсот нитей (подпроцессов). Это действие вызывало значительную загрузку зараженного компьютера и всей сети. ARP, генерируемые сканирующей системой, или запросы DNS, генерируемые системой, отправляющей червь Nimda в сообщениях электронной почты, вызывали ошибки, выглядевшие как явные
Особенности "троянских коней". "Троянский конь" представляет собой программу, размещаемую на компьютере, который предполагается использовать в дальнейшем. Термин, взятый из греческой мифологии, означает подаренного городу Троя гигантского коня, внутри которого находились греческие солдаты, атаковавшие город. Такая аналогия очень удачна, так как "троянские кони", в основном, используются для осуществления атаки на взлом с целью оставить "открытые двери" в систему, либо устанавливаются после успешного взлома в качестве "черных ходов", которые позволят хакеру вновь проникнуть в систему.
"Троянское кони" могут физически устанавливаться изнутри сети (опять мы имеем дело с внутренней угрозой), через электронную почту или веб-страницу, легкомысленно открытую получателем. Все это похоже на атаки с использованием вирусов, не правда ли? Другими словами, сообщение электронной почты или веб-страница, внедряющая "троянского коня", содержит вирус или червь с определенным типом действия (троянскую программу). Однако вирус наносит ущерб, как правило, сразу после первого запуска программы. Что касается "троянских коней",то они скрытно находятся в системе на протяжении некоторого времени, пока не представится возможность для нанесения удара.
Независимо от способа доставки, если не обнаружить и не удалить "троянского коня", он будет оставаться на компьютере до тех пор, пока не удалит себя сам, или пока хакер не решит, что "троянский конь" ему больше не нужен. Пока "троянский конь" присутствует в системе жертвы, он находится в полном распоряжении хакера.
"Троянские кони" используются самыми различными способами. Некоторые из них являются одноразовыми вредоносными программами, настроенными на удаление в определенное время. Другие выполняют функции, упрощающие выполнение задуманных действий хакера, такие программы называются агентами.
Одним из распространенных типов агентов является прослушивающая программа (
При осуществлении атаки с помощью "троянского коня" такая комбинация используется довольно часто. Роль сниффера заключается в выявлении идентификаторов и паролей входа в систему. Он записывает нажимаемые пользователями клавиши или пакеты, отправляемые компьютером в сеть. Механизм записи зависит от типа прослушивающей программы. Сниффер может записывать данные в журнал, который потом просматривается хакером. В этот момент используется компонент атаки, реализующий удаленный контроль.
При использовании инструментов, принятых в хакерском сообществе, суровой реальностью атаки с помощью "троянского коня" является то, что хакер, ответственный за конкретную атаку, является не единственным человеком, который использует "троянского коня" после его загрузки на компьютер-жертву. Хакерские средства настроены на работу с определенными портами. Из этого следует, что сканер портов может обнаружить уже размещенных в системах удаленно контролируемых "троянских коней". Всякий пользователь, выявивший присутствие "троянского коня", сможет получить доступ ко всем ресурсам, раскрываемым данной программой, даже если она была размещена на компьютере другим хакером.
Данное исследование проведено компанией CNET New.com (© 2001). В июле 2001 г. червь под названием Code Red атаковал и заразил тысячи серверов Windows 2000. Несколькими неделями спустя, в августе 2001 г., мутировавшая форма червя под названием Code Red II использовала тот же механизм, что и Code Red, для заражения уязвимых серверов IIS, на которых не была устранена прямая опасность переполнения буфера в idq.dll, или не были удалены отображения сценариев
Совет. О том, как устранить уязвимое место, связанное с возможностью переполнения буфера, вы узнаете в лекции 3.
За исключением механизма переполнения буфера для выполнения кода червя на уязвимом сервере IIS червь Code Red II коренным образом отличался от исходных вариантов червя Code Red CRv1 и CRv2.
Червь Code Red II имел несколько опасных особенностей. Самой серьезной из них являлось то, что червь создавал "черный ход" посредством размещения "троянского коня" в файле CMD.EXE на зараженном сервере, что делало систему абсолютно открытой для любого хакера.
Червь копировал файл %windir%\CMD.EXE в следующие места:
"Черный ход" позволял хакеру выполнять любые команды на взломанном сервере.
Кроме того, червь размещал на системе-жертве второго "троянского коня", являвшегося модифицированной версией файла explorer.exe (Диспетчер рабочего стола), который давал удаленному хакеру беспрепятственный доступ к корневым каталогам C: и D: после следующего входа пользователя в систему (если в системе не было устранено уязвимое место "Relative Shell Path"); это стало возможным благодаря способу, которым Windows по умолчанию осуществляет поиск исполняемых файлов.
Совет. В лекции 3 будет рассказываться о том, как устранить уязвимое место "Relative Shell Path", связанное с
относительным путем оболочки.
По прошествии времени распространения инфекции система принудительно перезагружалась. При перезагрузке из памяти удалялся резидентный червь, а "черные ходы" и explorer.exe оставались на месте.
При первом попадании червя на компьютер-жертву и его выполнении осуществлялась проверка заражения данного сервера, в этом случае червь отключал сам себя. После создания "троянских коней" в виде файлов explorer.exe процессы создания файлов приостанавливались. Каждые 10 минут они повторялись с выполнением всех своих процедур, поэтому даже если администратор обнаруживал в реестре параметры, открывающие доступ к C: и D: и удалял их, через несколько минут "троянский конь" прописывал настройки заново.
Червь выбирал жертву, автоматически сканируя системы и определяя, устранены ли на них уязвимые места, связанные с файлом idq.dll и с отображениями сценариев
Интерактивные веб-страницы, уязвимые для вредоносных сценариев и апплетов, являются довольно новым аспектом веб-безопасности. Это уязвимое место связано с использованием CGI на веб-серверах. Оно также зависит от возможности веб-серверов изменять содержимое сайтов с помощью предоставленного сервером кода (Java или Visual Basic), выполняемого в веб-браузере. В данную категорию уязвимых мест попадают сценарии JavaScript и VBscript, имеющиеся на HTML-страницах веб-сервера.
Вредоносный код, поступающий с веб-серверов, более разрушителен, чем вирусы и черви, особенно код Java, так как на клиентской части он практически не зависит от платформы и влияет на компьютеры Windows, UNIX, Mac, Palm или на любой другой с Java-совместимым браузером. Для выполнения апплетов или сценариев JavaScript в браузере достаточно лишь перейти на несущую страницу апплета.
Межсайтовые сценарии (CSS). CSS относится к интерактивным веб-страницам. Вредоносный код проникает на интерактивную веб-страницу с помощью метода, вызывающего выполнение кода браузером, считывающим данную страницу. В результате вредоносная программа выполняет любое действие, допускаемое привилегиями текущего пользователя, включая считывание информации, удаление файлов, отправку сообщений электронной почты и т.д.
Ниже приведено исследование, являющееся примером реальной атаки CSS, которая в данном случае не была вредоносной, однако вполне могла бы таковой стать.
ПРОБЛЕМА. Исследование: эксплоит Zkey
Данный материал заимствован из статьи SANS автора David Rothermel. В августе 2000 г. хакер использовал уязвимость портала хранилища данных .com под названием Zkey посредством выполнения вредоносного кода JavaScript с целью перехвата имен и паролей пользователей электронной почты Zkey. Данный эксплоит является примером атаки CSS.
Атака инициировалась посредством внедрения вредоносного кода JavaScript в сообщение электронной почты и отправки этого сообщения с учетной записи Zkey, использованной хакером, на другую учетную запись пользователя Zkey. Этот код вынуждал пользователей осуществлять вход в систему, посредством чего осуществлялось раскрытие имен пользователей и их паролей.
Сообщение электронной почты имело формат HTML, и код располагался в теге <textarea>. Поверх сообщения размещался прозрачный рисунок GIF, использовавший команду onMouseOver для запуска вложенного кода.
Данный код обманным способом перехватывал имена пользователей и пароли, отображая окна входа с сообщением "You timed out of your session, please log-in" ("Период ожидания вашей сессии истек, пожалуйста, войдите заново"). Когда пользователь вводил свои имя и пароль, они передавались в базу данных на сервер хакера, а не на сервер Zkey. Чтобы пользователь ничего не заподозрил, код направлял пользователя обратно на сервер Zkey и осуществлял его вход в систему для продолжения сеанса.
Потенциальный
После демонстрации своих возможностей хакер поставил руководство портала Zkey в неудобное положение, придав огласке наличие уязвимого места. В качестве рекламы самого себя он заявил, что, несмотря на использование сайтом протокола защищенных сокетов SSL и наличие фильтров у службы электронной почты, он смог преодолеть оба барьера защиты.
Уязвимые места DoS существовали на компьютерах с самого начала появления ЭВМ. Хакеры вызывали отказ в обслуживании систем посредством физической атаки (отключая электроэнергию) или посредством других атак с вторжением. Злоумышленники освоили атаки как с внутренней, так и с наружной стороны системы.
Внешние атаки на отказ в обслуживании осуществляются через сеть интернет. Например, при использовании одного известного эксплоита, называемого "атакой Smurf" (Smurf – автоматизированное средство для выполнения этой атаки) хакер отправляет большой ping-трафика ICMP по широкому рассеянному диапазону IP-адресов. Эта атака срабатывает, потому что большая часть подключенных к интернету маршрутизаторов и узлов отвечают на ping-запросы рассеянными ECHO-пакетами. Таким образом, в сети интернет с экспоненциальной скоростью растет количество пакетов, что и вызывает отказ в обслуживании.
В течение последних двух лет выявлена новая DoS-уязвимость. С помощью метода, называемого распределенным отказом в обслуживании (
Как и атаки с применением вредоносного кода, распределенные атаки
Известные на сегодняшний день атаки
Атаки с применением некорректных пакетов осуществляются через выявление уязвимых серверов, не поддерживающих ошибки. Отправка пакетов, размер которых превышает допустимую норму для IP-пакетов, или пакетов с одним и тем же IP-адресом источника и пункта назначения, может вывести из строя такие системы.
Для успешного осуществления атака
С главной атакующей системы осуществляется управление вспомогательными системами, каждая из которых, в свою очередь, управляет группой агентов, генерирующих сетевой трафик. Если хакеру необходимо привлечь произвольные системы в качестве вспомогательных узлов, он с помощью различных методов сканирования захватит управление необходимыми системами, после чего установит на них средства, необходимые для реализации атаки.
(рис 2.6) Сокрушение системы-жертвы с помощью атаки DDoS
Защита от атак
Начинающим пользователям следует удостовериться в отсутствии на их компьютерах средств для осуществления атак
Слабые места сайта возникают при неправильной конфигурации сервера или в случае нехватки знаний в области безопасности у веб-администратора. Тем не менее, эти недостатки легко устраняются. Иногда "брешь" появляется из-за недостаточно четкого планирования защиты, ошибки в программном обеспечении, либо она заложена в самой природе протоколов интернета. Устранение этих проблем требует глубокого понимания связанных с ними вопросов. В данной лекции рассказывается об известных уязвимых местах IIS, об их использовании при выполнении атак на серверы Microsoft IIS.
Веб-сайт подвергается атакам на взлом по ряду причин. Одной из причин является то, что коммерческое программное обеспечение, на котором построены веб-сайты, представляет собой сложные и комплексные платформы. Как и любое другое, оно иногда содержит ошибки ("баги"), которые и используются взломщиками. Другая причина заключена в самой технологии интернет-протоколов, согласно которой функционирует вся сеть интернет. При их создании изначально не учитывались вопросы безопасности. Интернет-протоколы появились в результате нововведений, усовершенствований, совместных разработок в области информационных технологий, выполняемых в научно-исследовательских институтах, группах индустриальных стандартов и на частных предприятиях, чтобы открыть доступ к информации большому количеству людей. Целью этих технологий было объединение людей, а не их разграничение.
Несмотря на то, что впоследствии были разработаны способы обеспечения безопасности интернет-протоколов, их архитектура в общем и целом осталась уязвимой, а затраты на усиление информационной безопасности порой превышают затраты на введение новой архитектуры.
Открытая и единая природа протоколов интернета явилась одной из главных причин его небывалой популярности. Они стали настоящими стандартами, благодаря чему продукты от различных производителей взаимодействуют на удивление слаженно. К сожалению, из-за наличия проблем с их безопасностью разработчики программного обеспечения вынуждены время от времени совершенствовать свои продукты. На рынке появилось новое направление программных средств, предназначенных для обеспечения безопасности информации. Многие компании широко применяют эти средства для достижения наилучших результатов в области защиты своих систем.
Давайте вначале ознакомимся с кратким описанием протоколов интернета. Работа интернета основана на функционировании набора специализированных
| Протокол | Описание |
|---|---|
| Internet Protocol (IP) | Используется для управления инфраструктурой и присвоения компьютерам адресов, уникальным образом идентифицирующих каждый узел числом, состоящим из идентификаторов сети и узла. IP-адрес может выглядеть так: 192.168.222.101. |
| Internet Control |
Обеспечивает механизм передачи сообщений об ошибках в протоколе IP на узел, сгенерировавший IP-пакет; используется для уведомления об ошибках, возникших при передаче данных. |
| Dynamic Host Control Protocol (DHCP) | Разрешает динамическое присвоение IP-адресов узлам в контролируемой подсети для устранения поддержки фиксированного IP-адреса каждого узла. |
| Transmission Control Protocol (TCP) | Управляет коммуникационными действиями между процессами в объединенных узлах, работающих независимо от инфраструктуры, управляемой протоколом IP. |
| User Datagram Protocol (UDP) | Является альтернативой TCP, используется для передачи данных между процессами, не требующими надежной доставки по причине того, что процессы самостоятельно исправляют ошибки. |
| File Transfer Protocol (FTP) | Простой и надежный протокол для обмена файлами между узлами. |
| Point-to-Point Protocol (PPP) | Обеспечивает надежную связь и набор опций для автоматизации процессов входа в систему и настройки удаленных узлов. |
| Simple Mail Transfer Protocol (SMTP) | Используется для передачи исходящих сообщений электронной почты с одного узла на другой. |
| Используется для передачи входящих сообщений электронной почты с одного узла на другой. | |
| Simple |
Используется в процессе управления сетью при сборе данных для анализа и составления отчета о производительности сетей. |
| Используется веб-браузерами и веб-серверами для осуществления запросов и отправки содержимого в формате HTML. |
Приведенные протоколы TCP/IP определяют набор стандартов, используемых разработчиками программного обеспечения для обмена данными между двумя компьютерами. Это позволяет программным приложениям правильно осуществлять доставку данных. Каждый протокол играет свою собственную роль при обмене информацией.
Аббревиатура "IP" является сокращением от Internet Protocol (Протокол интернета), т.е. от названия одного из протоколов TCP/IP. Его роль заключается в идентификации компьютеров (называемых узлами или хостами), между которыми производится обмен данными.
Протокол Internet Control Message Protocol (ICMP) функционирует параллельно протоколу IP и позволяет маршрутизаторам отправлять сообщения друг другу для определения оптимального и надежного пути от одного компьютера к другому в сложнейшей среде глобальной сети. На рисунке 2.1 приведена схема инфраструктуры интернета и показан принцип IP-адресации.
(рис 2.1) Протоколы интернета позволяют системам обмениваться информацией независимо от их физического расположенияПротоколы Transmission Control Protocol (TCP) и User Datagram Protocol (UDP) (в меньшей степени) используются для управления транспортировкой данных между двумя компьютерами. С их помощью открываются и закрываются соединения, доставляются и верифицируются данные при обмене информацией.
Сеть интернет чрезвычайно велика, а вид IP-адреса пугает пользователей (хотя форма адреса является стандартной для компьютеров), поэтому требуется некоторая централизованная служба для успешного нахождения требуемых компьютеров. Централизованная служба имен (Domain Name System, DNS) позволяет пользователям находить информацию и отправлять сообщения электронной почты с использованием понятного для людей языка. С помощью DNS можно открыть сайт своей библиотеки, введя в веб-браузере адрес URL (Universal Resource Locator), например, www.mylibrary.com, вместо малоинформативного адреса 196.221.68.124. Можно отправить сообщения электронной почты на santa@northpole.org вместо 64.230.64.121@232.110.98.101.
Совет. Имена доменов в Соединенных Штатах Америки контролируются некоммерческой организацией
ICANN (Internet Corporation for Assigned Names and Numbers), являющейся полугосударственной структурой. Она также называется InterNIC. В Европе и Азии имеются собственные системы управления доменными именами.
Служба доменных имен отслеживает информацию, необходимую для поиска какой-либо системы, чтобы это не выполнял каждый отдельно взятый компьютер.
При информационном обмене требуются различные протоколы передачи-приема данных. Например, при обмене данными интернета используется протокол HTTP (
(рис 2.2) Иерархическая структура системы доменных имен DNSКаждый компьютер в сети интернет теоретически может быть связан напрямую с другим компьютером, но на самом деле интернет работает по-другому. Компьютеры используют веб-браузер или программу электронной почты и взаимодействуют с серверами, на которых работают соответствующие службы приложений: веб-сервер HTTP, сервер электронной почты SMTP, сетевые службы FTP (общий доступ к файлам) и Telnet (удаленные терминалы). На многих серверах выполняются одновременно несколько служб приложений. Поэтому программное обеспечение для интернета использует набор портов, идентифицируемых по номерам в диапазоне от 1 до 65535. Номера портов позволяют операционной системе сервера управлять несколькими приложениями или сетевыми службами, а также клиентскими соединениями в каждой службе. Службы HTTP обычно используют порт 80, службы SMTP – порт 25, службы FTP – порты 20 и 21. Более подробный, но далеко не полный, перечень служб приведен в табл. 2.2.
Пакет протоколов интернета содержит около ста наименований. Здесь же приведены только общие сведения, необходимые для последующего изучения материала.
| Служба | Используемый порт | Транспортировка | Функция |
|---|---|---|---|
| FTP | 21 | TCP | Передача файлов. |
| Telnet | 23 | TCP | Удаленные терминалы. |
| SMTP | 25 | TCP | Исходящая почта. |
| Служба имен (DNS) | 53 | UDP | Списки имен интернета. |
| HTTP | 80 | TCP | Сеть. |
| POP | 109, 110 | TCP | Входящая почта. |
| Программа удаленного контроля ( |
111 | TCP и UDP | Удаленное выполнение программ. |
| Сетевой протокол передачи новостей (NNTP) | 119 | TCP | Списки новостей интернета. |
| Сетевой протокол времени ( |
123 | UDP | Синхронизация времени. |
| NetBIOS (Win NT) | 135, 139, 137, 138 | TCP, UDP | Сетевые подключения Windows (не TCP/IP). |
| NetBIOS (Win2000) | 135, 139, 137, 138, 445 | TCP и UDP | Сетевые подключения Windows (не TCP/IP). |
| Протокол доступа к сообщениям в сети интернет (IMAP) | 143 | UDP | Почтовый протокол. |
| SNMP | 161, 162 | TCP и UDP | Управление сетью. |
| Пограничный сетевой протокол ( |
179 | TCP | Управление пограничным шлюзом |
| Облегченный протокол службы каталогов (LDAP) | 389 | TCP и UDP | Службы каталогов. |
| Протокол защищенных сокетов (SSL) | 443 | TCP | Защищенные, зашифрованные данные сети. |
| 514 | UDP | Сетевой журнал. | |
| "Демон" линейного принтера (LPD) | 515 | TCP | |
| 1080 | TCP | Сетевой прокси-сервер. |
Институт системного администрирования, сетевых подключений и безопасности (SANS) включает в себя более чем 90 000 системных администраторов, профессионалов в области безопасности и сетевых администраторов, что делает данную организацию наиболее заметной структурой, занимающейся безопасностью интернета. Члены SANS публикуют свои исследования, различные статьи, учебные пособия и новости, обмениваясь информацией друг с другом и с общей массой пользователей.
Каждый год институт SANS составляет перечень наиболее опасных угроз, которым подвержены компьютеры и компьютерные сети. Этот перечень носит название "The Twenty Most
В следующем разделе содержится сокращенный вариант перечня SANS с описанием проблем и набором дополнительных сведений. Раздел "Переполнение буфера" содержит информацию с веб-сайта Symantec (http://www.Symantec.com).
Некоторые уязвимые места в защите являются общими для всех информационных систем. Например, любая система, использующая парольную защиту, подвержена атакам при небезопасной работе с паролями. Поэтому, независимо от того, используется ли Windows или UNIX, веб-сервер имеет следующие слабые места.
Большая часть программного обеспечения, включая операционные системы и приложения, поставляется с инсталляционной программой, автоматически копирующей и настраивающей его на компьютере. Однако инсталляционные программы зачастую устанавливают большее число компонентов, чем требуется. Многие администраторы не знают об этом, что приводит к появлению "дыр" в программном обеспечении их компьютерных систем.
При инсталляции приложений часто устанавливаются ненужные демонстрационные программы и сценарии. При установке операционной системы почти всегда инсталлируются дополнительные службы и соответствующие им открытые порты. Через эти порты злоумышленники и проникают в систему.
Одним из наиболее уязвимых мест в защите веб-сервера являются демонстрационные сценарии, которые используются злоумышленниками для несанкционированного доступа в систему или для получения информации о системе. Демонстрационные сценарии, как правило, не проходят контроля качества, которому подвергается другое программное обеспечение. В результате они становятся прекрасной целью для атак, вызывающих переполнение отведенной сценарию оперативной памяти, что позволяет злоумышленнику внедрить свою собственную программу в память и выполнить ее.
Решение этой проблемы, включающее в себя закрытие портов и удаление демонстрационных сценариев, является частью процесса, называемого усилением системы. Этот процесс будет детально обсуждаться в лекции 3.
Большая часть операционных систем изначально настроена на использование паролей, что является первой и единственной преградой на пути злоумышленника. Если злоумышленник определит имя и пароль учетной записи, он сможет войти в сеть.
Во многих системах содержатся встроенные учетные записи, учетные записи по умолчанию с паролями по умолчанию. Такие учетные записи имеют один и тот же пароль во всех установленных копиях программного продукта. Злоумышленники, как правило, проверяют их наличие, так как они хорошо известны в хакерских кругах. Удивительно большое число администраторов допускают существование этих учетных записей в своих системах.
Легко угадываемые пароли представляют собой большую проблему, так как злоумышленники используют "грубые" атаки (т.е. атаки, заключающиеся в попытках угадать пароль) или атаки с применением словарей паролей, генерирующих слова и комбинации символов. Если длина пароля мала, и он состоит только из букв алфавита, то его взлом для хакера – не проблема.
Для предотвращения таких атак администраторам и пользователям нужно избегать использования в паролях имен людей, домашних животных или названий мест. Сложность угадывания пароля зависит от количества символов в пароле: чем больше символов, тем труднее угадать пароль. Используйте при работе так называемые сильные пароли, состоящие, как минимум, из восьми символов и являющихся комбинациями чисел, специальных знаков пунктуации и букв алфавита в верхнем и нижнем регистрах (если система позволяет указывать пароли с разным регистром символов).
При нарушении защиты система восстановления требует наличия "свежих" резервных копий и проверенных способов восстановления данных. В одних компаниях ежедневно резервируются данные, но их работоспособность не проверяется. В других – создается политика резервирования данных, но не предусматривается политика восстановления. Подобные ошибки проявляются уже после того, как хакер проник в сеть и уничтожил или повредил данные. Всегда следует разрабатывать политику резервирования и восстановления, проверять ее и улучшать!
Как легальные пользователи, так и злоумышленники подключаются к системам через открытые порты. Чем больше портов открыто, тем вероятнее, что кто-нибудь сможет подключиться к компьютеру. Следует иметь несколько открытых портов на брандмауэре, а именно: порт 80 для HTTP на веб-сервере, порты 25 и 110 для SMTP и POP. Из-за этих портов возникают проблемы, если не знать о том, что они существуют и находятся в открытом состоянии. Если оставить открытый порт незащищенным, злоумышленнику понадобится лишь средство сканирования для его обнаружения, после чего он выполнит через этот порт эксплоит, входящий в комплект хакерского программного обеспечения.
Наилучшим способом избавления от ненужных портов является закрытие всех портов до единого с последующим открытием только необходимых портов по очереди при настройке системы.
Хакеры, как правило, маскируют свой IP-адрес адресом узла внутренней сети, так как в этом случае он действует под видом полноправного члена сети и его проникновение трудно распознать. Внутренние пользователи обычно имеют привилегированный доступ к информации и системам, недоступным для внешних пользователей. Поэтому внешний пользователь, работающий под видом внутреннего, сможет использовать эти привилегии для выполнения злоумышленных действий. Такой тип атак называется спуфингом (
Одной из аксиом безопасности является высказывание: "Идеальный случай – предотвращение всех атак, но обнаружение злоумышленника жизненно необходимо". Если вы подверглись атаке, то без журналов вряд ли сможете узнать, что злоумышленники сделали с системой. Без журнала вашей организации придется либо перезагружать операционные системы с исходных носителей в надежде, что зарезервированные данные не повреждены, либо продолжать использование системы, опасаясь, что злоумышленник все еще контролирует ее. Нельзя обнаружить атаку, если не знать, что происходит в сети. Журналы содержат подробные сведения о том, что произошло, какие системы были атакованы, а какие подверглись несанкционированному доступу. О журналах будет идти речь в лекции 5.
Большая часть серверов, включая Microsoft IIS, поддерживает программы общего шлюзового интерфейса (Common Gateway Interface, CGI), обеспечивающие работу с веб-страницами и возможность поиска и сбора данных. К сожалению, несанкционированный доступ к этим программам позволит получить прямой доступ к операционной системе веб-сервера и запустить программу с привилегиями программного обеспечения самого веб-сервера. В атаках на взлом CGI используются их уязвимые места для повреждения веб-страниц, хищения информации о кредитных картах, установки "черных ходов" для дальнейших вторжений.
В зависимости от использования сценариев и/или CGI предпринимаются меры по защите. Надстройки безопасности Microsoft устраняют некоторые уязвимые места IIS, возникающие при использовании сценариев. В лекции 11 рассказывается об этих мерах.
Веб-сайты уязвимы для атак, заключающихся в распространении вирусов, червей или "троянских коней". Злоумышленные коды могут поступать из самых различных
В дополнение к общим уязвимым местам каждая вычислительная платформа имеет свой собственный уникальный набор уязвимых мест. Из-за своей широкой популярности Windows 2000 и IIS подвергаются более частым атакам, и их уязвимые места представляют большую опасность. Далее мы расскажем обо всех уязвимых местах, известных на момент написания книги. Все они устраняются с помощью установки Microsoft Service Pack 2 для Windows 2000, однако появляются новые опасности, поэтому регулярно проверяйте перечень уязвимых мест на веб-сайте SANS по адресу http://www.sans.org/top20.htm.
Универсальный код Unicode представляет собой производственный стандарт программного обеспечения, облегчающий адаптацию программных продуктов для различных операционных систем и переводящий содержимое веб-сайта (программы) на различные языки. В данном стандарте каждому символу присвоен уникальный номер независимо от платформы, программы или языка. Стандарт Unicode одобрен большинством производителей программного обеспечения, включая Microsoft, а исходный код Unicode является частью Windows 2000 и IIS.
Использование стандарта Unicode в продуктах Microsoft послужило причиной возникновения уязвимого места. Отправив на сервер IIS особым образом написанный адреса URL, содержащий некорректную последовательность Unicode UTF-8, злоумышленник может вызвать беспорядочный проход системы по каталогам и выполнение случайных сценариев. Эта атака также известна под названием атаки на прохождение каталогов (directory
В Windows 2000 и IIS обнаружено большое число уязвимых мест, через которые осуществляются атаки на переполнение буфера. "Прорехи" в защите также позволяют проводить атаки, вызывающие сбой в работе веб-сервера IIS, выполнение произвольного кода, использование целевого веб-сервера в качестве инструмента для атаки на стороннюю систему. Ниже приведен краткий обзор таких уязвимых мест.
Возможность
В системах Windows NT и Windows 2000 многие локальные службы работают в учетной записи SYSTEM или LocalSystem (для Windows 2000). Эта учетная запись используется в критических системных операциях. При получении одним компьютером системных данных с другого компьютера учетная запись SYSTEM открывает недействительную сессию соединения для этого компьютера.
Учетная запись SYSTEM имеет неограниченные привилегии и не требует пароля при доступе, поэтому пользователь не сможет войти в систему под этой учетной записью. Учетной записи SYSTEM иногда требуется доступ к информации, расположенной на других компьютерах и представляющей собой общие файлы SMB, имена пользователей и т.д. Так как она не может войти в систему с помощью идентификатора пользователя и пароля, то использует для получения доступа недействительный сеанс соединения. К сожалению, с помощью недействительного сеанса осуществляют вход в систему и злоумышленники. Это относится как к Windows 2000, так и к Windows NT.
Несмотря на то, что большинству пользователей Windows не требуется поддержка
Уязвимость паролей в
Важно. Не откладывайте установку обновлений Microsoft Service Pack и Security Update, которые устраняют эти уязвимые места, если действующий веб-сайт от них не защищен. Перечень уязвимых мест открыт для общего пользования, поэтому можно предположить, что хакеры изучили его и имеют дополнительную информацию, доступную в хакерских кругах. Не позволяйте хакерам опережать вас!
Хакеры знают об уязвимости атакуемых ими систем. Большую часть времени при подготовке и осуществлении атаки хакеры отводят под составление перечня систематических процедур, которые помогут им выяснить эти уязвимые места с наименьшими затратами. Наверняка злоумышленники сначала проверят систему-жертву на наличие открытых портов NetBIOS. После этого они просмотрят учетные записи и пароли по умолчанию, которые не были изменены с момента установки системы. Следовательно, если вы не умеете эффективно устранять "дыры", хакер рано или поздно обнаружит их посредством рекогносцировки.
В лекции 1 говорилось, что одни хакеры находят свои цели случайным образом, а другие концентрируют внимание на конкретных целях, используя в качестве "орудия" отправку массовых ping-запросов. Координаты ответивших компьютеров помещаются в список потенциальных жертв. Если хакер идентифицировал сервер и "нацелился" на него, он выполнит ping-запрос (см. рис. 2.3), чтобы убедиться в его работе, перед дальнейшей разведкой или перед непосредственной атакой.
Сканирование является следующим этапом сбора информации и осуществляется изнутри или извне компьютерной сети. Это эффективный метод рекогносцировки, так как виртуально все приложения и службы, использующие интернет-коммуникации, осуществляют прием и отправку данных через один и тот же набор стандартных
(рис 2.3) Перед выполнением атаки хакер осуществляет ping-запрос сервера-жертвы
Ping-запросы, отдельные или массовые, используют атрибуты протокола интернета для получения информации. Операционные системы всех компьютеров имеют встроенную утилиту для осуществления ping-запросов. Утилита по отправке ping-запросов отправляет пакет запроса ICMP ECHO указанной системе и ожидает ответа ICMP ECHO. Если ответ получен, ping-утилита выводит сообщение о том, что система-жертва работает. Если ответ не получен, выводится соответствующее сообщение. Для осуществления массовых ping-запросов необходима программа, осуществляющая их отправку по адресам указанного диапазона.
Некоторые средства отправки ping-запросов и адреса URL, необходимые для их загрузки, указаны в табл. 1.2. Системы, приславшие ответ, отображаются в виде "живых" адресов (см. рис. 2.4).
(рис 2.4) Данные, полученные путем массового ping-запроса (скриншот программы Grims Ping для Windows 2000)Сканирование посредством ping-запросов можно обнаружить. По этой причине осторожные хакеры, как правило, избегают использования случайного ping-сканирования. Если есть такая возможность, они выполняют ping-запросы избирательно в надежде, что отдельный ping-запрос не будет замечен, или используют другие формы рекогносцировки.
Простым способом защиты от внешних ping-запросов является блокирование ping-сканирования посредством фильтрации ICMP на сетевых экранах и маршрутизаторах. Администраторы, для которых проблема безопасности является одной из главных, обычно настраивают эти устройства на отклонение всех ping-запросов, поступающих извне. Но такая защита работает до тех пор, пока сетевой экран не будет взломан.
При сканировании портов также используются атрибуты TCP, UDP и ICMP, но выполняются другие действия. Сканирование портов осуществляется программой для сбора информации о состоянии портов TCP и UDP системы-жертвы. Сканер отправляет пакет данных (зонд) на порт с последующим ожиданием ответа. По полученному ответу определяется, является ли порт открытым, занятым или закрытым, он содержит косвенные данные о том, какое приложение использует данный порт. Ниже приведен пример сканирования, направленного на отдельный компьютер, с помощью утилиты Nmap.
Interesting ports on (xxx.xxx.x.xx): Port State Protocol Service 21 open tcp ftp 80 open tcp http
В зависимости от используемой программы сканируются отдельные порты отдельного компьютера, выполняется массовое сканирование портов и компьютеров. В интернете доступно множество бесплатных средств сканирования. Самой популярной является программа Nmap, доступная как для Microsoft Windows, так и для UNIX. Часто используется программа Nessus. Обе программы содержат широкий набор возможностей сканирования для зондирования больших и малых компьютерных сетей.
Сканирование порта позволяет с определенной степенью конфиденциальности выяснить, какие приложения и службы выполняются на компьютере-жертве. Например, если открыты порты 21 и 80, хакер может предположить, что на компьютере работают службы протоколов FTP и HTTP соответственно. Это достаточно весомая информация, так как каждый порт, ожидающий приема данных, является потенциальным каналом связи с компьютером-жертвой, а каждое приложение или служба представляет собой точку атаки, если хакер знает об уязвимых местах системы (или имеет соответствующую программу).
Существует большое количество методов сканирования, однако в каждом конкретном случае требуется свой метод. Хакер ищет компромисс между затрачиваемым временем и уровнем секретности своих действий. В зависимости от обстоятельств хакер либо осуществляет действия безнаказанно и не боится быть обнаруженным, либо действует осторожно с применением каких-либо хитростей. Сканирование всесторонне использует возможности интернет-протокола.
) и ), автором которых является Fyodor. Для получения более подробной информации посетите эти веб-сайты.
Ниже приведены описания нескольких методов сканирования TCP. Некоторые из этих методов предотвращают обнаружение и работают извне сети, если периметровая защита ограничена фильтрацией пакетов. В разделе "Проблема. TCP-соединения" приведена информация, с помощью которой вы разберетесь в терминах, если еще не знакомы с TCP/IP.
Если вы знакомы с принципами установки соединений TCP, то вам будет легче разобраться в способах реализации атак с использованием протоколов. Для надежной транспортировки данных узлы TCP устанавливают между собой сеансы соединения посредством механизма "трехстороннего рукопожатия".
Механизм подключения использует проверочные биты, имеющиеся в передающихся между узлами пакетах. Ниже приведен перечень проверочных битов с указанием назначения каждого из них.
"Трехстороннее рукопожатие" проводит синхронизацию соединения с обоих концов, что позволяет обеим сторонам согласовываться по начальным номерам последовательности. Этот механизм гарантирует готовность обеих сторон к передаче данных и то, что стороны знают о своей готовности. Необходимо, чтобы пакеты не передавались вообще или не передавались повторно во время установки сессии или после ее завершения.
Каждый узел
Методы сканирования UDP менее эффективны, чем сканирование TCP, так как атрибуты и возможности этих протоколов различны. В процессе передачи данных через UDP происходит мало "рукопожатий" и установок соединения, поэтому средство сканирования не сможет собрать достаточно информации. Тем не менее, сканирование UDP используется хакерами; многие программы типа "троянский конь", такие как Back Orifice, используют протокол UDP, так как трафик UDP сложнее обнаружить и остановить. В результате средство сканирования UDP может найти "черный ход" через уже имеющуюся на жертве программу "троянский конь".
Средства сканирования UDP отправляют на порт пустые пакеты, ответ на которые и будет информативным результатом сканирования. Если порт закрыт, операционная система ответит, что данный порт недоступен. Если порт открыт, то пустой пакет, скорее всего, будет проигнорирован. Следовательно, отсутствие ответа обычно означает, что порт открыт, если только порт не защищен устройством периметровой защиты, блокирующим весь трафик UDP.
Перечень уязвимых мест SANS/
Иногда хакер использует программное обеспечение компьютера для выяснения версии веб-сервера или операционной системы. Простой и часто используемый метод заключается в получении клиента службы Telnet и попытке входа в систему. На веб-сервере это действие осуществляется с помощью подключения через Telnet к порту 80 сервера (порт служб HTTP). На уязвимых системах при попытке входа в систему сервер отображает сообщение с указанием информации о производителе и версии (независимо от того, был ли вход в систему успешным).
Сканирование операционных систем осуществляется с помощью таких программ, как Nmap и Nessus. Они используют утилиту сбора данных, которая выясняет вид стека TCP/IP жертвы посредством отправляемых пакетов-зондов и сопоставляет полученные данные с информацией в базе данных, чтобы выяснить производителя и версию программного обеспечения исследуемого компьютера. Как правило, для успешной идентификации недостаточно одного зонда, однако средства сканирования являются автоматизированными, что обеспечивает высокую скорость и простоту работы.
Для обмана хакеров администраторы часто изменяют сообщения веб-сервера с указанием в нем ложного имени производителя и версии программного обеспечения. Тем не менее, этот способ не очень эффективен против хакеров, имеющих большой опыт работы с Microsoft IIS, так как успешное сканирование операционной системы быстро сужает круг возможных версий IIS.
Одним из способов защиты от обнаружения сканирования является использование средства FTP
Некоторые методы сканирования позволяют сканирующим пакетам преодолевать периметровую защиту. Сетевые экраны с фильтрацией пакетов иногда не обнаруживают сканирующие пакеты, разбивающие дейтаграммы в заголовках TCP, так как фильтр не распознает полный заголовок TCP, соответствующий правилам фильтрации, и пакет не блокируется.
Существует много эксплоитов, наиболее известными из которых являются следующие.
Эксплоиты, использующие ошибки в конфигурации, требуют от хакера много времени и усилий для поиска ошибок и последующего проникновения в систему. Эксплоиты других категорий требуют от него большей сообразительности и находчивости. За исключением случая, когда хакер просто повторно использует существующую программу-эксплоит, ему требуется написать некоторый код и разработать схему его доставки. Но, опять-таки, с помощью набора хакерских средств программист довольно просто скомпилирует атакующую программу и выполнит эксплоит. Другое дело – распределенные эскплоиты. Их использование требует тщательнейшего планирования и подготовки, но это компенсируется тем, что таким атакам, как правило, очень трудно противостоять.
В зависимости от полученных данных хакер может иметь достаточно информации для осуществления направленной атаки. Узнав об открытых портах на компьютере-жертве, о приложении или службе, использующей этот порт, выяснив поставщика и номер версии программного обеспечения, хакер может начинать атакующие действия. Имея на руках указанную информацию, взломщик обратится за помощью к своим собственным ресурсам (среди которых непременно будет перечень уязвимых мест SANS/
Иногда хакер находит незащищенный порт при подключении с помощью программы Telnet. В случае неудачи злоумышленник попытается войти в систему под учетной записью пользователя, найти домашний каталог со списком файлов и подкаталогов и т.д. Атака может быть направлена и на использование других служб IIS, таких как FTP и NNTP.
Одной из серьезных опасностей, угрожающих сайтам в новом тысячелетии, является угроза новейших злоумышленных и вредоносных атак. Вирусы, черви, "троянские кони", умышленно размещенные синтаксические ошибки на интерактивных веб-страницах и программы, написанные самими хакерами, представляют собой разновидности вредоносного кода. За последние два года в сети интернет появились довольно изощренные атаки, и их становится все больше и больше.
Атаки с помощью вредоносного кода бывают как направленными, так и ненаправленными. Сайт является частью интернета, поэтому даже если у вас нет врагов, и вы не выделяетесь из общей массы пользователей, он является потенциальной целью для таких атак. Атаки с вредоносным кодом выполняют такие действия, как DoS, искажение графической информации, удаление файлов и
Вредоносный код, расположенный на веб-страницах, является сравнительно новой угрозой, о которой будет кратко рассказано в разделе "Сценарии и Java-апплеты" данной лекции.
Различия между вирусами, червями и "троянскими конями" совсем незначительны. Эти вредоносные программы отличаются друг от друга по своей форме и способу воздействия. Ниже приведены определения этих программ, взятые из глоссария терминов Агентства национальной безопасности США.
На практике некоторые атаки с использованием вредоносного кода реализуются посредством комбинации каждого из трех типов в некий гибрид. По этой причине границы между типами вредоносного программного обеспечения размыты, а классические определения – некорректны. Тем не менее, с помощью определений можно составить некоторую классификацию. Большую опасность представляет то, что атаки с использованием вредоносных программ осуществляются множеством различных способов с разнообразными методами маскировки и всевозможными хитроумными уловками. Вы можете не заметить скрытой угрозы, но нужно находиться в постоянной готовности, чтобы противостоять ей.
При атаке с применением вредоносного кода обычно выполняется одно (в худшем случае, все) из перечисленных действий.
Особенности вирусов. Определение вируса является слишком упрощенным, но все же полезным. Существует множество вирусов, каждый из которых имеет свои индивидуальные особенности. Вирусы обычно попадают на компьютер при помощи пользователей, после чего распространяются на другие компьютеры, с которыми он взаимодействует. Например, вирусы
Постоянно увеличивающаяся сложность и изощренность вирусов представляет собой серьезную проблему для профессионалов в области информационной безопасности. Сетевые экраны не способны серьезно противостоять вирусам, если политика безопасности позволяет обмениваться сообщениями электронной почты, а брандмауэр настроен на беспрепятственное прохождение соответствующих пакетов данных. Программное обеспечение, предназначенное для обнаружения вирусов, приносит ощутимую пользу, но это относится только к известным вирусам, в то время как без помех распространяются новые вирусы, не распознаваемые программой защиты.
Все вирусы похожи друг на друга тем, что они являются программами, содержащими инструкции для выполнения, и написаны на языках программирования, включая C, Java, Visual Basic и языки макросов Microsoft Office. Вирусы вставляют самих себя в несущие файлы, что способствует их скорейшей загрузке в
Некоторые вирусы, называемые полиморфными, мутируют и изменяются, преобразуясь в другие разновидности вирусов во избежание обнаружения и пресечения своих действий. Мутирующие вирусы осложняют работу программных систем защиты, осуществляющих обнаружение вирусов, которые работают по принципу нахождения характерных признаков вирусов, являющихся их ключевыми программными инструкциями. После изменения этих признаков в процессе
Данное исследование базируется на данных компании Symantec Corp., (© 2001). Вирус W32.Simile заражал исполняемые фалы в папках на всех жестких дисках компьютера-жертвы и на любых удаленных устройствах, с которыми взаимодействовал этот компьютер. Вирус не представлял серьезной опасности, однако в определенные дни осуществлялось отображение сообщений.
Вирус содержал строку " Metaphor v1 by The Mental Driller/29A ". Эта строка отображалась 17 мая, июня, сентября и декабря после запуска инфицированного исполняемого файла. 14 мая на всех компьютерах с поддержкой шрифта
Предполагалось, что W32.Simile изначально распространился через электронную почту. После заражения компьютера в интрасети W32.Simile заражал и веб-сервер IIS, если зараженный компьютер содержал диск, связанный с веб-сервером. Вирус W32.Simile мог проникнуть на веб-сервер через интернет, если зараженная программа выполнялась на сервере после ее внедрения через переполнение буфера.
Данный вирус являлся полиморфным и использовал в своих действиях методы скрытия точки входа. Другими словами, вирус записывал себя в случайное место и осуществлял шифрование строки с целью повышения сложности обнаружения. При своем запуске вирус перестраивался для изменения характерных признаков. Происходило как сокращение, так и увеличение объема кода вируса для предотвращения неконтролируемого роста, присущего другим метаморфическим вирусам. Вирус содержал множество тестов для предотвращения заражения файлов, предназначенных для захвата вируса.
После модификации вирус осуществлял поиск файлов .exe в текущей папке, а затем во всех папках на фиксированных и удаленных дисках. Как правило, он заражал исполняемые файлы Win32, имеющиеся в системе и написанные на языке C, и воздействовал, в основном, на файлы операционной системы.
Особенности червей. Червь по своей природе аналогичен вирусу. Иногда термин "червь" используется по отношению к вирусу, так как некоторые вирусы используют механизмы распространения, присущие червям. Тем не менее, с технической точки зрения червь отличается от вируса, так как первый представляет собой самодостаточную программу, а не программу, присоединенную к другой программе. Кроме этого, в отличие от вирусов, которые скрываются во вложениях электронной почты и запускаются пользователем при открытии вложения, атака червей представляет собой полностью автоматизированную процедуру. После успешного проникновения в систему они полностью устанавливают и загружают самих себя, выполняя эти действия в рамках атаки, а затем осуществляют автоматическое самораспространение.
Полностью автоматизированные черви наносят огромный ущерб за малый промежуток времени. Червь Code Red, чей механизм распространения осуществлял рассеянное сканирование для определения уязвимых серверов IIS, стал примером того, насколько разрушительны последствия успешных действий червя. Черви распространяются экспоненциально, так как одна жертва распространяет вирус на несколько других, каждая из которых, в свою очередь, выполняет то же самое. На рисунке 2.5 показан график, предоставленный Ассоциацией анализа данных интернета (CAIDA.org), на котором показано распространение червя Code Red более чем на 350 000 серверов за 13 часов.
Червь является независимой программой, и ему свойственны действия по самосохранению. Эффективным методом самосохранения является скрытие. Разработчики червей пытаются маскировать черви под легальные процессы, выполняющиеся в системе компьютера. По этой причине файлы, добавляемые червями в систему компьютера, имеют обычные, не "режущие" взгляд имена (например, MS Windows содержит огромное количество файлов с расширениями .vxb, .
Создатель червя усложняет процесс его устранения требованием более высоких привилегий, нежели уровень пользователя компьютера, на котором червь был установлен.
Как и вирус, червь может мутировать и изменять свой внешний вид, чтобы всегда быть на шаг впереди своих противников. Такие программы, как VBS
(рис 2.5) Червь Code Red распространился более чем на 350 000 серверов за 13 часовЭто исследование основано на данных отчета "Nimda
Nimda серьезно нарушил целостность и безопасность атакованных систем, что позволило злоумышленникам завладеть полными привилегиями администраторов компьютеров-жертв, получить доступ ко всей файловой системе и внести бесчисленные изменения в системные файлы и настройки реестра.
Червь распространял сам себя на новые компьютеры посредством четырех отдельных механизмов.
Механизмы распространения на серверы IIS, описанные выше, требуют сканирования интернета инфицированной системой на предмет поиска уязвимых серверов IIS. Данный червь осуществлял заражение своих соседей по IP-адресу. Он выбирал узлы с идентичной первой или второй частью (имеется в виду адрес с идентичным значением в крайних правых полях, например, xxx.xxx.654.3210). Это действие приводило к массовой сетевой активности на сайтах с несколькими зараженными системами. В частности, можно было наблюдать эффект переполнения
Червь вносил бесчисленное множество изменений в файловую систему жертвы, включая создание большого числа копий самого себя под различными именами. В некоторых случаях создавалось столько копий червя, что оказывалось занятым все пространство жесткого диска. Именами файлов червя являлись Admin.dll, Load.exe, MMC.EXE, readme.exe, Riched20.dll и MEP*.TMP.EXE.
Действие червя зависело от операционной системы жертвы, от имени файла, под видом которого выполнялся червь, а также от
Для сканирования сети червь запускал до двухсот нитей (подпроцессов). Это действие вызывало значительную загрузку зараженного компьютера и всей сети. ARP, генерируемые сканирующей системой, или запросы DNS, генерируемые системой, отправляющей червь Nimda в сообщениях электронной почты, вызывали ошибки, выглядевшие как явные
Особенности "троянских коней". "Троянский конь" представляет собой программу, размещаемую на компьютере, который предполагается использовать в дальнейшем. Термин, взятый из греческой мифологии, означает подаренного городу Троя гигантского коня, внутри которого находились греческие солдаты, атаковавшие город. Такая аналогия очень удачна, так как "троянские кони", в основном, используются для осуществления атаки на взлом с целью оставить "открытые двери" в систему, либо устанавливаются после успешного взлома в качестве "черных ходов", которые позволят хакеру вновь проникнуть в систему.
"Троянское кони" могут физически устанавливаться изнутри сети (опять мы имеем дело с внутренней угрозой), через электронную почту или веб-страницу, легкомысленно открытую получателем. Все это похоже на атаки с использованием вирусов, не правда ли? Другими словами, сообщение электронной почты или веб-страница, внедряющая "троянского коня", содержит вирус или червь с определенным типом действия (троянскую программу). Однако вирус наносит ущерб, как правило, сразу после первого запуска программы. Что касается "троянских коней",то они скрытно находятся в системе на протяжении некоторого времени, пока не представится возможность для нанесения удара.
Независимо от способа доставки, если не обнаружить и не удалить "троянского коня", он будет оставаться на компьютере до тех пор, пока не удалит себя сам, или пока хакер не решит, что "троянский конь" ему больше не нужен. Пока "троянский конь" присутствует в системе жертвы, он находится в полном распоряжении хакера.
"Троянские кони" используются самыми различными способами. Некоторые из них являются одноразовыми вредоносными программами, настроенными на удаление в определенное время. Другие выполняют функции, упрощающие выполнение задуманных действий хакера, такие программы называются агентами.
Одним из распространенных типов агентов является прослушивающая программа (
При осуществлении атаки с помощью "троянского коня" такая комбинация используется довольно часто. Роль сниффера заключается в выявлении идентификаторов и паролей входа в систему. Он записывает нажимаемые пользователями клавиши или пакеты, отправляемые компьютером в сеть. Механизм записи зависит от типа прослушивающей программы. Сниффер может записывать данные в журнал, который потом просматривается хакером. В этот момент используется компонент атаки, реализующий удаленный контроль.
При использовании инструментов, принятых в хакерском сообществе, суровой реальностью атаки с помощью "троянского коня" является то, что хакер, ответственный за конкретную атаку, является не единственным человеком, который использует "троянского коня" после его загрузки на компьютер-жертву. Хакерские средства настроены на работу с определенными портами. Из этого следует, что сканер портов может обнаружить уже размещенных в системах удаленно контролируемых "троянских коней". Всякий пользователь, выявивший присутствие "троянского коня", сможет получить доступ ко всем ресурсам, раскрываемым данной программой, даже если она была размещена на компьютере другим хакером.
Данное исследование проведено компанией CNET New.com (© 2001). В июле 2001 г. червь под названием Code Red атаковал и заразил тысячи серверов Windows 2000. Несколькими неделями спустя, в августе 2001 г., мутировавшая форма червя под названием Code Red II использовала тот же механизм, что и Code Red, для заражения уязвимых серверов IIS, на которых не была устранена прямая опасность переполнения буфера в idq.dll, или не были удалены отображения сценариев
Совет. О том, как устранить уязвимое место, связанное с возможностью переполнения буфера, вы узнаете в лекции 3.
За исключением механизма переполнения буфера для выполнения кода червя на уязвимом сервере IIS червь Code Red II коренным образом отличался от исходных вариантов червя Code Red CRv1 и CRv2.
Червь Code Red II имел несколько опасных особенностей. Самой серьезной из них являлось то, что червь создавал "черный ход" посредством размещения "троянского коня" в файле CMD.EXE на зараженном сервере, что делало систему абсолютно открытой для любого хакера.
Червь копировал файл %windir%\CMD.EXE в следующие места:
"Черный ход" позволял хакеру выполнять любые команды на взломанном сервере.
Кроме того, червь размещал на системе-жертве второго "троянского коня", являвшегося модифицированной версией файла explorer.exe (Диспетчер рабочего стола), который давал удаленному хакеру беспрепятственный доступ к корневым каталогам C: и D: после следующего входа пользователя в систему (если в системе не было устранено уязвимое место "Relative Shell Path"); это стало возможным благодаря способу, которым Windows по умолчанию осуществляет поиск исполняемых файлов.
Совет. В лекции 3 будет рассказываться о том, как устранить уязвимое место "Relative Shell Path", связанное с
относительным путем оболочки.
По прошествии времени распространения инфекции система принудительно перезагружалась. При перезагрузке из памяти удалялся резидентный червь, а "черные ходы" и explorer.exe оставались на месте.
При первом попадании червя на компьютер-жертву и его выполнении осуществлялась проверка заражения данного сервера, в этом случае червь отключал сам себя. После создания "троянских коней" в виде файлов explorer.exe процессы создания файлов приостанавливались. Каждые 10 минут они повторялись с выполнением всех своих процедур, поэтому даже если администратор обнаруживал в реестре параметры, открывающие доступ к C: и D: и удалял их, через несколько минут "троянский конь" прописывал настройки заново.
Червь выбирал жертву, автоматически сканируя системы и определяя, устранены ли на них уязвимые места, связанные с файлом idq.dll и с отображениями сценариев
Интерактивные веб-страницы, уязвимые для вредоносных сценариев и апплетов, являются довольно новым аспектом веб-безопасности. Это уязвимое место связано с использованием CGI на веб-серверах. Оно также зависит от возможности веб-серверов изменять содержимое сайтов с помощью предоставленного сервером кода (Java или Visual Basic), выполняемого в веб-браузере. В данную категорию уязвимых мест попадают сценарии JavaScript и VBscript, имеющиеся на HTML-страницах веб-сервера.
Вредоносный код, поступающий с веб-серверов, более разрушителен, чем вирусы и черви, особенно код Java, так как на клиентской части он практически не зависит от платформы и влияет на компьютеры Windows, UNIX, Mac, Palm или на любой другой с Java-совместимым браузером. Для выполнения апплетов или сценариев JavaScript в браузере достаточно лишь перейти на несущую страницу апплета.
Межсайтовые сценарии (CSS). CSS относится к интерактивным веб-страницам. Вредоносный код проникает на интерактивную веб-страницу с помощью метода, вызывающего выполнение кода браузером, считывающим данную страницу. В результате вредоносная программа выполняет любое действие, допускаемое привилегиями текущего пользователя, включая считывание информации, удаление файлов, отправку сообщений электронной почты и т.д.
Ниже приведено исследование, являющееся примером реальной атаки CSS, которая в данном случае не была вредоносной, однако вполне могла бы таковой стать.
ПРОБЛЕМА. Исследование: эксплоит Zkey
Данный материал заимствован из статьи SANS автора David Rothermel. В августе 2000 г. хакер использовал уязвимость портала хранилища данных .com под названием Zkey посредством выполнения вредоносного кода JavaScript с целью перехвата имен и паролей пользователей электронной почты Zkey. Данный эксплоит является примером атаки CSS.
Атака инициировалась посредством внедрения вредоносного кода JavaScript в сообщение электронной почты и отправки этого сообщения с учетной записи Zkey, использованной хакером, на другую учетную запись пользователя Zkey. Этот код вынуждал пользователей осуществлять вход в систему, посредством чего осуществлялось раскрытие имен пользователей и их паролей.
Сообщение электронной почты имело формат HTML, и код располагался в теге <textarea>. Поверх сообщения размещался прозрачный рисунок GIF, использовавший команду onMouseOver для запуска вложенного кода.
Данный код обманным способом перехватывал имена пользователей и пароли, отображая окна входа с сообщением "You timed out of your session, please log-in" ("Период ожидания вашей сессии истек, пожалуйста, войдите заново"). Когда пользователь вводил свои имя и пароль, они передавались в базу данных на сервер хакера, а не на сервер Zkey. Чтобы пользователь ничего не заподозрил, код направлял пользователя обратно на сервер Zkey и осуществлял его вход в систему для продолжения сеанса.
Потенциальный
После демонстрации своих возможностей хакер поставил руководство портала Zkey в неудобное положение, придав огласке наличие уязвимого места. В качестве рекламы самого себя он заявил, что, несмотря на использование сайтом протокола защищенных сокетов SSL и наличие фильтров у службы электронной почты, он смог преодолеть оба барьера защиты.
Уязвимые места DoS существовали на компьютерах с самого начала появления ЭВМ. Хакеры вызывали отказ в обслуживании систем посредством физической атаки (отключая электроэнергию) или посредством других атак с вторжением. Злоумышленники освоили атаки как с внутренней, так и с наружной стороны системы.
Внешние атаки на отказ в обслуживании осуществляются через сеть интернет. Например, при использовании одного известного эксплоита, называемого "атакой Smurf" (Smurf – автоматизированное средство для выполнения этой атаки) хакер отправляет большой ping-трафика ICMP по широкому рассеянному диапазону IP-адресов. Эта атака срабатывает, потому что большая часть подключенных к интернету маршрутизаторов и узлов отвечают на ping-запросы рассеянными ECHO-пакетами. Таким образом, в сети интернет с экспоненциальной скоростью растет количество пакетов, что и вызывает отказ в обслуживании.
В течение последних двух лет выявлена новая DoS-уязвимость. С помощью метода, называемого распределенным отказом в обслуживании (
Как и атаки с применением вредоносного кода, распределенные атаки
Известные на сегодняшний день атаки
Атаки с применением некорректных пакетов осуществляются через выявление уязвимых серверов, не поддерживающих ошибки. Отправка пакетов, размер которых превышает допустимую норму для IP-пакетов, или пакетов с одним и тем же IP-адресом источника и пункта назначения, может вывести из строя такие системы.
Для успешного осуществления атака
С главной атакующей системы осуществляется управление вспомогательными системами, каждая из которых, в свою очередь, управляет группой агентов, генерирующих сетевой трафик. Если хакеру необходимо привлечь произвольные системы в качестве вспомогательных узлов, он с помощью различных методов сканирования захватит управление необходимыми системами, после чего установит на них средства, необходимые для реализации атаки.
(рис 2.6) Сокрушение системы-жертвы с помощью атаки DDoS
Защита от атак
Начинающим пользователям следует удостовериться в отсутствии на их компьютерах средств для осуществления атак
Для получения официальных документов о завершении программы дополнительного профессионального образования (удостоверения о повышении квалификации, дипломов о профессиональной переподготовке и MBA) необходимо предоставить:
Внимание! Вы можете не заказывать доставку бумажной версии официального документы, а скачать его в электронном виде и распечатать самостоятельно. Информация о выданном документе в течение 1 месяца загружается в Федеральную информационную систему «Федеральный реестр сведений о документах об образовании и (или) о квалификации, документах об обучении» - ФИС ФРДО.
Доступ на новый сайт осуществляется с использованием адреса электронной почты, который был указан вами при регистрации на "старом". Мы постарались перенести все ваши данные с прежнего ресурса, однако не исключена вероятность потери части информации.
При возникновении проблемы со входом, воспользуйтесь функцией сброса пароля
Если вы обнаружите несоответствия, пожалуйста, сообщите нам.