Безопасность
Опасные расширения файлов: что нельзя открывать без проверки
Список опасных расширений, таблица риска и проверка вложения перед открытием — какие форматы нельзя запускать без проверки.
SVG долгое время считался «просто картинкой» — безопасной в отличие от .exe или макросов в .docm. Но внутри SVG — это не растровое изображение, а текстовый XML-документ, и в 2026 году злоумышленники массово используют это свойство, чтобы прятать в иконках и вложениях вредоносный JavaScript. Прежде чем доверять файлу расширение .svg (о том, чем вообще открывают SVG в обычных задачах, мы уже писали отдельно), стоит понять, как устроена эта подмена и чем она отличается от опасности в классических опасных расширениях вроде .exe и .js.
Коротко: да, через SVG-файл можно получить вредоносный код — в отличие от JPG/PNG, SVG — это текстовый XML-документ, который умеет выполнять JavaScript и HTML. В 2026 году зафиксированы массовые фишинговые кампании с SVG-вложениями (voicemail-письма, подделки DocuSign/SharePoint), которые обходят почтовые фильтры. Не открывайте SVG из непроверенных писем — проверяйте код или открывайте в безопасном режиме.

SVG (Scalable Vector Graphics) — это формат векторной графики, но технически он устроен совсем не так, как JPEG или PNG. JPEG и PNG — это бинарные растровые данные: сетка пикселей, у которой просто нет механизма что-либо «выполнить». SVG-файл — это текстовый документ в формате XML, и открыть его можно в обычном блокноте: внутри будут читаемые теги вроде <svg>, <path>, <circle>, которые браузер интерпретирует и рисует как изображение.
Проблема в том, что спецификация SVG, поддерживаемая браузерами, разрешает внутри того же XML-документа тег <script> с полноценным JavaScript, элемент <foreignObject>, который может встраивать произвольный HTML, и event-обработчики вроде onload или onclick, которые срабатывают прямо в момент открытия файла в браузере. То есть SVG-файл — это не картинка со скрытым кодом «внутри пикселей», а полноценный исполняемый веб-документ, который просто выглядит как картинка. Это и есть ключевое отличие от других форматов изображений: он «вирус через картинку» в буквальном смысле, а не метафорически.
У растровых форматов нет синтаксиса для исполняемого кода в принципе — заразить ими компьютер можно только через уязвимость в самом декодере изображения (что крайне редко). У SVG исполняемый код — часть легального синтаксиса формата, предусмотренного спецификацией.
Схема типичной атаки простая: пользователь получает SVG-файл (во вложении письма, в сообщении мессенджера или как «превью» на сайте), открывает его двойным кликом или по ссылке — файл запускается в браузере по умолчанию, встроенный JavaScript выполняется, и дальше сценарий зависит от цели атакующего: показ фальшивой страницы логина, скрытая загрузка вредоносной программы или перенаправление на фишинговый сайт.
Один из приёмов, который используют злоумышленники, — указать для SVG-вложения MIME-тип text/plain вместо ожидаемого image/svg+xml. Многие сканеры почтовых вложений настроены анализировать файлы изображений иначе, чем текстовые или HTML-файлы: изображение они, как правило, проверяют только на структурные аномалии декодера, а не на наличие исполняемого кода. Если фильтр классифицирует вложение как «обычный текст», а не как потенциально активный документ, часть проверок, рассчитанных на HTML/JS-вложения, просто не применяется — файл проскакивает мимо специфичных для скриптов эвристик.
Чтобы вредоносный код не бросался в глаза при беглом просмотре и труднее поддавался сигнатурному анализу, его обфусцируют: кодируют в base64 и декодируют на лету функцией atob(), оборачивают в <![CDATA[ … ]]>-блоки (формально предназначенные для безопасной вставки произвольного текста в XML), либо используют операции вроде XOR для «расшифровки» полезной нагрузки прямо в браузере жертвы. Внешне такой SVG-файл может выглядеть как безобидная иконка или логотип — визуально отрисовывается именно то изображение, которое ожидает увидеть пользователь, а вредоносная часть кода срабатывает параллельно и незаметно.

Наличие в SVG тегов <script>, <foreignObject> или обработчиков onload/onclick само по себе не доказывает заражение — у части легитимных интерактивных SVG-анимаций такие конструкции тоже встречаются. Но для файла из непроверенного источника это весомый повод для подозрения, а не рядовая деталь разметки.
SVG-смаглинг (SVG smuggling) — не теоретический риск, а задокументированная тактика, которую в 2026 году зафиксировали несколько независимых команд threat intelligence.
По данным Sophos X-Ops, злоумышленники массово используют SVG-вложения для брендовой подмены — рассылки маскируются под уведомления DocuSign, SharePoint, Dropbox, Google Voice и RingCentral. Исследователи Sophos разобрали кейс, где внутри SVG-файла был зашит base64-кодированный ZIP-архив с кейлоггером, детектируемым как Troj/AutoIt-DHB: пользователь думал, что открывает уведомление о документе, а на деле запускал цепочку заражения.
Отдельную масштабную кампанию описали в Kaseya и INKY: с июня по август 2026 года была зафиксирована рассылка из 26 589 писем, нацеленная на 5527 организаций. Письма маскировались под уведомления о голосовых сообщениях (voicemail) и содержали вредоносные SVG-вложения; по данным того же источника, 75% этих писем успешно прошли спам-фильтр Microsoft 365. Там же отмечен резкий рост самого явления: количество вредоносных SVG-вложений выросло в 50 раз в 2025 году по сравнению с 2024-м.
Ещё одну волну описывает SecurityWeek со ссылкой на Microsoft Threat Intelligence: в период 23–25 февраля 2026 года была замечена кампания с более чем 1,2 млн писем, затронувшая свыше 53 000 организаций в 23 странах — SVG-вложения в ней использовались для браузерного (browser-native) перенаправления жертв на фишинговые страницы без промежуточной загрузки отдельного файла.
Отдельно стоит кейс, который разбирает Habr со ссылкой на исследование Sansec — атака под названием PolyShell, в которой вредоносный код прятался в SVG-изображении размером 1×1 пиксель (классический «невидимый» трекинговый пиксель). Атака затронула порядка 100 интернет-магазинов на платформе Magento: код выполнялся через onload, использовал atob() для декодирования полезной нагрузки и XOR для дополнительной маскировки.
Корень проблемы — в том, как исторически классифицируются типы файлов в системах защиты. Большинство антивирусных движков и спам-фильтров много лет оптимизированы на то, чтобы ловить вредоносный код в исполняемых файлах, скриптах и офисных документах с макросами — именно эти категории годами считались основным вектором атак (см. также разбор макросов в Word и Excel как похожего по логике «безопасного на вид» вектора). Файлы изображений традиционно относили к низкому риску и проверяли в первую очередь на структурные аномалии декодера — переполнение буфера, повреждённые заголовки, — а не на наличие активного кода внутри.
SVG формально — изображение по расширению и по MIME-типу image/svg+xml, поэтому многие защитные системы применяют к нему именно эту, более мягкую, логику проверки, а не ту, что используется для HTML- или JS-вложений. В результате SVG-файл с внедрённым <script> может технически считаться «изображением» для фильтра — и при этом вести себя как полноценный исполняемый веб-документ при открытии в браузере.
Чек-лист ниже не требует специализированных инструментов безопасности — подойдёт для обычного пользователя и небольшой компании без выделенной security-команды.
<script> и <foreignObject>, обработчики onload= и onclick=, ссылки, начинающиеся с javascript:, длинные строки data:-URL и любые внешние адреса http(s):// внутри файла — всё это нетипично для простой иконки или логотипа.text/plain или application/octet-stream вместо ожидаемого image/svg+xml, это несовпадение — самостоятельный тревожный сигнал, описанный выше в разделе про подмену MIME-типа.
| Паттерн в коде | Что это значит | Опасность |
|---|---|---|
<script> | Встроенный JavaScript, выполняется при открытии в браузере | Высокая |
<foreignObject> | Встраивание произвольного HTML внутрь SVG-документа | Высокая |
onload / onclick | Event-обработчики, запускающие код без клика пользователя (onload) или по клику | Высокая |
ссылки javascript: | Прямой вызов скрипта через псевдопротокол ссылки | Высокая |
data:-URL | Встроенные данные (часто base64) — могут скрывать полезную нагрузку | Средняя-высокая |
внешние <image href="http…"> | Загрузка внешнего ресурса — подтверждает факт открытия файла атакующему | Средняя |
<iframe> | Встраивание стороннего веб-контента внутрь SVG | Высокая |
Если файл уже был открыт в браузере и что-то показалось подозрительным — форма входа, неожиданная загрузка, редирект — действуйте быстро.
Не вводите пароль на странице, которая открылась из SVG-вложения, даже если она выглядит в точности как страница входа DocuSign, SharePoint или банка. Самый частый сценарий атаки — именно кража учётных данных через подделанную форму, а не классическое заражение вирусом.
Да, если SVG содержит скрипт и открывается в браузере или просмотрщике, который его выполняет. Простой просмотр файла как картинки в проводнике Windows (через панель предпросмотра) безопаснее, чем открытие в браузере, где активный код действительно запускается.
Многие антивирусы и почтовые фильтры классифицируют SVG как изображение и проверяют его по логике, рассчитанной на растровые форматы, а не как исполняемый код — часть проверок, применяемых к HTML и JS-файлам, к SVG попросту не применяется.
Откройте файл как текст (не в браузере) и проверьте на наличие тегов <script>, <foreignObject>, обработчиков onload/onclick, ссылок javascript: или data:. Наличие этих конструкций в файле из непроверенного источника — повод для подозрения.
Да. При рендеринге SVG в растровый формат встроенный код не выполняется и физически не переносится в итоговый файл — PNG хранит только пиксели. Стоит лишь сверить, что картинка после конвертации выглядит так же, как ожидалось.
Чаще всего — почтовые вложения, маскирующиеся под голосовые сообщения, счета или уведомления сервисов вроде DocuSign и SharePoint. По данным Sophos и Kaseya/INKY, именно такие кампании были массовыми в 2026 году.
Не вводите логины и пароли на открывшейся странице, отключитесь от сети, проверьте компьютер антивирусом полным сканированием, а если данные уже были введены — немедленно смените пароли с другого устройства.
Нет, если иконку создавал сам владелец сайта и она не меняется сторонними пользователями. Реальный риск — именно во вложениях и загрузках из непроверенных источников, а не в статичной графике на знакомых вам страницах.