Часть I: Уязвимость, риск и предотвращение угроз
В первой части дается общее представление о наиболее распространенных угрозах и действиях взломщиков, приводится классификация атак, реализующих вторжение на сайт. Это базовые знания, необходимые для обсуждения стратегий защиты данных.
В первой части речь идет о настройке и защите сервера, оборудования и программного обеспечения и обеспечении безопасности в сетях интернет и интранет.
В лекции 1 обсуждаются угрозы и действия, нарушающие защиту веб-сайта как изнутри, так и извне. Вы познакомитесь с миром хакеров и получите представление о методах их работы, инструментах и ресурсах.
Лекция 2 содержит информацию о том, какой вред могут нанести хакеры, о вредоносных программах – вирусах, червях и "троянских конях". Приведены примеры известных атак на переполнение буфера и отказ в обслуживании, рассказывается о механизмах преодоления защиты и о способах предотвращения вторжения.
В лекции 3 речь идет об устранении основных "брешей", небезопасных настроек по умолчанию, ошибок конфигурации, а также приводятся сведения о вредоносных кодах и программах. Пошаговые процедуры помогут "заделать бреши" в защите посредством отключения всех служб, кроме жизненно важных, и добавления новых строго в соответствии с требованиями приложений. Узнав о назначении каждой службы, можно понять результаты, к которым приведет изменение конфигурации. Приводятся инструкции по работе с утилитами и контрольными таблицами Microsoft для обеспечения базовой безопасности и рекомендации по повышению ее уровня.
Лекция 4 рассказывает об ограничениях на физический доступ, о многоуровневом администрировании, безопасности директорий, о правах и разрешениях пользователей сайта. Приведены сведения о настройке учетных записей анонимных пользователей, о механизмах аутентификации в Windows 2000 и в IIS.
В лекции 5 обсуждаются протоколирование и аудит, позволяющие следить за функционированием сайта и обнаруживать признаки вторжений. Пошаговые инструкции помогут сконфигурировать защищенные файлы протоколов, разобраться в настройках аудита для создания журнала контроля над действиями пользователей на сайте.
Часть II: Администрирование
Во второй части рассказывается о реализации проектов, политик безопасности и процедур, не включенных в часть I. Описываются дополнительные аспекты настройки безопасности локальной и глобальной сети с помощью Microsoft IIS и приводятся рекомендации по защите информации.
В лекции 6 обсуждается, что нужно сделать, перед тем как "вдохнуть жизнь" в веб-сайт. Рассказывается о предварительной проверке, резервировании и мерах по восстановлению, необходимых для завершения конфигурации веб-сервера. Речь пойдет о безопасности домена, фильтрации трафика и маскировке адресов интернета, о применении периметровой защиты и демилитаризованных зон. Приводятся инструкции по удаленному управлению, если сайт расположен на сервере поставщика услуг интернета или службы хостинга.
В глекции 7 описывается контроль над безопасностью сайта после его публикации, методы отслеживания условий работы, реагирования на возможные проявления атак. Приведено описание обычного режима работы сайта, рекомендации по использованию системных оповещений. Объясняется суть аудита, определяющего причину проявления угрозы и степень повреждений.
В лекции 8 обсуждаются возможности Windows 2000 и IIS по защите сайта и его содержимого. Рассказывается об основных принципах криптографической защиты (шифрование с открытым ключом, цифровые сертификаты и инфраструктура открытого ключа), о цифровых сертификатах Microsoft и сторонних организаций, настройке сеансов SSL и/или TLS.
В лекции 9 рассказывается о программных и аппаратных продуктах, повышающих уровень физической безопасности и программной защищенности, таких как брандмауэры, VPNS, анализаторы журналов, ускорители шифрования и др.
Часть III: Дополнительные сведения
После установки и настройки веб-служб IIS необходимо ознакомиться с другими службами, медиа-данными и добавляемыми на веб-сайт элементами, требующими определенного уровня защиты. В третьей части приводится описание этих служб и мер по обеспечению их безопасности.
В лекции 10 обсуждается безопасность служб IIS FTP, NNTP и SMTP, Windows Media и серверных расширений FrontPage.
В лекции 11 показаны методы защиты интерактивных сценариев и приложений, динамических функций, с помощью которых возможна реализация активного содержимого сервера IIS.
В лекции 12 рассказывается о безопасности частной информации. На многих веб-сайтах хранятся подробные данные о заказчиках и клиентах, поэтому руководству компаний необходимо обеспечить их конфиденциальность и бережное хранение. В лекции приведены практические рекомендации по поддержанию уровня секретности.
Часть IV: Приложения
В четвертой части содержатся вспомогательные материалы.
Приложение A, "Ресурсы безопасности". Ни один человек не сможет в одиночку справиться с обеспечением безопасности веб-сайта. В приложении приводятся ссылки на источники информации по безопасности и профессиональные организации, на обучающие материалы и прочую полезную информацию.
Приложение B, "Глоссарий", содержит перечень терминов безопасности, широко используемых в литературе по информационной безопасности.
Приложение C, "Справочные таблицы", содержит настройки безопасности, связанные с контролем доступа, аудитом и другими аспектами Windows 2000 и IIS, оформленные в виде таблиц.
Приложение D, "Методы аутентификации Microsoft IIS", содержит описание настроек аутентификации пользователей веб-сайта для платформы Windows.
Что же делать? Отключиться от интернета? Закрыть веб-сайт?
Что же делать? Отключиться от интернета? Закрыть веб-сайт? Конечно же, нет. Ведь в этом случае организация не сможет долго поддерживать надлежащий уровень. Необходимо проанализировать возможные угрозы и принять соответствующие меры, чтобы не быть растоптанными информационными преступниками.
Книга поможет разобраться в современных требованиях, методах, практических решениях и процедурах, необходимых для защиты веб-сайта Microsoft IIS от атак злоумышленников через бреши в системе безопасности. В ней приводятся пошаговые процедуры, поясняющие возможности защиты, предоставляемые компанией Microsoft.
Защита в интернете – это не просто указание нескольких параметров веб-сервера. Здесь требуется планирование, использование, тестирование, отслеживание работы целого набора защитных систем, работающих совместно и дополняющих друг друга. Цель данной книги состоит в том, чтобы рассказать об аспектах безопасности для реализации практичной и жизнеспособной системы защиты сайта. В ней приводится описание возможных угроз, рассказывается о средствах, применяемых профессионалами для противостояния этим угрозам, и действиях, позволяющих сохранять защиту в течение длительного времени.
Книга состоит из трех частей, имеются приложения и ссылки на источники, которыми вы сможете пользоваться по окончании работы с книгой.
Инструменты
Методы разведки и сканирования показывают, что можно стать жертвой хакера, который затратил совсем немного времени и усилий на подготовку к атаке. Инструменты взлома выполняют за хакера всю основную работу.
Совет. Опытные хакеры презрительно относятся к хакерам-любителям, так как любители беспрепятственно пользуются программными продуктами, на создание которых было затрачено много усилий со стороны "продвинутых" взломщиков.
В таблице 1.2 приведен краткий перечень некоторых универсальных средств и инструментов сканирования, используемых хакерами. Косвенно они являются и средствами защиты в случае их использования для выявления слабых мест системы. Некоторые инструменты взлома основаны на платформе UNIX, что устраивает многих хакеров. В лекции 7 обсуждается использование средств Windows для проведения экспериментов, направленных на выявление "прорех", прежде чем их обнаружит злоумышленник.
fping (Unix) Grim's Ping (Win 2000) | Отправка одиночных ping-запросов или параллельная отправка массовых ping-запросов циклическим образом | http://www.fping.com
http://www.networ-kingfiles.com//PingFinger/Grimsping.htm |
Nmap | Сканирование сети для определения доступных систем и служб, используемых операционных систем | http://insecure.org/nmap/ |
Winscan | Сканирование портов TCP и UDP, обнаружение и отслеживание служб, работающих в системах Windows NT 4.0 и Windows 2000. | http://www.prosolve.com/software/ |
LC3 (LOphtcrack) | Получение паролей из отдельных рабочих станций Windows NT и Windows 2000, сетевых серверов, главных контроллеров домена или из программы Active Directory | http://www.@stake.com |
Nessus | Аудит сети и определение всех уязвимых мест защиты, запуск эксплоитов, отчет об успехе работы каждого эксплоита | http://www.nessus.org |
Ethereal | Этот сниффер Ethernet прост в использовании и предназначен для интерактивного просмотра захваченных данных, вывода отчета и подробной информации о каждом пакете данных | http://www.ethereal.com |
Whois | Утилита, определяющая веб-адрес и адрес сервера хранилища учетных записей домена, в котором содержится полная контактная информация | http://www.internic.net/whois.html |
Источники
Червь Code Red стал ярким примером того, как сильно подвержен сервер различным атакам в интернете. Вы, вероятно, слышали о корпоративном шпионаже, информационной войне, кибер-терроризме и организованной преступности в сети. Будьте уверены, в интернете существует множество настоящих "плохих парней"!
Важно. Угрозы существуют как внутри организации, так и вне ее. Не тратьте много сил и ресурсов на защиту от внешних угроз, не обезопасив себя от потенциальных злоумышленников внутри организации.
Согласно сведениям ФБР администраторы безопасности часто не замечают, что компьютерное преступление совершается сотрудниками организации. Недостаточная защита от внутренних угроз может дорого стоить. Представьте себе, что сотрудник, пусть даже случайно, получил доступ с внутреннего сайта к конфиденциальной информации о заработной плате, например, из-за неправильного указания разрешений для каталога. Нужно ли рассказывать о том, какой ущерб может нанести недовольный или нечестный сотрудник, похищающий данные? Несомненно, что угроза бизнесу и потребность в хорошей защите являются серьезной проблемой для внутренней сети.
Эксплоиты
После успешного исследования целевых узлов хакер инициирует атаку с помощью специальной программы-эксплоита (exploit). Если целью атаки является отказ в обслуживании, то результат, скорее всего, не заставит себя долго ждать. В противном случае хакер запустит программу крекинга или переполнения буфера, которая позволит ему проникнуть в систему. Иногда хакер использует веб-сайт в качестве отправной точки для проникновения в другую систему. Интернет-атака, направленная на базу данных, является примером такой атаки.
Хорошо спланированная направленная атака более сложна, нежели среднестатистическая универсальная атака. Нередко первое проникновение хакера в систему является лишь этапом сложного плана по длительному нахождению в системе-жертве. По этой причине среди хакеров распространено размещение в системе программы типа "троянский конь" или "черный ход" для захвата данных и упрощения повторного проникновения в систему.
Категории атак
Угрозы безопасности для веб-сайта делятся на несколько категорий атак. Атаки, влияющие на доступность и надежность сайта, называются атаками на отказ в обслуживании (Denial of Service – DoS). Атака Code Red – хороший пример атаки DoS. Другие атаки выполняют действия с содержимым и данными сайта, с их помощью злоумышленники пытаются повредить, похитить, изменить, удалить или разместить информацию на сайте. Такие атаки называются атаками на взлом или крекингом (cracking).
Хакерство (hacking) – это термин, означающий как атаки DoS, так и атаки на взлом. Для справки ниже приведены определения атак по категориям, взятые из глоссария терминов Администрации национальной безопасности (Natoinal Security Administration) (см. Приложение A).
Denial of Service, DoS (отказ в обслуживании) – действия, нарушающие функционирование части автоматизированной информационной системы в соответствии с определенной целью.Hacking (хакерство) – несанкционированное использование, попытки обмана или обхода систем безопасности компьютерной информационной системы или сети.Cracking (крекинг) – акт проникновения в компьютерную систему или сеть.
Термин "атака", как правило, используется для описания хакерских действий. В категории злоумышленных действий "DoS" и "крекинг" входят различные типы атак.
Совет. Некоторые работники сферы информационных технологий утверждают, что хакерство значительным образом отличается от крекинга, так как мотивы хакеров (в отличие от крэкеров) не являются вредоносными. Они считают, что хакеры помогают потенциальным жертвам обнаружить пробелы в защите, что позволяет усилить безопасность. Мы согласны с тем, что уровень обеспечения безопасности вырос, так как руководители организаций уделяют больше внимания защите своих продуктов. Мы дали лишь общее определение хакерства, которое, как нам кажется, не подлежит критике.
Методология взлома
Первое, что необходимо знать про хакеров, – это то, что они хорошо вооружены. Многие хакеры осуществляют расширенные исследования, занимаются самообучением, экспериментируют с известными дефектами в популярных компьютерных программах и открывают в них новые "бреши".
Серьезные взломщики распространяют свои знания среди менее опытных хакеров, публикуя в интернете статьи, сообщения в новостях, технических форумах и конференциях, передавая информацию "из уст в уста". Большая часть информации представляет собой совершенно законные исследования, проводимые в "мирных" целях. Но разве можно быть уверенным в правильном использовании этой информации?
На рисунке 1.2 изображена страница, взятая из сайта о хакерстве Antionline.com, со списком доступных информационных ресурсов на тему взлома.
увеличить изображение
Рис. 1.2. Страница, взятая с сайта Antionline
Находясь в обществе хакеров, взломщики имеют доступ к большому числу инструментов взлома и сценариев, значительно упрощающих их действия. Microsoft IIS, Windows 2000 и Windows XP представляют собой удобные цели, поэтому многие инструменты взлома направлены именно на эти платформы. Они автоматически находят доступные компьютеры, взламывают пароли, прослушивают сетевые пакеты и используют известные уязвимые места.
Методы направленных атак
В отличие от универсальной атаки направленная атака (targeted attack) нацелена на конкретную организацию. С ее помощью хакер осуществляет ряд подготовительных действий и исследований перед нанесением основного удара. Взломщик, целью которого является ваша сеть, использует различные инструменты универсальных атак, но в этом случае атака планируется и производится в несколько этапов, с особой осторожностью, не обнаруживая разведывательных действий, направленных на сбор информации, которая поможет реализовать атаку.
Методы скрытия
Опытные хакеры, особенно те, кто осуществляет атаки с целью финансовой выгоды, стараются скрыть свое присутствие и "замести следы". Они выполняют сканирование, ускользая от внимания сетевых администраторов и систем обнаружения вторжений (IDS). После успешного завершения нужных действий взломщики скрывают следы своего присутствия, удаляя записи в журналах и редактируя протокол аудита. Нужно ли говорить о том, насколько трудно защищаться от атак, когда вы даже не подозреваете о них?
Открытый порт равносилен открытой двери
Сетевые экраны (firewalls) или брандмауэры защищают внутренние ресурсы, маскируя реальные IP-адреса компьютеров и блокируя попытки доступа к сети, инициированные извне, если только внешний пользователь не является законным и авторизованным сотрудником организации. Возможно нарушение безопасности веб-сервера при работе в интернете. В этом случае брандмауэр настраивается на предоставление канала для проникновения трафика только на веб-сервер. К сожалению, при слабой защите операционной системы Windows или веб-сервера открытие порта позволит опытному хакеру получить информацию о сетевых адресах, пользователях и директориях, которая позволит ему атаковать другие компьютеры сети.
увеличить изображение
Рис. 1.1. Типичная конфигурация сети с веб-сайтом, имеющим базу данных
Перечень угроз
Можно ли уберечь себя от атаки хакера? Возможно, что нет. Если организация добилась успеха в своей сфере деятельности, и ее корпоративная сеть подключена к интернету, то она является "лакомым кусочком" для взломщиков. Однако можно усложнить задачу хакеров. О том, как это сделать, рассказывается далее.
Ниже приведен перечень угроз, о которых шла речь в данной лекции.
Категории атак: отказ в обслуживании;хакерство (несанкционированное проникновение в систему);взлом защиты (крекинг).Цели атак: вывести из строя или проникнуть в инфраструктуру сети;захватить управление серверами;получить доступ к конфиденциальной информации или уничтожить содержимое;похитить ресурсы или средства, отменить транзакции.Методология хакерства: случайный поиск или разведка для определения жертв;сбор базовых сведений;создание перечня параметров;зондирование;выполнение эксплоита;сокрытие действий.
Политика безопасности
Помимо веб-сервера в сети присутствуют другие компьютеры, поэтому обеспечение безопасности включает в себя совместные действия всех сотрудников организации, управляющих различными системами.
Нет никакого сомнения в том, что ни одна организация, обладающая большими информационными ресурсами, не обеспечит безопасность своей сети без применения политики безопасности, профилактических процедур и контрольных таблиц. В качестве защитника веб-безопасности вы должны обеспечить стабильность своей части этой политики, сделать ее руководством к действию для сотрудников и пользователей веб-платформы.
Предварительное исследование
Хакер начинает атаку с выполнения тестового опроса (ping), используя автоматизированную программу, отправляющую ping-запросы по большому числу IP-адресов для получения ответов от каких-либо узлов. При отсутствии адекватной защиты веб-сайт станет жертвой, если отправит ответ на ping-запрос. При получении ответа следующим шагом хакера будет запуск инструмента, определяющего операционную систему компьютера-респондента. После этого он узнает уязвимые места потенциальной жертвы, так как эту информацию легко найти в литературе, посвященной взлому.
Примеры уязвимых мест
Все компьютерные системы зависят друг от друга, и это обстоятельство обуславливает высокий уровень безопасности сети. Сеть становится уязвимой из-за дефекта, ошибки или недосмотра в настройках веб-сервера IIS. На рисунке 1.1 показана конфигурация сети, объясняющая некоторые сценарии развития подобных событий.
Проблема. Веб-приложения влияют на уровень безопасности базы данных
Еще раз обратите внимание на рис. 1.1. Веб-сайт подключен к базе данных организации (этот подход применяется на серьезных сайтах, что позволяет клиентам искать товары в каталогах или отправлять личные данные по запросу компании). Следовательно, веб-сайт подвергает базу данных риску, если он недостаточно защищен. Веб-сайты IIS нередко обеспечивают взаимодействие базы данных и клиента в интерактивном режиме посредством страниц Active Server Page (ASP). Эти страницы содержат программы для отображения полей поиска или форм для заполнения, которые преобразуют введенные данные в формат структурированного языка запросов SQL, используемого при отправке сообщений в базу данных или запросов на получение информации. Если хакер получит доступ к этой программе, он сможет создавать SQL-сообщения для просмотра или изменения записей в базе данных.
Совет. Будьте внимательны! Не оставляйте на сайте уязвимые места, через которые будут атакованы другие системы. Изучите как можно больше информации, связанной с потенциальными угрозами, для построения достойной системы защиты.
Проявления угроз безопасности
Помните, как быстро распространилась вредоносная программа-червь под названием Code Red? Принципом действия этого червя было заражение одного сервера и автоматическое выполнение атак на соседние сервера, с помощью чего он распространился на тысячи и тысячи операционных систем Microsoft. Code Red заполнял веб-сервера данными и действовал настолько успешно, что произошло виртуальное отключение больших сегментов сети интернет, так как сайты переполнились огромным количеством информации, которую они были не в состоянии обработать.
Червь Code Red – это лишь один из множества примеров, используемых для перегрузки, повреждения или хищения информации с веб-сайтов. Эти угрозы достаточно реальны, и веб-администраторы должны быть готовы к защите своего сайта от возможных атак и к предотвращению их последствий.
Сбор базовых сведений
Хакеры называют процесс сбора информации о сети-жертве сбором базовых сведений (футпринтингом, от англ. footprinting). Этот процесс начинается с таких тривиальных вещей, как копание в мусорных корзинах, в которые выбрасываются ненужные документы, или с попыток социального инжиниринга, направленных на выяснение архитектуры сети организации. Здесь годятся любые методы, с помощью которых хакер обеспечит себе хорошую базу, от которой оттолкнется при планировании атаки. Если взломщиком является пользователь рассматриваемой сети-жертвы, то у него, возможно, уже имеется необходимая информация.
Если внешний хакер руководствуется конструктивным подходом, он систематически добывает информацию, которая поможет ему получить нужные сведения. Такой метод является асимптотическим. Взломщик использует тесты и инструменты для сбора информации и раскрывает столько неизвестных параметров (например, сетевых адресов), сколько нужно для перехода к следующему этапу атаки.
Сетевые атаки
Угрозы и атаки в интернете являются результатами действий злоумышленников, использующих технические стратегии и махинации. Эти атаки наиболее опасны, так как их может осуществить любой пользователь в любой точке мира. Например, червь Red Code появился в Китае, похититель сотен тысяч номеров кредитных карт из CD Universe действовал в России, вирус Мелисса распространен хакером из Нью-Джерси. До сих пор неизвестно (или умалчивается), откуда была осуществлена атака на веб-сайт ЦРУ. Все эти атаки были успешными, хорошо спланированными и широко преданными огласке, они нанесли огромный вред и сильно обеспокоили общественность. Помните, что такие атаки возможны и во внутренней сети!
Сетевые атаки также попадают под категории "DoS" и "крекинг". Они используют ошибки в программном обеспечении, с их помощью блокируют доступ или незаконно проникают в систему. Другие атаки осуществляются через неправильную настройку системы или недосмотр администратора, основываются на захвате управления соединениями или процессами передачи данных. У хакеров имеется множество методов для достижения своих целей (см. лекцию 2). Постоянно появляются новые способы реализации атак, что катастрофически усложняет обеспечение безопасности компьютерных систем.
Во многих атаках используются готовые программы, имеющиеся в интернете, позволяющие упростить и автоматизировать атаку, поэтому хакерством занимаются даже малоопытные пользователи. Специалисты утверждают, что большинство хакерских действий осуществляется любителями просто из любопытства или в виде "невинного" озорства. Не исключено, что так оно и есть. Но это не имеет значения, если в результате атаки наносится серьезнейший ущерб или происходит отключение сайта, выполняющего важнейшие деловые операции. Мотивами хакеров также является желание заявить о себе, высказывание своего политического мнения, уклонение от финансовой ответственности и жадность. Теперь, после трагедии 11 сентября 2001 г., мы всерьез задумываемся и о проблеме терроризма.
Сканирование
После нахождения потенциальной жертвы хакер осуществляет сканирование для обнаружения на атакуемом компьютере доступных служб. С помощью инструмента, основанного на протоколах Internet Transaction Control Protocol (ITCP) и User Datagram Protocol (UDP), можно определить, выполняются ли в системе службы Hypertext Transfer Protocol (HTTP), Simple Network Management Protocol (SNMP), Post Office Protocol (POP) или File Transfer Protocol (FTP).
Получив информацию посредством ping-запросов и сканирования, хакер применяет целый набор инструментов, нацеленных на определенные уязвимые места, для осуществления DoS-атаки. Если хакер выяснил адрес и имя одного из серверов, то он попытается использовать крекинг для проникновения в систему. Например, начнет проверку учетных записей, используя автоматизированные словари паролей, чтобы угадать один из них. Он может выполнить атаку на переполнение буфера посредством отправки большого количества данных, содержащих программу типа "троянский конь", которую нужно разместить в этой информационной среде.
Социальные и физические атаки
Одним из наиболее эффективных методов, применяемых хакерами и крэкерами для проникновения в защищенные паролем системы, является получение конфиденциальных данных от пользователей под видом службы технической поддержки, которая просит сообщить свой пароль. Социальный инжиниринг (social engineering) – это термин, описывающий данный тип атаки, он основан на управлении личностью человека для достижения своей цели.
Некоторые атаки являются довольно незамысловатыми. Эффективной DoS-атакой является отсоединение источника питания системы или разрыв линий коммуникации. Такие атаки называются физическими атаками (physical attack), так как они направлены на физические компоненты информационной системы.
В некоторых атаках физический доступ сочетается с техническими "хитростями". Например, если злоумышленник имеет физический доступ к компьютеру, то он может перезагрузить его под другой операционной системой с помощью съемного диска и скопировать данные. Используя беспроводные сетевые технологии, злоумышленники "прослушивают" трафик сетей с помощью радиоприемников.
Сущность защиты от социальных и физических атак довольно проста: размещение компьютеров в безопасных местах и использование камер видеонаблюдения. Обучение пользователей и разработка политики безопасности позволят предотвратить социальные атаки. Об этих общих мерах безопасности мы говорить не будем. Тем не менее, проведение формальных процедур максимально снизит вероятность того, что неосторожность или безответственность станут угрозой безопасности.
Составление перечня параметров
На этапе выяснения структуры сети хакер получает информацию о домене и сетевых адресах, контролируемых организацией-жертвой, выполняя запросы баз данных домена верхнего уровня Internet Whois или Domain Name Service (DNS). Эти структуры позволяют находить серверы сети-жертвы с помощью веб-браузеров и почтовых клиентов. Таким образом, хакер получит ссылки на любой открытый IP-адрес, используемый компанией для серверов интернета или электронной почты. С помощью бесплатных или платных программ хакер сможет выяснить адреса и диапазоны IP-адресов, доступных в организации, а также провести довольно сложные исследования по определению адресов других узлов в сети-жертве.
Стратегии взломщиков
Если знать методы хакеров и использование ими недостатков систем, то можно реализовать разумные решения по обеспечению безопасности. Большая часть атак направлена на слабые места оборудования, программно-аппаратных средств, операционных систем, сетевых служб и приложений. Компоненты, так или иначе связанные с интернетом, подвергаются угрозам из-за недостатков в устройствах.
В таблице 1.1 приведен краткий перечень целей хакеров и типов атак. Как видите, в каждой из категорий могут использоваться DoS-атаки или крекинг для доступа к сайту, нарушения его конфиденциальности, повреждения его содержимого. Этот перечень не является исчерпывающим, но дает представление о степени серьезности описываемых угроз.
Совет. Для получения подробной информации об уязвимости программного обеспечения интернета и оборудования обратитесь к книге "Hacking Exposed: Network Security Secrets and Solutions" S. McClure, J. Scambray, G.Kurtz, McGraw-Hill/Osborne.
Основные цели и методы атак | Взлом таблиц маршрутизаторов | Сканирование файлов маршрутизатора для получения информации о сети, необходимой для реализации атак, или изменение записей в файлах маршрутизатора для нарушения работы сети. |
Флудинг (перегрузка) узлов, маршрутизаторов или сетевых экранов | Перегрузка сетевых экранов или серверов для замедления их работы или полной остановки из-за обработки огромного количества информации. | |
Сниффинг (прослушивание) | Использование программного обеспечения для прослушивания сетевого интерфейса клиента, сервера или канала передачи пакетов, интересующего злоумышленника. | |
Спуфинг (подмена пользователя) | Осуществление действий под видом пользователя (как правило, используется применительно к IP-адресам). | |
Атаки на серверы | Взлом учетных записей и паролей операционной системы | Использование учетных записей, оставленных открытыми для доступа из интернета, в операционной системе веб-сервера и/или осуществление попыток угадывания пароля учетной записи для получения доступа к сетевым ресурсам узла. |
Переполнение буфера | Возникновение переполнения системной памяти и реализация возможности хакера передать системе инструкции для запуска другой программы, позволяющей осуществить доступ в систему. | |
Расшифровка URL | Получение информации о настройках веб-сервера с помощью ошибки, генерирующей некорректный URL, для идентификации и проникновения в директории с файлами. | |
Маскарад | Разновидность подмены пользователя, основанная на имитации его поведения. | |
Захват | "Похищение" соединения пользователя после его легального входа в систему. | |
Атаки на содержимое и информацию | Повреждение отображаемого на веб-сайте содержимого | Получение доступа к веб-содержимому с его последующим изменением и повреждением. |
Нарушение конфиденциальности | Получение доступа к частной или конфиденциальной информации, представляющей государственную тайну, коммерческие секреты или личные данные. | |
Удаление файлов | Нарушение безопасности файловой системы и удаление информации с накопителя. | |
Атаки на финансовые средства | Мошенничество | Проникновение посредством незаконной аутентификации в одной учетной записи для перемещения финансовых средств в другую учетную запись. |
Аннулирование транзакции | Получение несанкционированного доступа к системе и удаление записи о подтверждении коммерческой транзакции. |
Сегодня информация о многочисленных методах атак и их целях доступна каждому. Основной трудностью, с которой сталкиваются пользователи при разработке методов защиты, является то, что в любой технологии, программном или аппаратном продукте, предназначенном для работы в сети или для поддержки веб-сайта, имеются потенциально уязвимые места.
Универсальные методы атак
Хакеры осуществляют атаки широкого диапазона действия (универсальные атаки), т.е. направленные не на конкретную организацию, а на большое число потенциальных жертв.
Вирусы и черви попадают под категорию универсальных атак. Они направлены на различные объекты и действуют случайным образом, используя для самораспространения электронную почту и нанося значительный вред. Вирусы и черви подробно описываются в лекции 2.
При взломе используются универсальные подходы. В начале своих действий хакер нацеливается на большую группу объектов, после чего концентрирует усилия на объекте, имеющем уязвимые места. Разумеется, если атака выполняется из внутренней сети, выбор ее целевых объектов не будет случайным.
Взаимосвязь аспектов безопасности
Многие атаки направлены на сетевые маршрутизаторы и операционные системы, а не только на приложение веб-сервера. Internet Information Server 5 полностью интегрирован с Windows 2000, и если речь идет о его безопасности, подразумевается также и безопасность самой операционной системы Windows 2000. Имеют место атаки на сетевые устройства и на инфраструктуру сети, например, на сетевые экраны, маршрутизаторы, серверы или клиенты. Уязвимость этих устройств представляет собой брешь в периметровой защите, открывающей доступ к важной информации сайта.
Важно. Мощность систем безопасности измеряется стойкостью их уязвимых мест. Веб-содержимое не является единственным ресурсом, подвергаемым риску в случае слабой системы защиты. В сети лучше всего применять различные меры и средства обеспечения безопасности. В лекции 6 будет рассказываться об усилении безопасности сервера с помощью средств периметровой защиты.
Задачи безопасности
В обширной, быстро меняющейся и относительно новой среде интернета невозможно обеспечить идеальную защиту. Однако можно снизить вероятность серьезных убытков или катастрофических последствий, приняв адекватные меры предосторожности. Если организация правильно защищена, то всегда возможно ее восстановление. Потенциальные потери сводятся к минимуму, если разработан план решения подобных проблем.
Отсюда следует, что обеспечение безопасности включает в себя три основные задачи.
Предотвращение – создание защитных процедур и защищенной веб-среды, предотвращающей попытки вторжения злоумышленников и снижающей потенциальный риск или потери.Обнаружение – отслеживание действий, выполняемых в интернете, для немедленного выявления изменений в событиях, связанных с безопасностью.Реагирование – выполнение мероприятий по контролю или пресечению вредоносных действий при обнаружении атаки или вторжения.
Организации необходимо иметь также план восстановления, включающий наличие дублирующих систем и изолированных резервных копий.
Зондирование
Имея на руках определенный набор IP-адресов, хакер проводит зондирование целевого объекта, сканируя его для получения дополнительной информации. Взломщики обычно используют инструмент для выдачи тестовых ping-запросов (чтобы выяснить, какие системы находятся в рабочем состоянии), инструмент для определения используемых операционных систем, а также средство сканирования портов для выявления служб, работающих на узле. В качестве альтернативы используется комплексное автоматизированное средство, такое как Nmap, однако взломщик, соблюдающий осторожность, предпочтет остаться незамеченным, используя более деликатный подход.
Большое количество открытых портов
Как легальные пользователи, так и злоумышленники подключаются к системам через открытые порты. Чем больше портов открыто, тем вероятнее, что кто-нибудь сможет подключиться к компьютеру. Следует иметь несколько открытых портов на брандмауэре, а именно: порт 80 для HTTP на веб-сервере, порты 25 и 110 для SMTP и POP. Из-за этих портов возникают проблемы, если не знать о том, что они существуют и находятся в открытом состоянии. Если оставить открытый порт незащищенным, злоумышленнику понадобится лишь средство сканирования для его обнаружения, после чего он выполнит через этот порт эксплоит, входящий в комплект хакерского программного обеспечения.
Наилучшим способом избавления от ненужных портов является закрытие всех портов до единого с последующим открытием только необходимых портов по очереди при настройке системы.
Доменная система имен
Сеть интернет чрезвычайно велика, а вид 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. В Европе и Азии имеются собственные системы управления доменными именами.
Служба доменных имен отслеживает информацию, необходимую для поиска какой-либо системы, чтобы это не выполнял каждый отдельно взятый компьютер. Служба DNS организована в иерархию, обеспечивающую эффективность и скорость поиска адресов (см. рис. 2.2). На вершине располагается домен верхнего уровня (Top Level Domain, TLD). Все остальные домены (.com, .net и .org) ответвляются от домена верхнего уровня.
Источник проблемы
Веб-сайт подвергается атакам на взлом по ряду причин. Одной из причин является то, что коммерческое программное обеспечение, на котором построены веб-сайты, представляет собой сложные и комплексные платформы. Как и любое другое, оно иногда содержит ошибки ("баги"), которые и используются взломщиками. Другая причина заключена в самой технологии интернет-протоколов, согласно которой функционирует вся сеть интернет. При их создании изначально не учитывались вопросы безопасности. Интернет-протоколы появились в результате нововведений, усовершенствований, совместных разработок в области информационных технологий, выполняемых в научно-исследовательских институтах, группах индустриальных стандартов и на частных предприятиях, чтобы открыть доступ к информации большому количеству людей. Целью этих технологий было объединение людей, а не их разграничение.
Несмотря на то, что впоследствии были разработаны способы обеспечения безопасности интернет-протоколов, их архитектура в общем и целом осталась уязвимой, а затраты на усиление информационной безопасности порой превышают затраты на введение новой архитектуры.
Открытая и единая природа протоколов интернета явилась одной из главных причин его небывалой популярности. Они стали настоящими стандартами, благодаря чему продукты от различных производителей взаимодействуют на удивление слаженно. К сожалению, из-за наличия проблем с их безопасностью разработчики программного обеспечения вынуждены время от времени совершенствовать свои продукты. На рынке появилось новое направление программных средств, предназначенных для обеспечения безопасности информации. Многие компании широко применяют эти средства для достижения наилучших результатов в области защиты своих систем.
Известные уязвимые места
Институт системного администрирования, сетевых подключений и безопасности (SANS) включает в себя более чем 90 000 системных администраторов, профессионалов в области безопасности и сетевых администраторов, что делает данную организацию наиболее заметной структурой, занимающейся безопасностью интернета. Члены SANS публикуют свои исследования, различные статьи, учебные пособия и новости, обмениваясь информацией друг с другом и с общей массой пользователей.
Каждый год институт SANS составляет перечень наиболее опасных угроз, которым подвержены компьютеры и компьютерные сети. Этот перечень носит название "The Twenty Most Critical Internet Security Vulnerabilities" ("Двадцать наиболее опасных угроз безопасности в интернете") или "The SANS/FBI Top 20". Он разрабатывается на базе многолетнего опыта, знаний, среднестатистических сведений, получаемых с помощью совместных исследований. Перечень постоянно обновляется, он находится по адресу www.sans.org/top20.htm. Он содержит сведения об угрозах, представляющих опасность для всех систем, и об уязвимых местах, присущих только системам Microsoft. Большинство уязвимых мест Microsoft IIS устраняется после установки сервис-пакетов или патчей безопасности.
В следующем разделе содержится сокращенный вариант перечня SANS с описанием проблем и набором дополнительных сведений. Раздел "Переполнение буфера" содержит информацию с веб-сайта Symantec (www.Symantec.com).
Эксплоиты, использующие ошибки в конфигурации
В зависимости от полученных данных хакер может иметь достаточно информации для осуществления направленной атаки. Узнав об открытых портах на компьютере-жертве, о приложении или службе, использующей этот порт, выяснив поставщика и номер версии программного обеспечения, хакер может начинать атакующие действия. Имея на руках указанную информацию, взломщик обратится за помощью к своим собственным ресурсам (среди которых непременно будет перечень уязвимых мест SANS/FBI) и определит, соответствуют ли полученные данные условиям для атаки.
Иногда хакер находит незащищенный порт при подключении с помощью программы Telnet. В случае неудачи злоумышленник попытается войти в систему под учетной записью пользователя, найти домашний каталог со списком файлов и подкаталогов и т.д. Атака может быть направлена и на использование других служб IIS, таких как FTP и NNTP.
Эсплоиты, использующие уязвимые места программного обеспечения
Существует много эксплоитов, наиболее известными из которых являются следующие.
Эксплоиты ошибок конфигурации. Используют недостатки в системе управления привилегиями и/или уязвимые или раскрытые идентификаторы и пароли, позволяющие осуществлять прямую атаку, вход и дальнейшие действия. Если хакер добыл нужную информацию с помощью разведки, он выполнит направленный эксплоит и проникнет в систему.Вредоносные эксплоиты. Размещают на сервере сторонний код, позволяющий похитить, изменить, осуществить или перехватить управление системой с помощью следующих подходов. Заражение. Представляет собой атаку вредоносным кодом в форме вируса или червя, который проникает в сеть системы-жертвы с помощью внутренних пользователей (через исполняемый файл на диске, сообщение электронной почты или браузер) и быстро распространяется на большое число компьютеров произвольным образом.Дефект (баг). Ошибки в программном обеспечении жертвы, демонстрационные сценарии или апплеты CGI/Java, предоставляющие возможность переполнения буфера, с помощью которых выполняется вредоносная программа с необходимыми привилегиями для несанкционированного доступа или повреждения системы.Троянский конь. Программа, преодолевающая периметровую систему безопасности и защиту веб-сервера, как правило, через электронную почту (или через обмен файлами между пользователями), создающая "дыру" в безопасности системы для беспрепятственного доступа к системе.Распределенные эксплоиты. Действуют на одном или нескольких компьютерах, используемых хакерами для осуществления атак на стороннюю цель. Эти эксплоиты сильно затрудняют идентификацию истинного источника атаки.
Эксплоиты, использующие ошибки в конфигурации, требуют от хакера много времени и усилий для поиска ошибок и последующего проникновения в систему. Эксплоиты других категорий требуют от него большей сообразительности и находчивости. За исключением случая, когда хакер просто повторно использует существующую программу-эксплоит, ему требуется написать некоторый код и разработать схему его доставки. Но, опять-таки, с помощью набора хакерских средств программист довольно просто скомпилирует атакующую программу и выполнит эксплоит. Другое дело – распределенные эскплоиты. Их использование требует тщательнейшего планирования и подготовки, но это компенсируется тем, что таким атакам, как правило, очень трудно противостоять.
Методы защиты от обнаружения сканирования
Одним из способов защиты от обнаружения сканирования является использование средства FTP Bounce, о котором уже шла речь в этой лекции. Данный метод применяет обманную тактику, используя прокси-сервер для маскировки истинного сетевого адреса сканера. Другой метод заключается в уменьшении частоты сканирования. Достаточно низкая частота подачи сканирующих запросов не попадает в диапазон наблюдения за сетевой активностью, определенный в системе обнаружения вторжений (IDS). Систему IDS можно настроить на пониженный уровень частоты. Но, если этот уровень будет слишком низким, IDS сгенерирует большое количество ложных отчетов о сканировании, относящихся на самом деле к совершенно другим процессам, и действия, осуществляемые программой-сканером, просто затеряются в этой массе.
Некоторые методы сканирования позволяют сканирующим пакетам преодолевать периметровую защиту. Сетевые экраны с фильтрацией пакетов иногда не обнаруживают сканирующие пакеты, разбивающие дейтаграммы в заголовках TCP, так как фильтр не распознает полный заголовок TCP, соответствующий правилам фильтрации, и пакет не блокируется.
Некоторые методы сканирования портов
Существует большое количество методов сканирования, однако в каждом конкретном случае требуется свой метод. Хакер ищет компромисс между затрачиваемым временем и уровнем секретности своих действий. В зависимости от обстоятельств хакер либо осуществляет действия безнаказанно и не боится быть обнаруженным, либо действует осторожно с применением каких-либо хитростей. Сканирование всесторонне использует возможности интернет-протокола.
Совет. При составлении следующего раздела использовались материалы The Art of Port Scanning (http://www.insecure.org/nmap/nmap_doc.html) и Remote OS Detection via TCP/IP Stack FingerPrinting (http://www.insecure.org/nmap/nmap-fingerprinting-article.html), автором которых является Fyodor. Для получения более подробной информации посетите эти веб-сайты.
Ниже приведены описания нескольких методов сканирования TCP. Некоторые из этих методов предотвращают обнаружение и работают извне сети, если периметровая защита ограничена фильтрацией пакетов. В разделе "Проблема. TCP-соединения" приведена информация, с помощью которой вы разберетесь в терминах, если еще не знакомы с TCP/IP.
Метод сканирования TCP ACK используется для идентификации активных веб-сайтов, которые не отвечают на стандартные ping-запросы ICMP. Программа сканирования отправляет пакеты ACK. Если порт открыт, то компьютер-жертва отправляет ответ в виде RST. Если ответ не получен, это значит, что рассматриваемый порт закрыт. Такой метод сканирования является прямым, он обнаруживается и блокируется пакетной фильтрацией (см. лекции 6).В методе сканирования TCP Connect используется системный вызов connect операционной системы для открытия подключения к каждому порту, находящемуся в режиме ожидания. Этот метод реализуется быстро, однако выполняемые действия обнаруживаются, если на компьютере-жертве ведется журнал.При использовании метода сканирования TCP SYN компьютеру-жертве отправляется пакет SYN. Если порт открыт, потенциально атакуемый компьютер отправит пакет SYN|ACK. В легальном запросе следующим шагом является отправка запроса на открытие соединения тем компьютером, который отправил пакет ACK.
В данном случае, как только становится известно, что порт открыт, программа разрывает соединение. Такой метод сканирования зачастую не обнаруживается, так как соединение не устанавливается, и многие системы не заносят в журнал данные о несостоявшихся TCP-соединениях. Одни средства периметровой защиты блокируют такие пакеты, другие – нет.Метод сканирования TCP FIN заключается в отправке пакетов FIN по адресу системы-жертвы. На компьютере с системой UNIX закрытые порты ответят отправкой пакетов RST. Открытые порты проигнорируют пакеты, поэтому если система не отвечает, то, вероятно, рассматриваемый порт открыт. Тем не менее, порты Microsoft отправляют пакеты RST, даже если они являются открытыми. Таким образом, метод сканирования FIN не очень полезен при сканировании портов, однако позволит определить, установлена ли на удаленном компьютере система Windows. Некоторые сканеры операционных систем используют этот принцип в своей работе.В методе сканирования FTP Bounce используется протокол FTP для установки FTP-соединений. Если служба, используемая в этом методе, открыта, злоумышленник сможет использовать удаленный компьютер в качестве прокси-сервера для сканирования другой цели без обнаружения и выявления своего адреса.
Несуществующий или неправильно настроенный журнал
Одной из аксиом безопасности является высказывание: "Идеальный случай – предотвращение всех атак, но обнаружение злоумышленника жизненно необходимо". Если вы подверглись атаке, то без журналов вряд ли сможете узнать, что злоумышленники сделали с системой. Без журнала вашей организации придется либо перезагружать операционные системы с исходных носителей в надежде, что зарезервированные данные не повреждены, либо продолжать использование системы, опасаясь, что злоумышленник все еще контролирует ее. Нельзя обнаружить атаку, если не знать, что происходит в сети. Журналы содержат подробные сведения о том, что произошло, какие системы были атакованы, а какие подверглись несанкционированному доступу. О журналах будет идти речь в лекции 5.
NetBIOS: незащищенные общие сетевые ресурсы Windows
Возможность File Sharing (Общий доступ к файлам), имеющаяся в Windows, позволяет открывать общий доступ к файлам в сети. File Sharing не защищен от доступа из интернета и представляет возможность несанкционированного доступа к системным файлам или ко всей файловой системе.
File Sharing использует протокол Server Message Block (SMB) (Блок серверных сообщений), позволяющий применить общий доступ к файлам Windows для получения секретной информации о системе, т.е. данных о пользователях и группах (имена пользователей, даты последнего входа, политика паролей, информация о сервисе удаленного доступа), данных о системе и ключах реестра. Доступ выполняется через соединение NULL-сеанса ("недействительного сеанса") со службой NetBIOS Session Service. Данная информация очень важна для хакеров при угадывании паролей или при осуществлении атак "грубой силы" на систему Windows.
Общие уязвимые места
Некоторые уязвимые места в защите являются общими для всех информационных систем. Например, любая система, использующая парольную защиту, подвержена атакам при небезопасной работе с паролями. Поэтому, независимо от того, используется ли Windows или UNIX, веб-сервер имеет следующие слабые места.
Определение веб-сервера или операционной системы
Перечень уязвимых мест SANS/FBI показывает, что их большая их часть относится к конкретным платформам. Поэтому следующим шагом хакера будет выяснение операционной системы компьютера-жертвы, производителя и версии приложения или службы. Эти данные помогут ему подобрать нужный эксплоит.
Иногда хакер использует программное обеспечение компьютера для выяснения версии веб-сервера или операционной системы. Простой и часто используемый метод заключается в получении клиента службы Telnet и попытке входа в систему. На веб-сервере это действие осуществляется с помощью подключения через Telnet к порту 80 сервера (порт служб HTTP). На уязвимых системах при попытке входа в систему сервер отображает сообщение с указанием информации о производителе и версии (независимо от того, был ли вход в систему успешным).
Сканирование операционных систем осуществляется с помощью таких программ, как Nmap и Nessus. Они используют утилиту сбора данных, которая выясняет вид стека TCP/IP жертвы посредством отправляемых пакетов-зондов и сопоставляет полученные данные с информацией в базе данных, чтобы выяснить производителя и версию программного обеспечения исследуемого компьютера. Как правило, для успешной идентификации недостаточно одного зонда, однако средства сканирования являются автоматизированными, что обеспечивает высокую скорость и простоту работы.
Для обмана хакеров администраторы часто изменяют сообщения веб-сервера с указанием в нем ложного имени производителя и версии программного обеспечения. Тем не менее, этот способ не очень эффективен против хакеров, имеющих большой опыт работы с Microsoft IIS, так как успешное сканирование операционной системы быстро сужает круг возможных версий IIS.
Отсутствие фильтрации пакетов для проверки корректности адресов входящих и исходящих пакетов
Хакеры, как правило, маскируют свой IP-адрес адресом узла внутренней сети, так как в этом случае он действует под видом полноправного члена сети и его проникновение трудно распознать. Внутренние пользователи обычно имеют привилегированный доступ к информации и системам, недоступным для внешних пользователей. Поэтому внешний пользователь, работающий под видом внутреннего, сможет использовать эти привилегии для выполнения злоумышленных действий. Такой тип атак называется спуфингом (spoofing) или подменой пользователя. Данный тип атаки предотвращается с помощью IP-фильтрации, о которой пойдет речь в лекции 6.
Отсутствие или незавершенность резервных копий
При нарушении защиты система восстановления требует наличия "свежих" резервных копий и проверенных способов восстановления данных. В одних компаниях ежедневно резервируются данные, но их работоспособность не проверяется. В других – создается политика резервирования данных, но не предусматривается политика восстановления. Подобные ошибки проявляются уже после того, как хакер проник в сеть и уничтожил или повредил данные. Всегда следует разрабатывать политику резервирования и восстановления, проверять ее и улучшать!
Перечень известных уязвимых мест
Конфигурация операционных систем и приложений по умолчанию.Учетные записи с уязвимыми или несуществующими паролями.Большое число открытых портов.Отсутствие фильтрации адресов.Неправильное ведение журнала или его отсутствие.Программные "дыры" в CGI.Злоумышленный или вредоносный код.Проход по папкам веб-сервера.Переполнение буфера.Доступ к общим ресурсам SMB посредством соединения с NetBIOS с помощью NULL-сеанса.Microsoft Remote Networking (Удаленная работа с сетью) и Data Services (Службы данных).
Переполнение буфера
В Windows 2000 и IIS обнаружено большое число уязвимых мест, через которые осуществляются атаки на переполнение буфера. "Прорехи" в защите также позволяют проводить атаки, вызывающие сбой в работе веб-сервера IIS, выполнение произвольного кода, использование целевого веб-сервера в качестве инструмента для атаки на стороннюю систему. Ниже приведен краткий обзор таких уязвимых мест.
При установке IIS инсталлируются некоторые дополнения для Internet Services Application Programming Interface (ISAPI) (Интерфейс прикладного программирования интернет-сервера), позволяющие расширять возможности IIS при помощи динамически подсоединяемых библиотек (DLL). Выявлено, что некоторые DLL-библиотеки (например, idq.dll) содержат ошибки программирования, позволяющие проводить атаки на переполнение буфера и получать полный контроль над веб-сервером IIS. В Windows 2000 файл с именем idq.dll определен как уязвимое место, позволяющее произвести переполнение буфера в Microsoft Index Server 2.0 (Сервер индексов) и Indexing Service (Служба индексации). Переполнение буфера возможно на Windows 2000 Server, Advanced Server и Server Data Center Edition с установленным компонентом IIS 5.0. Уязвимая библиотека DLL имеется и в Windows 2000 Professional, но не устанавливается по умолчанию.Устанавливаемое вместе с IIS 5.0 расширение ASP ISAPI допускает переполнение буфера. С его помощью удаленный взломщик может вызвать сбой сервера или, при соответствующей настройке, выполнить любой код, выбранный им самим. В установках по умолчанию код будет выполняться с привилегиями IWAM_machinename, присущими локальному непривилегированному пользователю (он также называется гостевой учетной записью интернета, о которой пойдет речь в лекции 4).Вторая возможность переполнения буфера выявлена в механизме передачи данных ASP ISAPI. Оно приводит к таким же последствиям, как и первая, и так же влияет на приложение IIS Web Server.Третья возможность переполнения буфера заключается в способе проверки безопасности разделителей перед анализом полей заголовков HTTP в IIS 5.0 и 5.1.
Возможно прослушивание этой проверки с выдачей информации о существовании корректных разделителей, в то время как на самом деле их не существует. Таким образом, удаленный взломщик может отправить на сервер специальный HTTP-запрос, который вызовет переполнение свободных буферов. В случае успеха это вызовет сбой в работе сервера или выполнение произвольного кода. В конфигурации по умолчанию IIS 5.0 и 5.1 код выполнится с привилегиями, соответствующими IWAM_machinename.Уязвимое место возникает при проверке корректности имени файла и его размера на сервере. С помощью особого пользовательского запроса удаленный злоумышленник может инициировать принятие слишком длинного имени файла, избежать проверки безопасности и переполнить статический буфер, что вызовет отказ в обслуживании или выполнение произвольного кода с привилегиями IWAM_machinename на атакуемом сервере.Уязвимое место имеется в компоненте IIS 5.0, поддерживающем входящие запросы .htr. При инсталляции IIS по умолчанию устанавливается расширение HTR ISAPI, представляющее собой программный интерфейс приложения для работы со сценариями. Функцией HTR ISAPI является обработка паролей пользователей на базе сети. С помощью нескольких особым образом созданных файловых запросов .htr удаленный злоумышленник может вызвать переполнение буфера и выполнить произвольный код на атакуемой системе. Эта атака вызовет отказ в обслуживании или, в некоторых случаях, позволит ему получить привилегии IWAM_machinename на атакуемом сервере.Отказ в обслуживании (DoS) может вызвать уязвимое место, содержащееся в методе поддержки ошибок некоторых фильтров ISAPI. Посредством отправки запроса URL, превышающего установленную в фильтре ISAPI длину буфера, злоумышленник может вызвать нарушение доступа в службах IIS.В IIS имеется уязвимое место, возникающее при работе служб IIS. Посредством определенного запроса о состоянии создается условие для возникновения ошибки, в результате чего нарушается доступ в службе FTP и службах сети. Это произойдет только в том случае, если на веб-сервере включены службы FTP.Веб-серверы IIS подвержены трем отдельным угрозам действия межсайтовых сценариев (Cross-Site Scripting, CSS).CSS представляет собой пассивную атаку, основанную на социальном инжиниринге. Она выполнится, если злоумышленник уговорит пользователя посетить веб-страницу и перейти по соответствующей ссылке, осуществляющей злоумышленные действия атакующего, или открыть вредоносное сообщение электронной почты в формате HTML. CSS позволяетразместить вредоносный код внутри веб-запроса, отправляемого с компьютера пользователя и передаваемого на сторонний веб-сайт. Вредоносный код запускается и выполняется с настройками безопасности и в зоне безопасности, применяемой к стороннему веб-сайту. Такие действия позволят злоумышленнику получить данные с веб-сайта, если иначе это сделать невозможно.
Поиск уязвимых мест
Хакеры знают об уязвимости атакуемых ими систем. Большую часть времени при подготовке и осуществлении атаки хакеры отводят под составление перечня систематических процедур, которые помогут им выяснить эти уязвимые места с наименьшими затратами. Наверняка злоумышленники сначала проверят систему-жертву на наличие открытых портов NetBIOS. После этого они просмотрят учетные записи и пароли по умолчанию, которые не были изменены с момента установки системы. Следовательно, если вы не умеете эффективно устранять "дыры", хакер рано или поздно обнаружит их посредством рекогносцировки.
Понятие протокола интернета
Давайте вначале ознакомимся с кратким описанием протоколов интернета. Работа интернета основана на функционировании набора специализированных коммуникационных протоколов. В таблице 2.1 приведены некоторые протоколы и их описание, к которым мы будем возвращаться при работе со следующими лекциями. Если вы уже знакомы с работой сетей TCP/IP и технологиями World Wide Web, можете пропустить эту тему и перейти к следующему параграфу.
Internet Protocol (IP) | Используется для управления инфраструктурой и присвоения компьютерам адресов, уникальным образом идентифицирующих каждый узел числом, состоящим из идентификаторов сети и узла. IP-адрес может выглядеть так: 192.168.222.101. |
Internet Control Message Protocol (ICMP) | Обеспечивает механизм передачи сообщений об ошибках в протоколе 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) | Используется для передачи исходящих сообщений электронной почты с одного узла на другой. |
Post Office Protocol (POP) | Используется для передачи входящих сообщений электронной почты с одного узла на другой. |
Simple Network Management Protocol (SNMP) | Используется в процессе управления сетью при сборе данных для анализа и составления отчета о производительности сетей. |
Hypertext Transfer Protocol (HTTP) | Используется веб-браузерами и веб-серверами для осуществления запросов и отправки содержимого в формате HTML. |
Приведенные протоколы TCP/IP определяют набор стандартов, используемых разработчиками программного обеспечения для обмена данными между двумя компьютерами. Это позволяет программным приложениям правильно осуществлять доставку данных. Каждый протокол играет свою собственную роль при обмене информацией.
Приложения и службы
При информационном обмене требуются различные протоколы передачи-приема данных. Например, при обмене данными интернета используется протокол HTTP (Hypertext Transfer Protocol), клиенты электронной почты используют протокол SMTP (Simple Mail Transfer Protocol), а обмен файлами – протокол FTP (File Transfer Protocol). Программные приложения, такие как веб-браузер, клиент электронной почты или клиент FTP, передают данные в формате тех протоколов, посредством которых происходит обмен информацией.
увеличить изображение
Рис. 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 | Входящая почта. |
Программа удаленного контроля (RCP) | 111 | TCP и UDP | Удаленное выполнение программ. |
Сетевой протокол передачи новостей (NNTP) | 119 | TCP | Списки новостей интернета. |
Сетевой протокол времени (NTP) | 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 | Управление сетью. |
Пограничный сетевой протокол (BGP) | 179 | TCP | Управление пограничным шлюзом |
Облегченный протокол службы каталогов (LDAP) | 389 | TCP и UDP | Службы каталогов. |
Протокол защищенных сокетов (SSL) | 443 | TCP | Защищенные, зашифрованные данные сети. |
Системный журнал | 514 | UDP | Сетевой журнал. |
"Демон" линейного принтера (LPD) | 515 | TCP | Сервер печати (UNIX). |
SOCKS | 1080 | TCP | Сетевой прокси-сервер. |
Принципы работы 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 соответственно. Это достаточно весомая информация, так как каждый порт, ожидающий приема данных, является потенциальным каналом связи с компьютером-жертвой, а каждое приложение или служба представляет собой точку атаки, если хакер знает об уязвимых местах системы (или имеет соответствующую программу).
ПРОБЛЕМА. Исследование червя Nimda
Это исследование основано на данных отчета "Nimda Incident Report" института SANS (© 2001). В сентябре 2001 г. червь под названием Nimda атаковал веб-сайты Microsoft IIS и вызвал отказ в обслуживании на тысячах сайтов.
Nimda серьезно нарушил целостность и безопасность атакованных систем, что позволило злоумышленникам завладеть полными привилегиями администраторов компьютеров-жертв, получить доступ ко всей файловой системе и внести бесчисленные изменения в системные файлы и настройки реестра.
Червь распространял сам себя на новые компьютеры посредством четырех отдельных механизмов.
Червь сканировал интернет на предмет веб-серверов и использовал их уязвимые места для получения контроля над жертвой, включая уязвимые места "IIS/Personal Web Services Extended Unicode Directory Traversal Vulnerability", "IIS/PWS Escaped Character Decoding Command Execution Vulnerability" и "черные ходы", оставленных червем Code Red II (см. далее). После получения контроля над жертвой – сервером IIS/PWS – червь через протокол FTP передавал свой код с атакующего компьютера на следующую жертву.Червь осуществлял сбор адресов электронной почты из адресной книги Windows, папок с входящими и исходящими сообщениями, а также из локальных файлов HTML/HTM и отправлял себя по всем адресам во вложении к сообщению электронной почты в виде файла readme.exe.Если червю удавалось заразить веб-сервер, он использовал службу HTTP для распространения себя на клиентов, просматривающих страницы этого веб-сервера. После инфицирования сервера-жертвы червь создавал свою копию в виде файла REAMDE.EML и осуществлял прохождение по дереву каталогов в поиске связанных с интернетом файлов с расширением .HTML, .HTM и .ASP. Каждый раз, когда червь находил файл с веб-содержимым, он присоединял к файлу фрагмент кода JavaScript. Код JavaScript вызывал принудительную загрузку файла README.EML на компьютер любого пользователя, просматривающего файл через браузер.Червь поддерживал работу в сети и распространялся через открытые общие файловые ресурсы.
Он копировал себя во все каталоги, включая каталоги в общем сетевом расположении, для которых пользователь имел разрешение на запись. Червь осуществлял поиск исполняемых файлов на устройствах общего доступа и присоединял себя к каждому из них. Зараженным становился всякий узел, с которого осуществлялся доступ к общему сетевому расположению и загружался один из этих файлов.
Механизмы распространения на серверы IIS, описанные выше, требуют сканирования интернета инфицированной системой на предмет поиска уязвимых серверов IIS. Данный червь осуществлял заражение своих соседей по IP-адресу. Он выбирал узлы с идентичной первой или второй частью (имеется в виду адрес с идентичным значением в крайних правых полях, например, xxx.xxx.654.3210). Это действие приводило к массовой сетевой активности на сайтах с несколькими зараженными системами. В частности, можно было наблюдать эффект переполнения протокола ARP в зависимости от топологии сети жертвы.
Червь вносил бесчисленное множество изменений в файловую систему жертвы, включая создание большого числа копий самого себя под различными именами. В некоторых случаях создавалось столько копий червя, что оказывалось занятым все пространство жесткого диска. Именами файлов червя являлись Admin.dll, Load.exe, MMC.EXE, readme.exe, Riched20.dll и MEP*.TMP.EXE.
Действие червя зависело от операционной системы жертвы, от имени файла, под видом которого выполнялся червь, а также от параметров командной строки, использованных при выполнении программы. При заражении жертвы червь Nimda открывал общий доступ через сеть к каждому локальному диску. В операционных системах Windows 95/98/Me доступ открывался без всякого пароля. В системах Windows NT/2000 пользователю Guest присваивалось разрешение на доступ ко всем общим ресурсам, причем он добавлялся в группу пользователей Администратор. Червь сводил к нулю всю защиту общих сетевых ресурсов в системах Windows NT/2000.
Для сканирования сети червь запускал до двухсот нитей (подпроцессов). Это действие вызывало значительную загрузку зараженного компьютера и всей сети.
ARP, генерируемые сканирующей системой, или запросы DNS, генерируемые системой, отправляющей червь Nimda в сообщениях электронной почты, вызывали ошибки, выглядевшие как явные DoS-атаки. Дальнейший анализ с помощью дизассемблера показал, что червь Nimda повторно входил в фазу распространения через электронную почту каждые десять дней.
Особенности "троянских коней". "Троянский конь" представляет собой программу, размещаемую на компьютере, который предполагается использовать в дальнейшем. Термин, взятый из греческой мифологии, означает подаренного городу Троя гигантского коня, внутри которого находились греческие солдаты, атаковавшие город. Такая аналогия очень удачна, так как "троянские кони", в основном, используются для осуществления атаки на взлом с целью оставить "открытые двери" в систему, либо устанавливаются после успешного взлома в качестве "черных ходов", которые позволят хакеру вновь проникнуть в систему.
"Троянское кони" могут физически устанавливаться изнутри сети (опять мы имеем дело с внутренней угрозой), через электронную почту или веб-страницу, легкомысленно открытую получателем. Все это похоже на атаки с использованием вирусов, не правда ли? Другими словами, сообщение электронной почты или веб-страница, внедряющая "троянского коня", содержит вирус или червь с определенным типом действия (троянскую программу). Однако вирус наносит ущерб, как правило, сразу после первого запуска программы. Что касается "троянских коней",то они скрытно находятся в системе на протяжении некоторого времени, пока не представится возможность для нанесения удара.
Независимо от способа доставки, если не обнаружить и не удалить "троянского коня", он будет оставаться на компьютере до тех пор, пока не удалит себя сам, или пока хакер не решит, что "троянский конь" ему больше не нужен. Пока "троянский конь" присутствует в системе жертвы, он находится в полном распоряжении хакера.
" Троянские кони" используются самыми различными способами. Некоторые из них являются одноразовыми вредоносными программами, настроенными на удаление в определенное время. Другие выполняют функции, упрощающие выполнение задуманных действий хакера, такие программы называются агентами.
Одним из распространенных типов агентов является прослушивающая программа (sniffer), отслеживающая сообщения электронной почты, сетевые пакеты, клавиатуры, память компьютера и другие компоненты системы. Другой распространенный агент носит название Remote Access Trojan (RAT). RAT позволяет хакеру захватить управление компьютером или сервером и удаленно выполнять команды. Многие из программ "троянский конь", известные в хакерских кругах, комбинируют элементы снифферов и возможностей RAT.
При осуществлении атаки с помощью "троянского коня" такая комбинация используется довольно часто. Роль сниффера заключается в выявлении идентификаторов и паролей входа в систему. Он записывает нажимаемые пользователями клавиши или пакеты, отправляемые компьютером в сеть. Механизм записи зависит от типа прослушивающей программы. Сниффер может записывать данные в журнал, который потом просматривается хакером. В этот момент используется компонент атаки, реализующий удаленный контроль. RAT будет служить "черным ходом" для входа и просмотра файла журнала. Если на компьютере жертвы нет "черного хода", прослушивающая программа отправит журнал по электронной почте. В любом случае, просмотрев журнал, хакер найдет нужную для себя информацию.
При использовании инструментов, принятых в хакерском сообществе, суровой реальностью атаки с помощью "троянского коня" является то, что хакер, ответственный за конкретную атаку, является не единственным человеком, который использует "троянского коня" после его загрузки на компьютер-жертву. Хакерские средства настроены на работу с определенными портами. Из этого следует, что сканер портов может обнаружить уже размещенных в системах удаленно контролируемых "троянских коней".Всякий пользователь, выявивший присутствие "троянского коня", сможет получить доступ ко всем ресурсам, раскрываемым данной программой, даже если она была размещена на компьютере другим хакером.
ПРОБЛЕМА. Исследование: новый анализ червя Code Red II
Данное исследование проведено компанией CNET New.com (© 2001). В июле 2001 г. червь под названием Code Red атаковал и заразил тысячи серверов Windows 2000. Несколькими неделями спустя, в августе 2001 г., мутировавшая форма червя под названием Code Red II использовала тот же механизм, что и Code Red, для заражения уязвимых серверов IIS, на которых не была устранена прямая опасность переполнения буфера в idq.dll, или не были удалены отображения сценариев ISS ISAPI.
Совет. О том, как устранить уязвимое место, связанное с возможностью переполнения буфера, вы узнаете в лекции 3.
За исключением механизма переполнения буфера для выполнения кода червя на уязвимом сервере IIS червь Code Red II коренным образом отличался от исходных вариантов червя Code Red CRv1 и CRv2.
Червь Code Red II имел несколько опасных особенностей. Самой серьезной из них являлось то, что червь создавал "черный ход" посредством размещения "троянского коня" в файле CMD.EXE на зараженном сервере, что делало систему абсолютно открытой для любого хакера.
Червь копировал файл %windir%\CMD.EXE в следующие места:
c:\inetpub\scripts\root.exe;c:\progra~1\common~1\system\MSADC\root.exe;d:\inetpub\scripts\root.exe;d:\progra~1\common~1\system\MSADC\root.exe.
"Черный ход" позволял хакеру выполнять любые команды на взломанном сервере.
Кроме того, червь размещал на системе-жертве второго "троянского коня", являвшегося модифицированной версией файла explorer.exe (Диспетчер рабочего стола), который давал удаленному хакеру беспрепятственный доступ к корневым каталогам C: и D: после следующего входа пользователя в систему (если в системе не было устранено уязвимое место "Relative Shell Path"); это стало возможным благодаря способу, которым Windows по умолчанию осуществляет поиск исполняемых файлов.
Совет. В лекции 3 будет рассказываться о том, как устранить уязвимое место "Relative Shell Path", связанное с относительным путем оболочки.
По прошествии времени распространения инфекции система принудительно перезагружалась.
При перезагрузке из памяти удалялся резидентный червь, а "черные ходы" и explorer.exe оставались на месте.
При первом попадании червя на компьютер-жертву и его выполнении осуществлялась проверка заражения данного сервера, в этом случае червь отключал сам себя. После создания "троянских коней" в виде файлов explorer.exe процессы создания файлов приостанавливались. Каждые 10 минут они повторялись с выполнением всех своих процедур, поэтому даже если администратор обнаруживал в реестре параметры, открывающие доступ к C: и D: и удалял их, через несколько минут "троянский конь" прописывал настройки заново.
Червь выбирал жертву, автоматически сканируя системы и определяя, устранены ли на них уязвимые места, связанные с файлом idq.dll и с отображениями сценариев ISS ISAPI, которые использовались для переполнения буфера. После успешного подключения к цели подпроцесс червя отгружал весь код червя на удаленный компьютер, ожидал подтверждения, после чего продолжал поиск и заражение других узлов.
ПРОБЛЕМА. Исследование вируса W32.Simile
Данное исследование базируется на данных компании Symantec Corp., (© 2001). Вирус W32.Simile заражал исполняемые фалы в папках на всех жестких дисках компьютера-жертвы и на любых удаленных устройствах, с которыми взаимодействовал этот компьютер. Вирус не представлял серьезной опасности, однако в определенные дни осуществлялось отображение сообщений.
Вирус содержал строку "Metaphor v1 by The Mental Driller/29A". Эта строка отображалась 17 мая, июня, сентября и декабря после запуска инфицированного исполняемого файла. 14 мая на всех компьютерах с поддержкой шрифта Hebrew отображалось сообщение "Free Palestine!".
Предполагалось, что 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, .vxd и т.д.). В иных случаях файлы червей заменяют собой легальные исполняемые файлы, что вовсе создает впечатление о неизменности набора файлов в системе.
Создатель червя усложняет процесс его устранения требованием более высоких привилегий, нежели уровень пользователя компьютера, на котором червь был установлен.
Как и вирус, червь может мутировать и изменять свой внешний вид, чтобы всегда быть на шаг впереди своих противников.Такие программы, как VBS Worm Generator (доступна в интернете), значительно упрощают создание мутированных версий ранее созданных червей. Ущерб, наносимый мутирующим червем, огромен, о чем свидетельствуют факты, приведенные ниже.
увеличить изображение
Рис. 2.5. Червь Code Red распространился более чем на 350 000 серверов за 13 часов
ПРОБЛЕМА. TCP-соединения
Если вы знакомы с принципами установки соединений TCP, то вам будет легче разобраться в способах реализации атак с использованием протоколов. Для надежной транспортировки данных узлы TCP устанавливают между собой сеансы соединения посредством механизма "трехстороннего рукопожатия".
Механизм подключения использует проверочные биты, имеющиеся в передающихся между узлами пакетах. Ниже приведен перечень проверочных битов с указанием назначения каждого из них.
ACK – подтверждает успешный запрос на установку соединения.RST – вызывает принудительный сброс соединения.SYN – осуществляет синхронизацию последовательных счетчиков соединения.FIN – сообщает об отсутствии данных и закрывает соединение.
"Трехстороннее рукопожатие" проводит синхронизацию соединения с обоих концов, что позволяет обеим сторонам согласовываться по начальным номерам последовательности. Этот механизм гарантирует готовность обеих сторон к передаче данных и то, что стороны знают о своей готовности. Необходимо, чтобы пакеты не передавались вообще или не передавались повторно во время установки сессии или после ее завершения.
Каждый узел случайным методом выбирает номер последовательности, используемый для учета байтов в потоке отправляемых и принимаемых данных. После этого вступает в действие механизм "трехсторонего рукопожатия", работа которого заключается в следующем.
Первый узел (узел А) инициирует соединение посредством отправки пакета с начальным номером последовательности (Х) и битом SYN для обозначения запроса на соединение.Второй узел (узел B) принимает SYN, записывает номер последовательности X и отправляет ответ посредством подтверждения SYN (пакет c битом ACK = X + 1). Узел B указывает свой собственный начальный номер последовательности (SEQ = Y). Если ACK = 20, это значит, что узел принял байты с 0 по 19 и ожидает приема байта 20. Такой подход называется предварительным подтверждением.Узел A подтверждает все отправленные узлом B байты с помощью предварительного подтверждения, что означает ожидание узлом A следующего байта (ACK = Y + 1).Начинается обмен данными.
Методы сканирования UDP менее эффективны, чем сканирование TCP, так как атрибуты и возможности этих протоколов различны. В процессе передачи данных через UDP происходит мало "рукопожатий" и установок соединения, поэтому средство сканирования не сможет собрать достаточно информации. Тем не менее, сканирование UDP используется хакерами; многие программы типа "троянский конь", такие как Back Orifice, используют протокол UDP, так как трафик UDP сложнее обнаружить и остановить. В результате средство сканирования UDP может найти "черный ход" через уже имеющуюся на жертве программу "троянский конь".
Средства сканирования UDP отправляют на порт пустые пакеты, ответ на которые и будет информативным результатом сканирования. Если порт закрыт, операционная система ответит, что данный порт недоступен. Если порт открыт, то пустой пакет, скорее всего, будет проигнорирован. Следовательно, отсутствие ответа обычно означает, что порт открыт, если только порт не защищен устройством периметровой защиты, блокирующим весь трафик UDP.
Протоколы интернета
Аббревиатура "IP" является сокращением от Internet Protocol (Протокол интернета), т.е. от названия одного из протоколов TCP/IP. Его роль заключается в идентификации компьютеров (называемых узлами или хостами), между которыми производится обмен данными.
Протокол Internet Control Message Protocol (ICMP) функционирует параллельно протоколу IP и позволяет маршрутизаторам отправлять сообщения друг другу для определения оптимального и надежного пути от одного компьютера к другому в сложнейшей среде глобальной сети. На рисунке 2.1 приведена схема инфраструктуры интернета и показан принцип IP-адресации.
увеличить изображение
Рис. 2.1. Протоколы интернета позволяют системам обмениваться информацией независимо от их физического расположения
Протоколы Transmission Control Protocol (TCP) и User Datagram Protocol (UDP) (в меньшей степени) используются для управления транспортировкой данных между двумя компьютерами. С их помощью открываются и закрываются соединения, доставляются и верифицируются данные при обмене информацией.
Распределенный отказ в обслуживании
Уязвимые места DoS существовали на компьютерах с самого начала появления ЭВМ. Хакеры вызывали отказ в обслуживании систем посредством физической атаки (отключая электроэнергию) или посредством других атак с вторжением. Злоумышленники освоили атаки как с внутренней, так и с наружной стороны системы.
Внешние атаки на отказ в обслуживании осуществляются через сеть интернет. Например, при использовании одного известного эксплоита, называемого "атакой Smurf" (Smurf – автоматизированное средство для выполнения этой атаки) хакер отправляет большой ping-трафика ICMP по широкому рассеянному диапазону IP-адресов. Эта атака срабатывает, потому что большая часть подключенных к интернету маршрутизаторов и узлов отвечают на ping-запросы рассеянными ECHO-пакетами. Таким образом, в сети интернет с экспоненциальной скоростью растет количество пакетов, что и вызывает отказ в обслуживании.
В течение последних двух лет выявлена новая DoS-уязвимость. С помощью метода, называемого распределенным отказом в обслуживании (DDoS), можно задействовать большое число компьютеров сети для перегрузки и выхода из строя одного веб-сайта. Атака DDoS в течение долгого времени обосновывалась лишь теоретически. Однако 7-го и 8-го февраля 2000 г. она была успешно реализована на сайтах Yahoo!, Amazon, eBay, Buy.com, CNN, E*TRADE и ZDNet.
Как и атаки с применением вредоносного кода, распределенные атаки DDoS попадают в категорию эксплоитов, которым трудно противостоять, так как злоумышленникам не требуется проникновение в систему для успешной реализации атаки. Скорее всего, такие атаки будут еще долгое время будоражить сознание специалистов в области информационной безопасности.
Сценарии и Java-апплеты
Интерактивные веб-страницы, уязвимые для вредоносных сценариев и апплетов, являются довольно новым аспектом веб-безопасности. Это уязвимое место связано с использованием 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 и осуществлял его вход в систему для продолжения сеанса.
Потенциальный размер ущерба от этой атаки был огромен. Получив полный контроль над учетной записью, хакер имел возможность выполнять следующие действия.
Загружать файлы с диска Z жертвы.Удалять/заменять файлы на диске Z.Осуществлять доступ и изменять контактную информацию жертвы.Осуществлять доступ и изменять информацию, хранимую в календаре или расписании жертвы.Изменять имя и пароль пользователя для запрета доступа пользователя к своей учетной записи.Осуществлять доступ к любым общим устройствам диска Z из вторичных учетных записей.Читать и удалять сообщения электронной почты Zkey или отправлять сообщения почты Zkey от имени жертвы.Осуществлять доступ к электронной почте с любых вторичных учетных записей электронной почты, настроенных на проверку почты.
После демонстрации своих возможностей хакер поставил руководство портала Zkey в неудобное положение, придав огласке наличие уязвимого места. В качестве рекламы самого себя он заявил, что, несмотря на использование сайтом протокола защищенных сокетов SSL и наличие фильтров у службы электронной почты, он смог преодолеть оба барьера защиты.
Стратегия атак DDoS
Известные на сегодняшний день атаки DDoS попадают либо в категорию атак типа "flood" (перегрузка сети огромным числом пакетов), либо в категорию атак, использующих предумышленно некорректные пакеты. Атаки на перегрузку выводят сайты из строя посредством использования протоколов TCP для перегрузки маршрутизаторов и серверов, обеспечивающих работу сайтов. Принцип этих атак заключается в том, что после их осуществления пропускная способность каналов связи сводится к нулю, и становится невозможным обслуживание легальных пользователей, пытающихся открыть сайт в своих браузерах.
Атаки с применением некорректных пакетов осуществляются через выявление уязвимых серверов, не поддерживающих ошибки. Отправка пакетов, размер которых превышает допустимую норму для IP-пакетов, или пакетов с одним и тем же IP-адресом источника и пункта назначения, может вывести из строя такие системы.
Для успешного осуществления атака DDoS должна производиться с набора систем, совместные действия которых помогут вывести из строя компьютер-жертву. Иногда атака планируется группой хакеров. Каждая система в такой атаке выполняет свою собственную роль. В модели атаки, приведенной на рис. 2.6, используются системы, выполняющих два различных набора функций и совместно атакующие систему-цель.
С главной атакующей системы осуществляется управление вспомогательными системами, каждая из которых, в свою очередь, управляет группой агентов, генерирующих сетевой трафик. Если хакеру необходимо привлечь произвольные системы в качестве вспомогательных узлов, он с помощью различных методов сканирования захватит управление необходимыми системами, после чего установит на них средства, необходимые для реализации атаки.
увеличить изображение
Рис. 2.6. Сокрушение системы-жертвы с помощью атаки DDoS
Учетные записи со слабыми или несуществующими паролями
Большая часть операционных систем изначально настроена на использование паролей, что является первой и единственной преградой на пути злоумышленника. Если злоумышленник определит имя и пароль учетной записи, он сможет войти в сеть.
Во многих системах содержатся встроенные учетные записи, учетные записи по умолчанию с паролями по умолчанию. Такие учетные записи имеют один и тот же пароль во всех установленных копиях программного продукта. Злоумышленники, как правило, проверяют их наличие, так как они хорошо известны в хакерских кругах. Удивительно большое число администраторов допускают существование этих учетных записей в своих системах.
Легко угадываемые пароли представляют собой большую проблему, так как злоумышленники используют "грубые" атаки (т.е. атаки, заключающиеся в попытках угадать пароль) или атаки с применением словарей паролей, генерирующих слова и комбинации символов. Если длина пароля мала, и он состоит только из букв алфавита, то его взлом для хакера – не проблема.
Для предотвращения таких атак администраторам и пользователям нужно избегать использования в паролях имен людей, домашних животных или названий мест. Сложность угадывания пароля зависит от количества символов в пароле: чем больше символов, тем труднее угадать пароль. Используйте при работе так называемые сильные пароли, состоящие, как минимум, из восьми символов и являющихся комбинациями чисел, специальных знаков пунктуации и букв алфавита в верхнем и нижнем регистрах (если система позволяет указывать пароли с разным регистром символов).
Угроза универсального кода Unicode (прохождение папок веб-сервера)
Универсальный код Unicode представляет собой производственный стандарт программного обеспечения, облегчающий адаптацию программных продуктов для различных операционных систем и переводящий содержимое веб-сайта (программы) на различные языки. В данном стандарте каждому символу присвоен уникальный номер независимо от платформы, программы или языка. Стандарт Unicode одобрен большинством производителей программного обеспечения, включая Microsoft, а исходный код Unicode является частью Windows 2000 и IIS.
Использование стандарта Unicode в продуктах Microsoft послужило причиной возникновения уязвимого места. Отправив на сервер IIS особым образом написанный адреса URL, содержащий некорректную последовательность Unicode UTF-8, злоумышленник может вызвать беспорядочный проход системы по каталогам и выполнение случайных сценариев. Эта атака также известна под названием атаки на прохождение каталогов (directory traversal attack). Если хакер осуществит эту атаку, то сможет запустить свою собственную программу, внедренную на сервер.
Уязвимая программа CGI
Большая часть серверов, включая Microsoft IIS, поддерживает программы общего шлюзового интерфейса (Common Cateway Interface, CGI), обеспечивающие работу с веб-страницами и возможность поиска и сбора данных. К сожалению, несанкционированный доступ к этим программам позволит получить прямой доступ к операционной системе веб-сервера и запустить программу с привилегиями программного обеспечения самого веб-сервера. В атаках на взлом CGI используются их уязвимые места для повреждения веб-страниц, хищения информации о кредитных картах, установки "черных ходов" для дальнейших вторжений.
В зависимости от использования сценариев и/или CGI предпринимаются меры по защите. Надстройки безопасности Microsoft устраняют некоторые уязвимые места IIS, возникающие при использовании сценариев. В лекции 11 рассказывается об этих мерах.
Уязвимость зашифрованных паролей в Security Accounts Manager (SAM)
Несмотря на то, что большинству пользователей Windows не требуется поддержка LAN Manager (Диспетчер локальной сети), в системах Windows NT и Windows 2000 в SAM (Диспетчер безопасности учетных записей) наряду с другими паролями по умолчанию хранятся зашифрованные пароли LAN Manager. Так как LAN Manager использует более уязвимую схему шифрования, чем остальные продукты Microsoft, пароли LAN Manager можно взломать за относительно короткий промежуток времени. Даже пароли, зашифрованные с помощью мощных алгоритмов, взламываются менее чем за месяц.
Уязвимость паролей в LAN Manager заключается в том, что пароли всегда дополняются или урезаются до 14 символов и разбиваются на два семисимвольных отрезка; эта схема и упрощает их взлом. Программе по взлому паролей нужно взломать только два семисимвольных пароля даже без проверки символов нижнего регистра. LAN Manager уязвим и к перехвату зашифрованных паролей. Это относится как к Microsoft Windows NT, так и к Windows 2000.
Важно. Не откладывайте установку обновлений Microsoft Service Pack и Security Update, которые устраняют эти уязвимые места, если действующий веб-сайт от них не защищен. Перечень уязвимых мест открыт для общего пользования, поэтому можно предположить, что хакеры изучили его и имеют дополнительную информацию, доступную в хакерских кругах. Не позволяйте хакерам опережать вас!
Уязвимые места, зависящие от платформы
В дополнение к общим уязвимым местам каждая вычислительная платформа имеет свой собственный уникальный набор уязвимых мест. Из-за своей широкой популярности Windows 2000 и IIS подвергаются более частым атакам, и их уязвимые места представляют большую опасность. Далее мы расскажем обо всех уязвимых местах, известных на момент написания книги. Все они устраняются с помощью установки Microsoft Service Pack 2 для Windows 2000, однако появляются новые опасности, поэтому регулярно проверяйте перечень уязвимых мест на веб-сайте SANS по адресу http://www.sans.org/top20.htm.
Утечка информации через соединения недействительной сессии
В системах Windows NT и Windows 2000 многие локальные службы работают в учетной записи SYSTEM или LocalSystem (для Windows 2000). Эта учетная запись используется в критических системных операциях. При получении одним компьютером системных данных с другого компьютера учетная запись SYSTEM открывает недействительную сессию соединения для этого компьютера.
Учетная запись SYSTEM имеет неограниченные привилегии и не требует пароля при доступе, поэтому пользователь не сможет войти в систему под этой учетной записью. Учетной записи SYSTEM иногда требуется доступ к информации, расположенной на других компьютерах и представляющей собой общие файлы SMB, имена пользователей и т.д. Так как она не может войти в систему с помощью идентификатора пользователя и пароля, то использует для получения доступа недействительный сеанс соединения. К сожалению, с помощью недействительного сеанса осуществляют вход в систему и злоумышленники. Это относится как к Windows 2000, так и к Windows NT.
Вирусы, черви и "троянские кони"
Различия между вирусами, червями и "троянскими конями" совсем незначительны. Эти вредоносные программы отличаются друг от друга по своей форме и способу воздействия. Ниже приведены определения этих программ, взятые из глоссария терминов Агентства национальной безопасности США.
Вирус – программа, которая может "заражать" другие программы, зачастую скрываясь в них, посредством внедрения в их тело копии самой себя (возможно, эволюционировавшей). Вирусы часто используются для выполнения различных злоумышленных действий. Для распространения вирусу необходима базовая программа.Червь – независимая, самодостаточная программа или алгоритм, распространяющая себя среди компьютеров через сетевые соединения, как правило, выполняющая вредоносные действия, которые заключаются в использовании ресурсов компьютеров, засорении сетей и информационных систем вследствие самораспространения программы."Троянский конь" – внешне полезная и безобидная программа, содержащая скрытый код, который может осуществлять несанкционированный сбор, использование, фальсифицирование и уничтожение данных. В отличие от вируса и червя "троянский конь" не распространяет сам себя, однако не менее вредоносен.
На практике некоторые атаки с использованием вредоносного кода реализуются посредством комбинации каждого из трех типов в некий гибрид. По этой причине границы между типами вредоносного программного обеспечения размыты, а классические определения – некорректны. Тем не менее, с помощью определений можно составить некоторую классификацию. Большую опасность представляет то, что атаки с использованием вредоносных программ осуществляются множеством различных способов с разнообразными методами маскировки и всевозможными хитроумными уловками. Вы можете не заметить скрытой угрозы, но нужно находиться в постоянной готовности, чтобы противостоять ей.
При атаке с применением вредоносного кода обычно выполняется одно (в худшем случае, все) из перечисленных действий.
Выполнение вредоносного кода.
Это код в любой из своих форм представляет исполняемые программные инструкции. Независимо от того, является ли он вирусом, червем или "троянским конем", после загрузки инструкций программы в память компьютера может быть перехвачено управление системными ресурсами, вплоть до выполнения любых действий, соответствующих уровню безопасности текущего пользователя в операционной системе. Во вредоносном коде содержатся любые инструкции, начиная от отображения сообщений на экране и заканчивая удалением всех файлов с жесткого диска компьютера.Сокрытие следов действия. Чтобы не быть обнаруженной, вредоносная программа скрывает следы своего присутствия в системе. Например, вирус, заразивший загрузочный сектор диска, будет загружаться при запуске операционной системы, что поможет ему "затеряться" в перечне запускаемых файлов.Самораспространение. После загрузки в память вредоносный код использует различные методы заражения или проникновения в другие файлы, программы и компьютеры, с которыми он вступает во взаимодействие. Если вредоносный код изначально доставлен и внедрен через сообщение электронной почты, он попытается использовать электронную почту своего несущего компьютера для распространения на другие компьютеры. Если вредоносным кодом является макровирус, он загружается при открытии несущего документа и заражает другие документы, создаваемые в данном приложении.
Особенности вирусов. Определение вируса является слишком упрощенным, но все же полезным. Существует множество вирусов, каждый из которых имеет свои индивидуальные особенности. Вирусы обычно попадают на компьютер при помощи пользователей, после чего распространяются на другие компьютеры, с которыми он взаимодействует. Например, вирусы загрузочных секторов заражают файлы на дисках и распространяются при обмене дискетами. Макровирусы инфицируют объекты и распространяются через обмен файлами широко используемого приложения. Почтовые вирусы распространяются через сообщения электронной почты, отправляемые почтовым клиентом.
Вирусы скрываются в веб-страницах и заражают веб- сайты через браузеры посетивших их пользователей. Существуют также гибриды вирусов.
Постоянно увеличивающаяся сложность и изощренность вирусов представляет собой серьезную проблему для профессионалов в области информационной безопасности. Сетевые экраны не способны серьезно противостоять вирусам, если политика безопасности позволяет обмениваться сообщениями электронной почты, а брандмауэр настроен на беспрепятственное прохождение соответствующих пакетов данных. Программное обеспечение, предназначенное для обнаружения вирусов, приносит ощутимую пользу, но это относится только к известным вирусам, в то время как без помех распространяются новые вирусы, не распознаваемые программой защиты.
Все вирусы похожи друг на друга тем, что они являются программами, содержащими инструкции для выполнения, и написаны на языках программирования, включая C, Java, Visual Basic и языки макросов Microsoft Office. Вирусы вставляют самих себя в несущие файлы, что способствует их скорейшей загрузке в память компьютера. Они маскируются в загрузочном секторе диска или имеют вид файла операционной системы, добавляют себя в виде строк кода к телу программы, представляют макрос в файле данных или приложении к сообщению электронной почты, скрываются в сценарии JavaScript, Java-апплете, VB Script или элементе Active X на веб-странице. В любом случае после загрузки в память и выполнения файла с вредоносным кодом загружается и выполняется программа-вирус.
Некоторые вирусы, называемые полиморфными, мутируют и изменяются, преобразуясь в другие разновидности вирусов во избежание обнаружения и пресечения своих действий. Мутирующие вирусы осложняют работу программных систем защиты, осуществляющих обнаружение вирусов, которые работают по принципу нахождения характерных признаков вирусов, являющихся их ключевыми программными инструкциями. После изменения этих признаков в процессе мутации вирус нельзя будет обнаружить до тех пор, пока не обновится антивирусное программное обеспечение.
Возможно, за вами следят...
В лекции 1 говорилось, что одни хакеры находят свои цели случайным образом, а другие концентрируют внимание на конкретных целях, используя в качестве "орудия" отправку массовых ping-запросов. Координаты ответивших компьютеров помещаются в список потенциальных жертв. Если хакер идентифицировал сервер и "нацелился" на него, он выполнит ping-запрос (см. рис. 2.3), чтобы убедиться в его работе, перед дальнейшей разведкой или перед непосредственной атакой.
Сканирование является следующим этапом сбора информации и осуществляется изнутри или извне компьютерной сети. Это эффективный метод рекогносцировки, так как виртуально все приложения и службы, использующие интернет-коммуникации, осуществляют прием и отправку данных через один и тот же набор стандартных коммуникационных протоколов. Сканирование помогает хакеру определить, какие порты на целевом компьютере открыты, и какие приложения и службы запущены.
Рис. 2.3. еред выполнением атаки хакер осуществляет ping-запрос сервера-жертвы
Заданные по умолчанию настройки операционных систем и приложений
Большая часть программного обеспечения, включая операционные системы и приложения, поставляется с инсталляционной программой, автоматически копирующей и настраивающей его на компьютере. Однако инсталляционные программы зачастую устанавливают большее число компонентов, чем требуется. Многие администраторы не знают об этом, что приводит к появлению "дыр" в программном обеспечении их компьютерных систем.
При инсталляции приложений часто устанавливаются ненужные демонстрационные программы и сценарии. При установке операционной системы почти всегда инсталлируются дополнительные службы и соответствующие им открытые порты. Через эти порты злоумышленники и проникают в систему.
Одним из наиболее уязвимых мест в защите веб-сервера являются демонстрационные сценарии, которые используются злоумышленниками для несанкционированного доступа в систему или для получения информации о системе. Демонстрационные сценарии, как правило, не проходят контроля качества, которому подвергается другое программное обеспечение. В результате они становятся прекрасной целью для атак, вызывающих переполнение отведенной сценарию оперативной памяти, что позволяет злоумышленнику внедрить свою собственную программу в память и выполнить ее.
Решение этой проблемы, включающее в себя закрытие портов и удаление демонстрационных сценариев, является частью процесса, называемого усилением системы. Этот процесс будет детально обсуждаться в лекции 3.
Защита от атак DDoS
Защита от атак DDoS требует не меньших усилий, чем сама организация данной атаки. В сетях организаций, подключенных к интернету, должны использоваться сетевые экраны, настроенные на обнаружение массового потока ICMP-пакетов и на соответствующие ответные меры. Поставщики услуг интернета должны принимать все меры для защиты от возможных атак данного рода.
Начинающим пользователям следует удостовериться в отсутствии на их компьютерах средств для осуществления атак DdoS. Установите надстройки Microsoft Service Pack и "заплатки", устраняющие уязвимые места, перечисленные в перечне SANS/FBI Top 20. Это исключит возможность использования хакером системы в качестве принудительного агента атаки DDoS.
Злоумышленный или вредоносный код
Веб-сайты уязвимы для атак, заключающихся в распространении вирусов, червей или "троянских коней". Злоумышленные коды могут поступать из самых различных источников: сообщений электронной почты, при загрузке файлов, модифицированных адресов URL и др. Несмотря на то, что данная проблема является актуальной для всех систем, ее решение, как правило, специфично для каждой программной платформы. Например, многие вирусы воздействуют только на платформы Windows. Далее мы расскажем о вредоносных кодах.