Спецпроекты

Найден способ подменять содержимое в PDF-документе с цифровой подписью

Безопасность

Хотя цифровая подпись должна защищать PDF от любых изменений, существуют возможности обойти защиту. Средства просмотра PDF-документов интерпретируют некоторые изменения как малозначительные и безопасные, притом, что злоумышленники могут подменить содержание отдельных частей или даже всего документа. Как это сделать, продемонстрировали эксперты Рурского университета в Бохуме.

Несущественные изменения

Исследователи при Рурском университете в Бохуме (Германия) описали новый тип атак под общим названием Shadow attacks, позволяющих подменять содержимое защищенных PDF-файлов без нарушения целостности их цифровой подписи.

Суть атаки состоит в том, что злоумышленник может создать PDF с двумя разными типами содержимого. Один тип — ожидаемые данные со стороны тех, кто будет производить подписание PDF-документа. Второй — скрытые данные, отображаемые после того, как PDF-файл получает цифровую подпись. В результате подписант и получатель PDF могут видеть разную информацию, хотя средства просмотра не наблюдают никаких нарушений.

Исследователи отметили, что из 28 приложений для просмотра PDF 15, включая пакеты Adobe, Foxit и LibreOffice, в той или иной степени оказались уязвимы перед такими атаками. Уязвимости получили индексы CVE-2020-9592 и CVE-2020-9596. Adobe, Foxit и The Document Foundation уже выпустили обновления, но другие разработчики пока не реагируют.

Три атаки

Эксперты описали три атаки, одна из которых позволяет скрывать часть контента от подписанта, но выводить его получателю. В частности, злоумышленники могут скрыть какой-либо текст под картинкой, закрывающей всю страницу; после получения подписанного документа достаточно небольших манипуляций, чтобы средства просмотра перестали отображать эту картинку. Злоумышленники могут использовать инкрементное обновление документа для удаления некоторых элементов, и во многих случаях средства просмотра не будут рассматривать эти изменения как нечто существенное.

dok600.jpg
Эксперты продемонстрировали возможность подменять содержимое в защищенных PDF

«Если же средство просмотра не принимает изменения в структурных объектах PDF (Page, Pages, Contents), возможен второй вариант атаки, при котором оказывается прямое воздействие на перекрывающий объект посредством манипуляции таблицы Xref — каталога, в котором перечислены объекты внутри основного раздела и их местонахождение.

«Самый простой способ — создать инкрементное обновление, которое изменяет лишь содержание таблицы Xref; перекрывающему объекту присваивается значение free, — пишут исследователи. — Во многих случаях, однако, просмотрщики (включая официальный пакет Adobe) будут рассматривать это изменение как рискованное, поэтому выводится предупреждение. Поэтому мы применяем другой подход: при инкрементном обновлении мы используем тот же объект с тем же идентификатором, но меняем его тип. Например, вместо перекрывающего изображения (Image) обозначается тип XML/Metadata. Кроме того, мы изменяем таблицу Xref с указателем на объект метаданных, но сохраняем идентификатор перекрывающего объекта. При открытии модифицированного документа перекрывающий объект скрывается, поскольку метаданные не могут отображаться. При этом добавление метаданных к подписанному PDF-документу через инкрементное обновление считается безвредным, так что подпись не нарушается».

Аналогичным образом реализуемы и две другие атаки, одна из которых позволяет подменять данные, а другая — и подменять, и прятать их. В обоих случаях изменения в PDF можно произвести таким образом, чтобы средства просмотра считали их безвредными, хотя в действительности выводимые получателю данные могут радикально отличаться от тех, которые видел подписант.

Например, подмена шрифтов считается безвредной, но позволяет подменять некоторые символы. Кроме того, есть возможность модифицировать интерактивные формы в PDF так, что при получении подписи выводится одно значение, а при открытии потенциальной жертвой в том же документе отображаются другие данные.

И скажем, что так и было

Для этого злоумышленник может использовать функцию текстовых полей в PDF, позволяющих перекрывать основное содержание поля дополнительным — которое исчезает, как только выделен текст основного поля.

«Реальное значение формы содержится в ключе объекте /V, — отмечают исследователи. — Контент перекрывающего элемента определяется объектом /BBox. Этот объект похож на всплывающие подсказки в HTML-формах; например, пользователю выводится некое имя, указывающее на то, что в данное поле необходимо ввести свой логин. Однако, в отличие от HTML, в PDF нет визуальной разницы между подсказкой и реальным значением»,

Еще один вариант атаки предполагает, что в модифицированном, «теневом» документе задается некий шрифт плюс внедряется его описание. Шрифт используется для отображения определенной части контента. После подписания документа злоумышленники добавляют новое описание шрифта — поверх старого. А поскольку задание нового шрифта не считается источником угрозы, подобные манипуляции игнорируются средствами просмотра.

Наиболее опасной является третья атака (Hide-and-Replace — скрыть и подменить), которая позволяет заменить фактически весь контент в PDF-документе.

Точнее, речь идет о PDF с двойным содержанием — одно выводится подписанту, другое — получателю, при этом разное содержание хранится в объектах с одним и тем же идентификатором, так что посредством небольшого изменения таблицы Xref и раздела Trailer, с которого программы просмотра начинают обработку PDF-документа, можно добиться того, что воспринимаемое содержание документа радикально изменится при сохранении целостности цифровой подписи.

Однако, как отметили исследователи, неиспользуемые (невидимые подписанту) объекты могут быть удалены в процессе назначения цифровой подписи; вдобавок антивирусы могут среагировать на неиспользуемые объекты и вывести предупреждение. В этом случае атака не получится.

«Сама возможность подменять содержимое в документе с цифровой подписью — это, казалось бы, нонсенс, однако, как видим, существуют способы обходить защиту, — отмечает Алексей Водясов, эксперт по информационной безопасности компании SEC Consult Services. — Возможности атакующих ограничены, но подмена даже одного какого-то показателя в важном документе может иметь катастрофические последствия, так что возможность даже “незначительных” изменений в подписанном документе необходимо исключить».