|
Работая системным администратором и консультантом по 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
|
4
|
5
|
6
|
15
|
3
|
9
|
Xoops
|
0
|
0
|
4
|
17
|
4
|
4
|
Microsoft Internet Explorer
|
7
|
6
|
6
|
3
|
2
|
3
|
PHP
|
2
|
0
|
14
|
2
|
4
|
1
|
Sun Solaris
|
4
|
3
|
1
|
2
|
7
|
4
|
Mozilla Firefox
|
1
|
8
|
3
|
3
|
3
|
3
|
Linux Kernel
|
1
|
4
|
7
|
1
|
2
|
4
|
Microsoft Office
|
4
|
3
|
4
|
1
|
2
|
1
|
Apple Mac OS X
|
11
|
1
|
0
|
0
|
3
|
0
|
Apache
|
1
|
2
|
1
|
3
|
2
|
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-атаками, но однозначно прослеживается тенденция к их увеличению.
|