Угрозы в 2008 году. По багам
Продолжаем говорить о плохом в ушедшем году. Мы уверенно продвигаемся к логическому завершению, и сегодня представляю вашему вниманию предпоследнюю статью из цикла, которая посвящена анализу уязвимостей 2008 года. Основным источником данных стала статистика, опубликованная на сайте журнала Хакер ( сайт ) под авторством semu. Его материалы, в свою очередь, опираются на уязвимости, опубликованные в треке багов вышеназванного сайта.
Надо сказать, что статья получилась довольно интересная и насыщенная в плане статистики. Думаю, что особенно интересны вам будут рейтинги самых бажных веб-приложений и приложений вообще. Кроме того, в 2008 году произошло много небольших переворотов, например, выделение спуфинга в отдельный вид багов из-за повышенной активности хакеров по отношению к DNS-серверам и т.д. Не буду ходить вокруг да около, давайте приступим.
Об общей обстановке
Начнем, пожалуй, с общих сведений о количестве уязвимостей и тому, где, а точнее, в чем их нашли. Обратите внимание, что если уязвимости с эксплойтами и без них не сильно отличаются друг от друга, то в случае с локальными и удаленными багами мы видим очень большую разницу. Эта разница возникает из-за человеческого фактора. Дело в том, что большинство людей, которые нашли ту или иную уязвимость, как правило, сделали это не целенаправленно, а параллельно, решая другую задачу, как правило, на удаленной машине или удаленном приложении. Кроме того, большое количество уязвимостей находится хакерами, которые, в свою очередь, обнаруживают их при исследовании, допустим, удаленного приложения на предмет хака.
Едем дальше. Лидирующим типом уязвимости являются web-ориентированные, их количество за весь 2008 год достигло 1252 (опять же обращаю ваше внимание, что это данные только одного bugtrack'а, поэтому они могут быть неточными). Однако все равно количество внушительное. Второе и третье место принадлежит выполнению произвольного кода и отказу в обслуживании, соответственно. Отказ в обслуживании — довольно излюбленная нарушителями сетевого порядка вещь, и хотя при проведении атаки подобного рода не всегда имеется возможность получить какие-либо привилегии на атакованной машине/приложении, все равно как солидная пакость она (атака) просто превосходна. На четвертом месте расположился доступ к конфиденциальной информации, хотя большинство атак совершенно не предусматривают получение такового, уязвимости все равно обнаруживаются. На последнем месте, заметьте, спуфинг. Не особо нынче популярна подмена IP-адресов.
Дыры в web'е
Интернет используется сейчас везде, где не лень. Я лично уже забыл, когда последний раз расплачивался за мобильный, Интернет и некоторые товары не электронными деньгами. Это, конечно, повышает популярность различных web-приложений, что, в свою очередь, привлекает внимание хакеров и взломщиков. А повышенное внимание со стороны этого контингента всегда чревато последствиями, которые, собственно, мы и видим во второй таблице. По итогам 2008 года 42% всех уязвимостей именно web-ориентированные, что непременно влечет за собой и лидерство в рейтинге уязвимостей приложений, хотя об этом позже.
Вообще, для оценки вероятности создания вредоносного ПО для конкретного приложения уже довольно давно используется методика трех факторов:
1. популярность, широкое распространение данной системы;
2. документированность - наличие разнообразной и достаточно полной документации по системе;
3. незащищенность системы или существование известных уязвимостей в ней и приложениях.
Мы же наблюдаем приложения, в которых было найдено больше всего уязвимостей. Первое место уверенно держит Joomla!, а следом, уже более скромно, следует ответвление Joomla! – Mambo. Joomla! является свободным программным обеспечением, однако на месте пользователей я бы воспользовался Wordpress'ом или Drupal'ом, которые намного надежнее (вордпресс редко поднимается до таких высоких значений, а вот Joomla! и Mambo практически постоянно присутствуют в первой тройке).
Предлагаю обсудить также и небольшой рейтинг самих атак на web. Обратите внимание, что с большим отрывом лидируют атаки на БД ресурсов, т.е. SQL- инъекции, второе место занимает межсайтовый скриптинг и PHP-инклюд — на третьем.
Кроме того, я хотел бы еще сказать, что за минувший год гораздо больше SQL-атак было проведено в PHP-сценариях, нежели в ASP. Конечно, о безопасности ASP кричать весьма необъективно, скорее такое положение дел обусловлено тем, что подавляющее большинство ресурсов с Интернет работает именно на PHP-скриптах, думаю, что дальнейшие комментарии излишни.
Выполнение произвольного кода
Выполнение произвольного кода – еще одна излюбленная хулиганами и взломщиками атака. Успешное проведение данной атаки дает атакующему возможность выполнить на компьютере своей жертвы любую операцию или действие, что и делает ее настолько приятной на вид. Тут же стоит вспомнить и обнаруженный во втором полугодии 2008 года эксплойт, который бил по системе защиты. Все знают немецкую компанию ESET, которая начала свой путь с NOD32 Antivirus и, естественно, продолжила комплексными ESET Smart Security . Так вот, эксплойт был нацелен именно на комплексную систему безопасности этого производителя и позволял выполнить произвольный код с повышенными привилегиями. Вот так вот защитили мы свои машины =).
Отказ в обслуживании
Про атаки на отказ в обслуживании (DoS) я уже говорил. Они проводятся достаточно просто и без больших затрат – достаточно иметь в распоряжении бот-сеть, которая, собственно, и заглушит жертву. Как видно из статистики, атак такого рода большое количество и меньше их в ближайшее время становиться не будет, просто потому, что любая программа так или иначе предрасположена к удачной атаке такого типа. Ведь программа – это, прежде всего, алгоритм, реализованный с помощью машинных команд, и любое вмешательство в ее нормальную работу может вызвать как раз отказ в обслуживании.
Во втором полугодии была задержана группа хакеров из Уфы, которые неплохо облапошивали крупные российские компании. Администратору по icq сообщалось, что на компанию имеется заказ, и обеспечение безопасности работы ресурсов стоит денег. Естественно, деньги платились, а если нет, то проводился DDoS. При этом атаку проводил всего один человек, как я сказал выше, при помощи бот-сетей. Еще один человек из команды занимался исключительно выводом средств, заплаченных за защиту от защитников =) вот такая ирония.
Кража конфиденциальной информации
Когда речь идет о конфиденциальной информации, то в первую очередь рассматриваются логины и пароли доступа к банковским системам. В 2008 году появился и новый вид атаки на ресурсы банков и финансовых структур, который получил название in-session. Атака основана на уязвимости в JavaScript, который довольно часто используется на такого рода ресурсах. При открытии нескольких вкладок внутри браузера уязвимость позволяет любому сценарию, открытому на какой-либо вкладке, получить информацию о содержимом сайтов, открытых на других вкладках. Таким образом, если пользователь открыл в браузере сайт банка, а на второй вкладке открыл вредоносный сайт, то скрипт вредоносного сайта может получить доступ к содержимому сайта банка, идентифицировав его (сайт банка), скрипт выведет окно, визуально очень похожее на реальное окно банковского сайта, где будет запрашивать логин и пароль для доступа. Если пользователь попался, то с доступом к счету он может попрощаться.
Печально осознавать, что наряду с такими сложно выполнимыми атаками встречаются нападения, производимые благодаря простым оплошностям разработчиков и администраторов. Так, в этом полугодии 28 ошибок, приводящих к получению конфиденциальной информации, были вызваны неверной установкой прав доступа на файлы баз данных, чаще всего mdb.
Кроме того, в центре внимания остаются по-прежнему онлайн-игры, логины и пароли к аккаунтам которых также активно крадутся. Стоит только вспомнить большое семейство троянцев Trojan-PSW.Win32.WOW, которые крадут информацию об аккаунтах в популярной MMORPG World of Warcraft.
Обход ограничений безопасности
Обход ограничений безопасности заключается в том, чтобы обмануть механизмы защиты. Используя подобные уязвимости, можно достичь довольно больших результатов в области взлома. Ниже я приведу некоторые механизмы, которые используются при проведении атак на обход ограничений безопасности:
. использование того факта, что приложение устанавливает недостаточно строгие права доступа на инсталляционные файлы;
. несовершенство механизмов аутентификации входа в систему, например, библиотека libxcrypt из openSUSE 11.0 содержала ошибку, заключающуюся в использовании алгоритма DES для генерации хэшей паролей, несмотря на указание применять алгоритм MD5 в файле /etc/default/passwd;
. использование ошибок в правилах ACL и всевозможных фильтрах, включая антивирусные механизмы фильтрации;
. использование особенностей в обработке последовательностей обхода директорий и многое другое.
Естественно, чтобы удачно использовать такие баги, нужно хорошо изучить систему-жертву, чем и занимаются хакеры и взломщики перед проведением атаки.
Отдельно хотелось бы выделить уязвимость в Apple iPhone, которая заключается в ошибке при обработке экстренных вызовов, и которая позволила злоумышленникам обойти парольную защиту и звонить на любой номер.
Спуфинг
Спуфинг-атаки подразумевают подмену каких-либо данных. Не так давно в КГ была опубликована статья "DNS под прессом. Атаки на DNS-сервер" под моим авторством. Не могу сказать, что тема пришла сама собой. В этот период по Сети катилась волна атак, нацеленных на подмену DNS кэша в NDS серверах. Я не буду много говорить по этому поводу, т.к. тот материал достаточно полно рассказывал о проблеме. Скажу только, что подобный скачок активности в направлении NDS кэша был вызван багом, заключающимся в недостаточной рандомизации важных характеристик (например, порт-источник или идентификатор транзакций).
Кроме того, все еще активны атаки на браузеры пользователей, целью которых является подмена адреса в адресной строке.
Вообще, спуфинг был недавно выделен в отдельный вид атак, т.к. их количество резко возросло в последнее время, именно из-за активности, направленной на DNS сервера.
Уязвимости в приложениях
Теперь, напоследок, еще одна вкусность. Поговорим о том, какие приложения являются наиболее уязвимыми.
Очень и очень огорчила меня Mozilla. Огненная лиса стоит на первой строчке с огромным значением в 94 уязвимости. Если посмотреть нижние строчки, то мы увидим и боевых товарищей браузера – Thunderbird и SeaMonkey, которые тоже показали не сильно привлекательные результаты. Мне остается только радоваться, что моя любимая Opera не попала в это список. На мой взгляд, да и на взгляд semu тоже, парни из Mozilla уж очень сильно увлеклись быстродействием и функциональностью, позабыв про отладку кода своих детищ.
Вообще, я полагал, что анонсы от мелкомягких переплюнут всех в рейтинге, но нет. К моему, и, уверен, не только моему, удивлению, новый браузер IE8 показывает чудеса устойчивости, в списке его нет, но могу сказать, что уязвимости IE во втором полугодии 2008 года составили 25 штук. Это относительно немного, по сравнению с конкурентом. Стоит сказать, что офф релиз браузера под номером 8 от Microsoft состоялся уже в 2009 году, поэтому не все эти уязвимости относятся именно к нему, а которые относятся, принадлежат CR версии.
На второй строчке находится система управления контентом сайтов Joomla!, которая уже проявила себя в рейтинге самых уязвимых web-приложений. А вот операционка Windows стоит на призовом третьем месте =) с количеством уязвимостей в 70 штук. Стоит вспомнить баг, который был открыт более семи лет назад хакером Джошем Бухбиндером, баг этот в протоколе Server Message Block (SMB). Почему вспомнить? Да потому, что ноябрьский патч для ОС Windows наконец-то закрыл эту дыру (!).
Недалеко ушел и офис от компании Майкрософт, который набрал 47 брешей за весь год. Наиболее дырявыми приложениями считаются MSWord и MSExcel. Это не просто так, они наиболее используемы, поэтому и наиболее популярны.
Концовочка
Вот и подошла к своему логическому завершению очередная статья из цикла "Угрозы в 2008 году". Нам осталось только подвести итоги за ушедший год, проанализировать тенденции и подумать на тему "что нас ждет".
Как видите, реальность местами огорчает, как, например, первое место "лисы" в рейтинге самых бажных софтин или достаточно большое количество багов в так горячо любимом мною блогерском движке Wordpress. Однако если бы все было так хорошо, то было бы не так интересно =).
P.S.: При написании статьи использовались материалы из источников (под авторством): Kaspersky Security Bulletin, SASecurity Analytic department, Дмитрий Евтеев (by SecuirtyLab), Semu (by ][akep)
Евгений Кучук SASecurity gr.
Надо сказать, что статья получилась довольно интересная и насыщенная в плане статистики. Думаю, что особенно интересны вам будут рейтинги самых бажных веб-приложений и приложений вообще. Кроме того, в 2008 году произошло много небольших переворотов, например, выделение спуфинга в отдельный вид багов из-за повышенной активности хакеров по отношению к DNS-серверам и т.д. Не буду ходить вокруг да около, давайте приступим.
Об общей обстановке
Начнем, пожалуй, с общих сведений о количестве уязвимостей и тому, где, а точнее, в чем их нашли. Обратите внимание, что если уязвимости с эксплойтами и без них не сильно отличаются друг от друга, то в случае с локальными и удаленными багами мы видим очень большую разницу. Эта разница возникает из-за человеческого фактора. Дело в том, что большинство людей, которые нашли ту или иную уязвимость, как правило, сделали это не целенаправленно, а параллельно, решая другую задачу, как правило, на удаленной машине или удаленном приложении. Кроме того, большое количество уязвимостей находится хакерами, которые, в свою очередь, обнаруживают их при исследовании, допустим, удаленного приложения на предмет хака.
Едем дальше. Лидирующим типом уязвимости являются web-ориентированные, их количество за весь 2008 год достигло 1252 (опять же обращаю ваше внимание, что это данные только одного bugtrack'а, поэтому они могут быть неточными). Однако все равно количество внушительное. Второе и третье место принадлежит выполнению произвольного кода и отказу в обслуживании, соответственно. Отказ в обслуживании — довольно излюбленная нарушителями сетевого порядка вещь, и хотя при проведении атаки подобного рода не всегда имеется возможность получить какие-либо привилегии на атакованной машине/приложении, все равно как солидная пакость она (атака) просто превосходна. На четвертом месте расположился доступ к конфиденциальной информации, хотя большинство атак совершенно не предусматривают получение такового, уязвимости все равно обнаруживаются. На последнем месте, заметьте, спуфинг. Не особо нынче популярна подмена IP-адресов.
Дыры в web'е
Интернет используется сейчас везде, где не лень. Я лично уже забыл, когда последний раз расплачивался за мобильный, Интернет и некоторые товары не электронными деньгами. Это, конечно, повышает популярность различных web-приложений, что, в свою очередь, привлекает внимание хакеров и взломщиков. А повышенное внимание со стороны этого контингента всегда чревато последствиями, которые, собственно, мы и видим во второй таблице. По итогам 2008 года 42% всех уязвимостей именно web-ориентированные, что непременно влечет за собой и лидерство в рейтинге уязвимостей приложений, хотя об этом позже.
Вообще, для оценки вероятности создания вредоносного ПО для конкретного приложения уже довольно давно используется методика трех факторов:
1. популярность, широкое распространение данной системы;
2. документированность - наличие разнообразной и достаточно полной документации по системе;
3. незащищенность системы или существование известных уязвимостей в ней и приложениях.
Мы же наблюдаем приложения, в которых было найдено больше всего уязвимостей. Первое место уверенно держит Joomla!, а следом, уже более скромно, следует ответвление Joomla! – Mambo. Joomla! является свободным программным обеспечением, однако на месте пользователей я бы воспользовался Wordpress'ом или Drupal'ом, которые намного надежнее (вордпресс редко поднимается до таких высоких значений, а вот Joomla! и Mambo практически постоянно присутствуют в первой тройке).
Предлагаю обсудить также и небольшой рейтинг самих атак на web. Обратите внимание, что с большим отрывом лидируют атаки на БД ресурсов, т.е. SQL- инъекции, второе место занимает межсайтовый скриптинг и PHP-инклюд — на третьем.
Кроме того, я хотел бы еще сказать, что за минувший год гораздо больше SQL-атак было проведено в PHP-сценариях, нежели в ASP. Конечно, о безопасности ASP кричать весьма необъективно, скорее такое положение дел обусловлено тем, что подавляющее большинство ресурсов с Интернет работает именно на PHP-скриптах, думаю, что дальнейшие комментарии излишни.
Выполнение произвольного кода
Выполнение произвольного кода – еще одна излюбленная хулиганами и взломщиками атака. Успешное проведение данной атаки дает атакующему возможность выполнить на компьютере своей жертвы любую операцию или действие, что и делает ее настолько приятной на вид. Тут же стоит вспомнить и обнаруженный во втором полугодии 2008 года эксплойт, который бил по системе защиты. Все знают немецкую компанию ESET, которая начала свой путь с NOD32 Antivirus и, естественно, продолжила комплексными ESET Smart Security . Так вот, эксплойт был нацелен именно на комплексную систему безопасности этого производителя и позволял выполнить произвольный код с повышенными привилегиями. Вот так вот защитили мы свои машины =).
Отказ в обслуживании
Про атаки на отказ в обслуживании (DoS) я уже говорил. Они проводятся достаточно просто и без больших затрат – достаточно иметь в распоряжении бот-сеть, которая, собственно, и заглушит жертву. Как видно из статистики, атак такого рода большое количество и меньше их в ближайшее время становиться не будет, просто потому, что любая программа так или иначе предрасположена к удачной атаке такого типа. Ведь программа – это, прежде всего, алгоритм, реализованный с помощью машинных команд, и любое вмешательство в ее нормальную работу может вызвать как раз отказ в обслуживании.
Во втором полугодии была задержана группа хакеров из Уфы, которые неплохо облапошивали крупные российские компании. Администратору по icq сообщалось, что на компанию имеется заказ, и обеспечение безопасности работы ресурсов стоит денег. Естественно, деньги платились, а если нет, то проводился DDoS. При этом атаку проводил всего один человек, как я сказал выше, при помощи бот-сетей. Еще один человек из команды занимался исключительно выводом средств, заплаченных за защиту от защитников =) вот такая ирония.
Кража конфиденциальной информации
Когда речь идет о конфиденциальной информации, то в первую очередь рассматриваются логины и пароли доступа к банковским системам. В 2008 году появился и новый вид атаки на ресурсы банков и финансовых структур, который получил название in-session. Атака основана на уязвимости в JavaScript, который довольно часто используется на такого рода ресурсах. При открытии нескольких вкладок внутри браузера уязвимость позволяет любому сценарию, открытому на какой-либо вкладке, получить информацию о содержимом сайтов, открытых на других вкладках. Таким образом, если пользователь открыл в браузере сайт банка, а на второй вкладке открыл вредоносный сайт, то скрипт вредоносного сайта может получить доступ к содержимому сайта банка, идентифицировав его (сайт банка), скрипт выведет окно, визуально очень похожее на реальное окно банковского сайта, где будет запрашивать логин и пароль для доступа. Если пользователь попался, то с доступом к счету он может попрощаться.
Печально осознавать, что наряду с такими сложно выполнимыми атаками встречаются нападения, производимые благодаря простым оплошностям разработчиков и администраторов. Так, в этом полугодии 28 ошибок, приводящих к получению конфиденциальной информации, были вызваны неверной установкой прав доступа на файлы баз данных, чаще всего mdb.
Кроме того, в центре внимания остаются по-прежнему онлайн-игры, логины и пароли к аккаунтам которых также активно крадутся. Стоит только вспомнить большое семейство троянцев Trojan-PSW.Win32.WOW, которые крадут информацию об аккаунтах в популярной MMORPG World of Warcraft.
Обход ограничений безопасности
Обход ограничений безопасности заключается в том, чтобы обмануть механизмы защиты. Используя подобные уязвимости, можно достичь довольно больших результатов в области взлома. Ниже я приведу некоторые механизмы, которые используются при проведении атак на обход ограничений безопасности:
. использование того факта, что приложение устанавливает недостаточно строгие права доступа на инсталляционные файлы;
. несовершенство механизмов аутентификации входа в систему, например, библиотека libxcrypt из openSUSE 11.0 содержала ошибку, заключающуюся в использовании алгоритма DES для генерации хэшей паролей, несмотря на указание применять алгоритм MD5 в файле /etc/default/passwd;
. использование ошибок в правилах ACL и всевозможных фильтрах, включая антивирусные механизмы фильтрации;
. использование особенностей в обработке последовательностей обхода директорий и многое другое.
Естественно, чтобы удачно использовать такие баги, нужно хорошо изучить систему-жертву, чем и занимаются хакеры и взломщики перед проведением атаки.
Отдельно хотелось бы выделить уязвимость в Apple iPhone, которая заключается в ошибке при обработке экстренных вызовов, и которая позволила злоумышленникам обойти парольную защиту и звонить на любой номер.
Спуфинг
Спуфинг-атаки подразумевают подмену каких-либо данных. Не так давно в КГ была опубликована статья "DNS под прессом. Атаки на DNS-сервер" под моим авторством. Не могу сказать, что тема пришла сама собой. В этот период по Сети катилась волна атак, нацеленных на подмену DNS кэша в NDS серверах. Я не буду много говорить по этому поводу, т.к. тот материал достаточно полно рассказывал о проблеме. Скажу только, что подобный скачок активности в направлении NDS кэша был вызван багом, заключающимся в недостаточной рандомизации важных характеристик (например, порт-источник или идентификатор транзакций).
Кроме того, все еще активны атаки на браузеры пользователей, целью которых является подмена адреса в адресной строке.
Вообще, спуфинг был недавно выделен в отдельный вид атак, т.к. их количество резко возросло в последнее время, именно из-за активности, направленной на DNS сервера.
Уязвимости в приложениях
Теперь, напоследок, еще одна вкусность. Поговорим о том, какие приложения являются наиболее уязвимыми.
Очень и очень огорчила меня Mozilla. Огненная лиса стоит на первой строчке с огромным значением в 94 уязвимости. Если посмотреть нижние строчки, то мы увидим и боевых товарищей браузера – Thunderbird и SeaMonkey, которые тоже показали не сильно привлекательные результаты. Мне остается только радоваться, что моя любимая Opera не попала в это список. На мой взгляд, да и на взгляд semu тоже, парни из Mozilla уж очень сильно увлеклись быстродействием и функциональностью, позабыв про отладку кода своих детищ.
Вообще, я полагал, что анонсы от мелкомягких переплюнут всех в рейтинге, но нет. К моему, и, уверен, не только моему, удивлению, новый браузер IE8 показывает чудеса устойчивости, в списке его нет, но могу сказать, что уязвимости IE во втором полугодии 2008 года составили 25 штук. Это относительно немного, по сравнению с конкурентом. Стоит сказать, что офф релиз браузера под номером 8 от Microsoft состоялся уже в 2009 году, поэтому не все эти уязвимости относятся именно к нему, а которые относятся, принадлежат CR версии.
На второй строчке находится система управления контентом сайтов Joomla!, которая уже проявила себя в рейтинге самых уязвимых web-приложений. А вот операционка Windows стоит на призовом третьем месте =) с количеством уязвимостей в 70 штук. Стоит вспомнить баг, который был открыт более семи лет назад хакером Джошем Бухбиндером, баг этот в протоколе Server Message Block (SMB). Почему вспомнить? Да потому, что ноябрьский патч для ОС Windows наконец-то закрыл эту дыру (!).
Недалеко ушел и офис от компании Майкрософт, который набрал 47 брешей за весь год. Наиболее дырявыми приложениями считаются MSWord и MSExcel. Это не просто так, они наиболее используемы, поэтому и наиболее популярны.
Концовочка
Вот и подошла к своему логическому завершению очередная статья из цикла "Угрозы в 2008 году". Нам осталось только подвести итоги за ушедший год, проанализировать тенденции и подумать на тему "что нас ждет".
Как видите, реальность местами огорчает, как, например, первое место "лисы" в рейтинге самых бажных софтин или достаточно большое количество багов в так горячо любимом мною блогерском движке Wordpress. Однако если бы все было так хорошо, то было бы не так интересно =).
P.S.: При написании статьи использовались материалы из источников (под авторством): Kaspersky Security Bulletin, SASecurity Analytic department, Дмитрий Евтеев (by SecuirtyLab), Semu (by ][akep)
Евгений Кучук SASecurity gr.
Компьютерная газета. Статья была опубликована в номере 15 за 2009 год в рубрике безопасность