Сергей Ильин

Сокрытие документа в заведомо непроверяемых файлах

В этой теме 54 сообщений

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

Как это делается подробно описано, например, здесь

http://www.rusdoc.ru/articles/kak_sprjatat...azhenija/15806/

Таким образом, DLP система на шлюзе, если такая в компании есть, может и не заметить утечку. Кроме того, вручную такое обнаружить будет почти нереально, даже если буду читаться все письма. Конечно при условии, что к маленькой картинке не прицепили пару десятков мегабайт доков :)

Хочется обсудить, какие DLP продукты будут детектить такой трюк, а какие нет?

И какие вообще методы есть для борьбы с этим?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

А если серьезно, то только текст разрешать передавать - т.к вшить документы можно в любой файл таким или подобным образом. Даже с текстом можно что-то придумать...

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Сергей Ильин, а сами что думаете по этому поводу? Дайте старт обсуждению!

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Хочется обсудить, какие DLP продукты будут детектить такой трюк, а какие нет?

И какие вообще методы есть для борьбы с этим?

Любой нормально реализованный продукт на основе меток или грифов должен такое ловить.

Как пример могу привести SecrecyKeeper, который у нас используется, он это делает так:

1. на файл ставится степень секретности;

2. после того, как пользователь открывает файл, программа которой открыли файл становится "меченой", на нее накладываются ограничения по доступу к каналам передачи (сеть, подключаемые устройства, печать), в соответствии с уровнями допуска пользователя, степенью секретности информации и уровнями безопасности рабочей станции;

3. при сохранении картинки в которую добавили документ, сохраненный файл будет иметь такой же гриф какой был у документа.

4. вместо файла может быть сетевой ресурс, например сетевая папка, веб-портал, БД или другая клиент-серверная система.

Похожим образом должны работать SecretNet и СтражNT. Но их я не проверял.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Можете пояснить более подробно? Я приведу ниже последовательность действий, а Вы, если не сложно расскажете на каких этапах ставятся метки и как отслеживаются действия.

1. На документ Х.doc выставлена какая-то секретность

2. Происходит его копирование в Х2.doc

3. Происходит его архивация с паролем в файл Х2.rar (иными словами: этот файл открывает архиватор, считывает оттуда данные и в это же время пишет какие-то непонятные данные в некий файл)

4. Происходит переименовывание архива в Х3.rar

5. Происходит соединение этого архива с картинкой как показано по ссылке выше.

Это был классический путь. Теперь немного изменим пятый пункт (сделаем два его варианта - новые виды пятого пункта см.ниже):

5.1. Данный архив открывается через hex-редактор и копируется (ctrl+c) как набор циферок и затем эти циферки пишутся в текстовый файл (ctrl+v) и уже этот файл соединяется как описано выше с картинкой)

5.2. Доходим до массива циферок как в пункте 5.1, но не копируем массив, а делаем его скриншот средствами системы и затем получившееся изображение джойним к картинке.

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

2. Процесс копирования происходит следующим образом:

2.1. Программа (word, explorer, copy и т.п.) открывает и читает файл Х.doc - SecrecyKeeper устанавливает для процесса copy.exe уровень равный степени секретности Х.doc;

2.2. copy.exe создает и пишет данные в Х2.doc - SecrecyKeeper устанавливает для Х2.doc секретность равную уровню процесса copy.exe;

3. Архивация полностью аналогична копированию. сами данные не анализируются, степень секретности технически к содержимому не привязана, она устанавливается для контейнера;

4. Происходит переименовывание архива в Х3.rar - если переименование внутри тома (дискового), то это тот же файл, просто с другим именем, если перенос - то это копирование + переименование внутри тома;

5. Происходит соединение этого архива с картинкой как показано по ссылке выше.

все в точности как в п2 - copy открывает секретный файл, после этого любой созданный им файл станет секретным, что бы туда не писалось;

5.1. Данный архив открывается через hex-редактор и копируется (ctrl+c) как набор циферок и затем эти циферки пишутся в текстовый файл (ctrl+v) и уже этот файл соединяется как описано выше с картинкой)

5.1.1. hex-редактору ставится уровень секретности;

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

5.1.3. для текстового редактора ставится уровень секретности, т.к. он прочитал данные из меченого буфера обмена;

долее все как в п2

5.2. Доходим до массива циферок как в пункте 5.1, но не копируем массив, а делаем его скриншот средствами системы и затем получившееся изображение джойним к картинке.

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

Если что-то описал не внятно, спрашивайте, постараюсь уточнить.

  • Upvote 10

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Если в пользовательской сессии есть хоть один процесс, получивший доступ к секретным данным (а раз вы открыли секретный файл, то так и есть)...

Иными словами - если пользователь открывал секретный документ чем-либо, то на все сохраняемые файлы в этом сеансе ставится такая-же метка секретности, как и на файл?

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

это какой процесс делал туда запись-то? ;)

Программа (word, explorer, copy и т.п.) открывает и читает файл Х.doc

что такое copy? мы делаем все через проводник. какому процессу (может системной библиотеке?))) ставится индекс секретности?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Если в пользовательской сессии есть хоть один процесс, получивший доступ к секретным данным (а раз вы открыли секретный файл, то так и есть)...

Иными словами - если пользователь открывал секретный документ чем-либо, то на все сохраняемые файлы в этом сеансе ставится такая-же метка секретности, как и на файл?

На все сохраняемые ЭТИМ ПРОЦЕССОМ файлы. Плюс отслеживается межпроцессорное взаимодействие - через буфер обмена например.

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

это какой процесс делал туда запись-то? wink.gif

Тот который открыл секретный файл. Например, вы открыли секретный файл вордом, скопировали инфу в буфер обмена. Буфер обмена отмечается как содержащий секреты. Вы открыли не секретный файл другим экземпляром ворда, скопировали инфу в буфер обмена. Отметка секретности с буфера снимается. В первом ворде вы работаете с секретным файлом, во втором с общедоступным.

Программа (word, explorer, copy и т.п.) открывает и читает файл Х.doc

что такое copy? мы делаем все через проводник. какому процессу (может системной библиотеке?))) ставится индекс секретности?

copy утилита командной строки виндовс из приведенного в первом посте примера.

Будете копировать проводником - метка будет установлена на проводник. На конкретный экземпляр процесса, не на екзешник или библиотеку. Различие идет по процесс ид. Через GUI SecrecyKeeper'а или с консоли управления можно посмотреть какие процессы обращались к секретной информации.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Любой нормально реализованный продукт на основе меток или грифов должен такое ловить.

Большая часть классических DLP-решений (Symantec, Websnese, Trend Micro) распознают форматы документов, уходящих в потоке при помощи лицензируемой ими технологии KeyView (разработчик - Autonomy). Поэтому, картинку они определят как картинку - по сигнатуре. Будет ли происходить дальнейший анализ и поиск чего-то, дописанного в конце jpeg-а, - неизвестно. Скорее - нет.

Попытка спрятать документ перед отправкой - это ведь признак злонамеренности, а DLP-решения всё-таки больше нацелены на защиту от халатных действий сотрудников. У меня, например, на рабочем месте нельзя выполнять операции с командной строкой (отключено, прав администратора нет, hex-редактор установить невозможно), просто так я не могу обмануть систему. А это - стандартное требование политик безопасности. В идеале, с попытками обхода системы лучше бороться превентивно, - не допускать возможности их технической реализации.

А если интересно померить силами DLP и инсайдера, пытающегося спрятать и отправить секретики, вот еще пара продуктов-кандидатов (агентские DLP решения), которые способны противостоять некоторым сценариям: McAfee Host DLP и Verdasys Digital Guardian. Оба решения способны отслеживать операции на уровне рабочей станции с документами, помеченными тегами и присваивать теги производным документам.

Поделиться сообщением


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

Т.е. от халатности одно средство, от злонамеренности еще одно ?

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

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
изображение джойним к картинке

Что это значит и каким образом?

Сработает ли система, если к примеру текстовый документ doc заархивировать, потом сменить архивное расширение на jpg/gif и в таком миллипиперном виде сбагрить его куда-то? Или наоборот, или в другой последовательности?

Как пример могу привести SecrecyKeeper

Наверное этот - SecrecyKeeper.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
На все сохраняемые ЭТИМ ПРОЦЕССОМ файлы.

А кнопка принт_скрин куда относится? Как будет определено, что нужно детектить секретным то, что будет сохраняться в пейнте из буфера после снятия скрина?

Буфер обмена отмечается как содержащий секреты. Вы открыли не секретный файл другим экземпляром ворда, скопировали инфу в буфер обмена. Отметка секретности с буфера снимается. В первом ворде вы работаете с секретным файлом, во втором с общедоступным.

Тогда попробуем так: открываем секретный документ вордом и копируем оттуда текст в буфер обмена. Закрываем сей документ. Затем открываем общедоступный и вставляем текст туда. Сохраняем его. Этот документ станет тоже секретным?

Еще несколько вопросов к Вам:

Имеем секретный файл. Копируем его в текущую директорию с расширением bak. Затем удаляем его (через проводник). После этого прибиваем процесс проводника и снова его стартим. Затем достаем из корзины документ в какую-то директорию.

Как метки будут в этом случае расставляться?

Сохраняются ли метки секретности при перезагрузке?

Как все это работает? Перехваты в юзермоде?

Сработает или система, если к примеру текстовый документ doc заархивировать, потом сменить архивное расширение на jpg/gif и в таком миллипиперном виде сбагрить его куда-то?

Посмотрите на пункты выше по переименованию - ведь смена расширения это ничто иное как переименование документа.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Сработает или система, если к примеру текстовый документ doc заархивировать, потом сменить архивное расширение на jpg/gif и в таком миллипиперном виде сбагрить его куда-то? Или наоборот или в другой последовательности?

Сработает. Смотрите п2 моего ответа priv8v. Все абсолютно тоже самое, просто другие названия программ. И от того, что эти действия повторять несколько раз меняя последовательность ничего не изменится.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
А кнопка принт_скрин куда относится? Как будет определено, что нужно детектить секретным то, что будет сохраняться в пейнте из буфера после снятия скрина?

Не знаю куда относится кнопка принт-скрин, я ведь не разработчик :) Возможно к эксплореру.

Но сначала буфер, а потом пейнт будут помечены SecrecyKeeper'ом как секретные. И соответственно при попытке сохранить буфер ы файл он станет секретным.

Тогда попробуем так: открываем секретный документ вордом и копируем оттуда текст в буфер обмена.

буфер метится как секретный

Закрываем сей документ.

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

Затем открываем общедоступный и вставляем текст туда. Сохраняем его. Этот документ станет тоже секретным?

после выполнения операции вставки новый процесс ворда становится меченым. это можно отследить через gui secrecykeeper'а

там отображаются уровни всех процессов и можно посмотреть, где появилась метка

Еще несколько вопросов к Вам:

Имеем секретный файл. Копируем его в текущую директорию с расширением bak. Затем удаляем его (через проводник). После этого прибиваем процесс проводника и снова его стартим. Затем достаем из корзины документ в какую-то директорию.

Как метки будут в этом случае расставляться?

Агент вырубает корзину, если ее включить руками, то при удалении секретного файла вся корзина становится секретной и ядро SecrecyKeeper'а и windows начинают пугать пользователя не понятными сообщениями. Но секретность сохраняется.

Сохраняются ли метки секретности при перезагрузке?

Как все это работает? Перехваты в юзермоде?

При перезагрузке метки конечно сохраняются. Насколько я понимаю, SecrecyKeeper хранит гриф в файловой системе.

Как это работает я Вам точно рассказать не смогу, это к авторам надо :)

Могу только сказать, что там несколько драйверов - файловый, сетевой и еще вроде какие-то, соответственно перехваты на уровне ядра.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Кстати, мы делали еще такие проверки.

1. Секретный файл приатачить к письму и послать его самому себе.

Если уровень допуска пользователя к сети ниже уровня секретности файла SecrecyKeeper письмо отослать не дает

2. Секретный файл приатачить к письму и сохранить в черновиках.

Сохранить в черновиках письмо SecrecyKeeper не дает, правда Outlook ругается, хотя не падает. Но пользователя не понятная ругань может напрячь.

В SecrecyKeeper 3.2 можно пометить Outlook как программу, которая не может получать доступ к данным, если их уровень секретности ниже, чем уровень допуска пользователя к сети. То же можно сделать например с аськой и скайпом. Теперь кроме сообщения от SecrecyKeeper ни какой ругани больше нет.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Кстати, мы делали еще такие проверки.

Защищаются ли области памяти, где находятся секретные данные?

Помечается ли своп, если данные вытесняются из памяти?

Помечается ли дамп памяти, если сбой произошел во время работы с секретными данными?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
...

При перезагрузке метки конечно сохраняются. Насколько я понимаю, SecrecyKeeper хранит гриф в файловой системе.

Как это работает я Вам точно рассказать не смогу, это к авторам надо :)

Могу только сказать, что там несколько драйверов - файловый, сетевой и еще вроде какие-то, соответственно перехваты на уровне ядра.

Был знаком с одним из аналогичных продуктов отечественного производства - так тот хранил свои метки в файловых Security-дескрипторах NTFS.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

andrey golubev, спасибо за ответы, но мне не все ясно и поэтому еще несколько вопросов:

1). На каком основании то, что помещает в буфер обмена принт_скрин становится секретным? Т.е независимо от того, что мы будем скринить б.о будет секретным?

2). Допустим, открыли мы секретный документ вордом. Значит ворд станет секретным. И все что он создает или модифицирует тоже будет секретным? (а ведь он создает/редактирует кучу файлов, временных файлов, реестр и т.д - т.е все это тоже будет секретным?)

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
andrey golubev, спасибо за ответы, но мне не все ясно и поэтому еще несколько вопросов:

1). На каком основании то, что помещает в буфер обмена принт_скрин становится секретным? Т.е независимо от того, что мы будем скринить б.о будет секретным?

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

andrey golubev, спасибо за ответы, но мне не все ясно и поэтому еще несколько вопросов:

2). Допустим, открыли мы секретный документ вордом. Значит ворд станет секретным. И все что он создает или модифицирует тоже будет секретным? (а ведь он создает/редактирует кучу файлов, временных файлов, реестр и т.д - т.е все это тоже будет секретным?)

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

andrey golubev, спасибо за ответы, но мне не все ясно и поэтому еще несколько вопросов:

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

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

  • Upvote 5

Поделиться сообщением


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

1). Детектируются ли запись в реестр? (туда тоже можно записать кучу инфы из секретного файла)

2). Еще такой трюк: наша программа открывает секретный файл и делает следующее: считывает оттуда всю инфу, затем создает bat-файл, который создаст другой файл и запишет в него секретную инфу и запускает этот батник. После чего удаляет батник. Понятно, что бат файл будет секретным (т.к он создан секретным приложением), а что будет с созданным файлом (тем, который создал батник)?

3). Какое межпроцессовое взаимодействие палится? Создание удаленных потоков? Мьютексов может ? :) А посылка сообщений GUI детектируется? Ведь можно через посылку сообщений отправить всю секретную информацию ;)

4). Самомодификация как будет показываться в SecrecyKeeper? Ведь считавшее приложение вполне может с некоторыми танцами с бубном зашить в себя (в файл) секретную инфу?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
1). Детектируются ли запись в реестр? (туда тоже можно записать кучу инфы из секретного файла)

3). Какое межпроцессовое взаимодействие палится? Создание удаленных потоков? Мьютексов может ? :) А посылка сообщений GUI детектируется? Ведь можно через посылку сообщений отправить всю секретную информацию ;)

Мы тестировали SecrecyKeeper в рамках своей модели нарушителя. Все Вами перечисленное закрывается с помощью политики ограничения на запуск программ.

2). Еще такой трюк: наша программа открывает секретный файл и делает следующее: считывает оттуда всю инфу, затем создает bat-файл, который создаст другой файл и запишет в него секретную инфу и запускает этот батник. После чего удаляет батник. Понятно, что бат файл будет секретным (т.к он создан секретным приложением), а что будет с созданным файлом (тем, который создал батник)?

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

4). Самомодификация как будет показываться в SecrecyKeeper? Ведь считавшее приложение вполне может с некоторыми танцами с бубном зашить в себя (в файл) секретную инфу?

Аналогично пункту 2 этого поста.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Мы тестировали SecrecyKeeper в рамках своей модели нарушителя. Все Вами перечисленное закрывается с помощью политики ограничения на запуск программ.

Не :)

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

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Не :)

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

Сферический конь в вакууме ?:)

Тогда можно не мучится, снять диск и утащить его в темный угол. Или если SecrecyKeeper запрещает держать секреты локально, подключить свой ноут к сети. Мне кажется средства защиты нельзя рассматривать отдельно от среды в которой они применяются. Вернее можно, но только в науно-познавательных целях :)

Кстати разработчика SecrecyKeeper принципиально не дублируют в нем функционал ОС. Например в одной из ранних версий там была своя реализация SRP, а потом ее оттуда выкинули, сказали, что виндовая начиная с ХР вполне достаточна.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Тогда можно не мучится, снять диск и утащить его в темный угол.

А у вас возможна такая ситуация? Как в политике безопасности учитывается такая возможность?

И если не возражаете ещё несколько вопросов:

На всех ПК у пользователей отобраны права не только установки программ, но и запуска всех кроме необходимых(т.е. есть белые списки) и биос запоролен?

Какая ситуация с ноутбуками?

Какие права на доступ к секретным документам у сисадминов?

Если необходимо убрать секретность документа - то как это происходит?

Какова реакция системы на нарушение правил - просто запрет операции или возможна блокировка ПК?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

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

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!


Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.


Войти с помощью Facebook Войти Войти с помощью Twitter
Anti-Malware.ru Вконтакте   Anti-Malware.ru в Facebook   Anti-Malware.ru в Twitter   Anti-Malware.ru в LinkedIn   RSS