Примеры распространенных уязвимостей
Лабораторная работа № 8.
Часть I. ВЫЯВЛЕНИЕ УЯЗВИМОСТЕЙ В КОМПЬЮТЕРНЫХ СИСТЕМАХ И ПОСТРОЕНИЕ ЛОКАЛЬНОЙ ПОЛИТИКИ ПАРОЛЕЙ
Цель работы: получить навык выявления уязвимостей операционной системы и разработки локальной политики паролей.
Оборудование: компьютер с операционной системой Windows, программа Microsoft Baseline Security analyzer, наличие доступа к ресурсам глобальной сети Internet.
Теоретическая часть
Термин «уязвимость» часто упоминается в связи с компьютерной безопасностью, во множестве самых различных контекстов.
В общем случае, уязвимость ассоциируется с нарушением политики безопасности, вызванным неправильно заданным набором правил или ошибкой в обеспечивающей безопасность компьютера программе. Стоит отметить, что теоретически все компьютерные системы имеют уязвимости. Но то, насколько велик потенциальный ущерб от вирусной атаки, использующей уязвимость, позволяет подразделять уязвимости на активно используемые и не используемые вовсе.
Предпринималось много попыток четко определить термин «уязвимость» и разделить два его значения. MITRE, исследовательская группа, финансируемая федеральным правительством США, занимающаяся анализом и разрешением критических проблем с безопасностью, разработала следующие определения:
[...] Уязвимость — это состояние вычислительной системы (или нескольких систем), которое позволяет [1]:
ü исполнять команды от имени другого пользователя;
ü получать доступ к информации, закрытой от доступа для данного пользователя;
ü показывать себя как иного пользователя или ресурс;
ü производить атаку типа «отказ в обслуживании».
Однако, считается, что атака, производимая вследствие слабой или неверно настроенной политики безопасности, лучше описывается термином «открытость» (exposure).
Открытость — это состояние вычислительной системы (или нескольких систем), которое не является уязвимостью, но:
ü позволяет атакующему производить сбор защищенной информации;
ü позволяет атакующему скрывать свою деятельность;
ü содержит возможности, которые работают корректно, но могут быть легко использованы в неблаговидных целях;
ü является первичной точкой входа в систему, которую атакующий может использовать для получения доступа или информации.
Когда хакер пытается получить неавторизованный доступ к системе, он производит сбор информации (расследование) о своем объекте, собирает любые доступные данные и затем использует слабость политики безопасности («открытость») или какую-либо уязвимость. Существующие уязвимости и открытости являются точками, требующими особенно внимательной проверки при настройке системы безопасности против неавторизованного вторжения.
Примеры распространенных уязвимостей
Наиболее распространенная в настоящее время на подключенных к интернету компьютерах операционная система Microsoft Windows содержит множественные опасные уязвимости. Чаще всего хакерами используются уязвимости в IIS (Internet Information Server), MS SQL и Internet Explorer, а также системах обработки файлов и сервисах сообщений самой операционной системы [1].
Уязвимость в IIS, подробно описанная в Microsoft Security Bulletin MS01-033, является одной из наиболее часто используемых уязвимостей Windows. В последние годы было написано множество сетевых червей, пользующихся данной уязвимостью, но одним из наиболее известных является CodeRed. Данный сетевой червь был впервые обнаружен 17 июля 2001 года, и, по некоторым оценкам, заразил около 300 тысяч компьютеров, помешал работе множества предприятий и нанес значительный финансовый ущерб компаниям по всему миру. Хотя Microsoft и выпустила вместе с бюллетенем MS01-033 патч, закрывающий используемую червем уязвимость, некоторые версии CodeRed до сих пор продолжают распространяться.
Сетевой червь Spida, обнаруженный спустя почти год после появления CodeRed, использовал для своего распространения открытость в MS SQL. Некоторые стандартные инсталляции MS SQL не защищали паролем системный аккаунт «SA», позволяя любому человеку с доступом к системе через сеть запускать на ней на исполнение произвольные команды. При использовании этой уязвимости, червь открывает аккаунту «Guest» полный доступ к файлам компьютера, после чего производит загрузку самого себя на заражаемый сервер.
Сетевой червь Slammer, обнаруженный в конце января 2003 года, использовал более простой способ заражения компьютеров под управлением Windows с работающим сервером MS SQL, а именно — уязвимость при переполнении буфера в одной из подпроцедур обработки UDP-пакетов. Поскольку червь был достаточно мал — всего 376 байт — и использовал протокол UDP, предназначенный для быстрой пересылки малых объемов данных, Slammer распространялся с невероятной скоростью. По некоторым оценкам, Slammer поразил порядка 75 тысяч компьютеров по всему миру за первые 15 минут эпидемии.