CSRF-атаки и защита
Механизмы подделки запросов
CONTENT
Введение в CSRF
01
Механизм CSRF-атак
02
Методы защиты
03
Введение в CSRF
01
Определение атаки
1
2
3
4
Что такое CSRF
Межсайтовая подделка запроса, заставляющая пользователя выполнить нежелательные действия на сайте, где он аутентифицирован.
Цели атак
Перевод денег, изменение паролей, модификация данных без ведома пользователя.
Принцип работы
Злоумышленник использует сессионные куки аутентифицированного пользователя для отправки поддельных запросов от его имени.
Опасность
Особенно критична для пользователей с высокими привилегиями, например администраторов систем.
Механизм действия
01
02
03
04
Принцип работы
Злоумышленник использует уязвимость для отправки поддельных запросов от имени аутентифицированного пользователя.
Этапы атаки
Пользователь входит на сайт, злоумышленник создает вредоносную ссылку, жертва активирует запрос, сервер выполняет действие.
Автоматические куки
Браузер добавляет сессионные данные к запросам, что позволяет серверу принять поддельный запрос как легитимный.
Без ведома жертвы
Пользователь не подозревает о выполнении действий от его имени на сайте, где он аутентифицирован.
Цели атак
Перевод денег
Злоумышленник может заставить пользователя перевести деньги на свой счет без его ведома.
Изменение пароля
Атакующий способен изменить пароль жертвы, получив контроль над аккаунтом.
Модификация данных
CSRF-атаки позволяют удалять или изменять важную информацию в системе пользователя.
Опасность для привилегированных пользователей
Высокие привилегии
Администраторы особенно уязвимы для CSRF-атак из-за расширенных прав доступа.
Нежелательные действия
Злоумышленники могут заставить пользователя выполнить опасные операции без его ведома.
Возможные последствия
Перевод денег, изменение паролей, удаление данных от имени привилегированного пользователя.
Разделение прав
Защита через ограничение доступа и многофакторную аутентификацию для критических операций.
Механизм CSRF-атак
02
Принцип работы
Механизм атаки
Злоумышленник использует аутентифицированную сессию пользователя для отправки поддельных запросов без его ведома.
Этапы CSRF
Пользователь входит на сайт, злоумышленник создает вредоносную ссылку, жертва активирует её, сервер выполняет запрос.
GET-запросы
Атака через скрытые изображения, автоматически отправляющие запросы на целевой сайт при загрузке страницы.
POST-запросы
Автоматическая отправка форм с вредоносными данными через скрипты без ведома пользователя.
Этапы проведения атаки
Аутентификация пользователя
Пользователь входит на доверенный сайт, сервер устанавливает сессионные куки для идентификации.
Создание вредоносной ссылки
Злоумышленник создает ссылку или форму на другом сайте, зная об аутентификации пользователя.
Активация запроса
Пользователь случайно активирует ссылку, запрос отправляется с сессионными данными пользователя.
Выполнение действия
Сервер принимает запрос как легитимный и выполняет действие от имени пользователя.
Использование сессионных данных
Механизм работы
Злоумышленник использует сессионные куки пользователя для отправки поддельных запросов на доверенный сайт.
Автоматическое добавление
Браузер добавляет сессионные данные к запросам на тот же домен без ведома пользователя.
Уязвимость доверия
Сервер принимает запрос как легитимный, полагая что действие инициировано самим пользователем.
Защита токенами
Генерация уникальных CSRF-токенов для каждой сессии предотвращает автоматическую отправку поддельных запросов.
Примеры GET и POST запросов
01
02
03
GET-запрос
Злоумышленник использует скрытое изображение для перевода денег без ведома пользователя.
POST-запрос
Автоматическая отправка формы для смены пароля пользователя на сайте банка.
Механизм атаки
Использование сессионных данных жертвы для выполнения несанкционированных действий от её имени.
Методы защиты
03
CSRF-токены
Механизм защиты
Уникальные токены привязываются к сессии пользователя и вставляются в формы или запросы.
1
Принцип работы
Сервер генерирует токен, отправляет с формой, проверяет при возврате запроса.
2
Пример реализации
Скрытое поле в HTML-форме с уникальным значением токена для проверки сервером.
3
Эффективность
Наиболее распространённый и надёжный метод защиты от CSRF-атак.
4
Привязка сессий к IP
03
01
02
Принцип защиты
Сессия пользователя привязывается к IP-адресу для предотвращения CSRF-атак.
Ограничения метода
IP-адреса могут меняться при использовании мобильных сетей или VPN.
Область применения
Может быть полезен в определенных случаях как дополнительный уровень защиты.
Проверка заголовков Referer/Origin
01
02
03
Проверка источника запроса
Браузеры отправляют заголовки, показывающие источник запроса, что позволяет серверу проверить его происхождение.
Доверенные домены
Сервер отклоняет запросы с недоверенных источников, обеспечивая дополнительный уровень защиты.
Ограничения метода
Не всегда надежен, так как некоторые браузеры могут не отправлять Referer, а злоумышленники могут подделать заголовки.
Безопасные HTTP-методы
Безопасные методы
Используйте POST вместо GET для критически важных операций.
GET-запросы
Не должны изменять состояние системы или выполнять транзакции.
Критические операции
Для изменения пароля или переводов денег рекомендуются только безопасные методы.
Разделение прав доступа
Защита от CSRF-атак
Разделение прав доступа предотвращает выполнение административных действий через CSRF.
Ограничение функций
Критически важные функции доступны только определенным пользователям.
Многофакторная аутентификация
Подтверждение важных операций через дополнительные факторы защиты.
Уровни доступа
Структурированное распределение прав минимизирует риск успешных CSRF-атак.
Thanks!