Введение
Данной статьей мы хотим начать цикл статей, которые покажут возможности ИИ и Машиного обучения в области информационной безопасности в уже реализованных продуктах компании Cross Technologies. Мы расскажем о прикладном смысле конечных продуктов и о тех подходах \ технологиях, которые лежат в основе соответствующих решений.
Что такое DataNova OR
Первым продуктом, о котором мы хотели рассказать, является DataNova OR (Object Recognition).
DataNova OR – решение, функционал которого основан на технологиях компьютерного зрения. Решение позволяет с помощью перехвата видеопотока с веб-камеры осуществлять мониторинг за деятельностью удаленно работающих сотрудников и выявлять нелегитимную активность, согласно настроенным политикам безопасности и блокировать рабочую станцию.
Основным драйвером по возникновению идеи о создании такого решения явилась общемировая пандемия, когда всё большее количество компаний стало переходить на удаленный формат работы. У бизнеса появилась потребность в расширенной картине пользовательской активности сотрудника на рабочем месте. Здесь речь идет как о необходимости соблюдения бизнес-процессов, пресечения неправомерных действий и повышении качества работы удаленно работающих сотрудников, так и недостаточной степени объективности и осведомленности о деятельности сотрудников в целом.
Основная задача DataNova OR – автоматическое распознавание объектов на видеопотоке, перехватываемом с веб-камеры АРМ пользователя, мониторинг открытых приложений и передача соответствующих данных на централизованный сервер. Из ключевых особенностей продукта стоит отметить:
Возможность перехвата изображения с веб-камеры устройства, при этом сохраняя возможность доступа к веб-камере другим приложениям;
Возможность выявления различных объектов на видеопотоке с помощью технологий компьютерного зрения;
Возможность выявления нелегитимных лиц за устройством и автоматической блокировки рабочей станции;
Возможность выявления попыток фотографирования экрана, распития алкоголя и других нелегитимных действий, согласно настраиваемым политикам безопасности;
Возможность создания правил ИБ/ЭБ, позволяющих выявлять инциденты на основе анализируемых изображений и дополнительной информации, собираемой с АРМ;
Возможность настройки политик безопасности в части выявления нелегитимных действий и блокировки рабочей станции;
Возможность распознавания живого/неживого (фото, смартфон) человека, т.е. реализация так называемого Liveness Detection.
Варианты сбора и анализа данных
Так как перед нами стояла задача анализа видеопотока, в режиме приближенном к real-time, то ключевым аспектом было понимание того, как и где мы будем анализировать данные. От этого зависит как скорость и качество, так и стабильность работы решения, а также своевременное реагирование на фиксируемые инциденты. Были опробованы несколько подходов, из которых в явном виде можно выделить два. Рассмотрим какие преимущества и недостатки в каждом из них.
Анализ видеопотока на сервере
Преимущества:
«Дешевые» камеры;
Централизованное хранение всего видеопотока на сервере;
Оперативный доступ к записи с любой видеокамеры;
Простота добавления и тестирования новых моделей и алгоритмов распознавания.
Недостатки:
Ограничения на количество камер, подключаемых к одному серверу, в следствие чего необходимость создания кластера;
Нужны достаточно мощные сервера;
Необходимость масштабирование сервера с ростом количества видеокамер;
Нагрузка на сеть из-за необходимости передачи всего видеопотока на сервер;
Задержка реагирования на распознанные объекты с видеокамеры.
Анализ видеопотока на камере
Преимущества:
Нет необходимости в передачи всего видеопотока. Можно передавать метаданные, а также необходимые кадры;
Моментальная реакция на распознанные объекты (отправка уведомлений ответственным лицам, запуск процессов реагирования, и др.);
Нет необходимости в создании сверх мощного и дорогого кластера;
Работа в режиме real-time.
Недостатки:
«Дорогие» камеры, при распознавании объектов на самой камере;
Более высокая сложность развертывания и сопровождения новых моделей и алгоритмов распознавания;
Есть ограничения на размер моделей и баз данных;
В случае использования мощностей ноутбуков возникает дополнительная нагрузка на CPU.
Для более наглядного сравнения приведём основные моменты в таблице
Анализ видеопотока на сервере |
Анализ видеопотока на камере |
|
Стоимость и количество серверов |
???? ???? ???? ???? ???? |
???? |
Сложность развертывания и сопровождения моделей |
???? |
???? ???? ???? |
Нагрузка на сеть |
???? ???? ???? ???? ???? |
???? ???? |
Стоимость камеры |
???? |
???? ???? ???? ???? ???? |
Скорость реагирования на инциденты |
???? ???? ???? ???? |
???? |
В силу потребностей наших бизнес-заказчиков и специфики внедрения решения в рамках ноутбуков сотрудников, пункт про стоимость камеры играл для нас не самую большую роль – было достаточно лишь изображения с веб-камеры в приемлемом качестве. В связи с этим и особенностями архитектуры системы в целом было принято решение остановится на втором подходе. В последующих разделах мы перейдем к детализации технических задач, с которыми столкнулись в ходе разработки продукта.
Техническая реализация
Перехват изображения с веб-камеры
Основная трудность при перехвате изображения с веб-камеры заключается в том, что одна аппаратная камера не может быть использована сразу несколькими приложениями (в том числе нашим агентом). Стоит отметить что данная проблема возникала только на ОС семейства Windows. Что касается платформ Linux и MacOS – таких проблем не наблюдалось.
Чтобы решить проблему с занятой аппаратной камерой, мы создаём виртуальную камеру. Таким образом, все приложения, требующие доступ к веб-камере, используют виртуальную камеру, в том числе и агент. Такой подход позволяет разграничить информационные потоки в части перехвата видеопотока и избежать возникновения коллизий.
Распознавание лиц
В нашем распоряжение есть только веб-камеры, встроенные в ноутбуке. В большинстве из них нет возможности 3D-сканирования, поэтому мы останавливаемся на 2D-распознавании лиц. Данная задача разбивается на 3 задачи: поиск лица, получение вектора лица (эмбединга) и сравнение его с векторами известных лиц. Про решение данной задачи написано достаточно много хороших статей. Не будем долго тут останавливаться.
Liveness detection (живой/неживой)
Данная задача актуальна в мире биометрической идентификации. Для успешного её решения необходимо 3D-распознавание лица, в случае с 2D вероятность допущения ошибки высока. В нашем случае она ещё выше из-за качества изображения. Но стоит отметить, что в нашем случае мы имеем дело не только с одной фотографией, а с серией подряд идущих снимков. Для решения этой задачи существуют различные способы, начиная от моргания глаз, бликов света на коже, заканчивая нейросетевыми подходами.
Начинали решение этой задачи с моргания глаз. Для начала, нужно с помощью обученного детектора или алгоритмов компьютерного зрения найти глаза на изображении. Далее нужно научиться определять открыт глаз или закрыт. Данную задачу можно решать различными методами, например, как с помощью ранее обученного детектора (как вариант, если мы обучали его только на открытых глазах), так и с помощью классификатора, обученного отличать закрытый и открытый глаз. Данное решение мы использовали в качестве baseline. Этот подход легко обмануть зацикленным видео, поэтому его использование ограничено.
В рамках следующего подхода мы использовали обучение классификатора, которому на вход подаётся несколько подряд идущих снимков, а классификатор по цепочке кадров принимает решение, живой перед нами человек или нет.
На текущий момент точность распознавания в условиях недостаточной освещенности нас не устраивает, поэтому над данным функционалом мы продолжаем работать.
Распознавание объектов на видеопотоке
Для распознавания объектов мы используем архитектуру Yolov5. Почему мы выбрали именно её? Во-первых, данная архитектура показала очень хорошие результаты на наших данных. А, во-вторых, обученная и сконвертированная модель при инференсе требует относительно мало ресурсов. Поэтому выбор был остановлен именно на этой архитектуре. О данном семействе сетей слышали практически все, кто хоть как-то слышал о нейронных сетях, про них написано достаточно много хороших статей. Наша модель, на текущий момент, умеет определять порядка 40 объектов, которые нас интересуют.
Ниже пример кода, с помощью которого мы детектируем объекты.
def detect(self, img: np.ndarray):
im0_shape = img.shape
img = letterbox(img, self.img_size, stride=32)[0]
img = img.transpose((2, 0, 1))[::-1]
img = np.ascontiguousarray(img).astype(np.float32)
img /= 255.0
if img.ndim == 3:
img = np.expand_dims(img, 0)
pred = self.model.run(None, {self.input_name: img})[0]
pred = non_max_suppression_numpy(pred, 0.5, 0.45, None, False, max_det=1000)
det = pred[0]
if len(det):
det[:, :4] = scale_coords(img.shape[2:], det[:, :4], im0_shape).round()
return (
det[:, :4].astype(int).tolist(),
det[:, -2].tolist(),
[self.names[int(c)] for c in det[:, -1]],
)
return [], [], []
Создание политик безопасности
Основная идея продукта DataNova OR – это отслеживание действий сотрудников, которые работают удаленно, и своевременное реагирование на правонарушения, такие как фотографирование конфиденциальной информации, распитие спиртных напитков на рабочем месте, наличие постороннего человека за рабочим местом и другие. Для этого был разработан механизм по созданию таких правил и способы реагирования на нарушения. По отдельности пункты с 1 по 4 не несут особой пользы для мониторинга за действиями удаленных сотрудников, для этого создаются политики безопасности. Политика представляет собой набор правил. Для создания таких правил мы используем собственный конструктор. Полученные таким образом правила смотрят на выходы моделей из пунктов 2-4, а также на запущенные приложения. Например, в качестве правила могут использоваться следующие:
Наличие на рабочем столе бокала вина;
Наличие постороннего человека в кадре;
Наличие сотового телефона, повернутого камерой на экран;
Открытие конфиденциального документа;
Открыто приложение Skype;
И множество других.
Объединение таких правил определяет политику, например:
Открыто приложение Zoom и идёт конференция;
Обнаружено более 1 человека перед экраном монитора;
Обнаружена кружка пива.
Создавая такие правила, мы можем достаточно гибко настраивать мониторинг за работой удаленных сотрудников. Интерфейс и детали в части демонстрации работы системы мы покажем в следующей статье, а пока что зафиксируем результаты для бизнеса, которые может получить компания, внедрив подобного рода систему.
Результаты
Подводя итоги, несколько слов о потенциальных результатах и тех задачах, которые решаются в рамках DataNova OR. Из функциональных особенностей можно отметить:
Нейронная сеть, позволяющая распознавать порядка 40 различных объектов;
Внедрение виртуальной камеры, позволяющей использование веб-камеры сразу для нескольких приложений;
Поддержка механизмов разработки пользовательских правил корреляции/аномалий;
Возможность ретроспективного анализа результатов распознаваний.
Если же говорить непосредственно о результатах для бизнеса, то это:
Автоматизация механизмов по выявлению нелегитимных действий сотрудников;
Повышение степени объективности и осведомленности о деятельности удаленно работающих сотрудников;
Повышение эффективности работы удаленно работающих сотрудников;
Реализация real-time мониторинга за деятельностью сотрудников.
Комментарии (37)
radiolok
24.01.2022 11:15+35Наличие на рабочем столе бокала вина - А как отличить вино от сока? Или сок в бокале тоже нельзя? А вино в стакане - можно?
Наличие постороннего человека в кадре - особенно актуально для человека работающего в однушке когда вся семья дома.
Наличие сотового телефона, повернутого камерой на экран - специально проверил сейчас - если расположить телефон так как я обычно читаю или пишу смс - весь экран попадает в кадр. Уже и смс нельзя отправить? А в туалет хотя бы можно отходить? А покушать?
Открытие конфиденциального документа - только в офисе читать его, или что?
Открыто приложение Skype - или телеграм, или любой другой мессенджер. Вся жизнь на удаленке идет через чатики.
И множество других - надуманных причин как посадить человека в рабство.
Человек поставленные задачи выполняет? Так и отстаньте от него. Не выполняет? Так не в контроле дело.
Ritan
24.01.2022 13:10+11А в туалет хотя бы можно отходить?
С вычетом из рабочего времени. Моргание тоже считается нерабочим временем
sswebcoder
25.01.2022 09:46Ну или камеру в туалете включить, чтобы видно было что рабочее время не растрачивается зря.
RalphMirebs
24.01.2022 11:19+4Бокал вина детектируется, но что мешает перелить вино в кружку от чая? Или пить морс/сок из винного бокала? В дальний закуток офиса можно позвать кого-то проверить, но если сотрудник совсем удалённый, то функционал не имеет практической пользы.
Dair_Targ
24.01.2022 12:02+19Классический вопрос: зачем нанимать людей, которым не доверяешь?
titovr Автор
24.01.2022 12:21-25Ответный вопрос, как научиться доверять человеку с улицы?
Flux
24.01.2022 14:20+10Первый шаг установления доверительных отношений — честность. Человеку с улицы надо первым делом честно говорить что вы считаете своих сотрудников рабами и поставили бы по надсмотрщику с плёткой над каждым, да финансы не позволяют.
А человек с улицы честно ответит вам что думает о такой практике в целом и о вашей ублюдочной конторе в частности.Честность — залог доверия.
daggert
24.01.2022 14:26+2Выполняет работу - платим зарплату. Не выполняет - увольняем. Решает все вопросы доверия.
vlad_egrv
24.01.2022 23:31Так вы с улицы не набирайте, дурашки, процесс найма тоже наука. обратитесь к профессионалам для подбора квалифицированных ответственных кадров.
И выложите, пожалуйста, список ваших клиентов, чтоб я не дай боже ни в одну из этих помоек не устроился случайно
pnovikov
25.01.2022 00:17Людей научиться собеседовать нормально, как вариант. Хотя для компании с такой продуктовой линейкой, наверное, управление персоналом - сложно.
fougasse
24.01.2022 13:22+3В сторону бокала вина.
Помню, лет 20 назад, в офисе, со строгой пропускной системой, камерами и прочим, был тестировщик, который за день "приговаривал" бутылку коньяка. С чаем в стакане. И ничего. Работу работал отлично, никто не жаловался.
AlexNis
24.01.2022 14:00+7Мне почему-то кажется, что не стоит продолжать этот цикл...
dem0crypt
24.01.2022 15:35+1Стоит продолжить, я считаю. Просто интересно куда это в итоге зайдет. Будут ли имплантировать чипы, отслеживающие активность мозга? Введут ли спонтанные проверки сосредоточености, типа как в последнем Бегущем по лезвию ("Я живу в клетке" - "В клетке"). А мониторинг движений глаз и тд.?
Suvitruf
24.01.2022 15:05+12А можно узнать список ваших клиентов? Чтобы сразу всех в ЧС добавить ????
grinito
24.01.2022 19:17Я правильно понимаю, что мониториться изображение с камеры, даже если она "не включена" не горит индикатор ?)
Ritan
24.01.2022 20:08А это возможно? Этот индикатор разве не должен контролиться драйвером вебки( а в идеале вообще прошивкой ), чтобы любое использование камеры его включало?
grinito
24.01.2022 20:11Вроде да, но тут в статье прям говориться про доступ к камере и вообще постоянный скрининг через вебку. Не думаю что это только на "оналайн созвона" работает )
Ritan
24.01.2022 20:21Ну так вебку оно использует - индикатор горит. Надеюсь, что люди знают, что за ними наблюдают. По крайней мере очень надеюсь, что они сообщили и дали возможность уйти всем тем, кого подобное не устраивает
MetaDone
24.01.2022 21:01+8У меня назрело несколько вопросов
плетка которая бьет при нарушениях правил докупается отдельно? сработает ли она после возвращения работника если он отсутствовал более 3 минут? как обойти то что он будет пытаться увернуться?
по третьему пункту - если работник умер после ударов плетью но сидит с открытыми глазами - как отреагирует система? это тоже будет аномалией, думаю корректным решением будет применения штрафа и приостановка трекера отработанного времени
будет ли функционал который перехватывал бы разговоры если не включен зум? так работник может по скайпу на телефоне разболтать секреты вражеской фирме. В принципе сам факт разговора если зум не запущен уже нарушение
вместо плетки можно приобрести еще ошейник с электрошоком? ну чтоб можно было запустить на произвольном работнике или в случае нарушений. будет ли комплект из плетки и ошейника? или хотя бы скидку
чтоб работник не дотянулся до изоленты в попытке заклеить вебку нужно короткие цепи использовать? ну чтоб в туалет отпросился - удаленно отстегнули, пришел - пристегнулся. Если больше 3 минут - ну вы в курсе
на сотрудниках которые пишут данный продукт вы тоже применяете пукнты выше? как эффективность? сильно ли повысилась продуктивность? Отправляете ли к ним специально обученного человека который будет стоять рядом и фиксировать все нарушения? Ну чтоб потом сверять
timych
24.01.2022 22:26+1Хм, бокал вина. Такое преступление..
У меня в офисе на столе и бокал вина может стоять и бутылка пива. Хорошо что мой работодатель платит мне за мою работу, а не мои морально-этические нормы.
dimaaannn
25.01.2022 00:58Тенденция довольно забавная.
Даже если не рассматривать предвзято сам объект поста, цель подобных средств мне видится не в повышении эффективности работы сотрудников, а в удешевлении труда программиста.
Даже в ущерб количеству сделанной работы. В целом, с точки зрения бизнеса это весьма выгодно: заменить "самодостаточных и уверенных в себе людей" (прогеров, и других айтишниов) "зашуганными мышками", которых вместо повышения ЗП можно ткнуть носом в их "косяки" в виде бокала пива на столе или отлучения в туалет дольше 10 минут.
Чем всё это закончится - если честно, не знаю. Пока что попытки явно безуспешны, ввиду кучи сложившихся условий.
Однако как ситуация изменится лет через 5 - большой вопрос.
fougasse
25.01.2022 09:55У ребят даже домен .su, я думаю, что у них и им подобных, надежда на "занавес", чтобы тех, кто не смог вырваться контролировать по-полной. Тогда и з/п уже не будут иметь значения, когда кругом враги и буржуазию, которая пьёт вино за рабочим местом будут вешать на доску позора на проходной.
GospodinKolhoznik
25.01.2022 04:32+4Это хуже чем сексуальные домогательства и насилие на рабочем месте. Рано или поздно в мире придут к тому, что за такие практики работодателей будут банально судить.
ghostinushanka
25.01.2022 13:16Этож какой, эм, редиской, надо быть, чтобы добровольно создавать такие продукты и/или писать о них рекламно-хвалебные статьи на Хабре.
titovr во время написания статьи система задействована была? Была же? «Eat your own dog food» и всё такое? Скриншоты в студию, пожалуйста!
flexoadm
25.01.2022 14:42Это софт для каких нибудь колл-центров или прочего удаленного саппорта, где проходной двор и действительно могут попадаться неблагонадежные сотрудники. Сомнительно, что это можно использовать для контроля за ИТ, все разбегутся, останутся "самые благонадежные", но их качество может вызывать сомнение.
NivER
25.01.2022 16:24Это ж ещё додуматься надо было разместить такую статью на хабре. Хотя если предположить, что раз разместили, то, видимо, цель была наловить кучу минусов - тогда всё становится на свои места. Ребята, вот честное слово - всецело поддерживаю ваше желание, и с удовольствием внёс бы лепту в его исполнение, если бы кармы хватало. Но уверен, вас не обделят и без меня (уже не обделили) :)
И да, пишите ещё. Ознакомиться с арсеналом существующих методов и средств всегда интересно. И очень хотелось бы, чтобы вы, как любая уважающая себя компания, огласила список своих клиентов. Ну, знаете там - повод для гордости, репутация, обширное портфолио, вот это вот всё.
Avvero
25.01.2022 17:18+1Никогда бы не дал разрешение вести подобную сьемку у себя дома, тем более что обработка видеопотока идет на сервере.
cepera_ang
Какое единодушие в минусовании инструментов рабовладения, аж душа радуется.