Введение

Данной статьей мы хотим начать цикл статей, которые покажут возможности ИИ и Машиного обучения в области информационной безопасности в уже реализованных продуктах компании Cross Technologies. Мы расскажем о прикладном смысле конечных продуктов и о тех подходах \ технологиях, которые лежат в основе соответствующих решений.

Что такое DataNova OR

Первым продуктом, о котором мы хотели рассказать, является DataNova OR (Object Recognition).

DataNova OR – решение, функционал которого основан на технологиях компьютерного зрения. Решение позволяет с помощью перехвата видеопотока с веб-камеры осуществлять мониторинг за деятельностью удаленно работающих сотрудников и выявлять нелегитимную активность, согласно настроенным политикам безопасности и блокировать рабочую станцию.

Основным драйвером по возникновению идеи о создании такого решения явилась общемировая пандемия, когда всё большее количество компаний стало переходить на удаленный формат работы. У бизнеса появилась потребность в расширенной картине пользовательской активности сотрудника на рабочем месте. Здесь речь идет как о необходимости соблюдения бизнес-процессов, пресечения неправомерных действий и повышении качества работы удаленно работающих сотрудников, так и недостаточной степени объективности и осведомленности о деятельности сотрудников в целом.

Основная задача DataNova OR – автоматическое распознавание объектов на видеопотоке, перехватываемом с веб-камеры АРМ пользователя, мониторинг открытых приложений и передача соответствующих данных на централизованный сервер. Из ключевых особенностей продукта стоит отметить:

  • Возможность перехвата изображения с веб-камеры устройства, при этом сохраняя возможность доступа к веб-камере другим приложениям;

  • Возможность выявления различных объектов на видеопотоке с помощью технологий компьютерного зрения;

  • Возможность выявления нелегитимных лиц за устройством и автоматической блокировки рабочей станции;

  • Возможность выявления попыток фотографирования экрана, распития алкоголя и других нелегитимных действий, согласно настраиваемым политикам безопасности;

  • Возможность создания правил ИБ/ЭБ, позволяющих выявлять инциденты на основе анализируемых изображений и дополнительной информации, собираемой с АРМ;

  • Возможность настройки политик безопасности в части выявления нелегитимных действий и блокировки рабочей станции;

  • Возможность распознавания живого/неживого (фото, смартфон) человека, т.е. реализация так называемого Liveness Detection.

Варианты сбора и анализа данных

Так как перед нами стояла задача анализа видеопотока, в режиме приближенном к real-time, то ключевым аспектом было понимание того, как и где мы будем анализировать данные. От этого зависит как скорость и качество, так и стабильность работы решения, а также своевременное реагирование на фиксируемые инциденты. Были опробованы несколько подходов, из которых в явном виде можно выделить два. Рассмотрим какие преимущества и недостатки в каждом из них.

  1. Анализ видеопотока на сервере

Анализ видеопотока на сервере
Анализ видеопотока на сервере

Преимущества:

  • «Дешевые» камеры;

  • Централизованное хранение всего видеопотока на сервере;

  • Оперативный доступ к записи с любой видеокамеры;

  • Простота добавления и тестирования новых моделей и алгоритмов распознавания.

Недостатки:

  • Ограничения на количество камер, подключаемых к одному серверу, в следствие чего необходимость создания кластера;

  • Нужны достаточно мощные сервера;

  • Необходимость масштабирование сервера с ростом количества видеокамер;

  • Нагрузка на сеть из-за необходимости передачи всего видеопотока на сервер;

  • Задержка реагирования на распознанные объекты с видеокамеры.

  1. Анализ видеопотока на камере

Анализ видеопотока на камере
Анализ видеопотока на камере

Преимущества:

  • Нет необходимости в передачи всего видеопотока. Можно передавать метаданные, а также необходимые кадры;

  • Моментальная реакция на распознанные объекты (отправка уведомлений ответственным лицам, запуск процессов реагирования, и др.);

  • Нет необходимости в создании сверх мощного и дорогого кластера;

  • Работа в режиме real-time.

Недостатки:

  • «Дорогие» камеры, при распознавании объектов на самой камере;

  • Более высокая сложность развертывания и сопровождения новых моделей и алгоритмов распознавания;

  • Есть ограничения на размер моделей и баз данных;

  • В случае использования мощностей ноутбуков возникает дополнительная нагрузка на CPU.

Для более наглядного сравнения приведём основные моменты в таблице

Анализ видеопотока на сервере

Анализ видеопотока на камере

Стоимость и количество серверов

???? ???? ???? ???? ????

????

Сложность развертывания и сопровождения моделей

????

???? ???? ????

Нагрузка на сеть

???? ???? ???? ???? ????

???? ????

Стоимость камеры

????

???? ???? ???? ???? ????

Скорость реагирования на инциденты

???? ???? ???? ????

????

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

Техническая реализация

Архитектура решения DataNova OR
Архитектура решения DataNova OR
  1. Перехват изображения с веб-камеры

Основная трудность при перехвате изображения с веб-камеры заключается в том, что одна аппаратная камера не может быть использована сразу несколькими приложениями (в том числе нашим агентом). Стоит отметить что данная проблема возникала только на ОС семейства Windows. Что касается платформ Linux и MacOS – таких проблем не наблюдалось.

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

  1. Распознавание лиц

В нашем распоряжение есть только веб-камеры, встроенные в ноутбуке. В большинстве из них нет возможности 3D-сканирования, поэтому мы останавливаемся на 2D-распознавании лиц. Данная задача разбивается на 3 задачи: поиск лица, получение вектора лица (эмбединга) и сравнение его с векторами известных лиц. Про решение данной задачи написано достаточно много хороших статей. Не будем долго тут останавливаться.

  1. Liveness detection (живой/неживой)

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

Начинали решение этой задачи с моргания глаз. Для начала, нужно с помощью обученного детектора или алгоритмов компьютерного зрения найти глаза на изображении. Далее нужно научиться определять открыт глаз или закрыт. Данную задачу можно решать различными методами, например, как с помощью ранее обученного детектора (как вариант, если мы обучали его только на открытых глазах), так и с помощью классификатора, обученного отличать закрытый и открытый глаз. Данное решение мы использовали в качестве baseline. Этот подход легко обмануть зацикленным видео, поэтому его использование ограничено.

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

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

  1. Распознавание объектов на видеопотоке

Для распознавания объектов мы используем архитектуру 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 [], [], []
  1. Создание политик безопасности

Основная идея продукта DataNova OR – это отслеживание действий сотрудников, которые работают удаленно, и своевременное реагирование на правонарушения, такие как фотографирование конфиденциальной информации, распитие спиртных напитков на рабочем месте, наличие постороннего человека за рабочим местом и другие. Для этого был разработан механизм по созданию таких правил и способы реагирования на нарушения. По отдельности пункты с 1 по 4 не несут особой пользы для мониторинга за действиями удаленных сотрудников, для этого создаются политики безопасности. Политика представляет собой набор правил. Для создания таких правил мы используем собственный конструктор. Полученные таким образом правила смотрят на выходы моделей из пунктов 2-4, а также на запущенные приложения. Например, в качестве правила могут использоваться следующие:

  • Наличие на рабочем столе бокала вина;

  • Наличие постороннего человека в кадре;

  • Наличие сотового телефона, повернутого камерой на экран;

  • Открытие конфиденциального документа;

  • Открыто приложение Skype;

  • И множество других.

Объединение таких правил определяет политику, например:

  1. Открыто приложение Zoom и идёт конференция;

  2. Обнаружено более 1 человека перед экраном монитора;

  3. Обнаружена кружка пива.

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

Результаты

Подводя итоги, несколько слов о потенциальных результатах и тех задачах, которые решаются в рамках DataNova OR. Из функциональных особенностей можно отметить:

  • Нейронная сеть, позволяющая распознавать порядка 40 различных объектов;

  • Внедрение виртуальной камеры, позволяющей использование веб-камеры сразу для нескольких приложений;

  • Поддержка механизмов разработки пользовательских правил корреляции/аномалий;

  • Возможность ретроспективного анализа результатов распознаваний.

Если же говорить непосредственно о результатах для бизнеса, то это:

  • Автоматизация механизмов по выявлению нелегитимных действий сотрудников;

  • Повышение степени объективности и осведомленности о деятельности удаленно работающих сотрудников;

  • Повышение эффективности работы удаленно работающих сотрудников;

  • Реализация real-time мониторинга за деятельностью сотрудников.

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


  1. cepera_ang
    24.01.2022 11:03
    +43

    Какое единодушие в минусовании инструментов рабовладения, аж душа радуется.


  1. radiolok
    24.01.2022 11:15
    +35

    Наличие на рабочем столе бокала вина - А как отличить вино от сока? Или сок в бокале тоже нельзя? А вино в стакане - можно?

    Наличие постороннего человека в кадре - особенно актуально для человека работающего в однушке когда вся семья дома.

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

    Открытие конфиденциального документа - только в офисе читать его, или что?

    Открыто приложение Skype - или телеграм, или любой другой мессенджер. Вся жизнь на удаленке идет через чатики.

    И множество других - надуманных причин как посадить человека в рабство.

    Человек поставленные задачи выполняет? Так и отстаньте от него. Не выполняет? Так не в контроле дело.


    1. Ritan
      24.01.2022 13:10
      +11

      А в туалет хотя бы можно отходить?

      С вычетом из рабочего времени. Моргание тоже считается нерабочим временем


      1. sswebcoder
        25.01.2022 09:46

        Ну или камеру в туалете включить, чтобы видно было что рабочее время не растрачивается зря.


  1. RalphMirebs
    24.01.2022 11:19
    +4

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


  1. Dair_Targ
    24.01.2022 12:02
    +19

    Классический вопрос: зачем нанимать людей, которым не доверяешь?


    1. titovr Автор
      24.01.2022 12:21
      -25

      Ответный вопрос, как научиться доверять человеку с улицы?


      1. usego
        24.01.2022 12:36
        +7

        рынок научит


      1. RomanArzumanyan
        24.01.2022 13:10
        +3

        Как научиться доверять самому себе?


      1. Flux
        24.01.2022 14:20
        +10

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


        Честность — залог доверия.


      1. daggert
        24.01.2022 14:26
        +2

        Выполняет работу - платим зарплату. Не выполняет - увольняем. Решает все вопросы доверия.


      1. vlad_egrv
        24.01.2022 23:31

        Так вы с улицы не набирайте, дурашки, процесс найма тоже наука. обратитесь к профессионалам для подбора квалифицированных ответственных кадров.

        И выложите, пожалуйста, список ваших клиентов, чтоб я не дай боже ни в одну из этих помоек не устроился случайно


      1. pnovikov
        25.01.2022 00:17

        Людей научиться собеседовать нормально, как вариант. Хотя для компании с такой продуктовой линейкой, наверное, управление персоналом - сложно.


  1. vorozcov
    24.01.2022 12:27
    +34

    Буду краток. Горите в аду.


  1. fougasse
    24.01.2022 13:22
    +3

    В сторону бокала вина.

    Помню, лет 20 назад, в офисе, со строгой пропускной системой, камерами и прочим, был тестировщик, который за день "приговаривал" бутылку коньяка. С чаем в стакане. И ничего. Работу работал отлично, никто не жаловался.


  1. AlexNis
    24.01.2022 14:00
    +7

    Мне почему-то кажется, что не стоит продолжать этот цикл...


    1. Gorthauer87
      24.01.2022 14:53
      +1

      Да ну, такое чтиво, все настолько плохо, что даже хорошо.


    1. dem0crypt
      24.01.2022 15:35
      +1

      Стоит продолжить, я считаю. Просто интересно куда это в итоге зайдет. Будут ли имплантировать чипы, отслеживающие активность мозга? Введут ли спонтанные проверки сосредоточености, типа как в последнем Бегущем по лезвию ("Я живу в клетке" - "В клетке"). А мониторинг движений глаз и тд.?


  1. Suvitruf
    24.01.2022 15:05
    +12

    А можно узнать список ваших клиентов? Чтобы сразу всех в ЧС добавить ????



  1. dem0crypt
    24.01.2022 15:28
    +2

    Странно что не детектируются сигары, бонги, шприцы, зажигалки, резиновые жгуты...


    1. fougasse
      24.01.2022 17:45

      И фаллоимитаторы с flesh-light.


  1. grinito
    24.01.2022 19:17

    Я правильно понимаю, что мониториться изображение с камеры, даже если она "не включена" не горит индикатор ?)


    1. Ritan
      24.01.2022 20:08

      А это возможно? Этот индикатор разве не должен контролиться драйвером вебки( а в идеале вообще прошивкой ), чтобы любое использование камеры его включало?


      1. grinito
        24.01.2022 20:11

        Вроде да, но тут в статье прям говориться про доступ к камере и вообще постоянный скрининг через вебку. Не думаю что это только на "оналайн созвона" работает )


        1. Ritan
          24.01.2022 20:21

          Ну так вебку оно использует - индикатор горит. Надеюсь, что люди знают, что за ними наблюдают. По крайней мере очень надеюсь, что они сообщили и дали возможность уйти всем тем, кого подобное не устраивает


  1. MetaDone
    24.01.2022 21:01
    +8

    У меня назрело несколько вопросов

    • плетка которая бьет при нарушениях правил докупается отдельно? сработает ли она после возвращения работника если он отсутствовал более 3 минут? как обойти то что он будет пытаться увернуться?

    • по третьему пункту - если работник умер после ударов плетью но сидит с открытыми глазами - как отреагирует система? это тоже будет аномалией, думаю корректным решением будет применения штрафа и приостановка трекера отработанного времени

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

    • вместо плетки можно приобрести еще ошейник с электрошоком? ну чтоб можно было запустить на произвольном работнике или в случае нарушений. будет ли комплект из плетки и ошейника? или хотя бы скидку

    • чтоб работник не дотянулся до изоленты в попытке заклеить вебку нужно короткие цепи использовать? ну чтоб в туалет отпросился - удаленно отстегнули, пришел - пристегнулся. Если больше 3 минут - ну вы в курсе

    • на сотрудниках которые пишут данный продукт вы тоже применяете пукнты выше? как эффективность? сильно ли повысилась продуктивность? Отправляете ли к ним специально обученного человека который будет стоять рядом и фиксировать все нарушения? Ну чтоб потом сверять


  1. timych
    24.01.2022 22:26
    +1

    Хм, бокал вина. Такое преступление..

    У меня в офисе на столе и бокал вина может стоять и бутылка пива. Хорошо что мой работодатель платит мне за мою работу, а не мои морально-этические нормы.


  1. yarric
    24.01.2022 22:37
    +5

    На компах у руководства компании эта система стоит?


  1. dimaaannn
    25.01.2022 00:58

    Тенденция довольно забавная.

    Даже если не рассматривать предвзято сам объект поста, цель подобных средств мне видится не в повышении эффективности работы сотрудников, а в удешевлении труда программиста.

    Даже в ущерб количеству сделанной работы. В целом, с точки зрения бизнеса это весьма выгодно: заменить "самодостаточных и уверенных в себе людей" (прогеров, и других айтишниов) "зашуганными мышками", которых вместо повышения ЗП можно ткнуть носом в их "косяки" в виде бокала пива на столе или отлучения в туалет дольше 10 минут.

    Чем всё это закончится - если честно, не знаю. Пока что попытки явно безуспешны, ввиду кучи сложившихся условий.

    Однако как ситуация изменится лет через 5 - большой вопрос.


    1. fougasse
      25.01.2022 09:55

      У ребят даже домен .su, я думаю, что у них и им подобных, надежда на "занавес", чтобы тех, кто не смог вырваться контролировать по-полной. Тогда и з/п уже не будут иметь значения, когда кругом враги и буржуазию, которая пьёт вино за рабочим местом будут вешать на доску позора на проходной.


  1. ivanych
    25.01.2022 01:19
    +1

    Проклинаю сей пост и автора его!


  1. GospodinKolhoznik
    25.01.2022 04:32
    +4

    Это хуже чем сексуальные домогательства и насилие на рабочем месте. Рано или поздно в мире придут к тому, что за такие практики работодателей будут банально судить.


  1. ghostinushanka
    25.01.2022 13:16

    Этож какой, эм, редиской, надо быть, чтобы добровольно создавать такие продукты и/или писать о них рекламно-хвалебные статьи на Хабре.
    titovr во время написания статьи система задействована была? Была же? «Eat your own dog food» и всё такое? Скриншоты в студию, пожалуйста!


  1. flexoadm
    25.01.2022 14:42

    Это софт для каких нибудь колл-центров или прочего удаленного саппорта, где проходной двор и действительно могут попадаться неблагонадежные сотрудники. Сомнительно, что это можно использовать для контроля за ИТ, все разбегутся, останутся "самые благонадежные", но их качество может вызывать сомнение.


  1. NivER
    25.01.2022 16:24

    Это ж ещё додуматься надо было разместить такую статью на хабре. Хотя если предположить, что раз разместили, то, видимо, цель была наловить кучу минусов - тогда всё становится на свои места. Ребята, вот честное слово - всецело поддерживаю ваше желание, и с удовольствием внёс бы лепту в его исполнение, если бы кармы хватало. Но уверен, вас не обделят и без меня (уже не обделили) :)

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


  1. Avvero
    25.01.2022 17:18
    +1

    Никогда бы не дал разрешение вести подобную сьемку у себя дома, тем более что обработка видеопотока идет на сервере.