830 likes | 1.31k Views
Уязвимости популярных операционных систем. Оценка уязвимости.
E N D
Уязвимости популярных операционных систем
Оценка уязвимости • Несовершенство операционных систем и программного обеспечения — едва ли не главная причина колоссального ущерба, нанесенного мировой экономике компьютерными злоумышленниками. Большинство хакерских атак становится возможными из-за наличия уязвимостей в существующих ОС и ПО. В Сети появляется все больше вредоносного кода, который использует их для проникновения в компьютеры, выполнения запрограммированных действий и дальнейшего своего распространения.
Оценка уязвимости • Одним из основных элементов безопасности является операционная система компьютера, так как именно она аккумулирует в себе подавляющую часть используемых механизмов защиты. Поэтому именно эффективность механизмов защиты ОС определяет уровень безопасности корпоративной сети и информационной системы предприятия в целом. • Текущее состояние защищенности системы может иметь одно из двух состояний: полностью защищена, либо полностью незащищена. Переход системы из одного состояние в другое осуществляется при обнаружении хотя бы одной уязвимости защиты, возвращение в исходное состояние — при устранении известной уязвимости.
Оценка уязвимости • Под уязвимостью системы защиты понимается такое ее свойство (недостаток), которое может быть использовано злоумышленником для осуществления несанкционированного доступа (НСД) к информации. При этом любая уязвимость системы защиты несет в себе угрозу осуществления злоумышленником НСД к информации, посредством реализации атаки на уязвимость в системе защиты. Таким образом, уязвимость системы защиты — это признак системы, а наличие (отсутствие) известных уязвимостей (известных, так как уязвимости в любой системе защиты присутствуют всегда) является характеристикой защищенности (текущего состояния защищенности) системы.
Оценка уязвимости • Как следствие, характеристикой защищенности системы следует считать не только реализованный в ней набор механизмов защиты, который должен быть достаточным для условий применения системы, но и продолжительность устранения известной уязвимости разработчиком системы. Причем каждый механизм защиты должен быть реализован корректно, как с точки зрения идеологической продуманности решения, так и с точки зрения ошибок программирования при реализации. Недостаточность и некорректность реализации механизмов защиты — две основные причины уязвимости системы.
Оценка уязвимости • Считая, что обнаружение каналов НСД к информации (уязвимостей) — (или в терминологии теории надежности — отказов системы защиты), и процесс их устранения являются пуассоновскими потоками (соответственно, с интенсивностями λ и μ), можно оценить с использованием простейшей формулы: • Ρ=1-λ/μ • Уязвимости устраняются по мере их обнаружения, иначе нельзя обеспечить высокую интенсивность исправлений. Надежность системы защиты — вероятность того, что в любой момент времени система защищена (определяется тем условием, что число не устраненных уязвимостей равно 0).
Оценка уязвимости • Значение 0,98 - лучшее значение надежности системы защиты в таблице. Оно достигается в том случае, если в среднем обнаруживается одна уязвимость в год при среднем времени ее восстановления разработчиком, составляющим одну неделю. При этом вероятность того, что в любой момент времени система защищена, равна 0,98, т.е. в любой момент времени с вероятностью 0,02 систему защиты можно считать отказавшей. Для современных систем это практически идеальная ситуация. Сегодня во многих современных системных средствах за год находится отнюдь не одна уязвимость, а продолжительность устранения уязвимости разработчиком может составлять несколько месяцев.
Оценка уязвимости • Используя данный подход, можно оценить защищенность современных ОС, с учетом того, что средняя задержка появления исправлений — один-два месяца. Обнаружение лишь 5 уязвимостей в год уже является достаточным для вывода о незащищенности системы. • Таким образом, безопасность ОС характеризуется не только достаточностью и корректностью реализации механизмов защиты, но и ошибками программирования, приводящими к уязвимостям, а также способностью разработчика системы быстро и качественно устранять подобные ошибки.
Статистика уязвимостей ОС семейства Windows • Используя статистику успешных атак, их можно сгруппировать на основании используемых уязвимостей. Объединение по различным признакам позволяет получить следующую классификацию : • получение имени и пароля ОС или БД (7%). В эту группу входят уязвимости позволяющие узнать из файлов и реестра имена и пароли пользователей системы, включая имя и пароль администратора; • получение имени и пароля других служб и приложений (13%). Такие уязвимости позволяют сделать тоже, что и в первой группе, но с учетом того, что несистемные имена и пароли могут совпадать с системными;
Статистика уязвимостей ОС семейства Windows • крах системы (7%). Уязвимости, приводящие к аварийному завершению работы системы в результате ошибки в ядре. Типичная настройка ОС Windows генерирует файл дампа памяти, в котором могут содержаться имена и пароли пользователей в том или ином виде; • использование некорректных настроек безопасности реестра (8%).Позволяет беспрепятственно читать и записывать информацию из/в реестр ОС. Поскольку реестр — это системная БД ОС, которой также пользуются и другие приложения, получив к нему полный доступ можно получить полный доступ и к ОС;
Статистика уязвимостей ОС семейства Windows • использование некорректных настроек файловой системы (4%). Для ОС Windows применяются файловые системы FAT и NTFS. Одни абсолютно не защищены (FAT), другие включают большое количество возможностей по защите (NTFS). Разрешения на чтение и запись в файловой системе позволяет узнавать конфиденциальную информацию и менять конфигурации ОС и приложений; • подмена адреса программы (4%) становится возможной, если получен доступ к реестру или файловой системе. Замена стандартных программ с известными именами на вредоносные, возможно скрытые программы, позволяет незаметно внедряться в систему, расширяя права до прав системы или администратора;
Статистика уязвимостей ОС семейства Windows • получение доступа к временным файлам (2%) Позволяет получить имена и пароли пользователей из временных файлов; • использование ошибок программирования (4%). Уязвимости, в результате наличия которых некорректно изменяются настройки безопасности после изменения состояния ОС, например переход в ждущий режим или запуск заставки. Некорректные настройки позволяют злоумышленнику расширить свои права в ОС; • перехват информации пользователя (1%). Позволяет получить имена и пароли, вводимые с клавиатуры или прочитать конфиденциальную информацию, вводимую пользователем;
Статистика уязвимостей ОС семейства Windows • использование ошибки каталога «..» (4%) (две точки). Полное имя файла включает в себя имена вложенных каталогов. Часто в конфигурациях безопасности явно указываются каталоги, к которым разрешен или запрещен доступ. Системный каталог «..» означает ссылку на родительский каталог данного каталога. Указав в пути к файлу системный каталог «..», из-за этого типа уязвимостей, можно получить доступ к файлам, изначально не подлежащим доступу. Кроме этого, уязвимость позволяет подменять одни файлы другими, включая исполняемые;
Статистика уязвимостей ОС семейства Windows • определение имени пользователя (3%) (information leak). Часто удаленные атаки, совершаемые злоумышленниками, имеют своей целью сбор первичной информации об атакуемой системе, а ряд уязвимостей позволяет удаленно получать список пользователей системы или имя текущего пользователя. Это позволяет более осмысленно искать недостающие пароли; • дезинформация пользователя (9%). Эти уязвимости позволяют совершать с системой вредоносные манипуляции, о которых система или приложения либо не сообщают пользователю, либо явно дезинформируют его в результате программных ошибок;
Статистика уязвимостей ОС семейства Windows • удаление и перезапись (3%). Уязвимости этой группы позволяют удалять следы пребывания в системе злоумышленника, позволяя некорректно стирать и перезаписывать системные журналы событий; • отождествлениеправсправамисистемы (26%) (priveledge escalation/elevation, protection bypass, buffer overflow). Ошибки компонентов системного ПО связанные с передачей или расширением прав приводят к выполнению произвольного кода с привилегиями системы или администратора. • Соотношение этих уязвимостей приведено на диаграмме.
Статистика уязвимостей ОС семейства Windows
Статистика уязвимостей ОС семейства Windows • Эти уязвимости известны, и должны устраняться разработчиком. Одна и та же уязвимость не должна из года в год присутствовать в системе. Если уязвимости присутствуют, возникает вопрос, почему они не устраняются разработчиками системы? • Причина в том, что разработчикам приложений предоставляется возможность запуска приложения под административными учетными записями. Это приводит к тому, что ошибка программирования в приложении может привести к несанкционирован-ному получению системных прав, как следствие, к возможности полного управления компьютером. В частности, эти уязвимости используются атаками «на переполнение буферов приложений», «некорректного олицетворение прав» и др.
Статистика уязвимостей ОС семейства Windows • Любая атака, позволяющая получить управление приложением в этом случае приводит к преодолению системы защиты. Ошибка в приложении, в котором априори не должно присутствовать механизмов защиты, приводит к преодолению защиты ОС. Таким образом, за безопасность ОС в общем случае отвечают не только разработчики ОС, но и разработчики приложений. • Ясно, что наиболее критичными являются именно уязвимости, основанные на архитектурных недостатках ОС. Устранение подобных уязвимостей весьма проблематично для разработчиков ОС, как следствие, подобные уязвимости «переносятся» ими в последующие версии системы.
Проблемы безопасности протоколов TCP/IP • Классифицируем действия злоумышленника — атаки, направленные против какого-либо узла (или целой сети). Злоумышленник ставит перед собой определенную цель: • 1. перехват (и, возможно, модификация) данных, передаваемых через сеть от одного узла другому; • 2. имперсонация (обезличивание, spoofing) (узел злоумышленника выдает себя за другой узел, чтобы воспользоваться какими-либо привилегиями имитируемого узла); • 3. несанкционированное подключение к сети; • 4. несанкционированная передача данных (обход правил фильтрации IP-трафика в сетях, защищенных брандмауэрами);
Проблемы безопасности протоколов TCP/IP • 5. принуждение узла к передаче данных на завышенной скорости; • 6. приведение узла в состояние, когда он не может нормально функционировать, передавать и принимать данные (так называемый DoS — denial of service, отказ в обслуживании). • Для достижения своих целей злоумышленник использует: • 1. прослушивание сети (sniffing); • 2. сканирование сети; • 3. генерация пакетов.
Проблемы безопасности протоколов TCP/IP • 1. Прослушивание сети • Прослушивание сети Ethernet является тривиальной задачей. Легко доступны программы, не только записывающие весь трафик в сегменте Ethernet, но и выполняющие его отбор по установленным критериям, например, программа tcpdump. • Подвержены прослушиванию сети FDDI и радиосети (например Radio Еthernet). Несколько сложнее для злоумышленника извлечь трафик из телефонных выделенных и коммутируемых линий. Однако злоумышленник может оккупировать промежуточный маршрутизатор и таким образом получить доступ ко всему транзитному трафику, независимо от используемых технологий на уровне доступа к сети.
Проблемы безопасности протоколов TCP/IP • Ограничить область прослушивания в сети Ethernet можно разбиением сети на сегменты с помощью коммутаторов. В этом случае злоумышленник, не прибегая к активным действиям, может перехватить только кадры, получаемые или отправляемые узлами сегмента, к которому он подключен. Единственным способом борьбы с прослушиванием сегмента Ethernet является шифрование данных. • Злоумышленник, прослушивающий сеть, может быть обнаружен с помощью дополнительного ПО, например, утилиты AntiSniff, которая выявляет в сети узлы, чьи интерфейсы переведены в режим прослушивания. AntiSniff выполняет три вида тестов узлов сегмента Ethernet. Тесты основаны на анализе реакции сетевых интерфейсов.
Проблемы безопасности протоколов TCP/IP • 2. Сканирование сети • Сканирование сети имеет своей целью выявление подключенных к сети компьютеров и определение работающих на них сетевых сервисов (открытых портов TCP или UDP). Первая задача выполняется посылкой ICMP-сообщений Echo с помощью программы ping с последовательным перебором адресов узлов в сети. • Администратор сети может обнаружить попытки сканирования путем анализа трафика в сети и отслеживания Echo-сообщений, за короткий промежуток времени посылаемых последовательно по всем адресам сети.
Проблемы безопасности протоколов TCP/IP • Программа traceroute поможет в определении топологии сети и обнаружении маршрутизаторов. • Для определения того, какие UDP- или TCP-приложения запущены на обнаруженных компьютерах, используются программы-сканеры, например, программа nmap. Поскольку номера портов всех основных сервисов Интернета стандартизованы, то, определив, например, что порт 25/TCP открыт, можно сделать вывод о том, что данный хост является сервером электронной почты, и т. д. Полученную информацию злоумышленник может использовать для развертывания атаки на уровне приложения.
Проблемы безопасности протоколов TCP/IP • Сканирование TCP-портов хоста производится несколькими способами. Наиболее простой способ — установление TCP-соединения с тестируемым портом с помощью стандартной программой telnet. Если соединение удалось установить, значит, порт открыт и к нему подсоединено серверное приложение. • Существенный недостаток — возможность отслеживания и регистрации такого сканирования: при анализе системного журнала сканируемого хоста будут обнаружены многочисленные открытые и сразу же прерванные соединения, в результате чего могут быть приняты меры по повышению уровня безопасности.
Проблемы безопасности протоколов TCP/IP • Сканирование в режиме половинного открытия (half-open scanning) и сканирование с помощью FIN-сегментов дают злоумышленнику больше шансов остаться незамеченными. • Программа tcplogd может зарегистрировать попытки сканирования в различных режимах. • Для определения открытых портов UDP злоумышленник может отправить на тестируемый порт UDP-сообщение. • Программа-сканер может определить операционную систему сканируемого узла по тому, как узел реагирует на нестандартные пакеты: например, TCP-сегменты с бессмысленными сочетаниями флагов или ICMP-сообщения некоторых типов, и др.
Проблемы безопасности протоколов TCP/IP • Для определения адресов работающих в сети компьютеров и запущенных на них UDP- или TCP-сервисов злоумышленник, непосредственно подключенный к сегменту сети, может использовать простое прослушивание. Такая форма сканирования сети является более скрытной, чем рассылка тестирующих датаграмм.
Проблемы безопасности протоколов TCP/IP • 3. Генерация пакетов • Под генерацией пакетов понимается создание и отправка специально сконструированных датаграмм или кадров, позволяющих злоумышленнику выполнить ту или иную атаку. Особо выделим здесь фальсификацию пакетов, то есть создание IP-датаграмм или кадров уровня доступа к сети, направленных якобы от другого узла (spoofing). • На многочисленных сайтах Интернета злоумышленник может найти уже готовые программы, генерирующие пакеты целенаправленно для выполнения какой-либо атаки или сканирования сети.
Проблемы безопасности протоколов TCP/IP • Вернемся к целям злоумышленников и рассмотрим способы их достижения. • 1. Перехват данных • Простейшей формой перехвата данных является прослушивание сети. В этом случае злоумышленник может получить массу полезной информации: имена пользователей и пароли (передаваемые в открытом виде), адреса компьютеров в сети, в том числе адреса серверов и запущенные на них приложения, адрес маршрутизатора, собственно передаваемые данные, которые могут быть конфиденциальными (например, тексты электронных писем) и т. п.
Проблемы безопасности протоколов TCP/IP • Однако, если сеть разбита на сегменты с помощью коммутаторов, то злоумышленник может перехватить только кадры, получаемые или отправляемые узлами сегмента, к которому он подключен. Простое прослушивание также не позволяет злоумышленнику модифицировать передаваемые между двумя другими узлами данные. Для решения этих задач злоумышленник должен перейти к активным действиям, чтобы внедрить себя в тракт передачи данных в качестве промежуточного узла. (Такие атаки в англоязычной литературе называют man-in-the-middle attack.)
Проблемы безопасности протоколов TCP/IP • 1.1. Ложные ARP-ответы • Для перехвата трафика между узлами А и В, расположенными в одной IP-сети, злоумышленник использует протокол ARP. Он рассылает сфальсифи-цированные ARP-сообщения так, что каждый из атакуемых узлов считает MAC-адрес злоумышленника адресом своего собеседника (см. рис.). • Для обнаружения ARP-атак администратор должен вести базу данных соответствия MAC- и IP-адресов всех узлов сети и использовать программу arpwatch, которая прослушивает сеть и уведомляет администратора о замеченных нарушениях.
Проблемы безопасности протоколов TCP/IP
Проблемы безопасности протоколов TCP/IP • Если сеть разделена на сегменты коммутаторами, то администратор должен настроить их таким образом, чтобы в сегмент, где находится станция администратора, перенаправлялись кадры из всех сегментов сети вне зависимости от того, кому они предназначены. • Использование статических ARP-таблиц, по крайней мере — на ключевых узлах (серверах, маршрутизаторах), защитит их от ARP-атаки, правда, за счет накладных расходов на поддержку этих таблиц в актуальном состоянии.
Проблемы безопасности протоколов TCP/IP • 1.2. Навязывание ложного маршрутизатора • Для перехвата трафика, направленного от некоторого узла А в другую сеть, злоумышленник может навязать хосту свой адрес в качестве адреса маршрутизатора, которому должны быть переданы отправляемые узлом А данные. В этом случае узел А будет направлять трафик на узел злоумышленника, который после анализа и, возможно, модификации данных, отправит их далее настоящему маршрутизатору. • Как правило, навязывание ложного маршрутизатора выполняется с помощью фальсифицированных ICMP-сообщений Redirect, так как RFC-1122 требует, чтобы хосты обязательно обрабатывали такие сообщения.
Проблемы безопасности протоколов TCP/IP • 1.2. Навязывание ложного маршрутизатора • В подложном сообщении злоумышленник объявляет свой собственный адрес в качестве адреса маршрутизатора (см. рис.). Для устранения возможности описываемой атаки необходимо отключить на хосте обработку сообщений Redirect, однако не все операционные системы могут поддерживать такое отключение. • На атакуемом узле сообщение Redirect отобразится в виде появившейся строки в таблице маршрутов, направляющей данные для хоста В через узел Х. Кроме того, программа traceroute скорее всего покажет дополнительный промежуточный узел на пути к В.
Проблемы безопасности протоколов TCP/IP
Проблемы безопасности протоколов TCP/IP • Атака при конфигурировании хоста • В некоторых случаях навязывание ложного маршрутизатора может быть произведено с помощью ICMP-сообщения Router Advertisement или через протокол DHCP. • Атака на протоколы маршрутизации • Если злоумышленник хочет перехватить трафик между узлами сети Р и узлами сети Q, и при этом не находится ни в одной из сетей P или Q, но расположен на пути между ними, он может попытаться ввести в заблуждение маршрутизаторы. Они не реагируют на сообщения ICMP Redirect, поэтому для успешной атаки необходимо, чтобы они использовали какой-либо протокол маршрутизации.
Проблемы безопасности протоколов TCP/IP • В этом случае злоумышленник может сформировать подложные сообщения протокола маршрутизации с целью переключения требуемых маршрутов на себя. Например (см. рис.) узел Х, приняв широковещательные RIP-сообщения, рассылаемые узлами А (вектор P=3) и В (вектор Q=2), отправляет сообщение с вектором Q=1 на индивидуальный адрес маршрутизатора А, а сообщение P=2 — на индивидуальный адрес В. Аутентификация TCP-сегментов с помощью алгоритма MD5 поможет исключить данную атаку.
Проблемы безопасности протоколов TCP/IP
Проблемы безопасности протоколов TCP/IP • 2. Имперсонация • Предположим, что узел А обменивается IP-датаграммами с узлом В, при этом узлы идентифицируют друг друга по IP-адресам, указываемым в датаграммах. Предположим далее, что узел В имеет особые привилегии при взаимодействии с А: то есть А предоставляет В некоторый сервис, недоступный для других хостов Интернета. Злоумышленник на узле Х, желающий получить такой сервис, должен имитировать узел В — такие действия называются имперсонацией узла В узлом Х.
Проблемы безопасности протоколов TCP/IP • Под сервисами имеются в виду приложения UDP или TCP, поэтому речь идет об имперсонации UDP-сообщений или TCP-соединений (соответственно, UDP-spoofing и TCP-spoofing). Часто одновременно с имперсонацией злоумышленник начинает атаки типа «отказ в обслуживании» против узла В для исключения его из процесса взаимодействия. • Хосты А, В и Х могут располагаться друг относительно друга различным образом, от этого зависит, какие методы имперсонации применит злоумышленник. В некоторых случаях злоумышленник не может перехватить данные, передаваемые из А в В.
Проблемы безопасности протоколов TCP/IP • Но ничто не мешает ему отправлять в адрес А сфальсифицированные датаграммы от имени В, а ответные пакеты А будет отправлять узлу В, минуя злоумышленника. Важным обстоятельством в этих условиях является то, имеет ли узел Х возможность подслушивать эти ответные пакеты, или же злоумышленник вынужден работать вслепую. • Имперсонация с помощью десинхронизации является простой и эффективной атакой. Она позволяет злоумышленнику установить контроль над TCP-соединением без использования ложных сообщений ARP, ICMP или протоколов маршрутизации, без атак типа «отказ в обслуживании», которые могут быть обнаружены администратором атакуемого узла.
Проблемы безопасности протоколов TCP/IP • Обнаружить такие атаки можно, прослушивая сеть на предмет ACK-штормов. В общем случае только шифрование данных или аутентификация сегментов могут гарантировать защиту от имперсонации. • 2.1. Имперсонация без обратной связи • Самый сложный случай: перехват и прослушивание данных, отправляемых из А в В невозможны(см. рис.6). Узел Х находится в сети, не имеющей отношения к узлам А и В и не лежащей между ними. Имперсонация без обратной связи имеет смысл лишь тогда, когда злоумышленнику для достижения своей цели достаточно только передать данные на узел А от имени узла В, и последующий ответ узла А уже не имеет значения.
Проблемы безопасности протоколов TCP/IP
Проблемы безопасности протоколов TCP/IP • 2.2. Десинхронизация TCP-соединения • Злоумышленник Х, находящийся в одном сегменте сети с узлами А и В или на пути между А и В, может произвести десинхронизацию TCP-соединения между А и В для установления полного контроля над соединением, то есть, злоумышленник получит возможность действовать как от имени А, так и от имени В. Такая имперсонация в англоязычной литературе называется TCP hijacking. • В десинхронизированном состоянии любая попытка обмена данными вызывает только ACK-шторм, а сами сегменты с данными участниками соединения уничтожаются. В это время злоумышленник берет на себя функции посредника.
Проблемы безопасности протоколов TCP/IP • Ранняя десинхронизация • В этом варианте злоумышленник, прослушивая сеть, обнаруживает момент установления соединения между А и В, от имени А сбрасывает соединение RST-сегментом и тут же открывает его заново, но уже с новыми номерами ISN. • Десинхронизация нулевыми данными • В данном варианте злоумышленник, дожидаясь момента, когда соединение находится в неактивном состоянии (данные не передаются), посылает узлу А от имени В и узлу В от имени А фальсифицированные сегменты с данными, вызывая тем самым десинхронизацию.
Проблемы безопасности протоколов TCP/IP • Посылаемые данные должны быть «нулевыми» — то есть приложение-получатель должно их игнориро-вать и не посылать никаких данных в ответ. Этот метод десинхронизации подходит для Telnet-соединений: в протоколе Telnet имеется команда «нет операции» (IAC NOP). Сегмент, содержащий произвольное число таких команд (IAC NOP IAC NOP …), будет принят приложением и полностью проигнорирован. • В начале Telnet-сеанса производится аутентификация пользователя. Разумно (с точки зрения злоумышленника) произвести десинхронизацию после того, как введен пароль, а не в самом начале соединения. Использование одноразовых паролей в этом случае пользователю не поможет.
Проблемы безопасности протоколов TCP/IP • 3. Несанкционированное подключение к сети • Для незаконного подключения к сети злоумышленник должен иметь физическую возможность. В крупных корпоративных и университетских сетях такая возможность часто имеется. Следующим шагом для злоумышленника является конфигурирование параметров стека TCP/IP его компьютера. • Прослушивая сеть злоумышленник может определить, какие IP-адреса имеют узлы сети, с помощью ICMP Echo-запросов (программа ping) определить, какие адреса не используются (или компьютеры выключены), найти IP-адрес маршрутизатора. После этого злоумышленник может присвоить себе неиспользуемый адрес.