ГлавнаяРегистрацияВход Компьютер-Софт
Суббота, 2024-05-04, 8:53 AM
Форма входа

Меню сайта

Категории раздела
Мои статьи [39]

Поиск

Друзья сайта
  • Свободное ПО
  • Системное обслуживание
  • Монтаж сетей, СКС
  • Пиринговые сети
  • Локальные сети Новосибирска
  • Торрент трекер НТК

  • Рекламный блок


    Статистика

    Онлайн всего: 1
    Гостей: 1
    Пользователей: 0


    Rambler's Top100
    Рейтинг сайтов smarttop.info

    Главная » Статьи » Мои статьи

    Статистика уязвимостей веб-приложений за 2009 год

    Введение

    Многолетняя экспертиза аналитического центра PT Research, а также  опыт компании Positive Technologies по проведению тестов на проникновение и аудитов информационной безопасности показывают, что ошибки в защите веб-приложений по-прежнему остаются одним из наиболее распространенных недостатков обеспечения защиты информации. Более того, уязвимости веб-приложений являются одним из наиболее распространенных путей проникновения в корпоративные информационные системы; существует множество факторов, делающих веб-сервисы привлекательной целью для атак злоумышленников.

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

    Простота протокола HTTP позволяет разрабатывать эффективные методы автоматического анализа веб-приложений и выявления в них уязвимостей. Это значительно упрощает работу нарушителя, позволяя ему обнаружить большое число уязвимых веб-сайтов, чтобы затем провести атаку на наиболее интересные из них.

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

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

    Методика

    Данная публикация содержит обзорную статистику по уязвимостям в веб-приложениях, которая была получена в ходе проведения тестирований на проникновение, аудитов безопасности и других работ, выполненных экспертами компании Positive Technologies в 2009 году. В статистике собраны данные о 5560 веб-приложениях, полученные в результате проведения 6239 автоматических сканирований и детального анализа 77 веб-приложений.

    В зависимости от типа выполняемых работ применялись различные методики исследования веб-приложений, от автоматизированного инструментального исследования методом «черного ящика» (black-box, blind) с использованием сканера системы контроля защищенности и соответствия стандартам MaxPatrol до проведения всех проверок вручную методом «белого ящика» (white-box), включая частичный и полный анализ исходного кода. В статистику вошли данные только по внешним веб-приложениям, доступные из глобальной сети Интернет.

    Обнаруженные уязвимости классифицировались согласно системе Web Application Security Consortium Web Security Threat Classification (WASC WSTCv2 [1]), в разработке которой активное участие принимали эксперты компании Positive Technologies. Данная система представляет собой попытку классифицировать все угрозы безопасности веб-приложений. Члены Web Application Security Consortium создали этот проект для разработки и популяризации стандартной терминологии описания проблем безопасности веб-приложений. Этот документ дает возможность разработчикам приложений, специалистам в области безопасности, производителям программных продуктов и аудиторам использовать единый язык для взаимодействия.

    Помимо WASC WSTCv2, в предлагаемой статистике использовался структурированный список уязвимостей, состоящий из девяти классов согласно WASC WSTCv1 [2]:

    1. Аутентификация (Authentication)
    2. Авторизация (Authorization)
    3. Атаки на клиентов (Client-side Attacks)
    4. Выполнение кода (Command Execution)
    5. Разглашение информации (Information Disclosure)
    6. Логические ошибки (Logical Flaws)
    7. Небезопасные конфигурации (Misconfiguration)
    8. Недостатки протокола (Protocol Abuse)
    9. Другие (Miscellaneous)

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

    Степень критичности уязвимости оценивалась согласно CVSSv2 (Common Vulnerability Scoring System version 2 [3, 4]) и приводилась к классической «светофорной» оценке путем деления на 3.

    Резюме

    Практически половина проанализированных систем содержали уязвимости. Суммарно во всех приложениях было обнаружено 13434 ошибок различной степени риска, зафиксировано 1412 образцов вредоносного кода, содержащихся на страницах уязвимых систем. Доля скомпрометированных сайтов распространявших вредоносное программное обеспечение составила 1,7%. Каждый из таких сайтов содержал уязвимости, позволяющие выполнять команды на сервере, что подтверждает возможность использование этих уязвимостей для компрометации системы. 

    Основной результат исследования неутешителен. Вероятность обнаружения критичной ошибки в веб-приложении автоматическим сканером составляет около 35% и достигает 80% при детальном экспертном анализе. Этот факт демонстрирует невысокую защищенность современных Web-приложений не только от атак со стороны квалифицированных злоумышленников, но и от действий атакующих, вооруженных готовыми утилитами для «автоматического взлома».

    Как и ранее, наиболее распространенными ошибками, допускаемыми разработчиками приложений, являются уязвимости «Межсайтовое выполнение сценариев» и «Внедрение операторов SQL» на которые пришлось более 19% и 17% всех обнаруженных уязвимостей соответственно.

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

    С точки зрения соответствия требованиям регуляторов (compliance management) ситуация улучшилась незначительно. До 84% веб-приложений не удовлетворяет требованиям стандарта по защите информации в индустрии платежных карт PCI DSS и 81% не соответствуют критериям ASV-сканирования, определенного в стандарте.

    Портрет участников

    Распределение приложений, которые были исследованы с помощью методик «черного» и «белого» ящика, по сферам деятельности их владельцев приведено в Табл. 1 и на Рис. 1.

    Таблица 1. Распределение владельцев по отраслям

    Сектор  экономики

     Доля, % 

    Телекоммуникации

    35%

    Финансовый сектор

    13%

    Нефтегазовый комплекс

    40%

    Другие

    12%

    Рисунок 1. Распределение владельцев по отраслям

    Подобное распределение компаний связано с тем, что наибольший интерес в 2009 г. к работам по анализу защищенности своих веб-ресурсов проявил сектор Телекоммуникации (35%) и Нефтегазовый комплекс (40%). Финансовый сектор и компании из прочих отраслей нуждались в подобных услугах в меньшей степени (13% и 12% соответственно).

    Представленные данные справедливы только для компаний, ресурсы которых исследовались экспертами Positive Technologies в рамках выполнения аудитов и работ по тестированию на проникновение.

    Статистика уязвимостей

    Всего в представленную статистику вошли данные о 5560 веб-приложениях, 2023 из которых содержали уязвимости. Суммарно во всех приложениях было обнаружено 13434 ошибок различной степени риска и зафиксировано 1412 образцов вредоносного кода, содержащихся на страницах уязвимых веб-приложений. В Табл. 2 представлены данные по распределению уязвимостей, которые были получены при выполнении аудитов и путем автоматизированного сканирования.

    Таблица 2. Распределение уязвимостей  по методу их поиска

    Метод поиска

    Узлов

    Уязвимых узлов

    Уязвимостей

    Вредоносного кода

    Инфицированных сайтов

    Ручной метод поиска и анализ исходного кода

    77

    77

    442

    4

    1

    Автоматизированный метод поиска

    5483

    1946

    12992

    1408

    33

    Автоматическое сканирование

    Распределение уязвимостей, обнаруженных с помощью сканера системы контроля защищенности и соответствия стандартам MaxPatrol, по различным типам представлено в Табл. 3 и на Рис. 2. Приложения, в которых не было обнаружено уязвимостей, при расчете доли уязвимых сайтов не учитывались. Стоит отметить, что уязвимости, связанные с ошибками обработки возвращаемых (Improper Output Handling) и входных (Improper Input Handling) данных, могут служить причиной реализации большинства выявленных уязвимостей, поэтому далее они не рассматриваются.

    Кроме того, в статистику, полученную при автоматическом сканировании, не вошла такая распространенная уязвимость веб-приложений, как «Подделка HTTP-запросов» (Cross-Site Request Forgery, CSRF) [5]. Эта ошибка в том или ином виде встречалась во всех исследованных приложениях.

    Таблица 3. Статистика уязвимостей веб-приложений (автоматическое сканирование)

    Рисунок 2. Статистика уязвимостей веб-приложений (автоматическое сканирование)

    Степень распространения уязвимостей различных типов отражена на Рис. 3.

    Рисунок 3. Степень распространения уязвимостей на сайтах (автоматическое сканирование)

    Наиболее распространенными являются ошибки, допускаемые администраторами при обслуживании серверов (Server Misconfiguration и Fingerprinting). Такие уязвимости составляют приблизительно 20% от числа всех обнаруженных и встречаются на 62-67% исследованных сайтов. Таким образом, 2/3 сайтов содержит недостатки администрирования сервером. Основной ошибкой администраторов является использование стандартной конфигурации сервера; это во многом упрощают для злоумышленников задачу проведения и развития атаки. Тот факт, что проблемы администрирования серверов являются самыми распространенными среди уязвимостей на сайтах, объясняется также тем, что в настоящее время широко используются системы управления сайтами; исходный код таких систем часто оказывается более защищенным, чем код приложений, разрабатываемых для конкретных сайтов. После развертывания готового «коробочного» веб-приложения администраторам следует применять на серверах защищенные конфигурации (в том числе рассмотреть возможность использования Web Application Firewall); в настоящее время большинство администраторов пренебрегает этими мерами защиты.

    Другая распространенная уязвимость связана с недостаточным противодействием механизмам автоматизации (Insufficient Anti-automation). Почти в половине исследованных веб-приложений отсутствуют защитные механизмы: не используются CAPTCHA (Completely Automated Public Turing test to tell Computers and Humans Apart), средства противодействия автоматизированному сбору email-адресов и пр.

    Достаточно часто наблюдается предсказуемое расположение ресурсов (Predictable Resource Location) - такие уязвимости были обнаружены на 47% исследованных сайтов. Эта ошибка обычно бывает связана с использованием легко угадываемых названий файлов и каталогов в пространстве корневой директории веб-сервера (например, расположение панели администрирования сайтом в каталоге «admin»).

    Пятое место по распространенности уязвимостей на сайтах занимает проблема передачи конфиденциальных данных без какой-либо криптографической защиты (Insufficient Transport Layer Protection). Уязвимость связана с тем, что важные данные (в том числе персональные данные пользователей) передаются по протоколу HTTP, который является открытым, вследствие чего данные могут быть перехвачены. Для решения этой проблемы рекомендуется использовать защищенный протокол SSL 3.0 или TLS 1.0 при обмене конфиденциальной информацией между сервером и клиентом.

    Шестое место по распространенности заняла уязвимость «Межсайтовое выполнение сценариев» (Cross-Site Scripting, XSS), на долю которой приходится около 34% всех обнаруженных недостатков. Данная уязвимость была выявлена в 23% исследованных приложений. В отличие от недостатков, рассмотренных выше, уязвимость «Межсайтовое выполнение сценариев» связана в первую очередь с ошибками, допущенными при разработке приложений. Уязвимость «Межсайтовое выполнение сценариев», по оценке CWE/SANS [6], является наиболее распространенной ошибкой, допускаемой разработчиками приложений.

    Седьмой по степени распространенности является уязвимость «Внедрение операторов SQL» (SQL Injection), на долю которой приходится приблизительно 8% всех обнаруженных ошибок. Данная уязвимость была обнаружена в 11% проанализированных приложений. Довольно часто успешная эксплуатация уязвимости «Внедрение операторов SQL» позволяет злоумышленнику нарушить все свойства обрабатываемой информации в атакуемой информационной системе. Данная уязвимость, по оценке CWE/SANS [6], является второй по распространенности ошибкой, допускаемой разработчиками приложений.

    Анализ уязвимостей на инфицированных сайтах

    Интересна позиция, которую в статистике занимает обнаружение образцов вредоносного кода (см. Табл. 3) на 34 анализируемых сайтах. Присутствие вредоносного кода свидетельствует о том, что веб-приложение содержит инфицированный код (Trojan-Spy backdoor, Code.JS, Code.I и т.д.), из-за чего на компьютеры посетителей такого сайта может быть установлено вредоносное программное обеспечение. Статистика уязвимостей с высоким уровнем опасности, обнаруженных на сайтах, которые содержат инфицированный код, показывает, что наиболее вероятным путем распространения вредоносного кода в этих приложениях является эксплуатация следующих уязвимостей:

    1. Внедрение операторов SQL (SQL Injection)
    2. Внедрение  серверных расширений (SSI Injection)
    3. Выполнение команд ОС (OS Commanding)
    4. Выход за корневой каталог веб-сервера (Path Traversal)*

    * - Следует помнить, что выход за корневой каталог веб-сервера во многих случаях позволяет выполнять команды на сервере. Это возможно, когда уязвимость содержится в функциях include(), require() и т.п.

    Процесс эксплуатации подобных уязвимостей достаточно легко автоматизируется, а широкая распространненость таких ошибок в веб-приложениях позволяет проводить массовые «дефейсы», добавлять инфицированный код на страницы уязвимых веб-узлов.
    Анализ статистики распределения критических уязвимостей на инфицированных сайтах (см. Рис. 4) показывает, что уязвимость типа «Внедрение операторов SQL» заметно преобладает на зараженных сайтах.

    Рисунок 4. Степень распространения критических уязвимостей на инфицированных сайтах

    Рассмотрим аналогичные показатели для сайтов, на которых не было обнаружено инфицированных страниц (см. Рис. 5).

    Рисунок 5. Распределение критических уязвимостей на сайтах

    Динамика обнаружения уязвимостей

    Рисунок 6. Динамика обнаружения уязвимостей в веб-приложениях за четыре года (автоматическое сканирование)

    Динамика получена на основе четырех наборов данных:

    2006 год – пользователям предоставлена возможность бесплатно проверить защищенность своих веб-приложений. В этот набор данных вошли результаты исследования очень разнородных приложений (вплоть до статических и сайтов-«заглушек»).

    2007 год – проверка защищенности веб-приложений становится платной услугой. Этим обусловлено сокращение числа сканируемых узлов в 3,5 раза. Статистика по-прежнему основана на анализе разнородных и статических сайтов, однако их количество значительно снизилось.

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

    2009 год – период Мирового финансового кризиса. Денежные средства распределяются наиболее эффективно. Уязвимости, обнаруженные в прошлом году, устранены. Инициативы по разработке новых приложений заморожены (в область сканирования входит один крупный хостинг-центр).

    Таким образом, данные за 2006-2007 годы иллюстрируют результаты сканирования «любых» приложений, данные за 2008 – результат сканирования недавно разработанных веб-приложений, а данные за 2009 год – результат сканирования приложений в компаниях, которые выполняют анализ защищенности своих веб-приложений на регулярной основе.

    Процентное соотношение устранения выявленных уязвимостей в 2009 году, по результатам сканирования в 2008 году, представлено в Табл. 5 и на Рис. 7 - Рис. 8. Указанным критериям соответствовало 768 веб-приложений.

    Таблица 5. % сайтов с уязвимостями различной степени риска

    Рисунок 7. % сайтов с уязвимостями различной степени риска

    Рисунок 8. Динамика уязвимых сайтов (по уровню критичности, %)

    Рассматривая процесс устранения отдельных уязвимостей на сайтах в течение года, были получены данные, представленные в Табл. 6 и на Рис. 9.

    Рисунок 9. % устраненных уязвимостей в веб-приложениях за год (по типу)

    Таким образом, в течение года число сайтов, содержащих критические уязвимости, снизилось на 37%, что соответствует устранению всех уязвимостей критического уровня опасности в 66% случаях. Положительная тенденция также замечена для сайтов, содержащих уязвимости с низким уровнем опасности. Так, общий процент устранения всех подобных уязвимостей составил приблизительно 31%. В отношении сайтов, содержащих уязвимости среднего уровня критичности, напротив, отмечена отрицательная тенденция, т.е. в течение года число подобных сайтов только возросло. Общий же процент устранения всех обнаруженных уязвимостей с 2008 года по 2009 год составил около 20%.

    Детальный анализ

    Распределение уязвимостей, обнаруженных в ходе детального анализа веб-приложений (преимущественно с использованием методики «черного-ящика») по различным типам представлено в Табл. 7 и на Рис. 10.

    Таблица 7. Статистика уязвимостей веб-приложений (детальный анализ)

    Рисунок 10. Статистика уязвимостей веб-приложений (детальный анализ)

    Степень распространения уязвимостей, выявленных при детальном анализе веб-приложений, отражена на Рис. 11.

    Рисунок 11. Распределение уязвимостей по сайтам (детальный анализ)

    Так же, как и при автоматическом сканировании веб-приложений, при проведении детального анализа довольно часто встречались ошибки, допускаемые администраторами при обслуживании серверов (Server Misconfiguration).

    С другой стороны, в отличие от автоматического сканирования веб-приложений, при проведении детального анализа наиболее часто встречалась уязвимость «Внедрение операторов SQL» (SQL Injection). Данная уязвимость была обнаружена в 18% случаев, приблизительно в 49% всех исследуемых приложений. Таким образом, каждое второе веб-приложение содержало уязвимость «Внедрение операторов SQL».

    Уязвимость, которая возглавляет список по числу обнаруженных – «Межсайтовое выполнение сценариев» (Cross-Site Scripting, XSS). На долю указанной уязвимости приходится большая часть всех обнаруженных ошибок (19%). Данная уязвимость была выявлена в 27% всех исследованных приложений.

    Второе место по степени распространенности уязвимостей на сайтах занял недостаток, связанный с различными вариантами утечек конфиденциальной информации (Information Leakage). Степень возможного риска данной уязвимости может варьироваться от низкой до критической. Наиболее типичный пример таких ошибок – хранение конфиденциальных данных и резервных копий сценариев в общедоступных, но «скрытых» каталогах.

    Таким образом, среди уязвимостей, связанных с разработкой веб-приложений, лидирующие позиции по вероятности обнаружения при детальном анализе занимает уязвимость на стороне веб-сервера (server-side) «Внедрение операторов SQL» (SQL Injection) и уязвимость, эксплуатируемая на стороне клиента (client-side), – «Межсайтовое выполнение сценариев» (Cross-Site Scripting, XSS).

    Сравнительный анализ данных, полученных при детальном исследовании веб-приложений, и данных рейтинга TOP 25 наиболее опасных ошибок(В качестве множителей использовались частота обнаружения уязвимости и степень ее критичности, рассчитанная по CVSSv2 [3, 4]. Для сведения различающихся наборов данных использовался подход, основанный на делении по максимальному значению из каждого набора данных. Сопоставление уязвимостей осуществлялось по разработанной матрице [10].), допускаемых при разработке приложений, по оценке CWE/SANS за 2010 год [6] представлен на Рис. 12.

    http://netnsk.ru/publica/security/sec_10.php

    Категория: Мои статьи | Добавил: netnsk5137 (2010-09-01) W
    Просмотров: 1524 | Рейтинг: 0.0/0
    Всего комментариев: 0
    Добавлять комментарии могут только зарегистрированные пользователи.
    [ Регистрация | Вход ]

      Copyright pro-net.ru © 2024
    Бесплатный конструктор сайтов - uCoz