На российском рынке информационной безопасности существует целый класс продуктов, разработанных для выполнения требований регуляторов (ФСТЭК, ФСБ, Роскомнадзор и прочие). Эти продукты называются «СЗИ от НСД», что означает — средства защиты информации от несанкционированного доступа. Основные функции таких продуктов — реализация независимо от операционной системы аутентификации пользователей, правил разграничения доступа к файлам и директориям (дискреционно — как в операционных системах, и мандатно — для гостайны, где есть разные уровни информации), контроль целостности, управление подключением устройств и всякие другие функции. Про подобные продукты на Хабре есть короткая статья, правда ей уже больше пяти лет, но в целом мало что изменилось. Все эти продукты, по большей части, нужны для комплаинса в чистом виде, но, тем не менее, с помощью этих средств реализуется большинство политик безопасности в госорганах, госкомпаниях, оборонке и т.д.

Логично предположить, что эти продукты безопасны и правильно выполняют свои функции, но я выяснил, что это совсем не так. В данной статье будем рассматривать исключительно СЗИ от НСД под операционную систему Windows, так как не смотря на тренд импортозамещения, большинство госкомпьтеров всё равно работает под ней. В Windows есть множество особенностей и тонкостей, которые могут сыграть злую шутку с разработчиками средств защиты. Не будем сейчас говорить обо всех нюансах, разберем только один, который позволяет обойти политики разграничения доступа к файлам.

Не секрет, что основная файловая система, используемая в Windows, это NTFS. В NTFS есть такая штука, как атрибуты, доступ к которым можно получить путем добавления двойного двоеточия после имени файла. Атрибутов у файлов много, но нас интересует один — $DATA, он содержит содержимое файла. Обращение к file.txt и file.txt::$DATA тождественно, но механизм работы внутри операционной системы разный. Я решил посмотреть, знают ли об этой особенности разработчики СЗИ. Практическая часть проста — создавался файл test.txt с содержанием «Hello, world!», в интерфейсе СЗИ выставлялись права доступа, запрещающие чтение файла для всех пользователей, затем проверялось чтение файла по имени и по атрибуту $DATA, под непривилегированным пользователем.

Я хотел посмотреть на максимально возможном числе СЗИ, но оказалось, что свободно получить демо-версию можно только для двух продуктов — Dallas Lock и Secret Net. В открытом доступе есть еще Aura, но она не обновлялась с 2011 года и вряд ли ей кто-то еще пользуется. Все остальные (Страж, Блокхост, Diamond) получить в демо не удалось — в открытом доступе их нет, на запросы производитель либо не отвечает, либо требует гарантийные письма, либо вместо демо-версии предлагают прослушать вебинар.

Dallas Lock


Устанавливаем разрешения:



Проверяем:



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

Уязвимая версия:



Secret Net


Устанавливаем разрешения:



Проверяем:



В Secret Net данный фокус не работает, похоже, их разработчики разбираются в NTFS (хотя и не очень понимают в безопасности драйверов).

Проверял на этой версии, возможно, более ранние всё-таки уязвимы:



Я буду рад если вы протестируете доступные вам СЗИ и опубликуете результат в комментариях. И будьте осторожны с «сертифицированными средствами защиты», не стоит слепо доверять сертификатам и лицензиям.
Поделиться с друзьями
-->

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


  1. TargetSan
    03.06.2016 15:39

    А вы авторам Dallas Lock сообщили о баге?


  1. Fukurou
    03.06.2016 18:26
    +1

    Мне приходилось работь с СЗИ от НСД в контексте защиты гостайны. Могу сказать следующее:
    Помимо разграничения прав, должно также быть ограничение по грифу секретности (как грифов пользователей, так и грифов папок и документов) и ограничения на запуск программ (разрешения/запрет на запуск, гриф программ).
    Проблема в том, что рассматривать только один нюанс в данном случае не совсем корректно, поскольку на живой системе настраивается все вместе. При обработке документов командная строка не нужна. Если СЗИ настраивалась параноиком, запуск cmd будет запрещен. Или же будет разрешен, но только в несекретном режиме. А программа с грифом несекретно не должна получать доступ к документам с грифом выше.

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


    1. DartRaven
      04.06.2016 23:27
      +2

      К сожалению, ограничения на запуск программ тут не помогут. Тот же wordpad, к примеру, вполне нормально откроет документ вот так: «wordpad d:\tmp\test.txt::$DATA».


      1. lostpassword
        05.06.2016 13:12

        Ну с политикой ограничения программ возможно — а вот с мандатным разграничением доступа действительно интересно.
        Если задать файлу гриф «конфиденциально», а пользователю доступ к конфиденциальной информации не давать — какой будет результат?
        Правда, Secret Net и так прошла проверку, а с Dallas Lock я не работал — не знаю, реализовано ли там в принципе мандатное разграничение доступа.


    1. Ambroyz
      06.06.2016 09:02

      Перефразируя длинный комментарий: дискреционный контроль не сработал, попробуйте мандатный. Ответ с 99% вероятностью будет: аналогично не работает. Дело в том, что оба контроля сидят в описателе безопасности, который в данной системе подвязан почему-то к имени, а не к объекту.

      Удивительно, что автор статьи нашел хоть какие-то продукты такого рода в общем доступе, да еще официальное демо. Это может объяснять архитектурные просчеты.


      1. lostpassword
        06.06.2016 11:36

        Должен сказать, что несколько лет назад (году так в 2011) я общался с «Кодом безопасности» (производитель СЗИ «Secret Net»), и впечатления у меня остались самые положительные.
        Я как раз запрашивал у них комплект демо-лицензий — и этот вопрос решили очень быстро, постоянно помогали, во многом пошли навстречу.
        Так что конкретно к «Коду безопасности» вопросов вообще быть не должно, ИМХО.)


  1. msuhanov
    06.06.2016 23:25

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


  1. Loreweil
    08.06.2016 05:46
    +1

    С СЗИ от НСД «Страж NT 3.0» был короткий опыт общения. Это чудовище прежде чем загрузить систему от 3 до 10 раз подряд стабильно показывает BSOD. Это даже есть в документации на софтину, правда там это называется «в редких случаях».

    Представьте как был «доволен» заказчик. Хорошо, что использование именно этого средства защиты было прихотью именно заказчика.