Блог

Как Интернет учится защищаться от угроз

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

Комплексное исследование, проведенное учёным из немецкого центра исследований в области кибербезопасности CISPA Яннисом Раутенстраухом (Jannis Rautenstrauch) и его коллегами, показало, что сегодня браузеры ведут себя гораздо более стабильно. А для выявления оставшихся отклонений команда разработала инструмент тестирования с открытым исходным кодом. Статья о результатах исследования опубликована в CISPA в 2025 году.

Безопасность в Интернете — это не фиксированное состояние, а своего рода процесс согласования между сервером и браузером. Браузеры получают веб-страницу с одного или нескольких серверов и собирают её различные компоненты, такие как изображения, шрифты или файлы JavaScript, в привычный нам вид на экране. «В ходе этого процесса браузеры постоянно принимают определённые решения по обеспечению безопасности», — объясняет Раутенштраух.

Что содержат заголовки безопасности?

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

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

Как браузеры обрабатывают инструкции по безопасности и что тестировали исследователи?

Ключевым компонентом браузера является парсер — синтаксический анализатор. Это программа, которая преобразует заголовки безопасности, HTML, CSS или JavaScript в структуру данных, понятную браузеру.

«Браузеры могут выглядеть по-разному, но часто они используют одно и то же техническое ядро, включая парсер. 97% широко используемых браузеров основаны всего на трех различных движках: Blink, (например, в Chrome, Edge и Opera), Gecko (в Firefox и Tor) и WebKit (в Safari)», — говорит Раутенштраух.

Исследователи провели 177 146 систематических тестов в наиболее широко используемых браузерах. «Мы протестировали 16 наиболее важных с точки зрения безопасности заголовков в различных конфигурациях браузера. В 5606 тестах, то есть в 3,16% случаев, браузеры вели себя по-разному», — объясняет Раутенштраух.

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

Регулярное тестирование приводит к улучшению результатов

Результаты тестов показывали, что различия между браузерами и версиями браузеров в рамках одного и того же браузерного движка встречаются редко, в то время как различия между тремя основными браузерными движками — Blink, Gecko и WebKit — встречаются гораздо чаще.

«Это означает, что заголовки безопасности еще не всегда интерпретируются и применяются одинаково, но общая ситуация постепенно улучшается», — комментирует Раутенштраух. Однако, исследователи обнаружили особенно частые различия в поведении браузера для одного конкретного заголовка безопасности — это HSTS (HTTP Strict Transport Security).

«HSTS предписывает браузерам загружать веб-сайт исключительно по защищенному HTTPS-соединению и блокировать небезопасные HTTP-соединения. Причина большого количества отклонений оказалась очевидной: в отличие от других заголовков, для HSTS не проводятся систематические тесты в разных браузерах. По мнению учёных, эту ситуацию необходимо изменить.

Инструмент тестирования для выявления редких случаев

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

Источник: TechXplore

Изображение для иллюстрации. Источник: Freepik.com

Приветствуем! 👋
Приятно познакомиться.

Подпишитесь, чтобы получать наш контент.

Мы не спамим! Прочтите нашу политику конфиденциальности, чтобы узнать больше.