CSRF: атаки с подделкой межсайтовых запросов объяснены

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

Определение

CSRF: Межсайтовая подделка запросов (CSRF или XSRF) — это метод атаки, который в основном используется для совершения интернет-мошенничества. Преступники используют HTTP-запросы для захвата аутентифицированной сессии пользователя (session riding) и выполнения вредоносных действий.

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

В двух словах, вот как работает CSRF: В то время как вы вошли на сайт, вы посещаете другой сайт, созданный хакером. Там вы выполняете какое-то действие, например, нажимаете на кнопку. Затем злоумышленник отправляет HTTP-запрос на сайт, на котором вы зарегистрированы, и использует вашу личность для выполнения вредоносного действия, поскольку ваша сессия все еще активна. Все, что нужно знать злоумышленнику, — это правильный HTTP-запрос, который довольно легко вычислить.

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

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

Наиболее часто проводятся три типа CSRF-атак. Самая популярная техника — подбросить URL-адрес эксплойта. Этот URL скрыт на внешнем сайте или в электронном письме. Открытие URL вызывает HTTP-запрос. В принципе, вы можете обнаружить этот тип URL, если будете внимательны. Однако для маскировки происхождения URL можно использовать социальную инженерию и подмену URL.

Существует также возможность межсайтового скриптинга (XSS): Некоторые хакеры, вместо того чтобы создавать свой собственный вредоносный сайт, манипулируют существующим сайтом с помощью XSS, который затем используется для выполнения преступных действий без ведома оператора сайта. При этом типе атаки JavaScript обычно подставляется на сайт для осуществления CSRF-атаки.

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

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

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

Затем хакер может создать веб-сайт (или отправить электронное письмо), который привлечет ваш интерес. На сайте или в электронном письме вас просят нажать на безобидную на первый взгляд ссылку, которая активирует поддельный HTTP-запрос. Затем запрос отправляется в банк, который выполняет действие, запрошенное хакером. У сервера нет причин не выполнить это действие, поскольку сессия все еще активна, а запрос корректен. Таким образом, деньги просто переводятся. Вы ничего не заметите, пока в следующий раз не проверите баланс своего счета.

Примечание

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

Другие сценарии атак:

  • Социальные сети: Злоумышленники публикуют комментарии или ставят лайки от имени вошедших в систему пользователей.
  • Администрирование веб-сайта: Если у жертвы есть доступ к бэкэнду, злоумышленники могут создавать новых пользователей или удалять весь сайт без ведома администратора.
  • Онлайн-покупки: Злоумышленник может совершать покупки в интернет-магазине без ведома пользователя.
Факт

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

Меры безопасности: Как предотвратить атаки CSRF?

Соблюдайте осторожность и внимательность в Интернете

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

Проверьте свои устройства на наличие вредоносных программ

Убедитесь, что ваше устройство (ПК, ноутбук, смартфон и т.д.) свободно от вредоносных программ. Гораздо сложнее предотвратить CSRF, если фоновое приложение шпионит за вами. Как только ваше устройство заражено, вы становитесь уязвимы для многих других типов атак.

Защита CSRF операторами веб-сайтов

Операторы веб-сайтов также могут защитить посетителей своих сайтов: Злоумышленники могут осуществлять атаки межсайтовой подделки, поскольку им известна точная структура уязвимых форм и HTTP-запросов. Но если ввести случайный фактор, хакер обычно сдается. Веб-сайт может создать одноразовый токен (случайную строку) и сделать его частью HTTP-запроса. Если сервер получает запрос, не содержащий маркера или содержащий недействительный маркер, запрос автоматически отклоняется.

Двухфакторная аутентификация

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

Заголовок реферера

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

Выходите из системы, когда закончили

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

Оцените статью
cdelat.ru
Добавить комментарий