Какие вы знаете методы обнаружения подозрительной активности пользователя?

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

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

На правах примера: обнаружение подозрительной активности по изменению времени захода или среднего времени работы пользователя (естественно при условии нахождения закономерности), подозрительная смена IP.

Тут я осмелюсь даже перефразировать вопрос: каким образом вообще реализуется подобное? Может я заблуждаюсь и подобные задачи не требуют машинного обучения? Но если делать все по уму, то слишком много if-else выйдет, ведь не просто тревогу бить когда IP сменился, а исключительно по предыдущей статистике: может ее мало или для данного человека эта норма (каждую неделю меняется), и желательно с возможностью в какой-то момент понять, что человек с этого дня домосед, а значит про предыдущие похождения надо забыть.

Заранее большое спасибо за уделенное время!
  • Вопрос задан
  • 2042 просмотра
Решения вопроса 1
xmoonlight
@xmoonlight
https://sitecoder.blogspot.com
Изначально - есть набор цепочек контролируемых параметров и среднестатистические показатели появления таких цепочек.

Как только появляется:
1. слишком уникальная цепочка (т.е. имеет различие более чем, в половине параметров)
2. среднестатистический показатель появления одной и той же цепочки отклоняется в любую сторону более, чем на 50% относительно своих предыдущих временных интервалов
3. при анализе сессий - порядок следования пакетов в сессии имеет отклонение схожести более чем на 50%, от всех остальных сессий пользователей.

Тогда - фиксируется alert!
Ответ написан
Пригласить эксперта
Ответы на вопрос 5
@iSergios
Python-разработчик
Поздравляю! Вы взялись просто за колоссальной сложности задачу. Крупнейшие корпорации тратят тысячи человеко-часов, годами корпят над этой темой, и при этом количество ложноположительных и ложноотрицательных срабатываний их систем защиты просто раздражающе велико.

Методов тоже уйма. Время захода, работы, отпечатки браузеров, диапазоны IP-адресов - это на поверхности, очень просто и нифига не продуктивно. В конечном итоге оно выливается в то, что клиент где-нить в командировке с IP местного провайдера и выданного на работе бука вынужден бороться с вашей системой. Сейчас копают в других направлениях. Например мышь. Для многих не очевидно, но паттерны движений курсора мыши уникальны для каждого человека. Там ведь не только наведение на элементы интерфейса, т.е. продуктивные движения, еще очень показательны т.н. холостые движения - к примеру, то, как вы крутите курсор, пока ждете загрузку чего-то. Только вот человек не постоянен. Стоит вам научиться выделять человека из прочих по тому, как он работает мышью, в каких ритмах набирает текст и т.п... как он ррраз! и заболел. И его вялое тыканье в элементы интерфейса начисто смажет вам всю картину) А если у него сдохла мышь, и он начинает пользоваться тачпадом?)

К чему это я. Сам буду рад услышать тех, кто в теме, но не рассчитывайте увидеть в ответах что-то действительно стоящее.
Ответ написан
begemot_sun
@begemot_sun
Программист в душе.
В общем случае за каждым пользователем следует закрепить набор метрик, которые идентифицируют его поведение. Сделать саму классификацию не сложно. Сложнее найти такие метрики, которые идентифицируют "подозрительную активность".
И вообще вы не определили этот термин. Для каждого он включает что-то своё.
Ответ написан
w4r_dr1v3r
@w4r_dr1v3r
начинающий
Создавать свои паттерны параметров исходя из текущей задачи. Основных вопроса два в вашем случае: что \кого именно отслеживаем на предмет аномалий и что именно считаем нормой. Вышеозначенные корпорации конечно имеют лучшие мозги мира в доступе, но лучшие мозги мира обычно начинают с простых вещей и строят методологию исходя из базовых моментов: что следим, зачем следим, что с нашей точки зрения аномалия + сбор стат. данных. Если к примеру вы строите свой сайт и хотите следить за юзерами на манер ВКонтакта (история входов с параметрами браузер+IP) то с этого и начинайте.
Ответ написан
CityCat4
@CityCat4 Куратор тега Информационная безопасность
//COPY01 EXEC PGM=IEBGENER
Начать надо с того, что определить - что есть "подозрительная активность" и что делать если она обнаружена :) Вот например, Стахановец ее может обнаруживать - так как он ее понимает. На тестовом компе я делаю переименование каталога, содержащего множество подкаталогов - например профиля Thunderbird - и получаю оповещение о подозрительной файловой активности!
Ответ написан
@ivodopyanov
NLP, python, numpy, tensorflow
В общих чертах, это - обучение без учителя. Когда агент пытается ответить на вопрос, насколько очередной пример похож на примеры из обучающего набора данных. Вот только что и как кодировать - большооой вопрос.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы