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

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

Как предотвратить межсайтовые сценарии

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

  • Если это возможно, избегать HTML во входных данных. Один из очень эффективных способов избежать постоянных атак межсайтовых сценариев — запретить пользователям публиковать HTML во входных данных формы. Есть и другие опции, которые позволяют пользователям создавать богатый контент без использования HTML, такие как markdown и WYSIWYG редакторы.
  • Проверка входных данных. Проверка означает реализацию правил, запрещающих пользователю отправлять данные в форму, которая не соответствует определенным критериям. Например, входные данные, запрашивающие «фамилию» пользователя, должны иметь правила проверки, позволяющие пользователю отправлять данные, состоящие только из буквенно-цифровых символов. Правила проверки также можно настроить на отклонение любых тегов или символов, обычно используемых в межсайтовых сценариях, например, тегов «<script>».
  • Очистка данных. Очистка данных аналогична проверке, но происходит после того, как данные уже были отправлены на веб-сервер, но до того, как они будут отображены другому пользователю. Есть несколько онлайн-инструментов, которые могут очищать HTML и отфильтровывать любые инъекции вредоносного кода.
  • Принятие мер безопасности файлов cookie. Веб-приложения также могут устанавливать специальные правила для обработки файлов cookie, которые могут смягчить кражу файлов с помощью межсайтовых сценариев. Файлы cookie могут быть привязаны к определенным IP-адресам, чтобы злоумышленники, использующие межсайтовые сценарии, не могли получить к ним доступ. Кроме того, можно создать правила, блокирующие доступ JavaScript к файлам cookie.

Настройка правил WAF-WAF также можно настроить для применения правил, которые будут препятствовать отражению межсайтовых сценариев. Эти правила WAF используют стратегии, которые блокируют странные запросы к серверу, включая атаки межсайтовых сценариев. Cloudflare WAF предлагает установку «в аренду» и защищает веб-приложения от межсайтовых сценариев, DDoS-атак, SQL-инъекций и других распространенных угроз.

Подделка межсайтовых запросов

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

Как работает подделка межсайтовых запросов

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

Вот пример 4 шага в атаке «подделка межсайтовых запросов»:

  1. Злоумышленник создает поддельный запрос, который при запуске переводит $10 000 из определенного банка на его счет.
  2. Злоумышленник вставляет поддельный запрос в гиперссылку и отправляет его в массовых электронных письмах, а также встраивает его в веб-сайты.
  3. Жертва нажимает на электронную почту или ссылку на веб-сайте, размещенную злоумышленником, в результате чего жертва обращается в банк с просьбой перевести $10,000.
  4. Банковский сервер получает запрос, и поскольку жертва должным образом авторизована, он рассматривает запрос как законный и переводит средства.

CSRF-атаки различаются по методологии, но обычно имеют следующие характеристики:

  • Они используют веб-сайты, которые полагаются на удостоверение пользователя;
  • Они обманом заставляют браузер пользователя отправлять HTTP-запросы на целевой сайт;
  • Они включают использование запросов HTTP, которые имеют побочные эффекты и не имеют надлежащей защиты CSRF на сайте.

Различные команды HTTP имеют различную уязвимость к атакам CSRF, что приводит к различным стратегиям защиты. Это связано с тем, как веб-браузеры обрабатывают запросы.

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

HTTP POST используется для изменения состояния, что приводит к увеличению потребности в защите. С этой целью веб-браузеры реализуют меры безопасности, называемые одной и той же исходной политикой (SOP) и общим доступом к ресурсам (CORS), который содержит политику безопасности перекрестного источника. SOP позволяет только запросы от того же источника и CORS позволяет только определенные типы запросов, чтобы прибыть из другого источника. Сочетание этих реализаций помогает предотвратить атаки CSRF (среди прочих), ограничивая способность запроса или веб-страницы взаимодействовать с другим источником.

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