Безопасность приложений
Защита веб-приложений Роль и функции веб-брандмауэра (WAF) в предотвращении сетевых атак - ICORE

Разбор семи этапов цепочки атаки SQL-инъекций

Web application firewall (WAF) — это совокупность программных мониторов и фильтров, предназначенных для обнаружения и блокирования сетевых атак на веб-приложение. WAF устанавливается перед защищаемым веб ресурсом и анализирует все передаваемые HTTP запросы на наличие вредоносного кода и потенциально опасную активность злоумышленников. При проведении анализа WAF основывается на различных механизмах сигнатурного анализа, правилах, средствах анализа аномалий. Также в своей работе WAF могут использовать нейросети и различные индикаторы атак.

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

WAF ориентирован на выявление атак из списка OWASP Top 10. В рамках данной статьи мы не будем подробно погружаться в особенности эксплуатации каждой из уязвимостей из этого списка. Однако список этих уязвимостей приведен ниже.

OWASP Top 10:

  • Инъекции (Injections).
  • Нарушенная аутентификация (Broken Authentication).
  • Раскрытие критически важных данных (Sensitive Data Exposure).
  • Внешние объекты XML (XXE) (XML External Entities (XXE)).
  • Нарушенный контроль доступа (Broken Access control).
  • Неправильная конфигурация безопасности (Security misconfigurations).
  • Межсайтовый скриптинг (XSS) (Cross Site Scripting (XSS)).
  • Небезопасная десериализация (Insecure Deserialization).
  • Использование компонентов с известными уязвимостями (Using Components with known vulnerabilities).
  • Недостаточно подробные журналы и слабый мониторинг (Insufficient logging and monitoring).

Защита веб-приложений Роль и функции веб-брандмауэра (WAF) в предотвращении сетевых атак - ICORE (2)

По аналогии с другими средствами защиты WAF используют различные механизмы для выявления опасных активностей. Такими механизмами является использование сигнатур и правил.

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

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

Далее, для примера, разберём классическую цепочку атаки «SQL Injection».

Кибератаки могут нанести огромный ущерб системе организации, и в последние годы их частота только увеличивается. Особенно разрушительным примером является SQL-инъекция. Эта форма атаки предполагает использование кода сайта или приложения с помощью языка структурированных запросов (SQL). Она считается одной из самых серьезных киберугроз, поскольку открывает злоумышленникам доступ к конфиденциальным данным, хранящимся в базах данных, позволяет модифицировать или удалять данные и даже создавать новые учетные записи пользователей. С помощью этих средств злоумышленники могут получить контроль над всей системой.

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

Цепочка атаки с использованием SQL-инъекции состоит из семи этапов. Ниже мы подробно рассмотрим каждый из этих этапов.

1.       Разведка (Reconnaissance)

На этапе разведки злоумышленники определяют информацию о своих целях, например, их слабые и уязвимые места. Для этого собираются данные из различных источников, включая аккаунты в социальных сетях, публичные записи и результаты поисковых систем. Злоумышленники также могут использовать хакерские инструменты, например сканеры портов, для выявления открытых портов в системе. При атаке с использованием SQL-инъекций злоумышленники используют самые разнообразные приемы для получения доступа к объекту атаки.

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

2.       Подготовка инструментария (Weaponization)

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

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

3.       Доставка (Delivery)

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

Злоумышленник также может использовать методы межсайтового скриптинга (XSS) для внедрения вредоносного кода в веб-приложения через сценарии на стороне клиента, такие как JavaScript или HTML-документы. Это позволяет злоумышленникам похищать конфиденциальные данные, например учетные данные, выполняя несанкционированные команды на стороне сервера веб-сайта или приложения. На этапе доставки злоумышленники могут модифицировать существующие функции приложения, манипулируя вводимыми пользователем данными до того, как приложение примет их на стороне сервера.

4.       Эксплуатация (Exploitation)

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

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

5.       Установка (Installation)

Этап установки наступает после того, как злоумышленник успешно доставил вредоносную полезную нагрузку на цель. На этом этапе злоумышленники, как правило, устанавливают на уязвимые системы бэкдоры для сохранения доступа и выполнения дополнительных команд без авторизации. Злоумышленники могут установить бэкдоры, используя известные уязвимости или скомпрометированные учетные данные. Угрозы могут использовать эти бэкдоры для получения доступа к конфиденциальной информации, такой как пароли, номера кредитных карт или другие конфиденциальные данные.

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

6.       Командование и управление (Command and Control)

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

7.       Действия по достижению цели (Actions on Objective)

Этап действий по достижению цели является заключительным этапом атаки с использованием SQL-инъекций. На этом этапе злоумышленники, как правило, запускают свою вредоносную полезную нагрузку и выполняют все необходимые действия. Это может быть доступ к конфиденциальным данным, изменение существующих конфигураций или выполнение вредоносных команд для получения дальнейшего доступа к другим системам в сети. Злоумышленники могут использовать взломанную систему в качестве стартовой площадки для проведения распределенных атак типа “отказ в обслуживании” (DDoS) на другие сети или системы, а также использовать систему для хранения похищенных данных или размещения вредоносного кода.

На этом этапе злоумышленники, скорее всего, попытаются замести следы, удалив все доказательства своей причастности. После выполнения задания злоумышленники, как правило, отключаются от точки удаленного доступа и стирают все следы своей деятельности.

Помните, знание – сила при борьбе с SQL-инъекциями.

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

Подытоживая, определим ключевые возможности WAF:

  • Поддержка всех применимых к web-приложениям PCI DSS Requirements*, связанных с компонентами системы в среде обработки данных по платежным картам;
  • Оперативная реакция (определяется активной политикой и/или набором правил) на угрозы и атаки, определенные, как минимум, в OWASP Top 10**;
  • Проверка входящего HTTP/HTTPS трафика и запросов к web-приложениям и принятие защитных мер на основе активных политик и правил (разрешить, блокировать, предупредить);
  • Поддержка и соблюдение корректного функционирования положительной и отрицательной модели безопасности;
  • Изучение и проверка web-контента, созданного с помощью Hypertext Markup Language (HTML), Dynamic HTML (DHTML), Cascading Style Sheets (CSS) и основных протоколов доставки web-контента, таких как Hypertext Transport Protocol (HTTP) и Transport Protocol Hypertext over SSL (HTTPS);
  • Предотвращение утечки данных — проверка исходящего HTTP/HTTPS трафика и запросов к web-приложениям и принятие защитных мер на основе активных политик и правил, а также своевременная запись произошедших событий в журнал событий;
  • Анализ сообщений web-сервисов, в особенности публичных. Как правило, включает себя проверку Simple Object Access Protocol (SOAP) и eXtensible Markup Language (XML), а также Remote Procedure Call (RPC) ориентированные модели взаимодействия с web-сервисами, основанные на базе HTTP;
  • Проверка любого протокола или конструкции данных (проприетарных или стандартизированных), которые используются для передачи данных в/из web-приложения.
  • Защита от угроз, направленных непосредственно на WAF;
  • Терминация SSL и/или TLS (расшифровка и проверка трафика перед отправкой к web-приложению).

Источник:
https://securityintelligence.com/articles/seven-steps-sql-injection-kill-chain/
https://ru.wikipedia.org/wiki/
https://icore.kz/bezopasnost-prilozhenij/pt-af/
https://icore.kz/bezopasnost-prilozhenij/barracuda-web-application-firewall/

Перевод и редакция:
Ледебев А.