Positive Technologies: уровень защищенности веб-приложений крайне низок

Есть ложь – это когда пользователям рассказывают о мифической стопроцентной безопасности. Есть наглая ложь – это когда пользователям рассказывают о мифической стопроцентной безопасности, хотя разработчики знают или как минимум догадываются, что далеко не всё ладно в их датском королевстве. А вот со статистикой всё не так просто. Во-первых, практически никто не способен открыто признаться в наличии существенных брешей в безопасности до того самого момента, когда жареный петух примется за дело. Во-вторых, многие действительно не знают о наличии проблем, а раскошелиться на аудит не в силах. В-третьих, всё более популярная, хотя иногда и вынужденная концепция «****, **** — и в продакшн!» росту безопасности тоже не способствует. На этом фоне весьма любопытно выглядит отчёт компании Positive Technologies, в котором собрана статистика уязвимостей веб-приложений. О наиболее интересных данных этого отчёта мы вкратце расскажем нашим читателям.

Для отчёта было выбрано 40 веб-приложений (сайтов, если хотите), которые подвергались расширенному полуручному анализу на наличие уязвимостей. Подобный анализ может включать в себя и, к примеру, исследования исходного кода. Столь глубокое исследование позволяет выявить в среднем в 3,5 раза больше уязвимостей средней степени риска, чем, так сказать, «неинвазивные» методы анализа. В самом отчёте приведены данные только об уязвимостях, связанных с ошибками в коде и с неправильной конфигурацией веб-приложений. Разные типы угроз классифицированы согласно системе The WASC Threat Classification v.2, а качественная оценка каждой из них (то есть определение уровня риска: высокий, средний, низкий) производилась по системе Common Vulnerability Scoring System v.2. Всего было выявлено 1194 уязвимости различной степени риска.

Особое внимание на себя обращает тот факт, что все исследованные системы были общедоступны извне, то есть из Интернета. При этом только 15 % этих систем находились в режиме тестирования, то есть в режиме отладки или подготовки к выпуску финальной версии. Любопытно, что 68 % всех исследованных систем содержали уязвимости высокой степени риска (для сравнения: в 2013 году этот показатель был равен 62 %). В среднем же на каждое веб-приложение приходится 29,9 уязвимости, хотя годом ранее этот показатель был значительно ниже – 15,6 проблемы на каждый веб-сервис. Число критических уязвимостей, обнаруживаемых без использования глубокого анализа, выросло с 2,8 до 7,5 на каждое приложение. Если говорить простым языком, то дыр на исследованных веб-сайтах стало заметно больше, а находить их – не только исследователям, но и злоумышленникам – стало проще.

Удивительно и то, что критических проблем в системах, уже находящихся в эксплуатации, оказалось больше, чем в тестовых. Ещё более удивительно, что больше всего сайтов с уязвимостями высокой степени риска принадлежит банковской отрасли – таковых в ней 89 %. Впрочем, сами исследователи отмечают, что аномально высокие показатели, вероятно, связаны с тем, что все эти сайты не были напрямую связаны с проведением финансовых операций, а потому при их разработке безопасности уделялось не столь много внимания. А вот тем фактом, что приложения, написанные на PHP, оказались наиболее уязвимыми (81 % от всех таких сайтов), удивить кого-то трудно. Впрочем, дело не только и не столько в самом языке, сколько в его популярности у веб-разработчиков. Хоть какую-то конкуренцию ему в этом плане может составить только ASP.NET, а все прочие системы были разработаны с помощью Java-технологий и, представьте себе, Perl.

С веб-серверами ситуация в чём-то похожа – больше всего ошибок (86 % всех сайтов) пришлось на самый же популярный Nginx. Впрочем, проводить прямые аналогии между распространённостью конкретного ПО и числом проблем, связанным с ним, было бы не совсем корректно. Инструмент не виноват в том, кто и как его использует. Кроме того, в исследовании практически не принимали участие привычные CMS. Впрочем, про них-то как раз всё известно, так что искать в них баги не очень интересно – для этого есть целые сообщества. Также следует учитывать, что больше половины (54 %) потенциальных атак используют ошибки в клиентской части веб-приложений. При этом 89 % выявленных уязвимостей вызваны ошибками в программном коде, допущенными разработчиками, а остальные – некорректной конфигурацией веб-приложений.

Самая распространённая, хотя на первый взгляд и не самая страшная уязвимость – это так называемый Fingerprinting, или идентификация программного обеспечения. Сама по себе она не опасна, но её можно использовать для подготовки более изощрённых атак. Предварительно можно узнать версию используемого на сервере ПО и поискать уже известные для него эксплойты, определить архитектуру и/или топологию приложения, понять, как именно происходит взаимодействие с клиентом. Второе место заняло межсайтовое выполнение сценариев (XSS) – это уязвимость среднего уровня риска, но, пожалуй, в двух словах принцип её работы не описать, так что почитайте лучше соответствующую справку. Одна из основных опасностей XSS – это, грубо говоря, возможность скрытно выполнять на клиенте не санкционированные пользователем действия.

Следом за ней идёт уязвимость того же уровня риска Credential/Session Prediction. Если говорить совсем коротко и просто, то при подключении пользователя к веб-серверу создаётся сессия и её идентификатор (ID). За счёт такого механизма, к примеру, вам не требуется при совершении каждой операции на сайте заново вводить логин и пароль, пока вы сами не пожелаете выйти из системы, – вместо них указывается этот самый ID, который служит гарантией, что эти операции действительно совершает уже известный пользователь. В идеальном случае ID сессии (или иные средства доказательства подлинности пользователя) уникален для каждого клиента и слабо предсказуем, но на практике, как оказывается, всё гораздо хуже – злоумышленники могут относительно легко догадаться, к примеру, об алгоритме генерации ID и таким образом действовать в системе от лица другого пользователя. И хорошо, если у этого пользователя не окажется прав администратора.

В 2013 году на третьем месте была SQL-инъекция, которая в 2014-м переместилась на четвёртое место. Впрочем, спокойнее от этого не становится, потому что это единственная уязвимость среди самых распространённых, которая имеет критический характер. И наличие её почти на половине исследованных веб-сайтов радости не приносит, потому что использование её одной может доставить намного больше проблем пользователям, чем все остальные, – действительно, доступ к базе данных ничего хорошего не сулит. Наконец, на пятом месте находится старый добрый Brute force. Как правило, про этот метод «грубой силы» вспоминают в контексте подбора логинов и паролей, хотя на практике «отбрутфорсить» можно и листинг директорий и файлов, и тот же идентификатор сессии, и даже, в ряде случаев, недостающие данные банковских карт, если последние хранятся в ненадлежащем виде. Опасность представляет не метод атаки, а скорее сама возможность его осуществления в веб-приложении.

В целом исследователи Positive Technologies отмечают, что уровень защищенности веб-приложений остается крайне низким. Более того, по сравнению с 2013 годом ситуация стала только хуже – доля сайтов, содержащих критические уязвимости, увеличилась, а находить их стало проще. Также отмечается в среднем более высокий уровень незащищённости систем, находящихся в эксплуатации, по сравнению с тестовыми площадками. Всё это, по мнению исследователей, указывает на «отсутствие последовательного подхода к обеспечению безопасности приложений на всех стадиях жизненного цикла». Удивительно и то, что близкородственные области – банковско-финансовые системы и системы электронной коммерции – показали значительный разрыв в уровне защиты. У первых оказалось больше всего критических уязвимостей среди всех исследованных областей, а у вторых, наоборот, их намного меньше, хотя всё равно не так уж мало (42 %).

Средства превентивной защиты практически не используются – среди «подопытных» только одно приложение имело web application firewall. Согласно последнему исследованию компании, в этом году ситуация существенно не поменялась: «Получить извне полный контроль над всеми системами корпоративной структуры можно в 44 % случаев, а привилегии администратора в критически важных системах — в 33 % случаев». Более чем в половине исследованных систем полный контроль над критически важными ресурсами могут получить даже низкоквалифицированные злоумышленники, а в 80 % случаев реальных атак их можно было бы избежать, однако жертвы не воспользовались разумными мерами защиты от них. Впрочем, хоть веб-приложения и остаются одним из ключевых направлений атак для дальнейшего получения контроля над иными важными системами, они всё-таки не единственные. Злоумышленники всё чаще используют социальную инженерию, присматриваются к растущему интернету вещей или же просто уповают на человеческий фактор.

 

[an error occurred while processing the directive]
[an error occurred while processing the directive] [an error occurred while processing the directive]