атаки на web приложения
Эволюция атак на веб-приложения
Атаки на веб-приложения открывают широкие возможности для злоумышленников: это и хищение критичной информации или чувствительной информации; нарушение бизнес логики для извлечения финансовой выгоды; также, успешная атака веб-приложения может быть предвестником взлома корпоративной сети компании. В этой статье я расскажу об эволюции атак веб-приложений.
OWASP TOP 10
Классические уязвимости в данный момент представлены списком 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.XXXXXXXXXXXX.ru.
Уязвимый параметр kc_ad. Атакующие в первую очередь пытаются выявить наличие инъекции с помощью символа кавычки, классика жанра:
Уязвимость на сайте присутствует, но проэксплутатироватть сходу ее не удастся, поэтому атакующие применяют техники тамперинга данных для попытки обхода защитных средств:
Такие методы обхода тоже не позволяют проэкспулатировать уязвимость, поэтому атакующие начинают использовать все более изощренные способы evasion-техник.
Это трансформируется в следующие запросы:
Таким образом можно отметить, что в данный момент эксплуатируются практически все известные уязвимости, с поправкой на внедрение механизмов защиты при разработке приложений, так и на применяемые защитные средства. Также, это обусловлено большим количеством инструментов для проведения атак на веб-приложения.
Как хакеры атакуют веб-приложения: боты и простые уязвимости
Общедоступные веб-приложения являются привлекательной мишенью для злоумышленников. Атаки на веб-приложения открывают перед ними широкие возможности: доступ к внутренним ресурсам компании, чувствительной информации, нарушение функционирования приложения или обход бизнес-логики – практически любая атака может принести финансовую выгоду для злоумышленника и убытки, как финансовые, так и репутационные – для владельца веб-приложения. Кроме того, под угрозой находятся и пользователи веб-приложений, поскольку успешные атаки позволяют похищать учетные данные, выполнять действия на сайтах от лица пользователей, а также заражать рабочие станции вредоносным ПО.
При исследовании атак на веб-приложения мы, в первую очередь, ставили перед собой задачу установить, какие атаки пользуются наибольшей популярностью у злоумышленников и каковы возможные мотивы их действий, а также определить основные источники угроз для различных отраслей. Такие данные позволяют понять, каким аспектам следует уделить внимание при обеспечении безопасности веб-приложений. Кроме того, мы рассмотрим распределение типов атак и активности злоумышленников в зависимости от сферы деятельности компании, а также динамику изменения характера атак в течение года.
Для сбора исходных данных по атакам мы использовали данные, полученные в ходе пилотных проектов по внедрению межсетевого экрана прикладного уровня PT Application Firewall (PT AF) в 2016 году. В пилотных проектах принимали участие государственные учреждения, организации сферы образования, финансов, транспорта, промышленности и IT. Среди рассматриваемых систем присутствуют как российские компании, так и зарубежные. Все приведенные в данном исследовании примеры атак были проверены вручную на предмет ложных срабатываний и являются достоверными.
Популярность атак по отраслям
Наиболее часто в ходе пилотных проектов встречались «Внедрение операторов SQL» и «Выполнение команд ОС», такие атаки PT AF фиксировал более чем в 80% систем. Path Traversal занимает второе место по популярности среди выявленных атак. Очевидно, что в первую очередь злоумышленники пробуют применить наиболее простые атаки, не требующие особых условий для выполнения. В основном более низкий процент обнаружения атаки свидетельствует о более высоком уровне сложности или необходимости специальных условий для ее реализации, например, наличия функции загрузки файлов в веб-приложении или совершения определенных действий со стороны пользователей.
При составлении рейтинга наиболее популярных атак мы исключили атаки, которые осуществлялись специальным ПО для автоматизированного сканирования веб-приложения на наличие уязвимостей, например, Acunetix, sqlmap.
Рейтинг наиболее популярных атак (доли веб-приложений)
Большинство атак в этом рейтинге эксплуатируют критически опасные уязвимости и могут привести к полной компрометации веб-приложения и сервера, что может позволить злоумышленнику получить доступ к ресурсам локальной сети.
Соотношение типов атак, зафиксированных в ходе работы PT AF, и их количество меняются в зависимости от отрасли, к которой относится исследуемая система. Злоумышленники преследуют разные цели, при этом уровень квалификации и технические возможности нарушителей также различаются. На приведенных диаграммах представлены среднее количество атак в день на одну систему, а также соотношение количества атак, выполняемых вручную и с использованием утилит для автоматизированного сканирования.
Среднее количество атак в день на одну систему
Соотношение автоматизированного сканирования и атак, выполняемых вручную
Большую часть атак для всех отраслей, кроме государственных учреждений и интернет-магазинов, составляют атаки, выполняемые при помощи специализированного ПО для поиска уязвимостей. Автоматизированное сканирование включает в себя попытки выполнения различных видов атак, например, внедрения операторов SQL, Path Traversal, с использованием готовых программных средств инструментального анализа защищенности. Результаты сканирования могут быть использованы злоумышленником для эксплуатации уязвимостей и дальнейшего развития вектора атаки до получения доступа к чувствительной информации, ресурсам локальной сети, критически важным системам или для проведения атак на пользователей.
На рисунке ниже приведен пример обнаружения автоматизированного сканирования с помощью утилиты sqlmap. PT AF выявил нежелательное содержание HTTP-заголовка User-Agent и запрос, содержащий внедрение операторов SQL.
Пример обнаружения автоматизированного сканирования
Наибольшее среднее количество атак в день – приблизительно 3500 атак – зафиксировано в ходе пилотных проектов в государственных учреждениях. Автоматизированный поиск уязвимостей составляет всего 18% от общего числа атак. Интернет-магазины занимают вторую строчку в этом рейтинге: в день регистрировалось около 2200 атак, при этом практически все они проводились без использования автоматизированных средств сканирования.
В финансовой сфере PT AF регистрировал около 1400 атак в день, среди которых преобладал автоматизированный поиск уязвимостей. На транспортные ресурсы и IT-компании приходится в среднем около 680 атак в день, большую часть которых также составляет автоматизированный поиск уязвимостей.
Из расчетов среднего количества атак в день для сферы образования был исключен информационно-аналитический центр, в функции которого входит обработка результатов государственных экзаменов. Пилотный проект для этого центра проходил в летнее время, когда учащиеся школ сдавали ЕГЭ и ГИА, в связи с чем наблюдалось чрезвычайно большое число атак на веб-приложение – более 20 000 атак в день. При этом самыми распространенными являлись атаки с использованием инструментальных средств сканирования на наличие уязвимостей. Учащиеся, обладая базовыми знаниями об информационной безопасности и способах обхода механизмов защиты, могли использовать общедоступное ПО для сканирования системы. Этим объясняется и тот факт, что большая часть атак данного типа исходила со стороны США: вероятно, публичные утилиты или онлайн-сервисы использовали прокси-серверы, расположенные на территории США. Целью атак на информационно-аналитический центр, скорее всего, был доступ к результатам экзаменов и экзаменационным материалам. Возможно, учащиеся считали, что таким образом смогут изменить свои баллы, полученные за экзамен. Кроме того, можно предположить, что злоумышленники пытались найти уязвимости, эксплуатация которых позволила бы получить доступ к базам экзаменационных материалов для последующего нелегального распространения.
Для промышленных систем PT AF зафиксировал около 50 атак в день, практически все представляли собой автоматизированный поиск уязвимостей, и лишь 1% проводился вручную.
На следующей диаграмме для каждой отрасли представлено соотношение типов атак, осуществляемых злоумышленниками, при этом из расчетов были исключены атаки, совершаемые в рамках автоматизированного сканирования на наличие уязвимостей, поскольку они не являются специфичными для конкретных отраслей.
Соотношение типов атак, выполняемых вручную
Для государственных учреждений более 70% составили атаки Path Traversal, с помощью которых злоумышленники пытались выйти за пределы текущего каталога файловой системы и получить доступ к файлам, находящимся на сервере, с целью хищения чувствительной информации.
Пример обнаружения атаки Path Traversal представлен ниже. Злоумышленник намеревался выйти в корневую директорию сервера и получить доступ к файлу /etc/passwd, который содержит список учетных записей пользователей системы.
Пример обнаружения атаки «Path Traversal»
Около 17% атак являются попытками внедрения операторов SQL. Небольшую часть (около 8%) составляют атаки «Межсайтовое выполнение сценариев», направленные на пользователей порталов государственных услуг. Выполнить команды ОС злоумышленники пытались в 2% случаев.
Почти три четверти атак на интернет-магазины составили атаки Path Traversal. Так же, как и на порталах, предоставляющих государственные услуги, злоумышленники предпринимали попытки выйти за пределы текущего каталога файловой системы. Существенную часть (14%) составляют атаки на отказ в обслуживании. Для интернет-магазина угроза нарушения доступности веб-приложения является критической. Атаки на пользователей («Межсайтовое выполнение сценариев» и «Подделка межсайтовых запросов») в сумме составляют 4%. В 4% случаев встречается и внедрение операторов SQL.
В финансовой сфере около 65% в совокупности составили атаки «Межсайтовое выполнение сценариев» и «Подделка межсайтовых запросов», направленные на пользователей систем. Такие атаки широко распространены в финансовой отрасли и представляют особую опасность, поскольку позволяют похищать значения Cookie и учетные данные пользователей (при помощи фишинга), а также совершать действия от лица легитимных пользователей.
На рисунке приведен пример выявления атаки «Межсайтовое выполнение сценариев». Злоумышленник пытался вывести на экран значения Cookie для проверки уязвимости веб-приложения к этой атаке.
Пример обнаружения атаки «Межсайтовое выполнение сценариев»
Злоумышленники пробовали получить доступ к чувствительной информации с помощью атаки Path Traversal (15% от общего числа) и внедрения операторов SQL (7% от общего числа). Доля атак «Загрузка произвольных файлов» составила 7%. Подобные атаки часто используются для получения доступа к выполнению команд ОС, при этом непосредственное выполнение команд ОС было зарегистрировано в 3% случаев. В целом, характер и сложность атак свидетельствуют о более высоком уровне технической подготовки злоумышленников по сравнению с другими рассматриваемыми отраслями.
В сфере IT более половины зафиксированных атак являются попытками внедрения операторов SQL. Присутствуют также атаки Path Traversal (20% от общего числа). Кроме того, 16% являются попытками выполнения команд ОС, а 12% атак на веб-приложения IT-компаний нацелены на пользователей систем.
Для веб-приложений транспортных компаний количество атак «Внедрение операторов SQL» превышает 50%, около 38% составляет утечка информации, и 6% — выполнение команд ОС.
В сфере образования приблизительно 70% атак, выполняемых вручную, составило «Внедрение операторов SQL». Эта атака зачастую является достаточно простой в исполнении, ее можно использовать для получения доступа к личным кабинетам пользователей или содержимому баз данных. Около 30% атак представляют собой эксплуатацию уязвимости «Утечка информации», которая может позволить злоумышленнику получить чувствительные данные или узнать дополнительную информацию о системе.
На рисунке можно увидеть пример обнаружения внедрения операторов SQL, злоумышленник ввел свой запрос к базе данных в GET-параметре id для проверки возможности эксплуатации уязвимости.
Пример обнаружения атаки «Внедрение операторов SQL»
Почти две трети атак на приложения промышленных предприятий составили атаки на отказ в обслуживании (DDoS). На рисунке ниже представлен пример обнаружения трех цепочек атак, включая DDoS. Межсетевой экран PT AF строит такие цепочки автоматически, благодаря выявлению корреляций между событиями, которые разнесены во времени, но при этом являются частями одной атаки.
Пример обнаружения связанных событий, включая DDoS
Источники атак
Анализ источников атак проводился только в отношении российских систем, участвовавших в пилотных проектах. Наибольшее число зафиксированных атак исходят из русскоговорящих стран, на первых позициях находятся Россия и Украина. Достаточно высок процент атак, источником которых являются Нидерланды и США, поскольку на территории этих стран находится большое число провайдеров, предоставляющих услуги прокси-серверов.
Внешние источники атак по отраслям
Источники внешних атак на российские организации различаются в зависимости от отрасли. Большая часть атак на государственные учреждения совершается с российских IP-адресов, около трети совершаются с IP-адресов, принадлежащих украинским провайдерам, в 6% случаев источником являются Нидерланды.
Источником атак для интернет-магазинов приблизительно в равных долях (около четверти от общего числа) являются Россия и Украина. Более трети атак проходит через IP-адреса Нидерландов.
Для атак на сферу образования, как было показано выше, широко используются публичные сервисы и утилиты для сканирования веб-приложений на наличие уязвимостей. Для сокрытия действительного IP-адреса источника атаки такое ПО, в основном, задействует серверы, расположенные на территории США. Пятая часть атак исходит от российских IP-адресов.
Интересно отметить, что источником более трети атак на веб-приложения университетов являются внутренние злоумышленники (в среднем для сферы образования этот показатель равен 8%). Вероятно, это учащиеся, имеющие доступ к беспроводным сетям образовательного учреждения, а также доступ к локальной сети в учебных аудиториях.
Соотношение внешних и внутренних нарушителей
В финансовой сфере от внутренних нарушителей исходит около 10% атак. Не исключается также вариант, что нарушителем в ряде случаев может быть администратор системы, проводящий тестирование защитных механизмов.
Заключение
По результатам проведенных пилотных проектов PT AF можно сделать вывод, что большинство атак, совершаемых злоумышленниками, достаточно просты как в исполнении, так и в обнаружении средствами защиты типа WAF.
В то же время во второй половине 2016 года наблюдался значительный рост числа атак на веб-ресурсы, в первую очередь, с IP-адресов Украины и Турции. Принимая во внимание сообщения Федеральной службы безопасности о планируемых кибератаках, российским компаниям, в частности, финансовым организациям, рекомендуется заранее предпринять соответствующие меры для защиты критически важных компонентов и убедиться в эффективности используемых средств защиты.
Невзирая на большое количество простых атак, следует также учитывать, что уровень технической подготовки современных злоумышленников позволяет реализовать атаки высокого уровня сложности, требующие осуществления ряда действий, которые происходят в разное время и на первый взгляд не взаимосвязаны. Для выявления цепочек таких атак, в том чиcле для обнаружения длительных целевых атак и при расследовании инцидентов, необходимо использовать инструменты корреляционного анализа.
Полная версия исследования доступна по ссылке.
Авторы: Екатерина Килюшева, Евгений Гнедин
P. S. В четверг, 27 апреля в 14:00 старший эксперт Positive Technologies Всеволод Петров проведет бесплатный вебинар, в ходе которого расскажет о том, почему хакерам удается осуществлять успешные атаки на веб-приложения, и как это можно предотвратить.
Кроме того, речь пойдет о технологических возможностях межсетевого экрана уровня приложений PT Application Firewall, которые помогают ему усилить традиционные периметровые средства защиты и обеспечить безопасность по всем фронтам.
10 атак на веб-приложения в действии
В настоящее время практически все разработанные и разрабатываемые приложения стремятся стать как можно более доступными для пользователя в сети интернет. В сети размещаются различные приложения для более продуктивной работы и отдыха, такие как Google Docs, калькуляторы, электронные почты, облачные хранилища, карты, погода, новости и т.д… В общем все, что нужно для повседневной жизни. Наши смартфоны практически бесполезны без доступа к интернету, так как почти все мобильные приложения подключаются к облаку, сохраняя там наши фотографии, логины и пароли. Даже большинство домашних устройств постоянно подключено к сети.
Прикладной уровень является самой надежной защитой. Уязвимости, с которыми мы тут встретимся, зачастую полагаются на сложные сценарии ввода данных пользователем, что делает их трудноопределимыми с помощью систем обнаружения вторжений. Этот уровень — самый доступный извне. Для нормального функционирования приложения должен быть доступ через порт 80 (HTTP) или порт 443 (HTTPS).
В схеме ниже веб-приложение полностью доступно извне, несмотря на брандмауэры и системы предотвращения вторжений:
В 2014 году SQL инъекции были ответственны за 8,1 процента всех подобных атак. Это делает его третьим самым используемым типом атаки, сразу после малваре и DDoS атак. Также можно взглянуть на список других атак общего применения, таких как неверная конфигурация безопасности, использования компонентов с уже известными уязвимостями и межсайтовым скриптингом (XSS). Квалифицированный атакующий может легко найти эти уязвимости и использовать их без риска быть обнаруженным.
Большинство уязвимостей были обнаружены в собственном коде веб-приложений, их называют уязвимостями нулевого дня. Это все потому, что уязвимости являются специфическими для каждого приложения и никогда не были известны ранее. Лучшая защита против этих атак — создание безопасных приложений. Разработчики должны быть осведомлены о том, как те или иные атаки работают, чтобы создавать защиту непосредственно в своих приложениях.
Обучение и информирование разработчиков об уязвимостях приложений является основной целью проекта Open Web Application Security Project (OWASP). Организация публикует списки десяти самых распространенных атак для веб-приложений. Данный список обновляется каждые три года и последний раз обновлялся в 2013 году.
Команда IBM X-Force Ethical Hacking использовала данные отчеты, чтобы создать подборку из десяти видео, которые демонстрируют ряд атак для каждой категории из списка OWASP. Каждое видео включает информацию о том, как предотвратить эти атаки и как использовать автоматизированные инструменты для тестирования подверженности приложения к каждому виду атак. Данные видео были изначально предназначены для внутреннего использования, но потом компания решила предоставить их в свободном доступе в сети Интернет.
Мы уже достаточно наговорились ни о чем, давайте же перейдем к самим видео файлам.
10. Непроверенный переход и редирект
Эта категория уязвимостей используется в фишинговых атаках, в которых жертв обманом перенаправляют на вредоносный сайт. Злоумышленники могут манипулировать URL-ми реального сайта, чтобы перенаправить пользователя на нужную им страницу. Вы можете увидеть как Джонатан Фитц-Джеральд (Jonathan Fitz-Gerald) демонстрирует эту атаку на видео, ниже:
9. Использования компонентов с уже известными уязвимостями
Эта категория включает в себя различные приложения, которые продолжают использовать компоненты даже после обнаружения уязвимости в них. Злоумышленники с легкостью могут использовать уязвимости устаревших компонентов на приложения, которые их используют, так как эти уязвимости были уже давно доказаны и опубликованы. Любой скрипт-кидди можете произвести такой взлом.
8. Межсайтовая подделка запроса
Этот тип атаки используется в сочетании с социальными проектами. На видео ниже, Бреннан Brazeau (Brennan Brazeau) демонстрирует, как злоумышленник может украсть деньги из банковского счета жертвы путем использования социальных медиа — и фотографии котиков:
7. Отсутствие функции контроля уровня доступа
В данном случаи описывается ситуация, в которой функциональность более высокого уровня скрыта от более низкого или незарегистрированного пользователя вместо того, чтобы производить изменения через контроль доступов. Джон Заккато демонстрирует атаку, в которой пользователь более низкого уровня получает доступ к интерфейсу администрирования веб-приложения:
6. Чувствительная экспозиция данных
Тут отсутствует шифрования данных во время перемещения и в состоянии покоя. Если веб-приложения, которые вы используете не правильно защитят конфиденциальные данные, такие как кредитные карты или данные аутентификации, злоумышленники могут украсть или изменить данные.
5. Неправильная настройка безопасности
В данном видео будет исследована другая чрезвычайно опасная категория дефектов, которая связана с неправильной, неверной конфигурацией сервера или самого приложения.
4. Незащищенные прямые ссылки на объект
В этом видео Фитц-Джеральд продемонстрирует атаку незащищенной прямой ссылки на объект, что позволяет злоумышленникам получить данные с сервера, манипулируя именами файлов. Вы увидите, как он терпеливо загружает файл, пока не получит всю базу данных.
3. Межсайтовый скриптинг
Межсайтовый скриптинг тип уязвимости, позволяющий злоумышленникам вставить JavaScript на страницах реальных сайтов. Поступая таким образом, они могут полностью изменить содержимое сайта, чтобы получить возможность отправить учетные данные пользователя на любой другой сервере. Уоррен Мойнихан (Warren Moynihan) продемонстрирует нам как это может быть достигнуто, ниже:
2. Повреждение аутентификации и управление сеансами
Brazeau обсуждает недостатки программирования, которые позволяют злоумышленникам обойти методы проверки подлинности, которые используются приложением:
1. Инъекции
Инъекции позволяют атакующим изменить запрос бэкэнда команды через несанкционированный ввод данных пользователем. Мойнихан продемонстрирует несколько примеров SQL-инъекций и, самое главное, покажет как получить всю таблицу пользователя, включая пароли.