четверг, 20 августа 2020 г.

«Теневая атака» (shadow attack) позволяет вносить изменения в подписанные PDF-файлы


Заметка профессионального разработчика программного обеспечения Гэри МакГэфа (Gary McGath - на фото) была опубликована 24 июля 2020 года на его блоге «Сумасшедшая наука о файловых форматах» (Mad File Format Science), который посвящён «файловым форматам, проверке структуры файлов, программному обеспечению для архивации и прочим странным вещам».

Чем сложнее формат, тем меньше вероятность того, что его меры и средства безопасности будут работать во всех случаях. Недавно была обнаружена уязвимость, позволяющая мошенникам изменять PDF-документы, подписанные электронной цифровой подписью. Группа немецких исследователей обнаружила уязвимость формата к так называемой «теневой атаке» (shadow attack), см. статью на сайте Zdnet: https://www.zdnet.com/article/new-shadow-attack-can-replace-content-in-digitally-signed-pdf-files/ . Проще всего провести такую атаку, если создатель документа намеренно разработал его с целью внесения изменений после подписания. Жертва видит один набор элементов контента и подписывает его; мошенник получает обратно подписанный документ, изменяет его внешний вид и затем «пускает в дело».

Электронная цифровая подпись в PDF-файле подтверждает личность подписанта, указывает на его согласие с документом и делает невозможные незаметное внесений изменений в документ. Подписанный таким образом файл для всех практических целей невозможно изменить, не сделав при этом подпись недействительной. Тем не менее, проблема существует, и она связана с тем, что ЭЦП (имеется в виду специализированный вариант подписания для PDF-файлов – «встроенная» подпись, в отличие от более распространенного у нас подписания произвольных файлов, без учёта их внутренней структуры - Н.Х.) не охватывает весь файл. Для такого подхода есть причины - например, может потребоваться несколько подписей.

PDF-файлы могут быть изменены, хотя процесс этот неуклюжий и неэффективный. Новый контент и изменения в существующий контент добавляются в файл таким образом, что уже существующие объекты не изменяются. Этот процесс называется добавочным сохранением (incremental saving, IS); и таким образом можно изменить даже подписанный файл. Подпись при этом не охватывает новый материал. В результате подписанный файл может быть изменен без каких-либо ограничений, однако программы просмотра предупреждают пользователя, если файл был изменен подобным образом.

Вопрос как раз в том и заключается, что именно считать «изменениями». Для удобства использования такие операции, как наложение дополнительных подписей и аннотаций, не вызывают появления предупреждения. Не существует общепринятого стандарта относительно того, что считается реальной модификацией; разные программы просмотра PDF-файлов делают разные проверки. Это оставляет достаточно места для манипуляций с файлами, не поднимая тревоги.

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

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

  • Сокрытие и замена. Данный способ атаки самый простой и самый смертоносный. Подготовленный для подписания документ содержит «теневой» документ, который может полностью отличаться от отображаемого. Атакующий впоследствии изменяет только одну ссылку, чтобы она указывала на теневой документ вместо ранее отображавшегося.
Авторы исследования с целью решения проблемы предлагают изменение, которое не требует изменения спецификаций формата, а лишь принятия нового соглашения при разработке программ просмотра. Новое правило могло бы быть таким: если документ подписан, любые изменения к нему также должны быть подписаны; если это не так, пользователь получит предупреждение. Пока не ясно, насколько такое решение поможет. Люди посмотрят на итоговый документ и увидят, что он полностью подписан; и если только они не будут тщательно сравнивать последнюю подпись с предыдущей, они вряд ли смогут заметить, что последняя подпись охватывает серьёзные изменения.

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

Гэри МакГэф (Gary McGath)

Источник: блог «Mad File Format Science»
https://madfileformatscience.garymcgath.com/2020/07/24/alteration-signed-pdf-files/

Комментариев нет:

Отправить комментарий