Использование уязвимостей

Первопричиной программных ошибок и некачественного кода смело можно назвать неизбежную циркуляцию программистской рабочей силы. Текучка в крупных ИТ-компаниях, создающих сложное многокомпонентное ПО, приводит к тому, что количество конструктивных просчетов в технических заданиях и процент однотипных логических ошибок поддерживаются практически на постоянном уровне. Просчетами в данном случае можно считать несоблюдение неких общепринятых стандартов, например, требований RFC (https://www.ietf.org/rfc.html), и низкий уровень документированности разрабатываемого проекта. В свою очередь, среди критических с точки зрения информационной безопасности ошибок можно выделить два типа:

  • отсутствие проверок выхода за границы массива;
  • небезопасная работа с функциями, которые не контролируют корректность переданных им параметров.

К первым относят так называемые ошибки переполнения — buffer overflow, heap overflow, integer overflow и другие, менее известные; исторически значимое упоминание о возможности совершения незапланированных действий при возникновении таких ситуаций зафиксировано еще в 1980-х гг. Из ошибок второго типа назовем нашумевшие ошибки форматной строки, или format string vulnerabilities, которые получили широкую огласку в конце 1990-х и изначально использовались как брешь в защите систем Unix. Одним из первых публичных эксплойтов подобной уязвимости был WuFTPd 2.6.0 Remote Root Exploit, датируемый серединой 2000 г.

Из-за растущей популярности и повсеместного внедрения разнообразных сервисов на основе Web-технологий появились новые потенциальные векторы атак, привлекающие повышенное внимание злоумышленников. Стал четко формироваться отдельный подкласс уязвимостей в сетевых приложениях, полностью написанных на скриптовых языках и активно использующих в своей работе базы данных. Для них определились новые жаргонные названия, такие, как PHP Inclusions, CrosSite Scripting, SQL Injections. Сегодняшние новостные сводки Bugtraq полны отчетов, шутливо озаглавленных: Summary Daily Web-Based Applications Security Vulnerabilities.

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

Часто по ряду причин детальный разбор внутренностей абстрактной системы невозможен (понятие "система" трактуется здесь как программный код либо иное программно-аппаратное решение), и для исследователя она представляет лишь "черный ящик" с множеством входов/выходов. Но и даже в таком, с виду тупиковом, варианте беспроигрышной тактикой, позволяющей выявить наличие брешей, остается универсальная схема "запрос — ответ", или получение слепков реакций изучаемой системы на специально сформированные входные данные, с дальнейшим их накоплением, систематизацией и скрупулезным анализом на финальной стадии. Бинарная структура самих запросов, в частности, определяется типом прощупываемого объекта и иной спецификой, зависящей от изначально сформулированных требований к проводимому исследованию.

Анализ "черного ящика": проявление ошибки типа format string в популярном IMAP-сервере.

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

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

Сегодня криминальная активность виртуального мира все чаще нацелена на обычных пользователей, не подозревающих, что против них совершается нечто противозаконное. Но подобная тенденция нисколько не уменьшает количества попыток проникновения на защищенные серверы крупных корпораций, где самое ценное — это промышленная информация и внутренний документооборот компании. Отчетливо наблюдается разделение труда в сообществе андерграунда: специализация одних — уязвимости серверного ПО, для других объектом повышенного внимания становится клиентское ПО, такое, как Web-браузеры, популярные почтовые агенты, разнообразные сетевые службы Windows как самой распространенной пользовательской ОС и, разумеется, самый лакомый кусок — стек TCP/IP. Цена критических ошибок, нелегально предлагаемых в Интернете, достигает 5000 долл.

По заверениям Microsoft (https://www.microsoft.com/technet/community/columns/cableguy/cg0905.mspx), с выходом ОС следующего поколения Windows Vista произойдет смена сетевого ядра, отлаженного временем и миллионами компьютеров, на абсолютно новое под кодовым названием Next Generation TCP/IP stack, существенным нововведением в котором будет полная поддержка протокола IPv6. Однако не стоит надеяться, что при подобном подходе общая архитектура системы станет более безопасной и избавится от старых ошибок, даже пройдя многочасовые лабораторные тесты.

В подтверждение этой точки зрения уместно привести некоторые выдержки из Bugtraq, датированные периодом весна-лето 2006 г. В них упоминаются (MS06-025) Microsoft Windows RRAS Buffer Overflow Vulnerability, критическая уязвимость в службе Windows Routing and Remote Access, по степени опасности сопоставимая с печально известными "дырами" в DCOM RPC (MS03-026) и LSASS(MS04-011), а также (MS06-036) Vulnerability in DHCP Client Service Could Allow Remote Code Execution, критическая уязвимость в TCP/IP-стеке Windows (и это спустя пять лет после релиза!).

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

Вывод напрашивается сам собой: в отшлифованных годами внутренностях Windows критические ошибки встречаются до сих пор! Что же преподнесет нам релиз Vista?


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: