Методы защиты веб-приложений от CSRF-атак | Статья в журнале «Молодой ученый»

Отправьте статью сегодня! Журнал выйдет 28 декабря, печатный экземпляр отправим 1 января.

Опубликовать статью в журнале

Автор:

Рубрика: Информационные технологии

Опубликовано в Молодой учёный №8 (403) февраль 2022 г.

Дата публикации: 26.02.2022

Статья просмотрена: 662 раза

Библиографическое описание:

Прачёв, И. С. Методы защиты веб-приложений от CSRF-атак / И. С. Прачёв. — Текст : непосредственный // Молодой ученый. — 2022. — № 8 (403). — С. 4-7. — URL: https://moluch.ru/archive/403/89068/ (дата обращения: 18.12.2024).



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

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

Что такое CSRF-атака и как злоумышленник способен ее осуществить?

CSRF (Сross Site Request Forgery) дословно означает — подделка межсайтовых запросов. Работает данный тип атак с помощью так называемых Cookie или куки. Этот тип атак появился относительно давно, в 1988 году. Первые же уязвимости были обнаружены уже в 2000 году. А термин CSRF ввел Питер Уоткинс в 2001 году.

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

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

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

Если представить весь процесс CSRF-атаки в виде схемы, то это будет выглядеть следующим образом:

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

Как защититься от CSRF-атак

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

Токен имеет ряд обязательных требований:

– ограниченное время жизни

– должен быть сгенерирован криптографически стойким генератором псевдослучайных чисел

– действует только один раз

– для каждой операции свой, отличимый от другого, токен

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

– отсутствие XSS уязвимостей

– отсутствие вирусов на устройстве пользователя

Всего существует 3 основных способа применения токенов для защиты от CSRF:

– Synchronizer Tokens

– Double Submit Cookie

– Encrypted Token

Synchronizer Tokens

  1. При старте сессии на клиентской стороне генерируется токен.
  2. Токен помещается в специальное хранилище данных сессии.
  3. Ответом на запрос, что стартовал сессию, пользователю возвращается токен
  4. При дальнейших запросах клиент обязан передать токен серверу для проверки.
  5. При получении запроса одним из небезопасных методов сервер обязан проверить токен из данных сессии и токен, которых прислал клиент. Если оба токена совпадают, то запрос можно считать легитимным, в противном случает — запрос отклоняется, а событие логируется.

Double Submit Cookie

  1. При запросе от клиента, на стороне сервера происходит генерация токена. В ответном фрагменте данных токен возвращается в cookie и в одном из параметров ответа
  2. В дальнейших запросах клиент обязан предоставлять оба полученных ранее токена.
  3. При получении запроса одним из небезопасных методов сервер обязан проверить токен из cookie и токен, который был явно прислан клиентом. Если оба токена совпадают, то запрос можно считать легитимным. В противном случае запрос отклоняется и происходит его логирование.

Encrypted Token

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

Все вышеописанные методы имеют различные способы реализации и особенности в организации и построении процесса защиты. Стоит отметить, что токен — это обязательная защита от CSRF-атак. В противном случае Вы рискуете стать жертвой злоумышленника. Также стоит сказать о том, что не нужно передавать токены в URL, а защищать следует все запросы, не важно, каким методом HTTP протокола и с какой целью он был сделан. Так мы получаем токен, который постоянно меняется. Важно также ограничивать время жизни cookie, которое содержит токен, значением, например, 30 минут. Использование криптографического протокола защищенного обмена данными между клиентом и сервером — TLS только укрепит безопасность вашего веб-приложения. Размер же токена желательно задавать не менее 32 байт, что обеспечит его стойкость к подбору на время, максимально необходимое для смены токена.

Same Site

Сегодня идет работа над спецификацией атрибута «Same-Site» у cookies. Такой атрибут даст возмож возможность разработчикам веб-приложений явно указывать, что cookie не нужно передавать, если запрос идет с сайта, отличного от того, на котором cookie была установлена. А, значит, у нас появится возможность защищать ресурсы от CSRF без использования дополнительных инструментов.

Вывод

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

Литература:

  1. Олифер В. Компьютерные сети. Принципы, технологии, протоколы [Текст]: учебник для вузов. 5-е издание / В.Олифер, Н.Олифер.-СПб: Питер, 2016. — 992 с.
  2. Хоффман Э. Безопасность веб-приложений [Текст] / Э.Хоффман — СПб.: Питер, 2021. — 336 с.
  3. Борисенков О. Межсайтовая подделка запроса: защита от CSRF атак [электронный ресурс] / О.Борисенков. — Электронные текстовые данные. — Москва: [б.и.], 2021. — Режим доступа: https://tproger.ru/articles/mezhsajtovaja-poddelka-zaprosa-zashhita-ot-csrf-atak/, свободный.
Основные термины (генерируются автоматически): CSRF, XSS, запрос, HTTP, клиент, получение запроса, сервер, ваше веб-приложение, клиент-серверное взаимодействие, противный случай.


Похожие статьи

Анализ методов обеспечения безопасности веб-приложений

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

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

Наше исследование — рассмотрение операционных систем мобильных мультимедиа устройств и возможность их использования в профессиональной деятельности журналиста. Может ли быть смартфон «рабочим инструментом» представителя средств массовой информации и ...

Проблемы размещения бизнес-логики в клиентской части веб-приложений

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

Проектирование программного обеспечения сканера веб-уязвимостей TechnoScan c использованием нотаций диаграммы UML

В статье представлен анализ актуальности использования сканеров уязвимости для предотвращения возможных угроз и выявления уязвимостей веб-приложений на ранних этапах. Представлены результаты проектирования сканера веб-уязвимостей “TechnoScan” с испол...

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

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

STEAM-технологии в работе учителя-логопеда

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

Искусственный интеллект в работе веб-дизайнера: друг или враг

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

Сравнительный анализ правового регулирования рынка ценных бумаг и рынка криптовалют

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

Расширения браузеров как средства анализа защищенности веб-приложений от CSRF атак

Расширения браузера пользуются огромной популярностью: каждый третий пользователь Firefox или Google Chrome имеет хотя бы одно расширение. Но мало кто использует расширения браузеров как средства для проверки Web-сайтов на уязвимости. В этой статье п...

Перспективы применения генеративного искусственного интеллекта в бизнесе и промышленности: от автоматизации к креативности

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

Похожие статьи

Анализ методов обеспечения безопасности веб-приложений

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

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

Наше исследование — рассмотрение операционных систем мобильных мультимедиа устройств и возможность их использования в профессиональной деятельности журналиста. Может ли быть смартфон «рабочим инструментом» представителя средств массовой информации и ...

Проблемы размещения бизнес-логики в клиентской части веб-приложений

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

Проектирование программного обеспечения сканера веб-уязвимостей TechnoScan c использованием нотаций диаграммы UML

В статье представлен анализ актуальности использования сканеров уязвимости для предотвращения возможных угроз и выявления уязвимостей веб-приложений на ранних этапах. Представлены результаты проектирования сканера веб-уязвимостей “TechnoScan” с испол...

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

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

STEAM-технологии в работе учителя-логопеда

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

Искусственный интеллект в работе веб-дизайнера: друг или враг

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

Сравнительный анализ правового регулирования рынка ценных бумаг и рынка криптовалют

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

Расширения браузеров как средства анализа защищенности веб-приложений от CSRF атак

Расширения браузера пользуются огромной популярностью: каждый третий пользователь Firefox или Google Chrome имеет хотя бы одно расширение. Но мало кто использует расширения браузеров как средства для проверки Web-сайтов на уязвимости. В этой статье п...

Перспективы применения генеративного искусственного интеллекта в бизнесе и промышленности: от автоматизации к креативности

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

Задать вопрос