Увеличиваем себе премию в два раза, или как взломать документы, подписанные усиленной квалифицированной подписью

    На волне новостей чип-апокалипсиса 2018 года, когда взломано почти всё, а сайты мировых брендов, сами того не подозревая, майнят в наших браузерах криптовалюту, мы решили покуситься на святая святых и взломать документы, подписанные усиленной квалифицированной электронной подписью. И вот что из этого вышло.




    Как известно, усиленная квалифицированная электронная подпись (ЭП) позволяет определить лицо, подписавшее документ, и обнаружить факт внесения изменений в документе (см. ст. 5, п. 3 Федерального закона № 63 «Об электронной подписи»). Алгоритм генерации коллизий хеш-функции в этот раз нам не понадобится. Для взлома надо найти способы внесения изменений в электронный документ после его подписания, так, чтобы эти изменения не были обнаружены при проверке ЭП. Начнём.


    Сценарий с документом DWG, вектор атаки — внешние ссылки


    Здесь и далее предполагается, что в системе уже установлен сертификат квалифицированной электронной подписи:


    • Создаём документ HVAC.dwg, который ссылается на файл nothing.dwg, расположенный на шаре в локальной сети предприятия. Файл nothing.dwg содержит выноски на оборудование Поставщика А;
    • Отправляем HVAC.dwg на согласование ответственному лицу;
    • С помощью программы «Autodesk→AutoCAD→Добавление цифровых подписей» ответственное лицо подписывает HVAC.dwg. Теперь это электронный подлинник:




    Реализуем атаку:


    • Нужно заменить оборудование Поставщика А на оборудование Поставщика Б изменением nothing.dwg, расположенного на сетевом ресурсе;
    • Отдел снабжения получает электронный подлинник HVAC.dwg, руководитель отдела проверяет целостность электронной подписи, она не нарушена, а AutoCAD развеивает последнюю тень сомнения успокаивающей надписью «Чертеж не изменился с момента подписания», поэтому вместо Поставщика А заказ на оборудование уходит к Поставщику Б



    Сценарий с документом DOC/DOCX, вектор атаки — шрифт


    В этот раз будем использовать наиболее продвинутый комплекс защиты информации КриптоПро CSP 4.0, соответствующий стандарту ГОСТ Р 34.10-2012:


    • Создаём приказ о премировании сотрудников prikaz.docx. Основной текст набираем шрифтом Arial. Для размера премии используем похожий шрифт, например, бесплатный Noto Sans Regular от Google. Вводим согласованный с директором размер премии 150 000 руб.;
    • Отправляем приказ на подпись директору;
    • Директор подписывает prikaz.docx усиленной квалифицированной ЭП с помощью КриптоПро Office Signature 2.0. Получаем электронный подлинник:



    Реализуем атаку:


    • С помощью бесплатной программы FontForge модифицируем файл шрифта NotoSans-Regular.ttf, заменив векторное изображение глифа 1 на изображение глифа 2



    • Модифицированный NotoSans-Regular.ttf файл устанавливаем на компьютере бухгалтера (понадобятся права администратора);
    • Получив подписанный директором подлинник приказа, бухгалтер открывает его и видит действительную подпись. Но размер премии увеличился со 150 000 руб. до 250 000 руб.



    Это эффективные, но не единственные способы атаки. Есть еще макросы, вычисляемые значения полей, стили. Не защитит от них ни использование системы управления данными (PDM), ни откреплённые подписи, ни применение специализированных криптографических комплексов типа КриптоПро CSP.


    Как же обеспечить защиту от такого рода атак? Самый эффективный способ — публиковать документы в нередактируемый формат или формат фиксированной разметки. Эти форматы нацелены на сохранение первоначального вида документа на любом устройстве, в любой точке мира. Вот наиболее распространённые представители форматов фиксированной разметки:


    • PDF (Portable Document Format) — разработан компанией Adobe. Стандарт ISO 32000;
    • XPS (XML Paper Specification) — разработан компанией Microsoft. Стандарт ECMA-388;
    • DWFx — разработан компанией Autodesk. Основан на XPS.

    Но и здесь не всё так однозначно. Попробуем провести атаку через шрифт на подписанный PDF-документ:


    • Документ prikaz.docx опубликуем в PDF, например, с помощью виртуального принтера PDF-XChange. Полученный файл prikaz.pdf отправляем на подпись директору;
    • Директор открывает документ prikaz.pdf в программе Adobe Acrobat Reader DC;
    • Подписывает командой "Поставить цифровую подпись" в разделе "Сертификаты".
    • Подписанный PDF отправляется бухгалтеру.

    Реализуем атаку:


    • Так же как и в сценарии с форматом DOCX устанавливаем бухгалтеру модифицированный шрифт NotoSans-Regular.ttf;
    • Получив подписанный prikaz.pdf, бухгалтер открывает его в Adobe Reader и видит размер премии 250 000 руб., целостность подписи при этом не нарушена



    Для PDF удалось реализовать данный вид атаки потому, что этот формат допускает использование шрифтов по ссылке, поэтому он не подходит для создания подлинников.Существует стандарт PDF/A (подмножество PDF), который обеспечивает необходимую защиту. Поэтому перед подписанием каждого PDF необходимо убедиться, что документ соответствует стандарту PDF/A или отсутствуют зависимости от шрифтов.


    Форматы DWFx и XPS не подвержены такого рода атакам, так как на уровне стандарта ECMA-388 регламентируется хранение ресурсов внутри содержательной части документов (F.3.1 M2.6). Но DWFx не подходит для создания многостраничных текстовых документов, поэтому наиболее универсальным вариантом является XPS.


    Попробуем по аналогии с PDF провести атаку через шрифт на подписанный XPS-документ:


    • Документ prikaz.docx опубликуем в XPS с помощью встроенного в Windows виртуального принтера Microsoft XPS Document Writer. Полученный файл prikaz.xps отправляем на подпись директору;
    • Директор открывает документ prikaz.xps в программе Pilot-ICE или в Pilot-XPS. Подписывает командой «Подписать» через КриптоПро CSP;
    • Подписанный XPS отправляется бухгалтеру.

    Реализуем атаку:


    • Устанавливаем бухгалтеру модифицированный шрифт NotoSans-Regular.ttf;
    • Получив подписанный prikaz.xps, бухгалтер открывает его в Pilot-ICE, проверяет целостность ЭП и видит тот же размер премии, который был на момент подписания документа — 150 000 руб. Атака на XPS не удалась.



    Итоги


    Усиленная квалифицированная электронная подпись по прежнему является надёжной технологией для обнаружения факта внесения изменений в документ. Но следует комплексно оценивать эффективность её применения. Эксперимент показал, что редактируемые форматы DWG, DOC, DOCX не подходят для создания электронных подлинников, так как могут быть легко скомпрометированы. Более защищенными и универсальными для создания подлинников являются форматы PDF/А и XPS, так как они содержат внутри файла всю необходимую информацию для того, чтобы каждый раз отображать документ в неизменном виде.


    Дмитрий Поскребышев

    АСКОН

    104,00

    Крупнейший российский разработчик инженерного ПО

    Поделиться публикацией
    Комментарии 63
      +1
      Еще вариант: хакнуть саму программу (ACAD, WORD) (в части отображения электронной подписи, например), но опять-таки нужен админский доступ к телу.
        +3
        Если у вас есть админский доступ (и вы можете подменять шрифты на компьютере бухгалтера), то что мешает вам поставить программу, которая будет говорить что подпись подтверждена на любой документ и вообще — при открытии документа A показывать документ B?
          +3

          Есть способы атаки и без админского доступа, например вычисляемые поля или ссылки (как в первом сценарии с DWG). Но в случае применения ЭП предполагается, что защиту электронных подлинников обеспечивает технология, а не права доступа. Важно понимать где начинаются и где заканчиваются возможности технологии.

        0
        Для подписи платежек нужно использовать устройства, которые не позволяют подменить шрифты и вообще что угодно, например Рутокен PINPad и SafeTech SafeTouch
          +3
          Дело не в устройстве. С ними будет работать абсолютно аналогично. С точки зрения подписи ни один бит документа не поменялся.
            +1
            Но на этом устройстве вы не подмените шрифт.
              +2
              устройство покажет то, что вы подписываете на самом деле, а не искаженную информацию на экране компьютера. Другое дело, как конкретный бухгалтер должен догадаться, что у него на экране информация искажена? Но это вопрос грамотного построения системы документооборота. Гонять по системе бинарники с финансовой информацией, которые можно интерпретировать более чем одним способом — явно не лучшая идея.
                +2
                Гонять по системе бинарники с финансовой информацией, которые можно интерпретировать более чем одним способом — явно не лучшая идея.
                >
                Проблема не только с передачей финансовой информацией. Например, с чертежами в инженерном документообороте её тоже нужно решать.
                  0
                  согласен. С другой стороны, какой-нибудь cad чертеж изучают гораздо внимательнее и несколько человек на разном оборудовании, в отличии от платежки, которую исполнил и забыл (до следующей проверки :) )
                    0
                    есть же xml cad форматы?
                      0
                      Да, есть — XPS и DWFx. Оба на основе спецификации XML Paper Specification.
              +1
              Я так переводил игру со шрифтом без поддержки кириллицы.э
              Через hex и замену шрифтов…
                +1

                Не, шрифт надо менять у директора на момент подписания. А потом обратно. Тогда концы в воду.

                  0
                  Тогда булгактера придется брать в долю.
                    +7
                    Зачем? Он то исполнит ровно то, что написано в подписанном документе.
                    +2

                    Ну директор же не нажмёт кнопку "2" чтобы получить глиф "1" и увидеть желаемую сумму.
                    А если мы можем после создания документа и перед его подписью внедриться в систему и поменять его содержимое, при этом видимое содержимое оставить нетронутым, то о чём мы вообще говорим =)

                      +1
                      Ну директор же не нажмёт кнопку «2» чтобы получить глиф «1» и увидеть желаемую сумму.
                      А шрифт специальный он при этом выберет, ага.

                      Все эти атаки, в общем, рассчитаны на те случаи, когда рабочее место либо директора, либо бухгалтера серьёзно скромпроментировано — а тут и говорить не о чем. За исключением, пожалуй, ссылок на внешний документ — вот это может реально сработать. Просто потому что люди «не в теме» о таком подвохе просто не думают…
                    +7
                    Подпись в скомпрометированной среде? Ну даже не знаю… Если имеется такой доступ к машине директора и главбуха, то вообще в фоне можно подписывать что угодно, не ставя директора в известность вовсе.
                      –1
                      Тут идея в том, что применяя ЭП+PDF/A или ЭП+XPS можно подписывать и в «скомпрометированной среде». т.к. такая связка значительно меньше зависит от среды.
                        +1
                        Да с чего бы меньше? Вектора атаки просто другие будут и всё. Вплоть до подмены всего интерфейса.
                          0
                          Можно специальный монитор сконструировать ;)
                        0
                        Можно немного скорректировать сценарий — используя только предустановленные шрифты, и модифицировать глиф только для бухгалтера. Тогда доступ к машине директора не требуется. Среда в которой подписывается документ не скомпрометирована. Результат тот-же.

                        вообще в фоне можно подписывать что угодно, не ставя директора в известность вовсе.
                        >
                        Даже получив административный доступ к машине директора вы не сможете подписать документы вместо него, т.к. при подписании КриптоПро CSP запрашивает пароль, который знает только владелец сертификата ЭП. Можно дополнительно усилить хранением сертификата на внешнем носителе.
                          0
                          запрашивает пароль, который знает только владелец сертификата ЭП.

                          Имея полный доступ к машине кейлоггер туда не поставить? Или в чем трудность?
                            0

                            "Можно дополнительно усилить хранением сертификата на внешнем носителе." это когда для подписания в USB вставляется ключ. Но строго говоря админский доступ к машине директора и не нужен.

                              0
                              это когда для подписания в USB вставляется ключ

                              … а пока ключ воткнут — подписывай что хочешь. Если только ввод кода не аппаратный или коды не одноразовые. Но в этом случае маловероятно что подобный директор даст полный доступ к своей машине непонятно кому.
                        0
                        А я не понял в примере про подмену шрифта.
                        Сотрудник-хакер (Тополёв) должен знать, что ему положена премия с единицей?
                        И второе — почему у Назарова не поменялся табельный номер на 0255?
                        Ну и, наконец, а что будет с датой — 2028 год?
                          +4
                          Там же говорится, что весь текст набран шрифтом Arial, и только премия — похожим по начертанию Noto
                            0
                            Спасибо, пропустил это.
                              0

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

                              +2
                              Особый шрифт используется только для суммы премии
                              +4
                              А нельзя ли цифровой подписью подписать изображение документа?
                                0
                                Именно так делает Word. Изображение элемента видимой подписи добавляется в подпись.
                                  +2
                                  Вопрос не совсем об этом, лучше переформулирую так:

                                  можно ли «отрендерить» графическое представление документа в растровую/векторную графику и подписать уже полученный файл?
                                    +5
                                    Взломанный ГУИ покажет вам что вы подписываете один растр, когда реально вы подпишите другой.
                                    ВЕсь интерес теряется на словах «Нужен досутп администратора». Потому, что если у вас есть доступ администратора, вы можете сделать вообще всё что угодно.
                                      0
                                      Для сценария с чертежом DWG доступ администратора не нужен.
                                      0
                                      можно ли «отрендерить» графическое представление документа в растровую/векторную графику и подписать уже полученный файл?
                                      >
                                      Да можно. Публикация в XPS и PDF/A это фактически и есть рендер в векторную графику. Такой рендер может быть получен через печать документа на виртуальный принтер. Документ получается полностью самодостаточным, со всеми шрифтами и другими ресурсами. И в отличии от растра не потеряет при этом преимуществ «векторности» —
                                      субпиксельное сглаживание шрифтов, поиск по содержимому документа, высокая четкость при любых масштабах отображения.
                                        0
                                        Наверное, такая возможность – «встроить внешние документы и шрифты» (или даже перевести весь текст в кривые) – должна быть прямо в системе электронной подписи, чтобы обеспечить независимость документа от внешней среды.
                                  +1

                                  Не понял, кто набирает документ с приказом? Почему или как его заставить набрать все Arial'ом, а сумму другим шрифтом? Или может быть в шаблоне документа это можно поменять?

                                    +3
                                    Документ набирает злоумышленник проводящий атаку.
                                      +1
                                      Можно в Ворде использовать макросы и VBA, которые будут подменять шрифт на нужный, можно шаблон изменить. :)
                                      Можно посадить вирус, можно ещё кучей способов изменить — в статье озвучены возможные векторы атаки.
                                        0
                                        Директор просит секретаршу набрать приказ о премировании, секретарша имея доступ к компу шефа и бухгалтера (я что-то нажала, дорогая секретарша_нейм, посмотри пожалуйста) проводит заранее необходимые действия, и, собственно все. Админские права в части атак не нужны. В средних и мелких компаниях без ит отдела или отстроенной политики безопасности может прокатить.
                                        +6
                                        бухгалтер не глядя копипастит (Ctrl-C-Ctrl-V) вашу премию в 1-С-ку и улетает вам таки 150. ;)
                                          +1
                                          Верно. Но согласитесь, что docx не становится от этого более защищенным.
                                            +1
                                            Надо подменять шрифт у директора, в документе тогда будет 250
                                              0
                                              Приведенный пример в целом неудачный. Получая премию вы распишетесь за конкретную сумму.
                                              В случае непоняток с вас ее просто вернут.
                                            +1
                                            Сохранять PDF важных документов с растеризацией. Они будут большие, но просматриваться будут всегда и везде. И не зависеть ни от чего.
                                            Все серьёзные программы это умеют.
                                            И ни в коем разе не пользоваться сохранение в PDF от офисных процессоров.
                                            Автор пытался повторить атаку на PDF-файле, который не через офис сохранён, а через какой-нибудь «Foxit PDF printer» напечатан? Сдаётся мне, что не сработает.
                                              0

                                              Можно поставить галочку — внедрить шрифты в документ. В Libre office точно можно. И тогда атака со шрифтами не пройдёт.

                                                0
                                                Конечно атакующий мог сделать документ защищенным. Но его задача реализовать атаку, а не провалить её. В статье есть рекомендация для того кто ставит подпись:
                                                "… перед подписанием каждого PDF необходимо убедиться, что документ соответствует стандарту PDF/A или отсутствуют зависимости от шрифтов."
                                              +1
                                              Заголовок для меня — clickbait. Хотя действует, потому что прочитал статью.
                                              И не увидел где скомпрометирован подписанный файл. Вообще-то здесь подпись никакой роли не играет. Только как средство утверждения подлинности файла. То же самое можно и по телефону проделать. Директор проверяет распоряжение о премии, потом звонит по телефону бухгалтеру и говорит «я сейчас по электронной почте вышлю файл о выдаче премии, выплати их». Так бухгалтер знает, что файл настоящий и без подписи.

                                              По поводу шрифтов — вообще-то PDF позволяет встраивать (? — embed) шрифты, которые использует оригинальный документ, если для них это разрешено. А если нет, в Word 2007 есть опция «Bitmap text when fonts may not be embedded». И хотя я не проверял, но почти уверен, что в программах MS Office по умолчанию при сохранении как PDF шрифты встраиваются. Так что вторая описанная атака не пройдет с PDF даже при настройках по умолчанию.

                                              Ожидал прочитать что-то о взломе или подмене сертификатов. А было что-то вроде атаки man in the middle. И заключение «Эксперимент показал, что редактируемые форматы DWG, DOC, DOCX не подходят для создания электронных подлинников, так как могут быть легко скомпрометированы» никаким образом не следует из статьи, так как в ней не было описано скомпрометирование файлов.
                                                0
                                                По поводу шрифтов — вообще-то PDF позволяет встраивать (? — embed) шрифты, которые использует оригинальный документ, если для них это разрешено.
                                                >
                                                Конечно атакующий знает как сделать документ защищенным. Но его задача реализовать атаку, а не провалить её. А для подписывающего документ:
                                                "… перед подписанием каждого PDF необходимо убедиться, что документ соответствует стандарту PDF/A или отсутствуют зависимости от шрифтов."
                                                0
                                                Эксперимент показал, что редактируемые форматы DWG, DOC, DOCX не подходят для создания электронных подлинников, так как могут быть легко скомпрометированы.


                                                Простите, не увидел в статье вот этого. Вы показали что нельзя доверять рабочему месту, а не документу… Все равно что драйвер печати переписать, который в конце месяца при печати «Премия.doc» налету будет 150 на 250 заменять, кто там сразу разглядит в длинном списке… В теории ведь можно и прошивку принтера изменить…
                                                  0
                                                  Работники финансового сектора корпоративной ЛВС имеют администраторские права на своих компьютерах? «Это какой-то позор...»©
                                                    0

                                                    Есть способы атаки и без админского доступа, например вычисляемые поля или ссылки (как в первом сценарии с DWG). Но в случае применения ЭП предполагается, что защиту электронных подлинников обеспечивает технология, а не права доступа. Важно понимать где начинаются и где заканчиваются возможности технологии.

                                                      0

                                                      Есть способы атаки и без админского доступа, например вычисляемые поля или ссылки (как в первом сценарии с DWG). Но в случае применения ЭП предполагается, что защиту электронных подлинников обеспечивает технология, а не права доступа. Важно понимать где начинаются и где заканчиваются возможности технологии.

                                                        0
                                                        Не трудно повысить себе права, имея физический доступ к своему компьютеру.
                                                        0

                                                        Юридически значимые электронные документы это всё-таки наверное не файлы, а данные хранимые в информационных системах. Возьмём для примера Электронный бюджет. Данные в системе хранятся в таблицах БД. При подписании на основании схемы подписи формируется состав подписываемый данных типа "ключ-значение". После усиления подпись сохраняется в БД. Подписываются текстовые данные. В ЕИС- формируется XML файл, который подписывается. Для визуализации используется xsl преобразование xml файла в html.
                                                        Так что мне кажется, что проблема надумана.

                                                          +2
                                                          У нас в конторе расчетчик однажды опечаталась и лишний ноль кому-то в премию вбила. Документ прошел все последующие стадии (главбуха, шефа) и деньги зачислили на счет сотруднику. Через несколько дней случайно обнаружила свою ошибку и с сотрудника деньги удержали. Вектор атаки — «всем фиолетово». )
                                                          А уж у админов возможностей намного больше, например, многим админам, приходится регулярно «помогать»(читай: делать работу самим) бухгалтерам, которые подменяют своего коллегу на время отпуска и не помнят всех деталей его работы. Там и горсть всевозможных «флешек» (токенов) с закрытыми ключами фирмы легко попадает в руки админа.
                                                          Наверное так не везде, но, думаю, много где.
                                                            0
                                                            При чём же тут "редактируемость формата" документа?
                                                            Тем более, что и «нередактируемый» PDF уязвим к такой атаке «не-на-подпись»?
                                                              0
                                                              Форматы фиксированной разметки или fixed-document format — более точное определение для «нередактируемых» форматов. Здесь важным является 100% самодостаточность документов, когда все необходимые для отображения ресурсы находятся внутри файла. И всё это подписывается ЭП, тогда документ не будет подвержен такого рода атакам. К таким форматам можно отнести XPS и PDF/A (но не PDF).
                                                              0

                                                              Прикольно. Только ЭЦП, как говорит мой коллега, здесь не при чем. Проблема в соответствии изображения реальному содержанию документа. Защищенная система
                                                              документирования должна сама отображать документ и отвечать за
                                                              соответствие. Ценность таких статей состоит в том, что они демонстрируют
                                                              наличие данной опасности. Только у нас воруют гораздо более простыми и
                                                              надежными способами, поэтому никто таких хитроумных угроз не боится ).

                                                                +2
                                                                Вообще-то изображение документа в этих сценариях вполне соответствует реальному содержимому. Проблема тут в самом формате документа: итоговое изображение собирается из нескольких исходных частей, а подписывается лишь одна из них.
                                                                  0

                                                                  Да, вы правы

                                                                +1
                                                                Для установки шрифта не нужны права администратора. Шрифт можно зарегистрировать на уровне пользовательской сессии — так работают менеджеры шрифтов.

                                                                Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                                                Самое читаемое