Сложность для атакующего не в том, чтобы написать полезную нагрузку. Сложность в том, чтобы её кто-то запустил. На стриминговых сайтах эта задача решается контекстом: посетитель, который и так пытается запустить видео, охотно примет объяснение, почему оно не запускается.
Почти каждая маскировка ниже — вариация одного и того же приёма. Противодействие формулируется так же просто, как трудно его обойти: ни одному стриминговому сайту не нужно, чтобы вы что-то устанавливали, распаковывали или вставляли ради воспроизведения видео. Современный браузер декодирует стандартное видео сам. Любая страница, утверждающая обратное, врёт, и точная формулировка вранья значения не имеет.
Какие маскировки встречаются чаще всего?
Почти всё, что ходит по сети, укладывается в семь форм.
| Маскировка | Что утверждают | Что это на самом деле | По чему видно |
|---|---|---|---|
| Недостающий кодек | «Установите этот пакет кодеков, чтобы смотреть в HD» | Установщик, обычно с рекламным ПО или загрузчиком | Браузеры декодируют H.264 сами уже больше десяти лет |
| Обновление плеера | «Ваш плеер устарел» | То же самое, оформленное под интерфейс сайта | У веб-страницы нет плеера, который надо обновлять |
| Обновление браузера | Страница, подделанная под экран обновления вашего браузера, подобранный по user agent | Исполняемый файл | Браузеры обновляются сами и никогда не делают этого с сайта |
| Поддельная капча | «Подтвердите, что вы человек: нажмите Win+R и вставьте это» | Вы своими руками выполняете команду атакующего | Ни одна система проверки не просит открыть терминал |
| Помощник для скачивания | «Установите приложение для быстрого стриминга» | Установщик, закрепляющийся в системе | Сайт работает и без него |
| Файл субтитров или архив | .srt, .zip или .rar рядом с видео |
Скрипт или исполняемый файл внутри | Расширение и содержимое архива редко соответствуют описанию |
| Подписанный установщик | Программа установки с настоящей подписью кода | Подпись настоящая, сертификат краденый или использован не по назначению | Действительная подпись доказывает, кто подписал, а не что это безопасно |
Семейство поддельных капч — его иногда описывают как «вставь и запусти» — заслуживает отдельного внимания, потому что оно полностью обходит защиты, завязанные на файлах. Страница кладёт команду в ваш буфер обмена и просит вставить её в окно «Выполнить» или в терминал под предлогом проверки. Ни один файл не скачивается, поэтому проверки репутации загрузок и многие сканеры вообще не включаются. Ничто законное в интернете никогда вас об этом не просило.
Как имена файлов скрывают, что это за файл?
Пользуясь тем, что большинство систем по умолчанию прячут расширения.
| Приём | Выглядит как | На самом деле |
|---|---|---|
| Двойное расширение | video.mp4.exe |
Исполняемый файл, отображаемый как video.mp4, если расширения скрыты |
| Файл-ярлык | movie.mkv.lnk |
Ярлык, запускающий команду |
| Скрипт под видом медиа | episode.mp4.js |
Скрипт, который система выполнит |
| Установщик как есть | codec_setup.msi |
Установщик, ровно как написано, — сама подпись и есть маскировка |
| Переворот направления текста | videoexe.mp4 |
Символы перевёрнуты невидимым управляющим знаком |
| Архив под паролем | film.zip, пароль на странице |
Содержимое нельзя просканировать, пока не распакуешь |
Первое исправление — это изменение настройки: включите показ расширений файлов в проводнике Windows или в Finder на macOS. Стоит это ничего, а половину этой таблицы обезвреживает навсегда.
Архив под паролем — намеренная мера против сканирования. Любая загрузка, к которой на странице приложен пароль, просит вас обойти собственный антивирус, и законных причин шифровать публичный файл таким образом не существует.
Как проверить скачанный файл до его открытия?
Короткая последовательность, в порядке полезности.
| Проверка | Что ловит |
|---|---|
| Включить показ расширений и прочитать настоящее | Двойные расширения и файлы-скрипты |
| Сравнить размер файла с заявленным | «Фильм в 1080p» на 3 МБ фильмом не является |
| Проверить сервисом с несколькими движками | Известные образцы; свежие часто проходят |
| Посмотреть цифровую подпись | Неподписанные установщики или подписи с посторонней компанией |
| Обратить внимание, просит ли он права администратора | Медиафайлам повышение прав не нужно никогда |
| Не отключать SmartScreen или Gatekeeper | Эти предупреждения существуют ровно для такого случая |
Правило, лежащее под всем этим: вы оцениваете не то, выглядит ли файл безопасным. Вы оцениваете, была ли у вас вообще причина скачивать исполняемый файл. На странице со стримингом ответ — нет, и этот ответ надёжен так, как результаты сканирования не надёжны никогда.
Что делать, если вы уже что-то запустили?
Исходите в первую очередь из кражи учётных данных. Современный массовый вредоносный код в подавляющем большинстве занимается кражей информации, и первое, что он делает, — копирует куки браузера, сохранённые пароли и токены сессий. Именно поэтому смена пароля с заражённой машины не даёт ничего.
| Шаг | Причина |
|---|---|
| 1. Отключиться от сети | Останавливает дальнейшую передачу данных и удалённые команды |
| 2. Сменить пароли с другого, чистого устройства | Скомпрометированное устройство может записывать то, что вы набираете |
| 3. Завершить все сессии на важных аккаунтах | Украденные токены сессий переживают смену пароля |
| 4. Проверить, не появились ли новые расширения и профили браузера | Распространённый механизм закрепления |
| 5. Проверить автозагрузку и запланированные задачи | Второй распространённый механизм закрепления |
| 6. Запустить офлайн-проверку с загрузочного носителя | Активное заражение может мешать сканерам, работающим внутри ОС |
| 7. Если там хранились платёжные или личные данные — переустановить систему | Единственное надёжное лечение после того, как чужой код отработал с вашими правами |
Шаг 2 чаще всего делают не в том порядке, а шаг 3 чаще всего пропускают совсем. Токен сессии, выгруженный до того, как вы что-либо поменяли, продолжает работать, пока аккаунт явно его не аннулирует.