Сколько дыр в современном ПО? Обзор актуальных сетевых угроз
Большая часть пользователей глобальной Сети понятия не имеют о том, какие угрозы могут скрывать в себе программы, которыми они пользуются годами. Статистика компьютерных уязвимостей за 2011 год, собранная исследовательским центром Positive Research, показывает, что SCADA-системы, CMS, офисные программы, приложения мультимедиа, почти все браузеры и операционные системы становились объектами для незаконного проникновения. Причина угроз – безобидные на первый взгляд и непонятные простому пользователю уязвимости.Одна из основных причин наличия уязвимостей в ПО является недооценка риска и слабая защищенность web-приложений. Простота протокола HTTP позволяет злоумышленнику разрабатывать эффективные методы автоматического анализа программ и выявления в них уязвимостей.
Согласно статистического анализа уязвимостей, проведенных в 2010 и 2011 годах компанией Positive Technologies было произведено исследование 123 web-приложений крупнейших предприятий. В список вошли наиболее значимые предприятия в отраслях экономики:
Распределение участников по отраслям экономики | |
Отрасль экономики | Доля, % |
Телекоммуникации | 26 |
Государственный сектор | 25 |
Финансовый сектор | 17 |
Информационные технологии | 13 |
Промышленность | 7 |
Другие | 12 |
Источник: Портал по информационной безопасности SecurityLab.ru, 2012
Лидер в этом списке — уязвимость Cross-Site Request Forgery, которой оказался подвержен 61% всех проверенных сайтов. Далее следуют Information Leakage и Brute Force — 54% и 52% сайтов, а также SQL Injection с критическим уровнем риска, обнаруженная на 47% ресурсов. Далее, по удельным долям найденных уязвимостей в список вошли уязвимости с высокой степенью риска — OS Commanding и Path Traversal (28%) и среднего уровня риска: Insufficient Anti-automation (42%), Cross-Site Scripting (40%), Predictable Re-source Location (36%) и Insufficient Transport Layer Protection (22%).
Наиболее распространенные уязвимости | |
Уязвимость | Доля сайтов, % |
Cross-Site Request Forgery | 61 |
Information Leakage | 54 |
Brute Force | 52 |
SQL Injection | 47 |
Insufficient Anti-automation | 42 |
Cross-Site Scripting | 40 |
Predictable Resource Location | 36 |
OS Commanding | 28 |
Path Traversal | 28 |
Insufficient Transport Layer Protection | 22 |
Источник: Портал по информационной безопасности SecurityLab.ru, 2012
Также в исследовании была выявлена зависимость уязвимостей от языка программирования. Можно заметить, что доли уязвимых сайтов на ASP.NET и Java ниже по сравнению с аналогичными показателями для языка PHP.
Наиболее распространенные уязвимости в зависимости от языка программирования х | |||||||
PHP | Доля сайтов, % | ASP.NET | Доля сайтов, % | Java | Доля сайтов, % | ||
Cross-Site Request Forgery | 73 | Cross-Site Scripting | 39 | Insufficient Authorization | 41 | ||
SQL Injection | 61 | Cross-Site Request Forgery | 35 | Cross-Site Request Forgery | 35 | ||
Cross-Site Scripting | 43 | Insufficient Anti-automation | 35 | Application Misconfiguration | 29 | ||
Insufficient Anti-automation | 42 | SQL Injection | 22 | Insufficient Authenticatio | 29 | ||
Path Traversal | 42 | Application Misconfiguration | 17 | OS Commanding | 29 |
Источник: Портал по информационной безопасности SecurityLab.ru, 2012
Доли сайтов на различных языках программирования с уязвимостями высокого и среднего уровня риска
Источник: Портал по информационной безопасности SecurityLab.ru, 2012
В результате исследований были выявлены уязвимости, которые присутствуют среди ресурсов, функционирующих под управлением серверов Apache, Microsoft IIS, nginx, Jboss, Tomcat, IBM HTTP Server, Oracle Application Server и др. Наиболее широко представлены первые три сервера, из них предпочтение отдается серверу Apache (57%). Согласно классификации WASC TC v.2, значительная доля уязвимостей связано с ошибками администрирования.
Распределение сайтов по используемому web-серверу | |
Сервер | Доля, % |
Apache | 57 |
IIS | 17 |
Nginx | 10 |
Другие | 16 |
Источник: Портал по информационной безопасности SecurityLab.ru, 2012
Доли уязвимых сайтов на различных web-серверах
Увеличить
Источник: Портал по информационной безопасности SecurityLab.ru, 2012
Исследование Positive Technologies позволяет оценить доли присутствия уязвимостей различных уровней рисков для отраслевой принадлежности владельца web-приложений. В зависимости от рода деятельности предприятия и назначения системы наибольшую значимость могут приобретать конфиденциальность информации и (или) доступность ресурса.
Доли сайтов с уязвимостями высокого уровня риска, принадлежащих разным отраслям экономики
Источник: Портал по информационной безопасности SecurityLab.ru, 2012
Доли уязвимых сайтов из различных отраслей экономики
Источник: Портал по информационной безопасности SecurityLab.ru, 2012
Распределение уязвимостей по уровню риска на сайтах из различных отраслей экономики
Источник: Портал по информационной безопасности SecurityLab.ru, 2012
Анализ выявленных уязвимостей по сегментам отраслей показывает, что основная доля рисков проникновения приходится на телекоммуникационные предприятия, IT компании и промышленность. Наиболее защищенным является финансовый и банковский сектор. Однако банки предпочитают защищать только собственные ресурсы, не уделяя должного внимания информированию своих клиентов.
Сравнительно честные способы обмануть службу поддержки
Зачастую сами работники крупных компаний пренебрегают элементарными мерами безопасности, что приводит к потере данных и взлому пользовательских страниц, размещенных на удаленных площадках. Это касается, как сегментов B2С и B2B, так социальных сетей и почтовых служб.
Простая услуга получения забытого пароля позволяет обеспечить проникновение и доступ к информации аккаунта, размещенного с использованием ресурсов некоторых социальных сетей. Для доступа к странице среднестатистического пользователя "ВКонтакте" достаточно несколько запросов в службу поддержки с представлением контактных данных, размещенных на его же странице в свободном доступе (номер телефона, электронная почта и так далее). В ходе переписки с персоналом и манипуляции с данными пароль можно получить в течение суток.
Компания Google, позиционирующая себя как создателя одного из самых безопасных ресурсов в интернете, требует для получения утерянного пароля заполнение формы, в которой указывается время начала использования учетной записи, сервисы, подключенные к данной учетной записи, информация о содержимом почтового ящика (метки, популярные корреспонденты и т. д.) Большую часть этих данных можно получить из открытых источников не прибегая к специальным средствам. Этих данных оказывается достаточно для получения пароля из службы поддержки Google, что позволяет получить доступ не только к чужому почтовому ящику, но и к другим сервисам Google: Picasa, YouTube, Google Analytics и т.д.
"Корпорация добра" платит за находки
Оборотная сторона медали пользовательской безопасности – это потеря доверия к программному обеспечению со стороны клиентов. И как следствие, снижение прибыли продавцов. Крупные интернет компании и разработчики программного обеспечения подходят к решению проблемы комплексно. Например, компания Google организовала программу Bug Bounty, в рамках которой она платит за найденные баги в своих продуктах. Программа действует с ноября 2010 года и участвовать в ней может любой желающий, гонорар присылают чеком. В июле 2011 года сумма вознаграждения за самые опасные дыры была увеличена до 3133,7 долл.
На оплату могут претендовать все находки серьёзных багов, особенноXSS, XSRF / CSRF, XSSI (cross-site script inclusion),обход авторизации (User A получает доступ к приватным данным User B), исполнение кода на стороне сервера или внедрение кода.
Вознаграждение можно получить за нахождение уязвимости в любом продукте Google: это браузеры Chrome, Chromium, продукты Gmail, Youtube, Google Docs, Chrome OS, а также за все сервисы на доменах *.google.com, *.youtube.com, *.blogger.com и *.orkut.com. Программа вознаграждений не действует только для клиентских приложений (Android, Picasa, Google Desktop и проч.).
После года действия программы и 410 тыс. долл. выплаченных вознаграждений, компания Google определила программу как "очень успешную". За время её действия было получено 1100 сообщений об уязвимостях разной важности более чем от 200 человек. Из этого числа 730 уязвимостей были оплачены. Значительная часть денег Google была отправлена в СНГ. Стоить отметить, что Google не согласен с отнесением всех уязвимостей на его счет. Менеджеры компании заявляют, что примерно половина найденных уязвимостей приходится на разработки вновь приобретенных компаний.
Что же такое уязвимость?
Для того чтобы проблема была решена, требуется дать ей четкую характеристику. В США были предприняты попытки определения термина "компьютерные уязвимости" В результате исследований, финансируемых из госбюджета, группой MITRE (анализ и разрешение компьютерных проблем, безопасность) было дано развернутое определение уязвимости.
Уязвимость — это состояние вычислительной системы (или нескольких систем), которое позволяет исполнять команды от имени другого пользователя; получать доступ к информации, закрытой от доступа для данного пользователя; показывать себя как иного пользователя или ресурс; производить атаку типа "отказ в обслуживании".
Впоследствии термин "уязвимость" был разделен на два значения. В MITRE считают, что атака, производимая вследствие слабой или неверно настроенной политики безопасности, может также описываться термином "открытость" (exposure).
Открытость — это состояние вычислительной системы (или нескольких систем), которое не является уязвимостью, но позволяет атакующему производить сбор защищенной информации; позволяет атакующему скрывать свою деятельность; содержит возможности, которые работают корректно, но могут быть легко использованы в неблаговидных целях; является первичной точкой входа в систему, которую атакующий может использовать для получения доступа или информации.
В момент получения неавторизованного доступа к системе злоумышленник производит сбор информации (расследование) об объекте атаки, собирает любые доступные данные и затем использует слабость политики безопасности ("открытость") или какую-либо уязвимость.
Интернет – безусловное благо для общества. В период перехода социального развития от индустриального к информационному именно глобальная Сеть позволяет эффективно эксплуатировать необходимые данные и информацию. Интернет связывает, систематизирует, находит, передает, показывает, выполняет огромное количество иных функций. Однако, как любой инструмент, Сеть может быть использована не только во благо, но и во вред. Подобный перекос напрямую связан с возможностями, которые предоставляет эксплуатируемый инструмент. В частности, такие возможности для противоправных деяний создаются самими разработчиками ПО.
Мы все понимаем, что невозможно предусмотреть появление всех уязвимостей и создать идеальное программное обеспечение. На каждого производителя найдется свой взломщик. Вопрос качественной эксплуатации программ стоит не в обеспечении 100% безопасности клиентов на момент разработки ПО, а максимизации качества продукта и своевременном реагировании на обнаруженные уязвимости путем устранения последних со стороны производителя.