PDF задумывался как формат для просмотра документов, но технически это контейнер, способный хранить внутри себя самые разные объекты: изображения, шрифты, формы, мультимедиа и полноценные файлы-вложения. Среди них могут оказаться и исполняемые файлы — программы, которые при запуске выполняют код на компьютере читателя. Именно это свойство делает PDF популярным инструментом не только для документооборота, но и для распространения вредоносного ПО.
Главное, что нужно понимать: сам по себе PDF не запускает программы автоматически. Опасность возникает в двух случаях — когда читатель открывает вложение вручную или когда документ содержит скрипты, а программа для просмотра настроена так, что позволяет им выполняться. Ниже разберём, как именно устроен механизм вложений, какие возможности и ограничения у него есть, как проверить подозрительный документ и какие настройки снижают риск.
- Что такое PDF с точки зрения структуры файла
- Как в PDF попадает исполняемый файл
- Что происходит при открытии такого документа
- Почему PDF оказался удобным носителем для таких трюков
- Как проверить PDF на подозрительное содержимое
- Признаки, которые видны до открытия
- Проверка после открытия, но без запуска вложений
- Что нельзя делать
- Настройки и средства защиты
- Настройки программы для чтения PDF
- Организационные и технические меры
- Сравнение уровней защиты
- Легитимные применения вложений в PDF
- Типичные заблуждения
- Что делать, если подозрительный файл уже запущен
- Практический вывод
Что такое PDF с точки зрения структуры файла
Файл PDF — это не «картинка страницы», как многие привыкли думать, а структурированный документ с внутренним деревом объектов. Внутри описываются страницы, текст, графика и ресурсы, но там же могут находиться объекты, не связанные с отображением содержимого: аннотации, формы, JavaScript-код и файловые вложения.
Стандарт формата (ISO 32000) прямо предусматривает возможность вложений. Механизм называется Embedded Files: в документ добавляется специальный объект-поток, содержащий данные произвольного файла, его имя, тип, дату создания и описание. Внешне это выглядит как значок скрепки или вложения в боковой панели программы для чтения PDF.
Важно различать два разных механизма, которые часто путают:
- Вложения файлов (attachments) — внутри документа хранится отдельный файл, например архив, таблица или исполняемая программа. Он пассивен, пока его не откроет пользователь.
- Скрипты (JavaScript) — код, который может выполняться самой программой для просмотра PDF при определённых событиях: открытии документа, заполнении формы, нажатии кнопки.
Наибольшую опасность представляют комбинации: документ со скриптом, который подталкивает пользователя к запуску вложения, либо вложение, замаскированное под безобидный документ.
Как в PDF попадает исполняемый файл
Технически вложение добавляется так же, как любой другой файл: при создании или редактировании документа автор прикрепляет его через функцию «Прикрепить файл» в редакторе PDF. Внутри файла появляется объект-поток с бинарным содержимым вложения. Ограничений на тип файла на уровне формата практически нет — можно вложить что угодно, от текстового файла до исполняемого бинарника.
Отдельный исторический механизм — запуск приложений через аннотации. В старых версиях стандарта PDF существовало действие Launch, позволяющее ссылке или кнопке в документе запускать внешнюю программу. Из-за злоупотреблений большинство современных программ для чтения либо полностью блокирует такие действия, либо требует явного подтверждения пользователя. Тем не менее сами объекты в файле могут присутствовать, и некоторые просмотрщики в определённых конфигурациях всё ещё реагируют на них.
Третий путь — скрипты. PDF поддерживает подмножество JavaScript, которое задумывалось для интерактивных форм: проверки полей, вычислений, навигации. На практике этот язык использовался и для эксплуатации уязвимостей самих программ для просмотра PDF: вредоносный скрипт мог вызвать переполнение буфера или обратиться к уязвимой функции, что приводило к выполнению произвольного кода уже без участия пользователя.
Что происходит при открытии такого документа
Сценарий зависит от того, какой механизм задействован и как настроена программа для чтения.
Если в документе просто лежит вложение, то при открытии PDF ничего не происходит: пользователь видит текст документа, а вложение отображается в панели вложений. Запуск возможен только после явных действий читателя — он должен найти вложение, сохранить или открыть его. Именно поэтому злоумышленники сопровождают такие файлы социальную инженерию: в тексте документа пишут что-то вроде «для просмотра счёта откройте вложение» или «включите содержимое, чтобы увидеть данные».
Если документ содержит скрипты, поведение зависит от настроек просмотрщика. Во многих программах выполнение JavaScript по умолчанию отключено или ограничено; в других — включено, потому что нужно для работы интерактивных форм. При включённых скриптах код выполняется в момент, определённый автором документа: при открытии, при изменении поля формы, при клике.
Типичная цепочка атаки выглядит так:
- Жертва получает PDF по электронной почте или через мессенджер, обычно под видом счёта, резюме, договора или уведомления.
- Документ открывается без видимых проблем — это снижает бдительность.
- Текст внутри побуждает открыть вложение («скачайте приложение для подписи», «распакуйте архив с деталями заказа»).
- Пользователь запускает исполняемый файл — с этого момента на компьютере выполняется чужой код с правами пользователя.
Отдельная категория — эксплойты уязвимостей просмотрщика. Здесь вложение или скрипт лишь доставляют вредоносную нагрузку, а запуск происходит из-за ошибки в самой программе для чтения PDF. Такие атаки опаснее всего, потому что не требуют от жертвы ничего, кроме открытия документа. Однако они работают только против конкретных уязвимых версий ПО и со временем теряют эффективность по мере выпуска обновлений.
Почему PDF оказался удобным носителем для таких трюков
Несколько свойств формата сделали его излюбленным вектором атак:
- Доверие к формату. PDF воспринимается как «просто документ», в отличие от исполняемых файлов, к которым пользователи и почтовые фильтры относятся настороженно.
- Сложность внутренней структуры. PDF допускает множество способов закодировать один и тот же объект, включая потоки сжатия и кодирования. Это затрудняет анализ антивирусами и системами фильтрации почты.
- Поддержка скриптов и мультимедиа. Интерактивные возможности формата расширяют поверхность атаки далеко за пределы «показать текст».
- Обход фильтров. Некоторые почтовые системы блокируют исполняемые вложения, но пропускают PDF, внутри которого исполняемый файл спрятан как вложение.
Как проверить PDF на подозрительное содержимое
Полностью надёжной проверки «на глаз» не существует, но ряд признаков и простых действий позволяют отсеять большинство опасных документов ещё до открытия.
Признаки, которые видны до открытия
- Неожиданный отправитель или документ, о котором вы не просили: счёт, накладная, резюме, «голосовое сообщение в PDF».
- Расхождение между именем файла и ожидаемым содержимым, двойные расширения вроде документ.pdf.exe (в проводнике Windows расширения по умолчанию могут скрываться — их стоит включить).
- Давление и спешка в сопроводительном письме: «срочно», «в течение 24 часов», «ваш аккаунт будет заблокирован».
Проверка после открытия, но без запуска вложений
- Откройте документ в просмотрщике с отключёнными скриптами — просто посмотреть текст безопасно, если программа обновлена и скрипты заблокированы.
- Проверьте панель вложений: наличие прикреплённых файлов в «обычном» счёте или письме — само по себе подозрительный признак.
- Обратите внимание на запросы: если документ просит открыть вложение, разрешить выполнение содержимого, ввести пароль на стороннем сайте — это классические признаки фишинга.
- При необходимости используйте онлайн-сервисы анализа файлов (песочницы), которые показывают структуру документа, вложения, скрипты и поведение файла в изолированной среде. Не загружайте в публичные песочницы конфиденциальные документы.
Что нельзя делать
- Не запускайте вложения из PDF, если вы не уверены в отправителе на 100 процентов.
- Не отключайте предупреждения безопасности в программе для чтения «чтобы не мешали».
- Не открывайте подозрительные документы на рабочем компьютере с доступом к корпоративным системам — используйте изолированную среду.
Настройки и средства защиты
Защита строится на нескольких уровнях, и каждый вносит свой вклад.
Настройки программы для чтения PDF
Основные шаги применимы к большинству популярных просмотрщиков, хотя названия пунктов меню различаются:
- Отключить выполнение JavaScript в PDF, если вы не работаете с интерактивными формами, которые действительно требуют скриптов.
- Запретить открытие и запуск вложений без явного подтверждения, а лучше — запретить запуск вложенных исполняемых файлов полностью.
- Включить защищённый режим (sandbox), при котором просмотрщик работает в изолированной среде с ограниченным доступом к системе.
- Настроить автоматическое обновление программы: значительная часть успешных атак эксплуатирует давно исправленные уязвимости.
Организационные и технические меры
- Фильтрация почты с анализом PDF: современные шлюзы умеют распаковывать вложенные файлы, проверять скрипты и блокировать подозрительные документы.
- Открытие PDF из недоверенных источников в изолированной среде: отдельная виртуальная машина, контейнер или хотя бы компьютер без доступа к критичным ресурсам.
- Обучение сотрудников: большинство атак с PDF начинаются с фишингового письма, и технические фильтры не ловят всё.
- Принцип минимальных прав: работа под учётной записью без прав администратора ограничивает ущерб от запущенного вредоносного файла.
Сравнение уровней защиты
| Мера | От чего защищает | Ограничения |
|---|---|---|
| Отключение JavaScript в просмотрщике | Скриптовые атаки и часть эксплойтов | Ломает интерактивные формы, не защищает от ручного запуска вложений |
| Запрет запуска вложений | Социальную инженерию с файлами внутри PDF | Не помогает при эксплойте уязвимости самого просмотрщика |
| Защищённый режим (sandbox) | Ограничивает последствия эксплуатации уязвимостей | Не абсолютен, зависит от реализации и версии ПО |
| Обновления программы | Известные уязвимости | Не защищает от атак нулевого дня до выпуска исправления |
| Фильтрация почты | Массовые рассылки с вредоносными PDF | Целевые атаки могут обходить фильтры |
| Обучение пользователей | Социальную инженерию | Не защищает от эксплойтов, требует постоянного поддержания |
Ни одна мера по отдельности не закрывает все векторы, поэтому эффективна именно комбинация: обновлённый просмотрщик с жёсткими настройками плюс фильтрация на входе плюс внимательность получателя.
Легитимные применения вложений в PDF
Стоит подчеркнуть: механизм вложений существует не для атак. У него есть вполне рабочие применения:
- Комплекты проектной документации, где к чертежам прикладываются таблицы расчётов и спецификации.
- Электронные книги и отчёты с приложенными файлами данных.
- Портфолио, где к презентации прикреплены исходники или дополнительные материалы.
- Интерактивные формы с JavaScript для валидации полей — стандартный сценарий в госуслугах и корпоративных системах.
Поэтому задача защиты — не запретить формат, а отличать оправданное использование от подозрительного. Практический ориентир: если документ от известного отправителя содержит вложение, смысл которого понятен и ожидаем, риск низкий. Если вложение появляется без объяснений и его просят «обязательно запустить» — это повод остановиться.
Типичные заблуждения
- «PDF — это просто документ, он безопасен». Формат поддерживает скрипты, вложения и действия запуска; безопасность зависит от содержимого и настроек просмотрщика.
- «Антивирус всё поймает». Обфускация структуры PDF, шифрование потоков и новые образцы вредоносного ПО позволяют части файлов проходить мимо сигнатурных детектов.
- «Если документ открылся и выглядит нормально — он чист». Вредоносная логика может находиться во вложении или срабатывать по событию, а не при первом открытии.
- «Опасны только исполняемые файлы Windows». Под PDF-вложениями маскируют и скрипты для других платформ, и документы с макросами, и ссылки на фишинговые ресурсы.
Что делать, если подозрительный файл уже запущен
Если вы открыли вложение из PDF и заподозрили неладное, действуйте быстро, но без паники:
- Отключите компьютер от сети, чтобы ограничить возможную передачу данных и загрузку дополнительных модулей.
- Не вводите пароли и не подтверждайте операции, если на экране появились неожиданные запросы.
- Проверьте систему актуальным антивирусом с другой, заведомо чистой машины или загрузочного носителя.
- Если это рабочий компьютер — немедленно сообщите в ИТ-отдел или службу безопасности: от скорости реакции зависит масштаб инцидента.
- Смените пароли с другого устройства, особенно если после запуска файла вы вводили учётные данные где-либо.
Практический вывод
Вложенные исполняемые файлы в PDF — это штатная возможность формата, которая сама по себе не опасна, но регулярно используется злоумышленниками как канал доставки вредоносного кода. Ключевой принцип защиты прост: PDF можно читать, но нельзя бездумно запускать то, что внутри него лежит.
Наибольшее влияние на ваш риск оказывают три фактора: актуальность и настройки программы для чтения (JavaScript и запуск вложений отключены, защищённый режим включён), источник документа и ваша реакция на просьбы «открыть вложение». Конкретный следующий шаг: откройте настройки своего просмотрщика PDF прямо сейчас и убедитесь, что выполнение скриптов и автоматический запуск вложений отключены, а обновления устанавливаются автоматически. Это занимает пару минут и закрывает большинство типовых сценариев атак.
Материал носит информационный характер и не заменяет консультацию специалиста по информационной безопасности. При подозрении на заражение рабочего компьютера или компрометацию данных обратитесь в ИТ-отдел организации или к профильному специалисту.
