Уязвимости операционной системы

Материал из Энциклопедия фан-клуба Лаборатории Касперского
Перейти к: навигация, поиск

Уязвимости операционной системы, уязвимость (англ. vulnerability) — в компьютерной безопасности термин используется для обозначения недостатка в системе, используя который, можно нарушить её целостность и вызвать неправильную работу.

Содержание

Причины уязвимостей

Уязвимость может быть результатом ошибок программирования, недостатков, допущенных при проектировании системы, ненадёжных паролей, вирусов и других вредоносных программ, скриптовых, а также SQL-инъекций. Некоторые уязвимости известны только теоретически, другие же активно используются и имеют известные эксплойты.

Обычно уязвимость позволяет атакующему «обмануть» операционную систему — заставить её совершить действие, на которое нет прав. Это делается путём внедрения каким-либо образом в модули данных или кода в такие места, что операционная система воспримет их как «свои». Некоторые уязвимости появляются из-за недостаточной проверки данных, вводимых пользователем, и позволяют вставить в интерпретируемый код произвольные команды (SQL-инъекция, XSS). Другие уязвимости появляются из-за более сложных проблем, таких как запись данных в буфер без проверки его границ (переполнение буфера).


Метод информирования об уязвимостях является одним из пунктов спора в сообществе компьютерной безопасности. Некоторые специалисты отстаивают немедленное полное раскрытие информации об уязвимостях, как только они найдены. Другие советуют сообщать об уязвимостях только тем пользователям, которые подвергаются наибольшему риску, а полную информацию публиковать лишь после задержки или не публиковать совсем. Такие задержки могут позволить тем, кто был извещён, исправить ошибку при помощи разработки и применения патчей, но также могут и увеличивать риск для тех, кто не посвящён в детали.

Существуют инструментальные средства, которые могут помочь в обнаружении уязвимостей в системе. Хотя эти инструменты могут обеспечить аудитору хороший обзор возможных уязвимостей, существующих в системе, они не могут заменить участие человека в их оценке.

Предотвращение атак

Для обеспечения защищённости и целостности системы необходимо постоянно следить за ней: устанавливать обновления, и использовать инструменты, которые помогают противодействовать возможным атакам. Уязвимости обнаруживались во всех основных операционных системах, включая Microsoft Windows, Mac OS, различные варианты UNIX (в том числе GNU/Linux) и OpenVMS. Так как новые уязвимости находят непрерывно, единственный путь уменьшить вероятность их использования против системы — постоянная бдительность.

Примеры уязвимостей

Распространённые типы уязвимостей включают в себя:

Уязимости операционной системы Microsoft Windows

Наиболее распространённая в настоящее время на подключенных к интернету компьютерах операционная система Microsoft Windows содержит множественные опасные уязвимости. Чаще всего хакерами используются уязвимости в IIS, MS SQL и Internet Explorer, а также системах обработки файлов и сервисах сообщений самой операционной системы.

Уязвимость в IIS, подробно описанная в Microsoft Security Bulletin MS01-033, является одной из наиболее часто используемых уязвимостей Windows. В последние годы было написано множество сетевых червей, пользующихся данной уязвимостью, но одним из наиболее известных является CodeRed. 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 тысяч серверов по всему миру за первые 10 минут эпидемии.

Три этих характерных сетевых червя использовали уязвимости и открытости в программах, работающих на разных версиях Microsoft Windows, в то время как обнаруженный 11 августа 2003 года червь Lovesan использовал для своего распространения гораздо более опасную уязвимость при переполнении буфера в одном из основных компонентов самой Windows. Эта уязвимость подробно описана в Microsoft Security Bulletin MS03-026.

Sasser, впервые появившийся в мае 2004 года, использовал еще одну уязвимость в компоненте ядра Windows, в службе Local Security Authority Subsystem Service (LSASS). Информация об этой уязвимости была опубликована в Microsoft Security Bulletin MS04-011. Sasser распространялся молниеносно и заразил миллионы компьютеров, причинив огромный финансовый ущерб.

Уязвимости UNIX

Все операционные системы содержат уязвимости и открытости, которые могут быть использованы хакерами и создателями вирусов в своих целях. Хоть уязвимости Windows и получают наибольшее освещение из-за огромного числа компьютеров, работающих под управлением этой операционной системы, свои слабые места есть и у UNIX.

Годами одной из наиболее популярных открытостей в мире UNIX была служба finger. Эта служба позволяет пользователям вне какой-либо сети видеть, кто в настоящее время к этой сети подключен, с каких компьютеров и какие сетевые ресурсы используются. Finger полезен, но раскрывает слишком много интересной хакерам информации.

Вот пример того, как выглядит результат работы службы finger:

Login Name Tty Idle Login Time Office
xenon pts/7 22:34 May 12 16:00 (chrome.chiba)
polly pts/3 4d May 8 14:21
cracker DarkHacker pts/6 2d May 10 11:58

Из этой таблицы всем умеющим пользоваться службой finger становится доступна следующая информация: к сети подключено три пользователя, но два из них не обращались к ресурсам уже более двух суток, в то время как последний отошел от своего компьютера 22 минуты назад. Логины, которые демонстрирует сервис finger, можно использовать в процессе подбора комбинации логин-пароль. Это самый элементарный путь проникновения в систему, поскольку множество пользователей подбирают себе пароли на основе все тех же логинов (например, добавляя в конце логина какие-либо цифры).

Служба finger не только открывает важную информацию о сервере, на котором она работает, но является целью множества эксплойтов, одним из которых пользовался самый первый сетевой червь, созданный Робертом Моррисом (Robert Morris) 2 ноября 1988 года. По этой причине большинство современных дистрибутивов UNIX поставляются с отключенным сервисом finger.

Программа sendmail, изначально созданная Эриком Олмэном (Eric Allman), представляет собой еще один пример популярной цели для хакеров. Sendmail была разработана для осуществления пересылки электронной почты через интернет. Из-за большого числа операционных систем и компьютерных конфигураций Sendmail постепенно стала чудовищно сложной программой с длительной и поучительной историей обнаружения критических уязвимостей. Все тот же червь Morris использовал для своего распространения эксплойт уязвимости в sendmail наравне с уязвимостью в службе finger.

В мире UNIX есть множество других часто используемых уязвимостей в программных пакетах вроде SSH, Apache, WU-FTPD, BIND, IMAP/POP3 и в различных частях ядра ОС.

Все описанные выше инциденты позволяют сделать вывод, что сетевой червь или иная автоматизированная хакерская утилита, распространяющаяся через уязвимости в обычных подключенных к интернету компьютерах под управлением Windows, общее число которых, вероятно, превышает несколько сотен миллионов, представляет чрезвычайно серьезную угрозу стабильности и работоспособности всего интернета.

См. также

Ссылки

Личные инструменты
Пространства имён
Варианты
Действия
Навигация
Инструменты