Как узнать кто в сети открыл ваш документ

В предыдущей статье мы рассказали как Canarytokens позволяет узнать, что кто-то украл документы, и вовремя принять меры. Идея отличная, к тому же можно выбрать метод определения того, что документ был открыт. Но реализовано это не лучшим образом, поэтому рассмотрим новый метод трекинга.

В случае с PDF арсенал Canarytokens предлагает лишь отправку запроса стандартным способом (FormCalc). При открытии такого документа в Adobe Reader всплывает окошко, которое сообщает, что документ пытается обратиться к сайту Canarytokens. Так дело не пойдет.

Отправка оповещения из офисных документов устроена тоже совершенно типично — через картинку с внешнего сайта. И если в старых версиях Office это работает, то начиная с Office 2010 (или даже 2007) документы, загруженные из интернета, открываются в специальном режиме Protected View. Большая часть функций, включая подгрузку внешних картинок и стилей, не работает, пока пользователь это не разрешит. Не круто.

Новый метод трекинга основан на двух фичах. Первая встроена в Office, вторая — свойство самой Windows.

«Офис» с давних времен поддерживает возможность подписать документ, что позволяет защитить его от последующих исправлений. Подпись создается с помощью обычного личного сертификата x509 (считай тот же, что и у HTTPS). При этом подпись документа проверяется сразу же при его открытии, то есть Protected View не останавливает этот процесс.

Второй момент заключается в том, что сертификат проверяется стандартным виндовым CryptoAPI. В самих сертификатах масса мест, где можно указать внешний URL. В первую очередь — проверка отзыва сертификата (CRL, OCSP) и путь до Intermediate или Root CA («Поставщик центра сертификации»). Таким образом, при проверке подписи «Офису» требуется проверить сертификат, а потому ОС проверяет всю цепочку сертификатов (от конечного до корневого), проходя по всем URL.

Добыть валидный конечный сертификат с произвольными значениями CRL и OCSP почти невозможно (эти поля контролируются CA), так что мы возлагаем надежду только на местоположение сертификата Intermediate CA — при проверке валидности ОС должна сходить и скачать его. Выходит, нам нужно создать конечный сертификат и подписать им любой офисный документ.

Создать сертификат несложно: достаточно сделать специальный конфиг и пару раз выполнить команду openssl. Приводить тут команды не буду, можешь взять их с гитхаба. Подписать документ тоже не великая проблема — заходишь во вкладку Insert, далее — Signature Line, вводим произвольные значения, OK, двойной клик на подпись и выбираешь личный сертификат.

К дополнительным плюсам можно отнести то, что метод будет аналогично работать и для любого другого ПО, которое проверяет сертификаты с помощью виндового CryptoAPI. К тому же запрос пойдет автоматически и через системную прокси. Эту фичу можно использовать и для проведения SSRF-атак (хотя тесты показали, что мы ограничены лишь протоколом HTTP, другие схемы не поддерживаются).

В определенных ситуациях метод работает и с LibreOffice, но не годится для Acrobat Reader.

Click to rate this post!
[Total: 4 Average: 4.8]

Специалист в области кибер-безопасности. Работал в ведущих компаниях занимающихся защитой и аналитикой компьютерных угроз. Цель данного блога - простым языком рассказать о сложных моментах защиты IT инфраструктур и сетей.

1 comments On Как узнать кто в сети открыл ваш документ

  • Если информация доверяется посторонним лицам, то должен быть страховщик который обезопасит безопасность вашей информации.
    В случае утери контроля над таковой страховка должна покрывать все издержки на 200%. Страхование личных данных должно быть повсеместно, и каждая жертва должна получить компенсацию на все 200%

Leave a reply:

Your email address will not be published.