Drive-by загрузка — это ситуация, когда сайт пытается скачать файл без понятного и осознанного действия пользователя. Иногда это выглядит как случайный файл в папке «Загрузки», иногда как редирект на сомнительный домен, иногда как попытка воспользоваться уязвимостью в браузере. NoScript и похожие расширения помогают именно на ранней стадии: они не дают JavaScript и другому активному контенту запускаться автоматически на каждом сайте.
Но есть нюанс: если поставить такой инструмент и сразу разрешить всё «чтобы сайты работали», защита почти исчезает. Рабочая схема другая — блокировать всё по умолчанию, а разрешения выдавать точечно и временно.
- Что именно мешает Drive-by атакам
- Как настроить NoScript в Firefox
- Как выдавать разрешения без лишнего риска
- Какие настройки браузера стоит включить вместе с NoScript
- Аналоги NoScript: что выбрать вместо него
- Как настроить аналоги под ту же задачу
- Что выбрать в зависимости от ситуации
- Частые ошибки при защите от Drive-by загрузок
- Как лучше сделать на практике
- Признаки, что настройка работает нормально
- Итог
Что именно мешает Drive-by атакам
Большинство Drive-by сценариев завязаны на код, который сайт запускает в браузере: скрипты, рекламные сети, редиректы, скрытые iframe, подгружаемые виджеты. Современный браузер уже многое ограничивает: sandbox, защита от фишинга, блокировка небезопасных загрузок, запрет старых плагинов. Но этого не всегда достаточно, особенно если пользователь попал на взломанный легитимный сайт или на страницу с агрессивной рекламой.
NoScript и аналоги работают проще: они не пытаются угадать, хороший сайт или плохой. Они спрашивают: «А зачем этому сайту прямо сейчас запускать весь JavaScript?» Если ответа нет, скрипт остаётся заблокированным.
Такая настройка снижает риск в нескольких случаях:
- сайт пытается автоматически запустить скачивание файла;
- рекламная сеть перенаправляет на вредоносную страницу;
- на странице есть подозрительные iframe или скрытые формы;
- вредоносный код использует JavaScript для обхода обычных браузерных ограничений;
- пользователь случайно попал на страницу, где кнопка «Скачать» маскирует другой файл.
При этом расширение не заменяет обновления браузера, нормальный антивирус и здравый смысл. Если человек сам нажал «Скачать» и открыл файл, NoScript тут уже не волшебник.
Как настроить NoScript в Firefox
NoScript — это расширение для Firefox. В Chrome, Edge и большинстве Chromium-браузеров его нет, там нужны аналоги. Если используете Firefox, я бы настраивал его так:
- Установите NoScript только из официального магазина Mozilla Add-ons. Не скачивайте расширение с лендингов, где большая кнопка «Download» и много рекламы.
- После установки не нажимайте «разрешить скрипты везде». Это частая ошибка, после которой расширение превращается в декоративную кнопку.
- Оставьте политику по умолчанию, при которой новые сайты не получают постоянных разрешений. В разных версиях NoScript названия пунктов могут отличаться, но смысл один: неизвестный сайт сначала должен быть заблокирован.
- Проверьте, что в настройках нет глобального доверия ко всем доменам. Если видите длинный список Trusted-сайтов, лучше пройтись и удалить лишнее.
- Для обычных сайтов используйте временные разрешения: Temporary/Temporarily trust, а не постоянное доверие.
- Если сайт сломался, разрешайте скрипты не «всем подряд», а только тем доменам, которые реально нужны для работы страницы.
На практике это выглядит так: вы открыли новостной сайт, и половина элементов не работает. Это нормально. Если вам нужно только прочитать статью — включите режим чтения или закройте сайт. Если нужно войти в личный кабинет, временно разрешите скрипты основному домену. Если после этого появились всплывающие окна, редиректы или скачивание — отзовите разрешение и закройте вкладку.
Как выдавать разрешения без лишнего риска
Главная идея — не доверять сайту полностью только потому, что он «похож на настоящий». Лучше мыслить так: сайт состоит из нескольких доменов. Основной домен — это то, куда вы зашли. Сторонние домены — это реклама, аналитика, карты, социальные кнопки, CDN, трекеры. Drive-by часто приходит именно через сторонние элементы.
Удобная схема:
- первый заход на неизвестный сайт — скрипты заблокированы;
- если сайт нужен — временно разрешить основной домен;
- если функциональность не работает — добавить один нужный домен;
- если после добавления домена началось скачивание или открылась новая вкладка — сразу отозвать разрешение;
- после работы удалить временные разрешения или перезапустить браузер.
Например, вы зашли на сайт банка. Ему нужны скрипты основного домена, возможно ещё один-два домена для авторизации или форм. Но нет смысла доверять десяткам рекламных и аналитических доменов. Для интернет-магазина ситуация похожая: страница товара может работать с заблокированной аналитикой, а вот оформление заказа иногда требует дополнительных скриптов. Их лучше добавлять только на время покупки.
Какие настройки браузера стоит включить вместе с NoScript
Блокировщик скриптов работает лучше, когда браузер сам не помогает вредоносной странице.
- Автоматические обновления браузера. Drive-by атаки часто рассчитаны на старые версии браузеров. Обновления закрывают именно такие дыры.
- Защита от фишинга и вредоносных сайтов. В Firefox, Chrome и Edge такие функции есть. Не отключайте их ради «приватности» или скорости.
- Вопрос перед сохранением файла. В настройках загрузок полезно включить опцию «спрашивать, куда сохранять файл». Это не остановит атаку, но не даст файлу тихо улететь в папку загрузок.
- Отключение автооткрытия файлов. Особенно для архивов, документов, исполняемых файлов и HTML-файлов.
- Отдельный профиль браузера для рискованных задач. Если приходится заходить на сомнительные сайты, лучше делать это не в основном профиле с паролями, банками и почтой.
- Регулярная чистка разрешений. Раз в месяц стоит проверить список сайтов, которым разрешены скрипты, камеры, микрофон, уведомления и скачивание нескольких файлов.
Если файл начал скачиваться сам — не открывайте его. Отмените загрузку, удалите файл из папки загрузок, закройте подозрительные вкладки и проверьте браузер на неизвестные расширения. Если вы вводили пароль или платёжные данные на такой странице, меняйте пароль отдельно и проверяйте активность аккаунта.
Аналоги NoScript: что выбрать вместо него
NoScript хорошо подходит тем, кто готов иногда чинить сломанные сайты. Но не всем нужен такой строгий режим. Ниже — варианты, которые решают похожую задачу по-разному.
| Инструмент | Где использовать | Что даёт против Drive-by загрузок | Когда выбирать | Ограничения |
|---|---|---|---|---|
| NoScript | Firefox | Блокирует JavaScript и активный контент по умолчанию, разрешения выдаются по доменам | Нужна сильная защита и есть готовность вручную разрешать сайты | Может ломать сложные сайты, банки, личные кабинеты и интернет-магазины |
| uBlock Origin в расширенном режиме | Firefox, Chrome, Edge и другие Chromium-браузеры | Блокирует рекламные и трекерские запросы, может запрещать сторонние скрипты | Нужно меньше поломок, но больше защиты, чем у обычного блокировщика рекламы | Это не полноценный менеджер разрешений как NoScript |
| Requestly | Chrome, Edge, Firefox | Позволяет блокировать или перенаправлять запросы по правилам | Есть конкретные домены или URL-шаблоны, которые нужно блокировать | Требует понимания правил и адресов запросов |
| ScriptSafe | Chrome, Edge и другие Chromium-браузеры | Блокирует JavaScript по сайтам, похож на упрощённый NoScript | Нужна простая схема «запретить по умолчанию, разрешить выбранные сайты» | Меньше тонких настроек, чем у NoScript |
| Brave Shields | Brave Browser | Может блокировать скрипты на сайте, а также рекламу и трекеры | Нужно готовое решение без сложной настройки | Меньше контроля над отдельными доменами и скриптами |
| Встроенные настройки JavaScript | Chrome, Edge, Firefox | Можно запретить JavaScript глобально или разрешить исключения | Нет желания ставить расширения | Слишком грубый инструмент: обычно нет удобного контроля сторонних скриптов |
Как настроить аналоги под ту же задачу
Если NoScript вам не подходит, задача остаётся той же: не давать неизвестным сайтам выполнять лишний код.
uBlock Origin. В обычном режиме он хорошо режет рекламу и трекеры, но против Drive-by загрузок полезнее расширенный режим. Включите блокировку всплывающих окон, сторонних скриптов и подозрительных запросов. Для важных сайтов можно временно отключать только конкретные правила, а не весь блокировщик.
Requestly. Это инструмент для тех, кто понимает, что блокирует. Например, можно создать правило на блокировку скриптов с известного вредоносного домена или запретить загрузку файлов с подозрительного URL-шаблона. Но правило вида «блокировать все .js» сломает почти весь интернет, поэтому такие настройки лучше делать точечно.
ScriptSafe. Хороший вариант для Chrome/Edge, если хочется логику NoScript без перехода на Firefox. Ставьте режим блокировки по умолчанию, а сайты добавляйте в разрешённые только после проверки. Для банков и рабочих сервисов лучше использовать временные разрешения, если инструмент это позволяет.
Brave Shields. Подойдёт, если нужен браузер «поставил и пользуешься». Блокировка скриптов в Brave проще, чем в NoScript, но для обычного пользователя это часто удобнее. Минус — меньше контроля: не всегда понятно, какой именно сторонний скрипт сломал страницу.
Встроенные настройки JavaScript. Самый грубый вариант. Можно запретить JavaScript для всех сайтов и добавить исключения. Проблема в том, что исключение обычно доверяет сайту целиком. Для защиты от Drive-by это слабее, чем по-доменная блокировка в NoScript или ScriptSafe.
Что выбрать в зависимости от ситуации
Если вы используете Firefox и хотите максимальный контроль, ставьте NoScript. Это самый прямой инструмент для задачи «не запускать скрипты без разрешения». Но будьте готовы, что некоторые сайты придётся чинить вручную.
Если вы в Chrome или Edge и не хотите переходить на Firefox, начните с ScriptSafe или uBlock Origin в расширенном режиме. ScriptSafe ближе к NoScript по логике, uBlock Origin — удобнее для повседневной защиты от рекламы, трекеров и части вредоносных запросов.
Если вы не технический пользователь, не начинайте с жёсткого NoScript. Лучше взять Brave с включёнными Shields или uBlock Origin в обычном режиме, добавить запрет всплывающих окон и включить вопрос перед сохранением файлов. Это даст меньше поломок и всё равно заметно снизит риск случайных загрузок.
Если вы работаете с банками, почтой, CRM, документами или платёжными системами, не делайте постоянные разрешения на все связанные домены. Разрешайте только нужное на время работы. После завершения сессии лучше убрать временные разрешения или открыть сервис в отдельном профиле.
Если приходится регулярно заходить на сомнительные сайты, используйте отдельный браузер или отдельный профиль без сохранённых паролей. В таком профиле можно поставить строгий режим NoScript/ScriptSafe и не хранить там ничего важного.
Частые ошибки при защите от Drive-by загрузок
- Разрешить всё после первой поломки сайта. Это самая частая ошибка. Лучше временно разрешить один домен и проверить, что именно нужно странице.
- Путать блокировщик рекламы с блокировщиком скриптов. uBlock Origin, AdGuard и похожие инструменты полезны, но если скрипты разрешены, часть кода всё равно может выполняться.
- Использовать старые браузеры. Никакой блокировщик не спасает от уязвимостей, которые уже исправлены в новых версиях.
- Доверять сайту только из-за HTTPS. Значок замка означает шифрование соединения, а не то, что сайт безопасен.
- Оставлять десятки постоянных разрешений. Со временем список Trusted-сайтов разрастается, и пользователь уже не помнит, кому он доверял.
- Отключать браузерную защиту. Safe Browsing, Enhanced Tracking Protection и похожие функции — это не лишняя нагрузка, а второй слой защиты.
- Открывать файл сразу после скачивания. Даже если файл выглядит как PDF, архив или документ, его лучше сначала проверить, особенно если загрузка была неожиданной.
- Ставить сомнительные клоны расширений. Блокировщик скриптов получает широкий доступ к страницам. Устанавливать его нужно только из официального магазина браузера.
Как лучше сделать на практике
Хорошая базовая схема выглядит так:
- Поставьте NoScript в Firefox или ScriptSafe/uBlock Origin в Chromium-браузере.
- Включите автоматические обновления браузера и защиту от вредоносных сайтов.
- В настройках загрузок включите вопрос перед сохранением файла.
- Не разрешайте JavaScript всем сайтам глобально.
- Для неизвестных сайтов используйте временные разрешения.
- Сторонние скрипты разрешайте только если без них функция реально не работает.
- После работы с чувствительными сервисами удаляйте временные разрешения.
- Раз в месяц проверяйте список разрешённых сайтов и удалённых расширений.
Если сайт после блокировки скриптов выглядит «пустым», это не всегда признак атаки. Многие современные сайты просто не работают без JavaScript. Но если вместе с этим появляются новые вкладки, всплывающие окна, странная кнопка «Обновить браузер», предложение установить кодек или файл начинает скачиваться сам — это уже повод закрыть страницу.
Признаки, что настройка работает нормально
Правильно настроенный блокировщик скриптов не обязан делать интернет идеально гладким. Наоборот, иногда он должен мешать. Хорошие признаки:
- новые сайты по умолчанию не получают право запускать скрипты;
- рекламные и трекерские домены часто остаются заблокированными;
- разрешения выдаются не навсегда, а временно;
- файлы не скачиваются без ясного действия пользователя;
- список доверенных сайтов короткий и понятный;
- браузер спрашивает, куда сохранить файл, а не кладёт его молча в загрузки.
Плохой признак — когда после установки NoScript или аналога все сайты сразу работают как раньше, а в настройках стоит разрешение «всем и навсегда». Это удобно, но почти не защищает от Drive-by сценариев.
Итог
Защита от Drive-by загрузок через NoScript и аналоги строится на простом правиле: неизвестный сайт не должен автоматически запускать скрипты. NoScript в Firefox даёт самый точный контроль, ScriptSafe ближе всего к такой же логике в Chromium-браузерах, uBlock Origin полезен как дополнительный слой, а Brave Shields подойдёт для более простой настройки.
Лучший вариант для большинства осторожных пользователей: блокировать скрипты по умолчанию, разрешать их временно только на нужных сайтах, не доверять сторонним доменам без необходимости и держать браузер обновлённым. Если файл начал скачиваться сам — не открывайте его, отмените загрузку, удалите файл и проверьте, какие разрешения получил сайт.
