Наверх

Бомба формата DOC. Еще раз о безопасности электронных документов

Время чтения: 18 минут
3
Бомба формата DOC. Еще раз о безопасности электронных документов

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

Сергей Бушмелев,

ИТ-аналитик компании Directum

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

Есть ли разница между бумажным и электронным документом, между собственноручной и электронной подписью? А если есть, так ли она для нас важна? И что нужно сделать, чтобы обмен электронными документами был хотя бы не менее надежен, чем традиционный бумажный? На эти и другие вопросы мы попытаемся ответить в данной статье.

Если задуматься, какое слово в наибольшей степени отражает характер изменений в нашей жизни за последние, скажем, 30 лет, то это, пожалуй, будет слово «электронный». Электронная вычислительная машина, электронные часы, электронное письмо, электронная торговля, электронный документ, электронная подпись... — как сильно изменяет наше представление о предмете добавление одного только прилагательного «электронный». Может быть, разница между электронными и просто часами не так уж существенна, но разница между электронным и традиционным документом настолько глубока, что мы сами еще не осознаем ее до конца (под «традиционным документом» мы будем понимать, разумеется, бумажный — папирус и глиняные таблички уже давно вышли из моды).

Так чем же отличается электронный документ от традиционного и почему так важно видеть разницу между ними? Понимание природы электронного документа и его отличий от бумажного позволит нам не только более грамотно организовать процесс обмена электронными документами, но и сделать его максимально безопасным.

Что такое электронный документ

Начать, наверное, стоит с того, что бумажный документ объединяет в себе как информацию (контент), так и сам носитель. Точнее, не саму информацию, а ее представление в виде «человекочитаемого» текста и/или схем. Чернила, паста шариковой ручки, тонер, типографская краска взаимодействуют с волокнами бумаги, образуя единый артефакт. Связь представленной информации и носителя в бумажных документах настолько прочна, что для защиты информации (гарантии авторства документа) можно использовать способы защиты самого носителя, например, печать на фирменных бланках, ультрафиолетовую печать, голограммы и т. п.

Электронный же документ, особенно если он предназначен для передачи по каналам связи, изначально не имеет привязки к своему носителю — особым образом намагниченному участку ферромагнитной поверхности или импульсам электрического тока в куске медной проволоки. Осознание этого факта позволяет нам сделать первый вывод: если электронный документ будет пересылаться по каналам связи, защищать нужно сам электронный документ (контент), а не его носитель.

Другим «откровением» будет то, что электронный документ по сути представляет собой набор двоичных разрядов. Когда мы обращаемся к традиционным бумажным документам, то единственными посредниками между документом и нашими глазами могут стать лишь очки или контактные линзы. И те и другие воспринимаются нами как достаточно надежные инструменты. В случае же с электронными документами все намного сложнее. Между нашими глазами и битами информации, составляющими электронный документ, появляется масса «посредников»: диск, память, процессор, монитор, операционная система, драйверы, приложения... И всегда ли то, что мы видим на экране, совпадает с содержимым электронного документа?

Не верь глазам своим

Начнем с того, что электронные документы — это файл (набор битов) какого-либо формата, будь то DOC, XLS, ODF, PDF, XML, просто текст (plain text) или что-то еще. Естественно, нам было бы удобнее обмениваться документами в том формате, в котором они были созданы. Как нетрудно догадаться, речь идет о популярных офисных форматах. Форматы Microsoft Office вплоть до версии 2007 были бинарными — это значит, что для просмотра содержимого документа обязательно требуется соответствующее приложение (Word, Excel, PowerPoint) или по крайней мере программа просмотра, «понимающая» файлы данного вида. Тут уж волей-неволей приходится доверять не только своим глазам, но и программе, которая отображает документ на экране. Форматы, основанные на XML (ODF, Open XML), кажется, имеют здесь некоторое преимущество, ибо в крайнем случае такие документы можно просмотреть при помощи простого редактора текстовых файлов (того же «Блокнота» в Windows).

Но и здесь нас может подстерегать опасность. Аудун Джосанг в своей работе «То, что вы видите, не всегда есть то, что вы подписываете» [1] приводит пример того, как при помощи псевдонимов в XML-документе можно изменить смысл текста на прямо противоположный. Фраза «#Шахтер занял у #Пионер $1000000» на самом деле не всегда означает, что заемщиком выступает компания «Шахтер», а заимодавцем — компания «Пионер». Объявив в преамбуле стороны как <Сторона name="Пионер" nickname="Шахтер"> и <Сторона name="Шахтер" nickname="Пионер">, получим, что как раз «Пионер» взял в долг у «Шахтера» злосчастный миллион долларов (рис. 1). Конечно, этот пример несколько надуман, но он наглядно показывает, что электронный документ может таить свои, «чисто электронные» подвохи.

Рис. 1. Пример XML-документа.

Рис. 1. Пример XML-документа.

Живые страницы

Как известно, кролики — это не только ценный мех; точно так же и современные офисные форматы — не важно, бинарные или XML, — это не только сам текст, но и оформление, метаданные, ссылки на другие документы и, наконец, макросы. Наверное, вполне возможно написать макрос, который будет изменять содержание документа, скажем, в зависимости от даты, имени пользователя или машины. Разные пользователи — или одни и те же пользователи, но в разные промежутки времени — будут видеть разное содержимое. Особенно щекотливым становится данный вопрос, если речь идет о критически важной информации: сроках, денежных суммах и т. д.

Надо сказать, что передовые умы уже осознали данную угрозу, и были приняты соответствующие меры. Так, законодательство Италии в области электронной подписи уже содержит положения, запрещающие подписывать с помощью ЭЦП документы, содержащие макросы и скрытый код [2]. Подобная позиция нашла свое отражение и в панъевропейских стандартах, в частности, в документе Европейского комитета по стандартизации CWA 14170 Security Requirements for Signature Creation Applications [3].

Впрочем, опасность может таиться не только в самом документе. Нужно снова вспомнить о количестве посредников между нашими глазами и самим документом. Речь на этот раз пойдет об элементах информационной системы, отвечающих за преобразование документа в изображение на экране. Электронные документы, за редким исключением, содержат лишь коды символов в какой либо из принятых кодировок, а если речь идет о более сложном формате, чем текстовый (plain text), — еще и наименования шрифтов. Подсистема графического вывода, имея дело со шрифтами, преобразует коды символов в их графическое представление — глифы (рис. 2). Таким образом, появляется еще один посредник — шрифт. Вот здесь-то, по мнению уже упоминавшегося Аудуна Джосанга, таится новая опасность.

Рис. 2. Соответствие между кодом символа и глифом «a».

Рис. 2. Соответствие между кодом символа и глифом «a».

Допустим, некий злоумышленник на основании шрифта Times New Roman создал свой шрифт Time New Roman, ничем не отличающийся от оригинального, за исключением того, что в нем поменялись местами графические представления символов «п» и «ш», «и» и «а», «о» и «х», «н» и «т». Далее в официальном документе злоумышленник использует этот шрифт для написания названия компаний, приглашает за свой компьютер представителя контрагента, они вместе смотрят на экран и видят, что «компания «Пионер» обязуется выплатить компании «Шахтер» $100000». Стороны подписывают документ ЭЦП, жмут друг другу руки и расстаются. Естественно, у представителя компании «Шахтер» шрифта Time New Roman в системе нет, и Word заменяет его на схожий Times New Roman. Представьте себе изумление представителя компании «Шахтер», когда он видит на экране, что это компания «Шахтер» должна выплатить «Пионеру» $100 000, а не наоборот, как он полагал.

Если говорить о практических решениях данной проблемы, то можно предложить пользоваться форматами, хранящими как коды символов, так и описания их шрифтов. Таков, например, архивный формат PDF/A [4], сертифицированный в 2005 г. ISO под номером 19005.

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

Буквы и цифры

Как мы уже убедились, традиционный бумажный и электронный документы имеют разную физическую природу. Это в свою очередь определяет выбор средств, которые придают документу юридическую силу: мы используем собственноручную подпись для бумажных документов и подпись электронную для легитимизации электронных документов. И та и другая, по мнению Адриана МакКулаха [5], выполняют следующие функции:

●     идентифицируют лицо, подписавшее документ (подписанта);

●     подтверждают факт персонального участия определенного лица в акте подписания;

●     ассоциируют определенное лицо с содержанием документа;

●     подтверждают намерение определенного лица быть связанным с содержанием документа;

●     подтверждают авторство документа.

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

Вместе с тем разная природа собственноручной и электронной подписи определяет и ключевые различия между ними. Собственноручная подпись, будучи следом чернил или шариковой пасты, образует вместе с документом единый физический объект, и ее сравнительно тяжело убрать из документа, не оставив следов воздействия. Это означает, что электронная подпись гарантирует авторство и подлинность документа при условии, что она включена в тело документа или находится с документом в едином контейнере. Как только документ покидает контейнер или же электронная подпись извлекается из тела документа, все гарантии подлинности и неизменности документа исчезают.

Электронный «Паркер»

Если для подписания бумажного документа достаточно шариковой ручки (вариант: гусиного пера или шикарного чернильного «Паркера»), а для проверки подписи — наших глаз, то для подписания электронного документа и последующей проверки электронной подписи нужно гораздо больше. Для этого понадобится целый программно-аппаратный комплекс (компьютер, ПО, сертификаты ключей подписи), имеющий доступ к инфраструктуре удостоверяющего центра (опубликованные сертификаты удостоверяющего центра, списки отзыва сертификатов и т. д.). И если ручка обычно не таит в себе никаких сюрпризов (если только она не заряжена симпатическими чернилами), то оборудование и ПО, используемые для подписания электронных документов, могут нести в себе массу потенциальных лазеек для злоумышленников.

Ханно Ланвег из Gjovik University College (Норвегия) в 2006 г. протестировал шесть самых популярных в Германии и Австрии программных продуктов, предназначенных для подписания электронных документов, опубликовав результаты в своей работе «Атаки вредоносного программного обеспечения на электронную подпись» [6]. Надо сказать, что это не первое его исследование в этой области — в 2001 г. Ланвег уже проводил подобное тестирование. Из результатов сильнее всего его поразило то, как мало изменилось за прошедшие пять лет. Большинство уязвимостей, о которых Ханно Ланвег писал ранее, до сих пор не закрыто.

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

Внесение изменений в файл на этапе подписи. Файл, передаваемый программе, которая используется для подписания документов электронной подписью, перехватывается вредоносной программой, и на этом этапе она может внести в файл изменения или даже подменить его (рис. 3).

Рис. 3. Перехват файла вредоносной программой.
Хищение пин-кода для доступа к носителю, содержащему закрытый ключ.

Рис. 3. Перехват файла вредоносной программой.

Хищение пин-кода для доступа к носителю, содержащему закрытый ключ. Если пин-код вводится с клавиатуры компьютера, то есть теоретическая вероятность его похищения вредоносной программой — сниффером, отслеживающей нажатия клавиш (рис. 4). В данном случае лучше защищенными оказываются терминалы, оборудованные специальной клавиатурой для ввода пин-кода, — при этом посторонние процессы, запущенные на компьютере, не имеют доступа к пин-коду.

Рис. 4. Перехват пин-кода вредоносной программой.

Рис. 4. Перехват пин-кода вредоносной программой.

Подписание документа без ведома подписывающего. По мнению Ханно Ланвега, вредоносная программа может инициировать подписание документа, сымитировав работу «правильной» программы. Предположение основывается на том, что блок генерации электронной подписи не сможет определить, что за процесс к нему обращается.

Фальсификация интерфейса программы. Большинство рассмотренных программ использовало стандартный механизм Windows для вывода на экран информации о результатах работы и представления подписываемого документа в окне предварительного просмотра. Вредоносное ПО может перехватить этот процесс и «нарисовать» что-то свое в окне программы, например, ложное изображение подписываемого документа или результатов проверки подписи (рис. 5).

Рис. 5. Изменение результатов проверки подписи вредоносной программой.

Рис. 5. Изменение результатов проверки подписи вредоносной программой.

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

Самым невероятным кажется тот факт, что для организации описанных выше атак, как пишет в своей работе Ханно Ланвег, не требуется никакого специального оборудования, особых знаний и навыков — такое дело вполне по плечу «рядовому» хакеру.

Во всем виновата система

Когда мы говорили о том, какое оборудование и ПО требуется для подписания электронных документов, мы не зря упомянули инфраструктуру удостоверяющего центра. И сам удостоверяющий центр, и инфраструктура публичных ключей (PKI, Public Key Infrastructure), будучи сложными системами, в дополнение к операционным рискам (например, компрометации закрытого ключа) подвержены и рискам системным. Исследователи банковских и финансовых рынков Кауфман и Скотт [7] выделяют три основных системных риска: макрошок, «эффект домино» и «эпидемия». Эти же риски, по мнению Джеми Мюррея [8], изложенного им в работе «Инфраструктура открытых ключей. Цифровые подписи и системный риск», присущи инфраструктуре открытых ключей.

Макрошок наступает, когда вся система оказывается неработоспособной в результате крупных потрясений: стихийных бедствий, войн, политических коллизий. Развитая система, будь то банковская, финансовая система или инфраструктура открытых ключей, особенно чувствительна к таким видам потрясений. Если инфраструктура PKI находится в состоянии макрошока, то становится невозможно проверить сведения о выданном сертификате ключа подписи и выполнить необходимые операции (выдача, отзыв сертификата и т. п.). Сейчас такая ситуация кажется чем-то из разряда фантастики, но в будущем это может оказаться достаточно серьезной проблемой.

«Эффект домино». Для PKI это может означать следующее: компрометация ключа одного удостоверяющего центра по цепочке доверия приводит к потере доверия к сертификатам других удостоверяющих центров. Если говорить об организации системы взаимного доверия, то наиболее стойкими к этому риску оказываются системы, построенные по типу «дерево», когда в основании системы находится корневой удостоверяющий центр, а от него уже доверие распространяется на нижестоящие удостоверяющие центры.

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

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

Предупрежден — значит вооружен

Наверное, у читателей уже давно назрел вопрос: а стоит ли тогда игра свеч? Можно ли доверять электронным документам, имеет ли смысл развивать обмен ими, если здесь на каждом шагу подстерегает опасность? Но автор не для того собирал все «страшилки», чтоб запугать читателей и навсегда отбить у них интерес к электронному документообороту. Все примеры, все доводы приводились с одной целью: показать, что электронный документ и бумажный документ — это две совершенно отдельные сущности, что, используя лишь метод аналогий, мы не сможем реально оценить угрозы безопасности и предложить адекватное решение. Относясь к электронному документу, к электронной подписи как к самостоятельным достижениям человеческой мысли, а не только как к аналогам привычных вещей, мы сможем увидеть и предупредить новые угрозы. Как гласит поговорка, «предупрежден — значит вооружен», и зная об этих угрозах, мы сможем встретить их во всеоружии, сможем организовать процесс обмена электронными документами так, чтобы риск неблагоприятных событий был минимален. Некоторые выводы можно сделать уже сейчас, проанализировав описанные в статье угрозы.

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

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

Комплексная безопасность системы. Нельзя получить защищенный электронный документооборот, если пытаться защищать только сами закрытые ключи. Только комплексные мероприятия (четкое разграничение прав доступа, контроль устанавливаемого ПО, регулярные проверки на наличие вирусов и вредоносного ПО, защита внутренней сети от внешних угроз, анализ появляющихся угроз и разработка мер противодействия) позволят сделать безопасным процесс обмена электронными документами.

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

Источники дополнительной информации

1. Audun Josang, What You See is Not Always What You Sign. http://sky.fit.qut.edu.au/~josang/ papers/JPH2002-AUUG.pdf.

2. Allegato Tecnico del D.P.C.M. 8 febbraio 1999. http://www.giustizia.it/cassazione/leggi/ dpcmfeba_99.html#INDICE.

3. CWA 14170 Security Requirements for Signature Creation Applications. http://www. izenpe.com/contenidos/informacion/informacion_de_estandares/es_9057/adjuntos/ cwa14170.pdf.

4. PDF/A Competence Center. http://www.pdfa.org.

5. Adrian McCullagh, Signature Stripping: A Digital Dilemma, The Journal of Information, Law & Technology (JILT) #1 2001. http://www2.warwick.ac.uk/fac/soc/law/elj/jilt/2001_1/ mccullagh.

6. Hanno Langweg, Malware Attacks on Electronic Signatures Revisited. http://www.hanno-langweg.de/hanno/research/gi06p.pdf.

7. Comment on Systematic Risk, in Research in Financial Services, Vol 7, G.G.Kaufman (ed.), JAI Press, Greenwich, 1995.

8. Jamie Murray, Public Key Infrastructure Digital Signatures and Systematic Risk, The Journal of Information, Law & Technology (JILT) #1 2003. http://www2.warwick.ac.uk/fac/ soc/law/elj/jilt/2003_1/murray.

Источник: BYTE

Чтобы прочитать эту статью до конца,
или зарегистрируйтесь

Комментарии 3

1. "Это означает, что электронная подпись гарантирует авторство и подлинность документа при условии, что она включена в тело документа или находится с документом в едином контейнере. Как только документ покидает контейнер или же электронная подпись извлекается из тела документа, все гарантии подлинности и неизменности документа исчезают." - весьма спорное суждение, т.к. криптографическое сообщение (например, PKCS#7) может содержать/несодержать подписанных данных - это никак не влияет на процесс проверки подписи.

2. А "ужастики", описанные в разделе "Электронный «Паркер»" разумеется "предусмотрены" в случае использования сертифицированных СКЗИ. "Подписание документа без ведома подписывающего" - это вообще как можно сделать? (предположу - только используя неотчуждаемый носитель ключей в вирусном "зверинце").

3. Раздел "Во всем виновата система" из разряда "волков бояться - в лес не ходить".

Если рассматривать PKCS#7, то наличие или отсутствие подписанных данных в криптографическом сообщении с технической стороны напрямую влияет на процесс проверки подписи. При использовании данного стандарта построения криптосообщений возможен другой тип угроз: из сообщения можно удалять SignerInfo и неподписанные атрибуты, т.к. в сообщении нигде не фиксируется их наличие. Если в сообщении несколько SignerInfo (подписано несколькими пользователями), то исчезновение одного из них могут сразу и не заметить. Кроме того, допустим и выраженный случай - сообщение с данными, но без подписей. В неподписанных же атрибутах может храниться крайне важная информация, например, штамп времени.

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

Чтобы прокомментировать, или зарегистрируйтесь