Эволюция атак на веб-приложения

в 10:37, , рубрики: penetration testing, Блог компании PentestIT, информационная безопасность

image

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

OWASP TOP 10

Классические уязвимости в данный момент представлены списком OWASP TOP 10:

  • A1 Внедрение кода
  • A2 Некорректная аутентификация и управление сессией
  • A3 Межсайтовый скриптинг
  • A4 Небезопасные прямые ссылки на объекты
  • A5 Небезопасная конфигурация
  • A6 Утечка чувствительных данных
  • A7 Отсутствие контроля доступа к функциональному уровню
  • A8 Подделка межсайтовых запросов
  • A9 Использование компонентов с известными уязвимостями
  • A10 Невалидированные редиректы

Атаки на веб-приложения применимы к данному списку, но далеко не все распространены повсеместно и встречаются каждый день.

Хорошим примером выявления той или иной уязивмости можно считатать the unofficial HackerOne disclosure timeline: http://h1.nobbd.de/index.php. Как мы видим — приобладают SQL-инъекции, client-side атаки и т.д.

Типы атак

Существует два типа атак: нецелевые и таргетированные. Нецелевые "бьют по площадям", и реализуют один-два вектора атак, не всегда реализую цель атаки. Как правило отличаются примитивностью. Мы наблюдаем такие атаки каждый день, представленные в виде эксплуатации той или иной уязвимости, попытки получения доступ к критичным файлам и т.д.

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

Нецелевые атаки, как правило, автоматизированы и выполняются с помощью различных систем эксплуатации: от сканеров уязвимостей, до самописных скриптов и утилит. Отличаются, как правило, несколькими признаками (User-Agent, вектор применения, диапазон IP). Например попытка выявления /uploadify/uploadify.php — уязвимости в модуле MODX.

Статистика нецелевых атак выглядит следующим образом:
Наиболее популярные атаки:

  • Попытки выявления SQL Injection: — 85%.
  • Попытки выявления доступа к критичным папкам и файлам: — 7%.
  • Попытки применения известных (нашумевших) эксплоитов — 5%.
  • Попытки внедрения выявления Cross-Site Scripting — 3%.

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

Эволюция атак

Эволюцию атак на веб-приложения можно рассматривать с нескольких ракурсов:

  • усложнение веб-приложений — как следствие больше возможностей ошибки;
  • усложнение архитектуры — как следствие больше возможностей ошибки;
  • популяризация «кулхакерства» — как следствие больше материала в открытом доступе, больше атак;
  • кажущаяся безнаказанность.

Этические рамки я оставлю вне этой статьи и хочу поговорить о технической стороне.

Появление новых векторов обусловлено использованием новых технологий либо выявлением уязвимостей в старых. Также, часть уязвимостей может оказаться "за бортом" и долгие годы не использоваться, как например XML External Entities: первые упоминания датируются 2002 годом, конкретизированные вектора 2009, массовая эксплуатация началась с 2011-2012 года практически повсеместно, например phpmyadmin. XXE уязвимости находили (в рамках BugBounty программ) на ресурсах Яндекс, Вконтакте, Uber и многих других.

Другим немаловажным фактором развития векторов атаки служат внедренные защитные средства. Мы установили уязвимое веб-приложение, указав тип уязвимости и защитили веб-приложение сервисом защиты: http://vulns.pentestit.ru.

http://vulns.pentestit.ru/wp-content/plugins/kittycatfish/base.css.php?kc_ad=31&ver=2.0"

Уязвимый параметр kc_ad. Атакующие в первую очередь пытаются выявить наличие инъекции с помощью символа кавычки, классика жанра:
Эволюция атак на веб-приложения - 2

Уязвимость на сайте присутствует, но проэксплутатироватть сходу ее не удастся, поэтому атакующие применяют техники тамперинга данных для попытки обхода защитных средств:

http://vulns.pentestit.ru/wp-content/plugins/kittycatfish-2.2/base.css.php?kc_ad=16+group%0aby%0a1%0aUNIO%6e%0aSELEC%74%0achar%0a(107,99,95,97,100,95,99,115,115),(selec%74%0acolumn_name%0afro%6d%0a`%69nformation%5fschem%61`.columns%0awher%65%0atable_name=0x746c5f746f6b656e%0alimit%0a0,1)

Такие методы обхода тоже не позволяют проэкспулатировать уязвимость, поэтому атакующие начинают использовать все более изощренные способы evasion-техник (о которых я писал в этой статье: методы обхода защитных средств веб-приложений при эксплуатации SQL-инъекций.

image

Это трансформируется в следующие запросы:

http://vulns.pentestit.ru/wp-content/plugins/kittycatfish-2.2/kittycatfish.js.php
Parameter kc_ad=%27%2F%2A%2A%2FanD%2F%2A%2A%2F3083%2F%2A%2A%2FbEtWEEN%2F%2A%2A%2F3083%2F%2A%2A%2FanD%2F%2A%2A%2F3083--%2F%2A%2A%2FiGqe&ver=2.0

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

Меры защиты

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

Автор: LukaSafonov

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js