На волне новостей чип-апокалипсиса 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, так как они содержат внутри файла всю необходимую информацию для того, чтобы каждый раз отображать документ в неизменном виде.


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

Комментарии (62)


  1. Chupakabra303
    19.01.2018 12:03

    Еще вариант: хакнуть саму программу (ACAD, WORD) (в части отображения электронной подписи, например), но опять-таки нужен админский доступ к телу.


    1. khim
      20.01.2018 02:36

      Если у вас есть админский доступ (и вы можете подменять шрифты на компьютере бухгалтера), то что мешает вам поставить программу, которая будет говорить что подпись подтверждена на любой документ и вообще — при открытии документа A показывать документ B?


      1. caduser Автор
        20.01.2018 08:54
        +3

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


  1. mkirya
    19.01.2018 12:50

    Для подписи платежек нужно использовать устройства, которые не позволяют подменить шрифты и вообще что угодно, например Рутокен PINPad и SafeTech SafeTouch


    1. Iv8
      19.01.2018 14:06

      Дело не в устройстве. С ними будет работать абсолютно аналогично. С точки зрения подписи ни один бит документа не поменялся.


      1. QDeathNick
        19.01.2018 14:07

        Но на этом устройстве вы не подмените шрифт.


      1. mkirya
        19.01.2018 14:19

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


        1. caduser Автор
          19.01.2018 16:04

          Гонять по системе бинарники с финансовой информацией, которые можно интерпретировать более чем одним способом — явно не лучшая идея.
          >
          Проблема не только с передачей финансовой информацией. Например, с чертежами в инженерном документообороте её тоже нужно решать.


          1. mkirya
            19.01.2018 16:10

            согласен. С другой стороны, какой-нибудь cad чертеж изучают гораздо внимательнее и несколько человек на разном оборудовании, в отличии от платежки, которую исполнил и забыл (до следующей проверки :) )


          1. mkirya
            19.01.2018 16:15

            есть же xml cad форматы?


            1. caduser Автор
              19.01.2018 18:58

              Да, есть — XPS и DWFx. Оба на основе спецификации XML Paper Specification.


  1. nidalee
    19.01.2018 13:13

    Я так переводил игру со шрифтом без поддержки кириллицы.э
    Через hex и замену шрифтов…


  1. Danik-ik
    19.01.2018 14:05

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


    1. nerudo
      19.01.2018 14:30

      Тогда булгактера придется брать в долю.


      1. QDeathNick
        19.01.2018 15:57

        Зачем? Он то исполнит ровно то, что написано в подписанном документе.


    1. EviGL
      21.01.2018 09:44
      +1

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


      1. khim
        21.01.2018 13:40

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

        Все эти атаки, в общем, рассчитаны на те случаи, когда рабочее место либо директора, либо бухгалтера серьёзно скромпроментировано — а тут и говорить не о чем. За исключением, пожалуй, ссылок на внешний документ — вот это может реально сработать. Просто потому что люди «не в теме» о таком подвохе просто не думают…


  1. Loki3000
    19.01.2018 14:31

    Подпись в скомпрометированной среде? Ну даже не знаю… Если имеется такой доступ к машине директора и главбуха, то вообще в фоне можно подписывать что угодно, не ставя директора в известность вовсе.


    1. caduser Автор
      19.01.2018 16:14

      Тут идея в том, что применяя ЭП+PDF/A или ЭП+XPS можно подписывать и в «скомпрометированной среде». т.к. такая связка значительно меньше зависит от среды.


      1. AllexIn
        19.01.2018 17:51

        Да с чего бы меньше? Вектора атаки просто другие будут и всё. Вплоть до подмены всего интерфейса.


        1. legolegs
          19.01.2018 21:13

          Можно специальный монитор сконструировать ;)


    1. caduser Автор
      21.01.2018 15:38
      +1

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

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


      1. Loki3000
        22.01.2018 00:09

        запрашивает пароль, который знает только владелец сертификата ЭП.

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


        1. caduser Автор
          22.01.2018 05:56

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


          1. Loki3000
            22.01.2018 09:05

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

            … а пока ключ воткнут — подписывай что хочешь. Если только ввод кода не аппаратный или коды не одноразовые. Но в этом случае маловероятно что подобный директор даст полный доступ к своей машине непонятно кому.


  1. YaMishar
    19.01.2018 14:33

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


    1. Aracon
      19.01.2018 14:43

      Там же говорится, что весь текст набран шрифтом Arial, и только премия — похожим по начертанию Noto


      1. YaMishar
        19.01.2018 14:48

        Спасибо, пропустил это.


      1. Mingun
        20.01.2018 12:20

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


    1. d_ilyich
      19.01.2018 14:49

      Особый шрифт используется только для суммы премии


  1. GerrAlt
    19.01.2018 14:51

    А нельзя ли цифровой подписью подписать изображение документа?


    1. maxdm
      19.01.2018 14:56

      Именно так делает Word. Изображение элемента видимой подписи добавляется в подпись.


      1. GerrAlt
        19.01.2018 17:21

        Вопрос не совсем об этом, лучше переформулирую так:

        можно ли «отрендерить» графическое представление документа в растровую/векторную графику и подписать уже полученный файл?


        1. AllexIn
          19.01.2018 17:53

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


          1. caduser Автор
            19.01.2018 19:33

            Для сценария с чертежом DWG доступ администратора не нужен.


        1. caduser Автор
          20.01.2018 13:58

          можно ли «отрендерить» графическое представление документа в растровую/векторную графику и подписать уже полученный файл?
          >
          Да можно. Публикация в XPS и PDF/A это фактически и есть рендер в векторную графику. Такой рендер может быть получен через печать документа на виртуальный принтер. Документ получается полностью самодостаточным, со всеми шрифтами и другими ресурсами. И в отличии от растра не потеряет при этом преимуществ «векторности» —
          субпиксельное сглаживание шрифтов, поиск по содержимому документа, высокая четкость при любых масштабах отображения.


          1. VaKonS
            20.01.2018 16:13

            Наверное, такая возможность – «встроить внешние документы и шрифты» (или даже перевести весь текст в кривые) – должна быть прямо в системе электронной подписи, чтобы обеспечить независимость документа от внешней среды.


  1. okozintsev
    19.01.2018 15:19

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


    1. caduser Автор
      19.01.2018 15:21

      Документ набирает злоумышленник проводящий атаку.


    1. paranoya_prod
      19.01.2018 15:27

      Можно в Ворде использовать макросы и VBA, которые будут подменять шрифт на нужный, можно шаблон изменить. :)
      Можно посадить вирус, можно ещё кучей способов изменить — в статье озвучены возможные векторы атаки.


    1. zxosa
      20.01.2018 11:22

      Директор просит секретаршу набрать приказ о премировании, секретарша имея доступ к компу шефа и бухгалтера (я что-то нажала, дорогая секретарша_нейм, посмотри пожалуйста) проводит заранее необходимые действия, и, собственно все. Админские права в части атак не нужны. В средних и мелких компаниях без ит отдела или отстроенной политики безопасности может прокатить.


  1. mickvav
    19.01.2018 15:41
    +1

    бухгалтер не глядя копипастит (Ctrl-C-Ctrl-V) вашу премию в 1-С-ку и улетает вам таки 150. ;)


    1. caduser Автор
      19.01.2018 15:52

      Верно. Но согласитесь, что docx не становится от этого более защищенным.


    1. alff31
      20.01.2018 00:15

      Надо подменять шрифт у директора, в документе тогда будет 250


      1. 9660
        20.01.2018 09:57

        Приведенный пример в целом неудачный. Получая премию вы распишетесь за конкретную сумму.
        В случае непоняток с вас ее просто вернут.


  1. Sap_ru
    19.01.2018 17:52

    Сохранять PDF важных документов с растеризацией. Они будут большие, но просматриваться будут всегда и везде. И не зависеть ни от чего.
    Все серьёзные программы это умеют.
    И ни в коем разе не пользоваться сохранение в PDF от офисных процессоров.
    Автор пытался повторить атаку на PDF-файле, который не через офис сохранён, а через какой-нибудь «Foxit PDF printer» напечатан? Сдаётся мне, что не сработает.


    1. AVX
      19.01.2018 22:51

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


      1. caduser Автор
        21.01.2018 15:22

        Конечно атакующий мог сделать документ защищенным. Но его задача реализовать атаку, а не провалить её. В статье есть рекомендация для того кто ставит подпись:
        "… перед подписанием каждого PDF необходимо убедиться, что документ соответствует стандарту PDF/A или отсутствуют зависимости от шрифтов."


  1. BoyanBr
    19.01.2018 19:02

    Заголовок для меня — clickbait. Хотя действует, потому что прочитал статью.
    И не увидел где скомпрометирован подписанный файл. Вообще-то здесь подпись никакой роли не играет. Только как средство утверждения подлинности файла. То же самое можно и по телефону проделать. Директор проверяет распоряжение о премии, потом звонит по телефону бухгалтеру и говорит «я сейчас по электронной почте вышлю файл о выдаче премии, выплати их». Так бухгалтер знает, что файл настоящий и без подписи.

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

    Ожидал прочитать что-то о взломе или подмене сертификатов. А было что-то вроде атаки man in the middle. И заключение «Эксперимент показал, что редактируемые форматы DWG, DOC, DOCX не подходят для создания электронных подлинников, так как могут быть легко скомпрометированы» никаким образом не следует из статьи, так как в ней не было описано скомпрометирование файлов.


    1. caduser Автор
      19.01.2018 19:11

      По поводу шрифтов — вообще-то PDF позволяет встраивать (? — embed) шрифты, которые использует оригинальный документ, если для них это разрешено.
      >
      Конечно атакующий знает как сделать документ защищенным. Но его задача реализовать атаку, а не провалить её. А для подписывающего документ:
      "… перед подписанием каждого PDF необходимо убедиться, что документ соответствует стандарту PDF/A или отсутствуют зависимости от шрифтов."


  1. gban
    20.01.2018 01:49

    Эксперимент показал, что редактируемые форматы DWG, DOC, DOCX не подходят для создания электронных подлинников, так как могут быть легко скомпрометированы.


    Простите, не увидел в статье вот этого. Вы показали что нельзя доверять рабочему месту, а не документу… Все равно что драйвер печати переписать, который в конце месяца при печати «Премия.doc» налету будет 150 на 250 заменять, кто там сразу разглядит в длинном списке… В теории ведь можно и прошивку принтера изменить…


  1. Tippy-Tip
    20.01.2018 03:45

    Работники финансового сектора корпоративной ЛВС имеют администраторские права на своих компьютерах? «Это какой-то позор...»©


    1. caduser Автор
      20.01.2018 09:03

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


    1. caduser Автор
      20.01.2018 09:04

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


    1. shiz0id
      20.01.2018 11:23

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


  1. snovikov
    20.01.2018 11:23

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


  1. Emulyator
    21.01.2018 12:10
    +2

    У нас в конторе расчетчик однажды опечаталась и лишний ноль кому-то в премию вбила. Документ прошел все последующие стадии (главбуха, шефа) и деньги зачислили на счет сотруднику. Через несколько дней случайно обнаружила свою ошибку и с сотрудника деньги удержали. Вектор атаки — «всем фиолетово». )
    А уж у админов возможностей намного больше, например, многим админам, приходится регулярно «помогать»(читай: делать работу самим) бухгалтерам, которые подменяют своего коллегу на время отпуска и не помнят всех деталей его работы. Там и горсть всевозможных «флешек» (токенов) с закрытыми ключами фирмы легко попадает в руки админа.
    Наверное так не везде, но, думаю, много где.


  1. jno
    21.01.2018 15:04

    При чём же тут "редактируемость формата" документа?
    Тем более, что и «нередактируемый» PDF уязвим к такой атаке «не-на-подпись»?


    1. caduser Автор
      21.01.2018 15:18

      Форматы фиксированной разметки или fixed-document format — более точное определение для «нередактируемых» форматов. Здесь важным является 100% самодостаточность документов, когда все необходимые для отображения ресурсы находятся внутри файла. И всё это подписывается ЭП, тогда документ не будет подвержен такого рода атакам. К таким форматам можно отнести XPS и PDF/A (но не PDF).


  1. saipr
    23.01.2018 11:51

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


    1. mayorovp
      23.01.2018 16:42
      +2

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


      1. saipr
        23.01.2018 16:50

        Да, вы правы