MS Office: скрытые возможности

MS Office: скрытые возможности "Я рассказал бы тебе все, что знаю,
Только об этом нельзя говорить,
Выпавший снег никогда не растает,
Бог устал нас любить,
Бог просто устал..."
Сплин, "Бог устал нас любить"

В марте 1999 года я дебютировал в "Компьютерных вестях" со статьей "MS Word: скрытые возможности". В ней было много недосказанного. Пришло время восполнить пробелы и рассказать все или почти все...

В статье шла речь о скрытых полях в документах MS Word и таблицах MS Excel, позволяющих вскрыть сетевую топологию, аппаратное обеспечение, авторство документа.
Я пришел к выводу, что формат документов MS Office намеренно не документируется Microsoft. Кроме "грязных" приемов в маркетинге, есть и другие причины, на которые большинство пользователей, далеких от проблем компьютерной безопасности, попросту не обращают внимания. Уже несколько раз была озвучена связь программного гиганта с Агентством национальной безопасности США. Отсюда и понятны тщетные попытки американских юристов развалить монополиста.
Тем не менее, манипуляции со скрытыми возможностями офисных документов могут быть вполне доступны и продвинутому пользователю.

Предыдущая копия текста
MS Word при установленной опции "разрешить быстрое сохранение" сохраняет не только текущую версию текста, но и предыдущую. Эта опция включена по умолчанию при инсталяции пакета. Для организаций, отдельных пользователей, которые любят работать с "болванками" (заготовками) для договоров, спецификаций или из-за лени берущие документ и быстро перебивающие текст, поля таблиц, это может представлять определенную опасность. Если текст англоязычный или документ создан в MS Office 95, то можно предыдущую версию текста увидеть обычным Viewer-ом, что при некоторых коммерческих сделках или просто склонности нагло обманывать окружающих "смерти подобно".
В открытом виде русский текст виден только в MS Office 95. В последующих версиях нужна раскодировка из символов Unicode для прочтения русского текста. Но не только это может представлять интерес.

Демографические данные и топология системы в документах MS Office
Внутреннее содержимое формата DOC включает не только предыдущие редакции текста, но и название принтера (если принтер сетевой, то с сетевым путем к нему в формате UNC), полный локальный путь к файлу, в том числе сетевой, если доступ к файлу был по сети — опять же в формате UNC, каталог для хранения временных файлов. Кроме даты создания и последней модификации документа (эта временная метка не одно и то же, что Windows ассоциирует с файлом, и они могут не совпадать), в файле сохраняется и другая статистика: общее время редакции и количество правок.
Кроме этого, файл содержит имя владельца и название компании, на которую был зарегистрирован Office при инсталляции, имя человека, редактировавшего документ, и его адрес (то, что устанавливается в "Параметрах.../Пользователь"). Другими словами, это то, что видно при вызове диалога свойств документа. Обычная замена в "Параметрах..." имени пользователя не даст полного сокрытия, только добавит имя человека, редактировавшего документ, оставив реквизиты владельца в прежнем виде.
Это первый и простой способ к установлению авторства и происхождения документа. Для хакера может быть шагом к раскрытию сетевых имен и топологии. Хотя сами по себе демографические данные в большинстве случаев безусловно полезны, позволяя быстро просматривать документы или сортировать по нужным критериям, бывают ситуации, когда необходима анонимность или нельзя публиковать полную историю документа в Интернет.
Для желающих убрать демографические данные придется проделать не сложные, но кропотливые процедуры. Сохранение в формате RTF из Word или Excel не принесет желаемого результата. Я приведу несколько рекомендаций:
1. Для того чтобы убрать из документа предыдущую копию и уменьшить размер, в первую очередь необходимо убрать в диалоге "Параметры" на странице "Сохранение" флажок "разрешить быстрое сохранение" и повторно сохранить документ.
2. Этого же можно достичь, выполнив команду "Сохранить как..." с новым именем файла или еще раз выбрав из списка файлов текущее имя. Команда "Сохранить как..." не только уберет предыдущую копию документа из файла, но и обнулит статистику редакции документа (общее время и количество правок).
3. По умолчанию MS Office использует папку "Мои документы" для работы с документами. Путь к ней хранится в системном реестре Windows, с этой папкой интенсивно оперирует оболочка Windows. Если есть смысл скрыть расположение этой папки, то для этого необходимо сохранить документ в папку, отличную от той, которую по умолчанию использует MS Office ("Мои документы"), чтобы усложнить задачу "охотнику".
4. Безусловно, нет никакой необходимости всем раскрывать свою сетевую топологию. Поэтому я рекомендовал бы не сохранять версии документов, используя разделенные ресурсы локальной сети, которые будут передаваться по Интернету или копироваться для распространения. В результате сохранения по сети будут выданы: название компьютера с именем разделенного ресурса с полным сетевым путем к документу в формате UNC. Для этого есть простое решение: сохранить документ на локальном диске, например в малоинформативном корневом каталоге локального диска C, и после этого скопировать его в "конечный пункт назначения".
Далее я приведу несколько рекомендаций для тех, кто вынужден предпринимать повышенные меры безопасности:
1. Не давайте развернутые или собственные имена сетевым и прочим ресурсам, которые будут нести демографическую или дополнительную семантическую нагрузку. Тем более не следует брать имя пользователя для входа в систему, идентичную сетевому имени компьютера. К сожалению, так чаще всего и поступают, выдавая тем самым не только топологию, но и имя учетной записи. Для повышенных мер безопасности, к примеру, следует дать простые названия сетевым принтерам ("Printer"), а серверам присваивать нейтральные имена, не несущие семантической нагрузки ("Host1", "Server54"), не заводить учетные записи с именем компьютера.
2. Не присваивайте компьютерам имена собственные или фамилии. "Охотник" получит доступ к штатному расписанию, минуя руководство и инспектора по кадрам предприятия. На самом деле все происходит наоборот: во время предварительного сбора информации об объекте сначала пробуют узнать личные данные сотрудников и потом, исходя из предположения, что сетевые имена компьютеров или учетные записи совпадают с именем, фамилией, пытаются атаковать. Знаменитый сетевой червь Морриса, используя эту рабочую гипотезу, успешно проникал в 30 процентов машин.
При инсталляции Windows запрашивает имя и организацию пользователя. Для повышенных мер безопасности лучше ввести малоинформативные псевдонимы. Это имя и название организации Windows будет использовать практически для всех инсталлируемых программ. Если в дальнейшем потребуется, то при инсталляции нового пакета всегда можно будет ввести необходимую информацию. Это надо сделать перед инсталляцией MS Office. Microsoft была замечена в собирании и отсылке к себе на сервер этих демографических данных.

И несколько последних рекомендаций для модификации персональной информации, хранящейся в системном реестре Windows.
Если есть желание отредактировать ключи реестра вручную, то в Regedit найдите следующие параметры:
1. Параметры для Windows: "RegisteredOrganization", "RegisteredOwner" в [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion]. Я бы рекомендовал задать поиск этих ключей "RegisteredOrganization", "RegisteredOwner" по всему реестру и исправить для всех найденных значений. Единственно, этого действительно не стоит делать там, где регистрация программы завязана на имя пользователя или/и имя организации. Исправив эти параметры, можно лишиться лицензии, и программа или перестанет запускаться, или отключит использование всех функций.
2. Параметры для MS Setup: "DefCompany", "DefName" [HKEY_CURRENT_USER\ SOFTWARE\Microsoft\MS Setup (ACME)\ User Info].
Первые два пункта необходимо выполнить до инсталляции MS Office 95/97. Эти версии MS Office для изменения данных, внесенных при установке, требуют переинсталляции. MS Office 2000 и XP позволяют внести изменения в занесенные демографические данные и после инсталляции. Для этого в первую очередь необходимо открыть ключ реестра [HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall] и в подключах найти записи, соответствующие MS Office. Для MS Office 2000 это будет ключ, похожий на {xxxx-78E1-11D2-B60F-006097C998E7}, где значение хххх может меняться в зависимости от языковой локализации. У английской и русской версий значения хххх будут разными.
Если в параметры занести нулевые значения или просто удалить их, то при инсталляции Office обязательно потребует ввести имя пользователя и название организации. Я рекомендовал бы внести два-три пробела и подтвердить при инсталляции, что это и есть корректные данные. Тогда в диалоге "О программе" будет пусто и в создаваемых документах вместо имени пользователя и названия организации будут сохраняться самые лучшие аутентификационные данные: "Unknown".
3. Для изменения данных автора текущих копий Office необходимо найти в ключе [HKEY_CURRENT_USER\Software\ Microsoft\Office\номер_версии_оффиса\Common\UserInfo] параметры "UserInitials", "UserName", "UserAddress" и внести необходимые псевдонимы или несколько пробелов.

Демографические данные во внутренних полях и поисковик Google
Проблема хранения демографических данных в файлах Microsoft Office в открытом виде приобрела другой аспект с появлением поисковика Google. Google — на сегодняшний день единственная поисковая машина, которая производит полнотекстовый поиск в файлах Adobe PDF, MS Word, PowerPoint, Excel и Corel WordPerfect, хранящихся на доступных для индексирования Web-страницах. Другими словами, демографические данные о пользователе, создавшем документ, занесенные в документ MS Office, попадают в поисковик и на всеобщее обозрение соответсвенно. Часть пользователей восприняло это как нарушение их приватности. Для охотников за информацией поисковик Google стал Клондайком, так как всегда интересны люди и, в первую очередь, их профессиональная и личная жизнь. Google легко позволяет осуществлять предварительный поиск информации, который на профессиональном сленге называется "просеивание". По причине этого вышеизложенные рекомендации приобрели другой оттенок, и я счел необходимым вернуться к этой теме спустя несколько лет.

Уникальные идентификаторы GUID для документов MS Office
Рассмотрим уникальные метки, помещаемые в документы MS Word и таблицы MS Excel. Сказанное может быть отнесено ко всему семейству MS Office, начиная с 97 версии. Для краткости, речь будет вестись только о MS Word. MS Excel имеет похожие свойства.
В широкой печати данная проблема впервые была освещена в журнале "BYTE", в номере за сентябрь 1999 года, в статье Ричарда Смита, президента Phar Lap Software, — "Windows 98 Knows Who You Are" ("Windows 98 знает, кто вы"). К выводам, опубликованным в статье, я пришел независимо, однако считаю необходимым упомянуть широко нашумевшую публикацию. Статья посвящена не только MS Office, но и попыткам Microsoft протащить вместе с Windows 98 две новые уникальные метки системы HWID (Hardware Identifier) и MSID (Microsoft Identifier) и передавать в Microsoft при регистрации или обновлении через Интернет демографические параметры (User Name, Company и др.), задаваемые при инсталляции Windows. О том, что эти параметры прописываются в документы MS Office, и о возможностях их использования для идентификации пользователя или происхождения документа я уже писал. Здесь речь пойдет о так называемых GUID-ах.
Если просмотреть документ MS Word каким-либо просмотрщиком или шестнадцатеричным редактором, показывающим "сырое" содержание документа, можно примерно в последней трети обнаружить интересное поле _PID_GUID или поле _PID_HLINKS, за которыми следует строка в UNICODE {4A17E2C5-В25B-11D3-A94A-0008C7C11B36}. Часть непечатных символов я убрал.
Аббревиатура GUID дословно расшифровывается как Global Unique Identifier (Глобальный Уникальный Идентификатор). Концепция GUID была заимствована Microsoft у компании Open Software Foundation для именования статических типов OLE, позднее COM-объектов. Необходимо отметить, что у Open Software Foundation эти идентификаторы назывались UUID — Universally Unique Identifier ("Вселенский" Уникальный Идентификатор).
Для удобства MS Word документ хранит символьное представление GUID-идентификатора (представление для системного реестра). GUID представляет собой уникальное псевдослучайное 128-битное значение, которое теоретически, да и практически тоже, не должно повториться. Алгоритм генерации GUID-значения использует случайные показания внутреннего таймера, параметры BIOS и уникальный номер сетевой карты, если в конфигурации компьютера присутствует сетевая карта. Последняя, пятая группа в символьном представлении GUID создается на основе MAC-адреса (идентификатора сетевой карты). Если в системе присутствует сетевой адаптер, то последняя группа всегда будет одинаковой. С Visual Studio поставляются утилиты: для Windows — guidgen.exe или DOS-аналог — uuidgen.exe, позволяющие создавать новые GUID. Для программных вызовов существует CoCreateGuid, являющийся оболочкой для вызова UuidCreate.
48-битные номера Ethernet-адаптеров или MAC-адреса также уникальны. Увидеть MAC-адрес можно, запустив утилиту winipcfg.exe, находящуюся в каталоге установки Windows. Чаще всего это или C:\WINDOWS, или C:\WINNT. Если в системе отсутствует сетевой адаптер, но есть Dialup-соединение, то MAC-адрес показывается как 44-45-53-54-00-00. Правда, пятая группа символов во вновь создаваемом GUID-идентификаторе в этом случае случайная.
На скандал отреагировал открытым письмом Юзуф Мехди, директор по маркетингу Windows. Вот отрывки этого письма в дословном переводе:
"Microsoft собирала в прошлом данные для идентификации аппаратного обеспечения как часть нашей инициативы по поддержке продуктов. Мы пришли к выводу, что данные не нужны для обслуживания наших нужд по поддержке потребителей.
...Microsoft не использует эту информацию по аппаратному обеспечению для каких-либо целей маркетинга или слежения каким-либо способом за пользователями.
...Уникальные идентификационные номера, вставляемые в документы Office 97, были разработаны для помощи третьим сторонам в построении инструментария для работы или нахождения по ссылке (выделено мной) документов Office 97. Уникальный идентификатор, создаваемый для Office 97, содержит информацию, которая частично извлекается из сетевой карты, а не личной информации пользователя, и таким образом невозможно достоверно определить автора документа.
Следующие два ресурса будут доступны для свободного скачивания в течение двух недель:
– Office 97 Unique Identifier Patch
Эта заплатка, однажды установленная, предотвратит вставку уникальных номеров во все новые документы Office 97.
– Office 97 Unique Identifier Removal Tool
Эта утилита может быть использована для удаления уникального идентификатора из созданных раннее документов Office 97. Потребители, озабоченные присутствием уникальных идентификационных номеров, могут применять утилиту для любого документа Office 97.
В будущем релизе Office 2000 не будет возможности вставки уникальных идентификаторов в документы".
Последнее обещание сдержано не было. И соответствующих заплаток для следующих версий Office (2000/XP) я также не обнаружил на сайте Microsoft.
Для решения проблемы с уникальными идентификаторами осталось два пути: или вернуться к использованию MS Office 95 (7 версия), который эти метки не вставляет, или к MS Office 97.

Безопасное удаление GUID из документов MS Office 97
Благодаря международному скандалу, инициированному Phar Lap Software, для MS Office 97 проблему с "метками дьявола" можно устранить. В самом деле, есть две возможности для этого: или установить патч для MS Office 97 — и уникальные идентификаторы не будут вставляться во вновь создаваемые документы, или постоянно применять для удаления Microsoft Office 97 Unique Identifier Removal Tool.
На сайте Microsoft я нашел приложение с оригинальным названием Office 97 Unique Identifier Patch размером всего 90 Кб. Но перед применением этой заплатки потребуется последовательно поставить еще два сервисных пакета для всего Office 97 в целом: Service Pack 1 и 2. Без них Office 97 Unique Identifier Patch устанавливаться отказывается. К сожалению. На сайте Microsoft предлагаются сервисные обновления только для английского релиза размером 8.89 Мб и 24.165 Мб соответственно. Не стоит сразу расстраиваться по поводу больших размеров файлов с обновлениями. Скорее всего, их не придется долго и нудно скачивать. Большинство моих соотечественников пользуются MS Office-ом русской версии, для которой эти обновления не подходят. Лично мне самому пришлось поискать эти два сервисных обновления для MS Office 97 (rus) на компакт-дисках. Размеры их 8.141 Мб для Service Pack 1 и 22.986 Мб для Service Pack 2.
По поводу утилиты, удаляющей уникальные идентификаторы, с названием Microsoft Office 97 Unique Identifier Removal Tool хотелось отметить несколько моментов. Размер инсталляционного файла всего 144 Кб. Интерфейс в традициях раннего Microsoft, точнее его отсутствие как такового — всего один диалог для выбора папки, где будут удалены GUID из всех файлов Office 97. И все.

Реальная история
Действие происходило летом 1998 года на сайте "Русской мафии в сети". "Пострадав" в очередной раз в словесной перепалке с питерскими девицами, я вынужден был, выражаясь окололитературным языком, "проявить себя". По незнанию, мне был переслан малоинформативный MS Word документ, созданный на финской связной компании, находившейся в Петербурге. У меня не было необходимости проникать в сервера этой компании. Все было гораздо проще. После внимательного изучения содержимого этого документа у меня было достаточно информации для "незапланированного всплеска эмоций" у сотрудников этой компании...

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

Valient Newman www.geocities.com/werebad/



Компьютерная газета. Статья была опубликована в номере 31 за 2002 год в рубрике soft :: текст

©1997-2024 Компьютерная газета