DLP-система DeviceLock 8.2 — дырявый штакетник на страже вашей безопасности

В октябре 2017 года довелось побывать на рекламном семинаре DLP-системы DeviceLock, где помимо основного функционала защиты от утечек типа закрытия USB-портов, контекстного анализа почты и буфера обмена рекламировалась защита от администратора. Модель простая и красивая — в маленькую фирму приходит установщик, ставит комплекс программ, паролит БИОС, создает администраторскую учетку DeviceLock, а местному админу оставляет только права на управление собственно Виндой и остальным софтом. Даже в случае умысла этот админ ничего украсть не сможет. Но это все теория…

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

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

На все вопросы о защите наверняка имеющихся в составе продукта драйверов представитель фирмы-разработчика Смарт Лайн уверенно заявлял, что «все на том же уровне».

Через день решил продолжить изыскания, скачал пробную версию. Сразу же удивил размерчик дистрибутива почти в 2 Гб! Привык, что системное ПО, к которому принято относить средства защиты информации (СЗИ), обычно имеет гораздо более компактный размер.

После установки удивился 2й раз — размер вышеупомянутого ехе-шника тоже весьма немаленький — 13Мб. Сразу подумалось, что при таком объеме есть за что зацепиться. Попробовал подменить модуль с помощью отложенной записи — закрыто. Покопался в каталогах программы, а там одних драйверов аж 11 штук! Потыкал в разрешения — не закрыты для изменения! Ну ладно, всем запрет, перегружаемся!

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

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

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

Причем на рынке полно примеров грамотной реализации защиты от отключения, например отечественные антивирусные средства, где самозащиту просто так не объедешь. Насколько мне известно, они не поленились пройти сертификацию ФСТЭК.

Проведя несколько бесед с сотрудниками Смарт Лайн, несколько подобных мест, о которых они даже не слышали, было найдено. Один из примеров — механизм АррInitDll.

Пусть он не самый глубокий, зато во многих случаях позволяет обойтись без влезания в ядро ОС и не влиять на ее стабильность. Драйвера nVidia во всю используют данный механизм для подстройки видеодаптера под конкретную игру.

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

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

Реально защитить она может разве что реально большие данные от непривилегированного пользователя, т.к. администратор вполне способен полностью деактивировать защиту, а для необъемных секретов и младший менеджер по клинингу догадается незаметно сфотографировать экран, а то и запомнить адресок или номер кредитки, заглянув в экран через плечо коллеги.
Причем все это справедливо только в случае невозможности физического доступа сотрудников к внутренностям ПК или хотя бы к БИОС для активации загрузки с внешних носителей. Тогда может не помочь даже БитЛокер, который вряд ли применяется в фирмах, которые только задумались о защите информации.

Вывод, как это ни банально звучит, в комплексном подходе к ИБ, включая не только программно/аппаратные решения, но и организационно-технические меры для исключения фото/видеосъемки и недопуска на объект посторонних «мальчиков с феноменальной памятью». Полагаться на чудо-продукт DL 8.2, рекламируемый как одношаговое решение большинства проблем с безопасностью предприятия нельзя ни в коем случае.
Поделиться публикацией

Комментарии 37

    0
    Разработчикам сообщили о такой проблеме?
      +7
      Да, ессно.
      Я и раньше (лет 7 назад), переругивался с ними на какой-то конференции по поводу архитектуры, но тогда все свели к шутке.
      А тут море понтов, не люблю подобное.
      +2
      Эти две проблемы уже исправлены и билды вот-вот будут выложены в паблик. А аффтар данной заметки получил за эти баги деньги по программе bug bounty. Правда мы не оговаривали, что он выпустит статью до выхода апдейта, но оставим это на его совести…
        +13
        1. Вопрос разглашения не обсуждался, потому 16.11.2017 на оба известных мне ящика был отправлен соответствующий запрос. Ответа ожидал неделю.
        2. Судя по архитектуре продукта патч будет в виде нескольких саморезов, закрученных в расшатанные мной штакетины.
        Собсно, достаточно ACL-ы на нужные файлы поправить.
        Но общую защищенность это вряд-ли повысит, просто придется копать чуток по глубже.
        Будет время, копну и эту версию, посмотрю, куда смотрит передовая техническая мысль.
        0
        На фоне беспарольного рутового доступа на Эпплы — вполне себе надёжная система.
          +4
          У яблока была только пара занятных дыр, в общем и целом это вполне надёжная система. Тут же походу можно тыкать в любом направлении, и там найдётся дыра.
            +5
            Одно дело случайно облажались и совсем другое заложили в архитектуру.
            +2
            Так под админом же…
            DL имеет весь узкое применение ограниченное его «особенностями», это надо понимать когда выстраиваешь безопасность.
            А насчёт пафоса, в энтерпрайз сегменте крутятся большие деньги, а потому любые средства хороши. Обычное дело, враньё маркетологов и продажников, ради того чтобы сорвать куш.
            Но одно дело, когда соловьём заливаются зависимые интеграторы и совсем другое, когда инженеры по ИБ ведутся у них на поводу.
              0
              Прочтите первый абзац, там все расписано.
              Здесь расчет как раз на те фирмы, где еще нет офицера ИБ.
              0
              А сертификации ФСТЭК даже не предвидится что ли? Для кого оно тогда нужно, от детей обороняться что ли?
              Без сертификата в любой гос / коммерческой структуре, особенно энтерпрайз он лишний.
                +2
                Немного перефразируя докладчика «Ни в коем разе! Это долго и затратно!»
                Основная ориентация на зарубежных заказчиков.
                Когда предложил поломать после презентации сказали, что бесполезно, т.к. даже японцы не смогли. :)
                Как раз готовлю английский вариант и ищу популярную площадку для размещения.
                  0
                  Если уж так важна сертификация — версия 8.0 сертифицирована ФСТЭК: «Программный комплекс DeviceLock 8 DLP Suite — на соответствие на соответствие СКН (ИТ.СКН.П4.ПЗ) и ЗБ»
                    0
                    Это только 1 профиль из Коммон Критериа.
                    Видать хватило развлекухи…
                  +2
                  При установке этой штуки обязательно нужно требовать с начальства расписку, что ты не несёшь более никакой ответственности за работу сетей, где она установлена. Чтобы не пришлось отвечать головой за чужого слона в посудной лавке. Касперыча вон с 97-го года пилят, и то он своими щупальцами то там, то тут что-либо ломает. А эта штука в 10 раз новее и в 10 раз инвазивнее.

                  Короче, либо давайте пруфы, что эту систему писали боги, либо я просто не поверю, что она не глючит, исходя из самой цели — перелопатить в Винде систему безопасности инъекцией сторонних драйверов…
                    0
                    Для пруфов как раз и нужна сертификация.
                    Ну и про инвазивность согласен.
                    Да, некоторые вещи без хуков не победить, но 90% функционала типовых СЗИ вполне реализуемо штатными API.
                    0
                    В порядке ни к чему не обязывающей идеи — если бы dll были залинкованы в исполняемый файл повысило бы это надёжность подобной системы? Я понимаю что вопрос комплексный, дырки всегда будут, но, по крайней мере, просто так удалить их не получилось бы.
                      0
                      Ессно одну проблему статическая линковка бы решила.
                      Но почему служба падает без драйвера?
                      Логичная реакция — вопить во все журналы и слать оповещения о попытке взлома, но молча падать, открывая всем доступ, для СЗИ совсем некрасиво.
                        0
                        Соглашусь. Вопрос был скорее чтобы мне лучше понять описанную ситуацию.
                        +2
                        Не повысило бы. Тут проблема в с подходом к дефолтному состоянии системы. Если дефолтное состояние при сбое — «открыто», злоумышленник всегда найдет способ устроить сбой. Выход — то самое шифрование, чтобы при сбое службы нельзя было пользоваться данными. Но будет неудобно.
                        Короче, судя по описанию, данный софт мне напомнил подьездную дверь с домофоном. Выглядит прилично, пользовать удобно, незванные пользователи не шляются. Но ставить такую в хорошо обставленную квартиру — дураков нет.
                        0
                        По моему очевидно, хочешь безопасно — ограничь права.
                        Как-то странно ожидать безопасности, от пользователя с изначально неблагими намерениями, обладающего правами администратора/рута.
                          0
                          Попробуйте это сделать в фирме со штатом 10-20 человек.
                          Админ скорее всего приходящий раз в неделю и никаких способов
                          защитить от него клиентскую базу, к примеру, не просматривается.

                          Для сравнения можете глянуть реализацию самозащиты в ДрВеб или Касперски, там вполне рабочие механизмы.
                            –1
                            ДрВеб, Касперски, сам Майкрософт и т.д. защищают нужные файлы ровно до тех пор пока не загрузились в режим ядра. Соответственно любая такая защита, это защита от дурака. От опытного пользователя с неблагими намерениями она никак не защищает.
                            0
                            Перечитайте свой коммент.
                            Все с точностью наоборот.
                              0
                              Вот читаю статью и вспоминаю свой диплом (начало нулевых). На дельфях написал службу которая тихонько смотрела какие подключены разделы и спрашивала у них ID. Потом его преобразовывала в MD5 и сравнивала хеш с базой. Запускалось всё это счастье с правами системы, рестартовало «если что» и вообще маскировалось под svhost (или как там правильно?..). Отдельно был «конфигуратор» который умел добавлять к базе ключи если был подключен «мастер»-ключ (при подключенном можно было приостанавливать выполнение и конфигурить список ключей). При выдирании флэшки-ключа просто лочили систему. При установке тупо сносили ветку реестра (вернее копировали себекуда-то в базу, чтобы если что — вернуть) чтобы в safe-mode нельзя было загрузиться. Защитился на отлично. Шифрования в те времена не помню (тогда были NT4 и только Win2000\XP появлялись). После форматирования ID меняется и таким образом можно ключи хоть каждый час менять. Отключить устройства или определённые типы устройств на сколько помню -не проблема и для этого не надо каких-то драйверов или мозголомного кода. Всё вполне делается средствами API или ковырянием реестра. Так что покупать за много денег какую-то софтину (тем более на столько дырявую) по меньшей мере странно. Наверное у компании производящей данный продукт ну очень хорошие продажники и маркетолухи :-)
                                0
                                NT4.0 моя любимая система, потому вижу многовато нестыковочек:
                                1. Там не было нативной поддержки USB, только какие-то самописные дрова то ли от Dell, то ли от Compaq.
                                2. На счет службы на Дельфи оч странно. Студенту, ясен пень, простительно, но что-то подсказывает, что с ее зависимости даже при статической линковке она валилась бы так же.
                                В Дельфи столько было косяков, что прикладники через год бросили и перешли на ВизуалСтудио.
                                3. С внешними накопителями ловить что-то из службы было бесполезно, драйвер был нужен обязательно. Пока ваша штука пыталась разрюхать что за раздел смонтировался, на него уже несколько файлов можно было успеть закинуть. Это даже на флопике прокатывало, потому драйвер СНАЧАЛА блокировал, и ожидал, когда служба даст разрешение на открытие накопителя.
                                4. С ветками реестра все элементарно, достаточно было дескриптор установить.

                                Похоже, ваш руководитель, как и мой, считал криптографию панацеей от всего. С преподами часто такое, ибо от жизни оторвались напрочь.
                                  0
                                  1. Под NT4 я кажется и не тестил свой проект. Давно дело было. Про NT4 я вспомнил в контексте шифрования данных на дисках. Кажется его там небыло, а значит не важно была там поддержка USB нативная или надо было что-то ставить (в то время вообще все с дискетами ходили и первые ключи у меня были как раз дискеты или музыкальные CD-диски). Факт — средствами API что-то зашифровать я бы не смог.
                                  2. Трудное было время… Дельфи-7 — это было всё, что нам доступно. Интернет дома — даилап, в универе по записи и ничего нельзя качать в больших объемах. Было 2 книжки. «Полное руководство по Delphi7» (болльшой такой томик) и «Что умеют Хакеры — Delphi». Я тогда помню привык к интернету без картинок. Да и сейчас предпочитаю ресурсы с минимумом графики в оформлении. Коллег в WEB-студии иногда пугаю Линуксовым Lynx.
                                  3. Почему? Я просто опрашивал все разделы доступные системе и если не находил ни одного у которого ID-->MD5=MD5 из базы, делал Lock. Содержимое раздела меня не волновало. Потом уже добавил проверку не SCSI-ли этот раздел потому, что тогда были эмуляторы CD-Rom которые всегда были именно SCSI-дисками. Так что либо пользователь сначала подключал носитель (вставлял CD-диск), а потом загружалась система и вводился пароль либо пользователь вводил пароль и тут-же всё лочилось. Пользователь таки подключал носитель и когда софтина его разглядит, тогда и перестанет лочить систему сразу после ввода пароля. Тупо? Не то слово! Но работало и я чему-то научился плюс защитился на отлично и диплом был не про стандартное «Система автоматизации ресторана\фитнес-клуба», а всётаки немного в сторону API и защиты информации (единственный диплом на эту тему за много лет как потом выяснилось).
                                  Руководитель у меня увидел поделку сохранившуюся с 3 курса, обрадовался и сказал «О! А теперь вот к этому напиши текст и подготовь презентацию. И сделай что нибудь с интерфейсом, а то он не красивый».
                                  Там вообще всё было выполнено в виде 2 EXE-файлов и 1 DB. Так что понятно, что это не есть защита тем более от админа. Просто будучи студентом 3 курса с минимумом знаний я написал софтину которая предусматривала какие-то очевидные мне тогда сценарии обхода. Прошло 11 лет. Некая фирма выпускает софтину которая продаётся за деньги и она не учитывает элементарные пути обхода. Воистину маркетинг творит чудеса.
                                  P.S.
                                  Ralari, если вдруг (ну мало ли?..) есть желание — напишите, я постараюсь найти исходники и пришлю. Готов спорить — с них будете смеяться дольше чем с любого анекдота :-)
                                    0
                                    1. Не, тут всё веселее. Если софтина не видит «ключевой раздел», то система лочится. Так что никакого чтения\записи пользователь произвести не сможет. Ему доступно только окно для ввода логина\пароля. Изначально софтина не знает на какой там букве что висит. Ей это не интересно. Просто если нужный ключевой раздел доступен — ничего не делаем. Если не доступен (проверка каждую секунду), то блокируем систему штатными функциями.
                                    2. ШТА?!!! 20 лет? Т.е. я не ослеп, Вы не опечатались и я правильно вижу — двадцать лет?! Интересно, им там программисты не нужны?.. Я бы может за хорошую зарплату обратно бы на виндах работать начал. Наверное моего бы уровня знаний\практики им бы хватило…
                                      0
                                      Снова нестыковки.
                                      1. На ХР нет функции блокировки, только логофф и перезагрузка.
                                      2. Таймер — полная дичь. Есть штатные интерфейсы уведомлений о монтировании.
                                      За секунду можно сильно больше 2х байт переслать.
                                      3. Похоже, как начали в 97м, так потом и поленились с нуля переписать, вот и тащат древний код. В коммерческом продукте это нонсенс, ИМХО.
                                        0
                                        1. _http://delphi.cjcsoft.net/viewthread.php?tid=44863
                                        Могу ошибаться в терминологии, но я об этом. Эффект ровно тот-же, что при нажатии на win+L Т.е. ничего не закрывается, вставь «ключ», введи свой пароль и продолжай работу
                                        2. А мне зачем уведомления о монтировании?.. Говорю-же задача решалась тупо: есть раздел с нужным ID — ничего не делать. Нету — win+l Т.е. злоумышленнику нужно знать пароль для входа в систему и если он его правильно вводит, то у него есть ~1 секунда, чтобы успеть куда-то зайти и что-то скопировать. С учётом того, что винда неторопливо будет на каком нибудь 3-4 пне отрисовывать рабочий стол секунды 2-3 его без подключенного носителя вышибет раньше чем он в нужную сторону мышью дёрнет.
                                        3. Полностью согласен. Жесть какая-то
                                          0
                                          1. Колхоз. Насколько помню, оно ломается.
                                          2. Чтоб про раздел узнать, его нужно смонтировать.
                                          После монтирования остается время до срабатывания блокировки.
                                          Операция записи инициируется ДО подключения носителя, т.к. имя монтируемого раздела известно.
                                          С драйвером все это блокируется элементарно.
                                          0
                                          Есть функция блокировки. Но подобный софт все равно бесполезен. Привелигированный юзер нажмет F8 после ребута и поимеет что хочет. непривелигированный, но наглый — грохнет sam, вытащит батарейку с платы и винт из корпуса. непривелигированный, но вредный — задрюкает со «срабатываниями» флешки.

                                            0
                                            И что же можно поиметь по F8?
                                            Закрыл на запись 2 ключа, и превед.
                                            В ДевайсЛоке это как раз сделано.
                                            Физическая защита и др. оргмеры — обязательное условие работы с любой программной СЗИ.
                                              0
                                              Ralari:
                                              1. Ещё какой! Но на 3 курсе экономического ВУЗа к сожалению подготовки маловато по безопасности, API и прочему. Так что прошу простить.
                                              2. Ещё раз: если мы не видим раздела -система заблокирована.Т.е. мы не ждём когда нам дадут раздел, чтобы его проверить. Мы просто спрашиваем «есть раздел с ID=XXX? Нету? Блокировать!» и всё это в течение 1 секунды. При этом когда система заблокирована устройства всёравно подцепляются и через какое-то время система будет знать про появившийся нужный раздел, моя софтина соответственно тоже и только после этого блокироваться система перестанет.
                                              А как можно инициировать операцию записи если у Вас есть только поля для ввода логина и пароля?.. Autorun? Так вроде его нормальные люди отключают…
                                              Louie:
                                              Я ранее писал, что в софтине у меня была кнопка которая выпиливала возможность загрузки в безопасный режим. А что будет если грохнуть sam? Пока флешку не воткнёш, система будет «нажимать» win+L в независимости от того, под каким пользователем Вы хотите зайти. Винт дёрнет — так на это время надо и чтоб свидетелей небыло.
                                              Согласен (и никогда не спорил), что моя поделка не есть какой-то инструмент обеспечения безопасности который стоит рассматривать всерьёз. Я лишь написал, что будучи студентом 3 курса в своё время проявил больше внимания к мелочам способным скомпромитировать мою разработку, чем коммерческая компания которая себе на хлеб зарабатывает разработкой софта для обеспечения безопасности. И этот факт меня очень удивляет и расстраивает.
                                                0
                                                С такими вещами борются с помощью планировщика заданий.
                                                Думаю, кнопку «Нет» в програмке «Нравится вам ваша зарплата?» без проблем нажали? :)
                                                На японском рынке ваша работа точно имеет большие перспективы. :)
                                                  0
                                                  Ralari, простите, но я ничего не понял.
                                                  1. С чем борются при помощи планировщика?
                                                  2. В какой программе есть такая кнопка и при чём тут она?
                                                  3. Моя работа? На японском рынке? Им то нафига поделка студента и как её можно применить если не принимать во внимание примеры работы с API. Хотя это было ценно лет 12 назад, когда был Dial-Up и надо было ещё суметь найти в печатном виде толковую книгу по тогда ещё Delphi 7. А сейчас уже и интернет скоростной и Delphi других версий (а её вообще сейчас кто-то использует?..) и винда как я слышал уже 10 с кучей встроенного функционала для обеспечения безопасности…
                                                    0
                                                    1. С колхозной блокировкой винды
                                                    2. Прикольная прога с убегающей от курсора кнопкой
                                                    3. Перечтите коммент. Создатели продукта хвалились, что японцы не смогли сломать. Винда ща только хуже стала и доверяют ей все меньше
                                        0
                                        Зачем, исходники есть свои. :)
                                        Пока «софтина разглядит», уже пройдет монтирование и может быть выполнена операция записи/чтения, если заранее известно имя объекта. оно известно, т.к. сидюк или флопик все время на одной букве висят.
                                        Думаю, просто никто как следует это не тестил, а для диплома уровень был вполне достаточен.
                                        Перечтите комменты, фирма уже 20 лет это пишет.

                                        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                                        Самое читаемое