Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ИБиЗИ_ч2.doc
Скачиваний:
98
Добавлен:
17.04.2015
Размер:
831.49 Кб
Скачать

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

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

Чаще всего используют уязвимости Windows в IIS. За последнее время было написано большое количество сетевых червей, которые используют эту уязвимость. Самы извесный из них – CoreRed. Впервые был обнаружен 17 июля 2001 года, и, по некоторым источникам, заразил около 300 тысяч компьютеров, помешал работе множества предприятий и нанес колосальный финансовый ущерб организациям по всему миру.

Сетевой червь Spida, обнаруженный спустя почти год после появления CodeRed, использовал для своего распространения открытость в MS SQL. Некоторые стандартные инсталляции MS SQL не защищали паролем системный аккаунт «SA», позволяя любому человеку с доступом к системе через сеть запускать на ней на исполнение произвольные команды. При использовании этой уязвимости, червь открывает аккаунту «Guest» полный доступ к файлам компьютера, после чего производит загрузку самого себя на заражаемый сервер.

Сетевой червь Slammer, обнаруженный в конце января 2003 года, использовал более простой способ заражения компьютеров под управлением Windows с работающим сервером MS SQL, а именно — уязвимость при переполнении буфера в одной из подпроцедур обработки UDP-пакетов. Поскольку червь был достаточно мал — всего 376 байт — и использовал протокол UDP, предназначенный для быстрой пересылки малых объемов данных, Slammer распространялся с невероятной скоростью. По некоторым оценкам, Slammer поразил порядка 75 тысяч компьютеров по всему миру за первые 15 минут эпидемии.

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

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

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

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

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

Причины существования уязвимостей в UNIX-системах

  1. Наличие демонов;

  2. Механизм SUID/SGID-процессов;

  3. Излишнее доверие;

  4. Человеческий фактор (ошибки пользователей или администратора).

Рис.1.1. Причины уязвимости UNIX

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

Причины, по которым демоны и SUID/SGID-процессы становятся уязвимыми:

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

  2. Наличие скрытых путей взаимодействия с программой, называемых "люками".

  3. Возможность подмены субъектов и объектов различным образом.

К первому пункту можно отнести классическую ситуацию с переполнением буфера или размерности массива. Заметим сразу, что конкретные атаки, несмотря на универсальность способа, всегда будут системозависимыми и ориентированными только на конкретную платформу и версию UNIX.

Люком или "черным входом" (backdoor) часто называют оставленную разработчиком недокументированную возможность взаимодействия с системой (чаще всего - входа в нее), например, известный только разработчику универсальный "пароль". Люки оставляют в конечных программах вследствие ошибки, не убрав отладочный код, или вследствие необходимости продолжения отладки уже в реальной системе из-за ее высокой сложности, или же из корыстных интересов. Люки - это любимый путь в удаленную систему не только у хакеров, но и у журналистов, и режиссеров вместе с подбором "главного" пароля перебором за минуту до взрыва, но, в отличие от последнего способа, люки реально существуют. Классический пример люка - это, конечно, отладочный режим в sendmail*.

*Вирус использовал функцию "debug" программы sendmail, которая устанавливала отладочный режим для текущего сеанса связи. Дополнительная возможность отладочного режима заключается в том, чтобы посылать сообщения, снабженные программой-получателем, которая запускается на удаленной машине и осуществляет прием сообщения. Эта возможность, не предусмотренная протоколом SMTP, использовалась разработчиками для отладки программы и в рабочей версии была оставлена по ошибке. Вследствие чего, была доступна для атаки. Спецификация программы, которая будет выполняться при получении почты, содержится в файле псевдонимов (aliases) программы sendmail или в пользовательском файле .forward. Такая спецификация используется программами, обрабатывающими или сортирующими почту, и не должна применяться самой программой sendmail. В вирусе эта программа-получатель содержала команды, убирающие заголовки почты, после чего посылала остаток сообщения командному интерпретатору, который создавал, компилировал и выполнял программу на языке С, служившую "абордажным крюком", и та, в свою очередь, принимала оставшиеся модули из атакующей машины. Вирус заражал компьютеры двух типов - VAX и Sun, поэтому пересылались двоичные коды для каждой архитектуры, оба запускались, но исполняться мог только один. В компьютерах других архитектур программы не могли функционировать, хотя и поглощали системные ресурсы в момент компиляции.

Многие особенности UNIX, такие как асинхронное выполнение процессов, развитые командный язык и файловая система, позволяют использовать механизмы подмены одного субъекта или объекта другим. В примере с Sendmail применялась замена имени файла или имени получателя на имя программы. Так и тут, может быть выполнена замена специальных переменных.Для некоторых версий Unix существует атака, связанная с подменой IFS (internal field separator - символ разделителя команд или функций) на символ "/". Это приводит к следующему: когда программа вызывает /bin/sh, вместо него вызывается файл bin с параметром sh в текущем каталоге. Весьма популярной подменой в Unix системах является создание ссылки (link)на критичный файл. После этого файл-ссылка некоторым образом получает дополнительные права доступа, и тем самым осуществляется несанкционированный доступ к исходному файлу.

И, конечно же, не стоит забывать о роли человека в обеспечении безопасности системы. Неправильное администрирование – весьма актуальная проблема, а для Unix она особо критична, так как сложность администрирования Unix систем давно уже всем известна, обычно этим и пользуются конкуренты. Но за все надо платить, а это – обратная сторона переносимости и гибкости Unix.

Настройка некоторых приложений давольно сложная процедура. Поэтому для поддержания работоспособности необходим специальный целовек – системный администратор, но даже он не всегда знает обо всех тонкостях тех или иных приложений, правильности их настройки.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]