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

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

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


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

2dd0b40d3e5344a2ab97374625315d78.png

Проверяем:

f41b7c81da9b4ac98814d4ec2b675c94.png

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

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

d6b21cea087342adbc16fc1ed66b194d.png

Secret Net


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

cb6d3d54581b4b5786eb78e7ce5564b9.png

Проверяем:

bab83152a76c4e2cb98eec9f36de5d24.png

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

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

6dbfa3f3771c4bb2b8f1d358aff19b52.png

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

© Geektimes