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

Приходилось штудировать десятки сайтов самих разработчиков ПО и сайтов аналитических групп, специализирующихся на поисках уязвимостей, поскольку единого Web-ресурса, даже англоязычного, тогда не было. Да и сейчас, по большому счету, ресурса, предоставляющего избыточную информацию обо всех свежих уязвимостях, да еще и периодически обновляемого несколько раз в день, практически не найти. Проблема в том, что компании, владеющие ресурсами, на которых присутствует bugtrack-страничка, либо сами являются производителями ПО, тогда на таких ресурсах размещена лишь информация о конкретном ПО конкретного производителя, либо это IT-security-компании, имеющие штат разработчиков/аналитиков и позиционирующие себя экспертами в области безопасности, которые сами анализируют некое ПО на наличие уязвимостей и публикуют эту информацию на своих сайтах. Такие IT-security-компании в большей части специализируются на заказных аудитах приложений, размещая результаты исследований на своих источниках. Это ведет к тому, что уделяется недостаточное внимание сбору информации с других ресурсов необъятного Интернета, в том числе сайтов других аналитических компаний и сайтов-производителей ПО.

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

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

 

Сухая, важная статистика

Данные, приведенные в статье, отражают информацию об опубликованных в разделе багтрак уязвимостях разнообразного программного обеспечения, начиная с самых популярных, таких как Microsoft Internet Explorer, PHP и Apache, и заканчивая совсем неизвестными рядовому пользователю программными средствами. Как видно из таблицы 1, общее количество уязвимостей достаточно велико и составляет 1654, причем бОльшая доля из них поставляется с готовыми эксплоитами! Большинство уязвимостей являются удаленными, что свидетельствует о тенденции хакеров все более полагаться на технические средства, чем на методы социальной инженерии. Пользователи уже не так доверчивы, как прежде, и редко запускают исполняемые файлы, вложенные в спамерские письма. Диаграммы
наглядно отражают данные, приведенные в таблице.

Общие
данные по уязвимостям 
Количество
Количество
уязвимостей
1654
уязвимостей
с эксплойтами
1010
уязвимостей
без эксплойтов
644
удаленных
уязвимостей
1522
локальных
уязвимостей
132

Основные типы уязвимостей и их количественный эквивалент отражены в таблице. 

Основные типы уязвимостей 

Количество

Web-ориентированные уязвимости 

568

Отказ в обслуживании 

328

Выполнение произвольного кода 

286

Обход ограничений безопасности 

93

Эскалация привилегий 

61

Доступ к конфиденциальной
информации 

54

Доступ к файловой системе 

30

Следующая диаграмма отражает эту же информацию в процентном соотношении. Как видно, 40% процентов обнаруженных багов составляют уязвимости, позволяющие осуществить атаки на Web-приложения. Атаки, ведущие к отказу системы в обслуживании и позволяющие выполнить произвольный код на целевой системе, расположены на 2-ом и 3-ем местах соответственно. Широко распространены уязвимости, позволяющие обойти ограничения безопасности в системе. Чаще всего такие ошибки используют злоумышленники для обхода механизмов аутентификации при входе в систему. 

 

Уязвимости в Web-приложениях

Почему же так много уязвимостей найдено в Web-приложениях и как их используют злоумышленники? Для ответа на этот вопрос необходимо рассмотреть, как подразделяются атаки, использующие данные уязвимости. Основных атак, нацеленных на Web-приложения, три: PHP-инклюдинг, SQL-инъекции и Межсайтовый скриптинг (или XSS-нападение). Их соотношение представлено в
таблице и на диаграмме. Остановимся на каждой из атак поподробнее.

Атаки, нацеленные на Web-приложения 

Количество

Всего 

568

PHP-инклюдинг 

290

XSS (Межсайтовый скриптинг) 

149

SQL-инъекции 

205

Другие 

24

Эксплуатирование нашумевших эксплойтов удаленного/локального PHP-инклюдинга возможно благодаря наличию в PHP четырех функций: include(), include_once(), require(), require_once(). Все они включают код сторонних сценариев и выполняют его, но каждая функция имеет свои нюансы. Несмотря на то что эксплоиты включения файлов чрезвычайно распространены, довольно просты для применения и очень опасны, множество программистов по-прежнему совершают типичные ошибки при разработке Web-приложений, оставляя лазейки для ушлых хакеров.

SQL-инъекция – это еще один из способов взлома Web-сайтов, позволяющий злоумышленнику выполнить произвольные SQL-запросы в базе данных установленного приложения. И опять же, SQL-инъекция имеет место быть в случае, если разработчик забыл обработать входящие данные одной из функций, экранирующих специальные символы в строках. Например, функция mysql_real_escape_string() добавляет обратную косую черту к символам \x00, \n, \r, \, ', " и \x1a, делая невозможным попытку добавления произвольного SQL-запроса.

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

Популярность перечисленных атак напрямую обуславливается популярностью Интернета и самого программного обеспечения, используемого для распространения атак. Так, действительно, подавляющее большинство сайтов хостятся с использованием Web-серверов Apache и Microsoft IIS. Подавляющая доля сценариев написана с использованием языков PHP и ASP, причем популярность PHP существенно больше. Из таблицы
видно, что уязвимостей, позволяющих провести SQL-инъекции в PHP-сценариях, в 3 раза больше, чем в ASP-сценариях. А для Интернет-серфинга пользователи используют Microsoft Internet Explorer и Mozilla Firefox, и в гораздо меньшей степени - Opera Web
Browser.

SQL-инъекции в PHP- и ASP-сценариях 

205

в PHP-сценариях 

154

в ASP-сценариях 

51

 

Уязвимости, нацеленные на Web-приложения 

Январь 

Февраль 

Март 

Апрель 

Май 

Июнь

PHP-инклюдинг 

60 

42 

51 

72 

44 

30

XSS (Межсайтовый скриптинг) 

23 

21 

24 

23 

25 

33

SQL-инъекции 

40 

27 

47 

36 

30 

25

Поэтому логично, что многие перечисленные Web-приложения оказались в списке десяти самых уязвимых приложений, то есть тех, на которые приходилось больше всего публикаций и эксплойтов. Кстати, наибольшая хакерская активность, нацеленная как на Web-приложения, так и на другие популярные программы, приходится на середину весны и постепенно спадает к лету. Видимо, хакерам тоже нужно отдыхать
:).

 

Рейтинг самых уязвимых приложений

Рейтинг возглавляет многими любимая, а кем-то, наоборот, ненавистная, но никого не оставляющая равнодушным - операционная система Microsoft Windows. Для сравнения, уязвимостей, найденных в ядре Linux и Sun Solaris, в сумме чуть меньше, чем обнаруженных в Windows. По приведенным данным видно, что растет и популярность Apple Mac OS X. 

Рейтинг приложений с наибольшим количеством обнаруженных уязвимостей 

 Количество

Microsoft Windows 

42

Xoops 

29

Microsoft Internet Explorer 

27

PHP 

23

Sun Solaris 

21

Mozilla Firefox 

21

Linux Kernel 

19

Microsoft Office 

16

Apple Mac OS X 

15

Apache 

12

Интересно, что достаточно много сообщений об уязвимостях относится к объектно-ориентированному инструментарию для создания сайтов Xoops. Анализируя динамику появления новостей, отраженную в таблице, становится ясно, что 17 из 29 уязвимостей Xoops были опубликовано всего за один месяц. Аналогичная ситуация прослеживается и с другими приложениями. Так, большинство багов, приходящихся на Apple Mac OS X, было опубликовано в январе этого года, а багов в PHP - в марте. Наглядно увидеть пики найденных уязвимостей по каждому из приложений можно на графике.

Приложения/кол. уязвимостей 

 Январь 

 Февраль 

 Март 

 Апрель 

 Май 

 Июнь

Microsoft Windows 

15

9

Xoops 

17

4

Microsoft Internet Explorer 

3

PHP 

14

1

Sun Solaris 

4

Mozilla Firefox 

3

Linux Kernel 

4

Microsoft Office 

1

Apple Mac OS X 

11

0

Apache 

3

Если отследить источники появления информации в пиковый период, становится ясно, что все они сосредоточены на отдельном ресурсе, а не разбросаны по всему Интернету. Например, данный
URL,
http://projects.info-pull.com/moab/index.html, имеющий заголовок «the Month of Apple Bugs», посвящен уязвимостям, обнаруженным в продуктах Apple. Отсюда и всплеск публикаций об Apple Mac OS X в январе месяце. То же касается Xoops и PHP. Выводы каждый сделает сам, но очевидно, что в руки хакеров попадает еще одна возможность нечистого заработка денег. Поскольку поиск уязвимостей может осуществляться не только с целью манипулирования уязвимой системой, а с целью последующего шантажа или устранения конкурентов. Такие преступления возможны благодаря стремительному росту рынка, участниками которого являются игроки, специализирующиеся на IT-безопасности. Так, например, обнаружение уязвимостей в антивирусном продукте одного производителя, гораздо в большем количестве, чем в продуктах его конкурентов, наверняка вызовет снижение авторитета этого игрока и, как следствие, – отток клиентов и уменьшение лояльности партнеров.

Замечания и тенденции

В завершении хотелось бы дать несколько замечаний по приведенным в статье данным. 

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

Уязвимостей, позволяющих выполнить DoS-атаку на целевую систему, оказывается, даже несколько больше, чем уязвимостей, ведущих к выполнению произвольного кода или другим более функциональным, а не деструктивным действиям. Отчасти этот факт связан с тем, что изначальным детищем хакера является некий Proof of Concept (PoC), то есть простейший эксплойт, подтверждающий его работоспособность, например то, что атака с переполнением буфера в данном случае возможна. Поэтому чаще всего PoC-эксплоиты, ведущие к отказу системы в обслуживании, в последствии перерастают в более совершенные и функционально насыщенные зловреды.

В последнее время все бОльший оборот набирают фишинг-атаки и другие атаки, осуществляющие подмену таких данных, как строка URL в браузере пользователя или подмена КЭШа на DNS-сервере. Число таких атак пока еще несравнимо, например, с DoS-атаками, но однозначно прослеживается тенденция к их увеличению.

Оставить мнение