Атаки на веб-приложения открывают широкие возможности для злоумышленников: это и хищение критичной информации или чувствительной информации; нарушение бизнес логики для извлечения финансовой выгоды; также, успешная атака веб-приложения может быть предвестником взлома корпоративной сети компании. В этой статье я расскажу об эволюции атак веб-приложений.
Классические уязвимости в данный момент представлены списком OWASP TOP 10:
Атаки на веб-приложения применимы к данному списку, но далеко не все распространены повсеместно и встречаются каждый день.
Хорошим примером выявления той или иной уязвимости можно считать the unofficial HackerOne disclosure timeline: http://h1.nobbd.de/index.php. Как мы видим — преобладают SQL-инъекции, client-side атаки и т.д.
Существует два типа атак: нецелевые и таргетированные. Нецелевые "бьют по площадям", и реализуют один-два вектора атак, не всегда реализую цель атаки. Как правило отличаются примитивностью. Мы наблюдаем такие атаки каждый день, представленные в виде эксплуатации той или иной уязвимости, попытки получения доступ к критичным файлам и т.д.
Таргетированные атаки отличает множество векторов, высокий профессионализм атакующих и результативность. Такие составляют примерно 5% от общего числа атак, но по эффективности они гораздо выше нецелевых.
Нецелевые атаки, как правило, автоматизированы и выполняются с помощью различных систем эксплуатации: от сканеров уязвимостей, до самописных скриптов и утилит. Отличаются, как правило, несколькими признаками (User-Agent, вектор применения, диапазон IP). Например попытка выявления /uploadify/uploadify.php — уязвимости в модуле MODX.
Статистика нецелевых атак выглядит следующим образом:
Наиболее популярные атаки:
Это касалось автоматизированных систем. Если сайт атакует злоумышленник, знающий веб-приложение и его уязвимые компоненты — атака становится более точечной и эффективной.
Эволюцию атак на веб-приложения можно рассматривать с нескольких ракурсов:
Этические рамки я оставлю вне этой статьи и хочу поговорить о технической стороне.
Появление новых векторов обусловлено использованием новых технологий либо выявлением уязвимостей в старых. Также, часть уязвимостей может оказаться "за бортом" и долгие годы не использоваться, как например 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. Атакующие в первую очередь пытаются выявить наличие инъекции с помощью символа кавычки, классика жанра:
Уязвимость на сайте присутствует, но проэксплутатироватть сходу ее не удастся, поэтому атакующие применяют техники тамперинга данных для попытки обхода защитных средств:
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-инъекций.
Это трансформируется в следующие запросы:
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
Таким образом можно отметить, что в данный момент эксплуатируются практически все известные уязвимости, с поправкой на внедрение механизмов защиты при разработке приложений, так и на применяемые защитные средства. Также, это обусловлено большим количеством инструментов для проведения атак на веб-приложения.
В качестве проверки своих навыков по обходу защитных средств веб-приложения мы предлагаем всем желающим возможность проверить свои силы на тестовом стенде (и даже получить вознаграждение, за успешную эксплуатацию вектора атаки).
К сожалению, не доступен сервер mySQL