Обход правил разграничения доступа в средствах защиты от НСД

в 10:22, , рубрики: compliance, dallas lock, secret net, информационная безопасность, комплаинс, средства защиты информации, уязвимости, ФСТЭК, метки: , ,

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

Логично предположить, что эти продукты безопасны и правильно выполняют свои функции, но я выяснил, что это совсем не так. В данной статье будем рассматривать исключительно СЗИ от НСД под операционную систему 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

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

Обход правил разграничения доступа в средствах защиты от НСД - 1

Проверяем:

Обход правил разграничения доступа в средствах защиты от НСД - 2

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

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

Обход правил разграничения доступа в средствах защиты от НСД - 3

Secret Net

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

Обход правил разграничения доступа в средствах защиты от НСД - 4

Проверяем:

Обход правил разграничения доступа в средствах защиты от НСД - 5

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

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

Обход правил разграничения доступа в средствах защиты от НСД - 6

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

Автор: Kibsez

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js