异常账号检测汇总_异常登录数据集-程序员宅基地

技术标签: python  AIOps  

对账户的异常检测是针对每个账户建立模型以判断是否异常;由于帐号权限的区别,很难简单判断多大范围的活动程度被认为有违规行为,由于业务的复杂性,也很难准确地判断帐号是处于正常状态还是异常状态。

一、对帐号的相关数据建模

分析和学习历史数据,刻画和建立正常行为模型;一般采用时间序列和马尔柯夫过程等方法。

帐号的访问频率在线持续时间常用的登录时间段特定内容的访问数据量等因素,根据不同方面所具有的行为特征,建立正常行为模型分析检测用户实际活动与正常模型偏离度,是否在一定的阈值之内,对用户的行为进行决策推断,发现行为是否有异常。

1、访问频率的模型:根据历史登录数据,建立时间序列模型。

2、活跃程度模型:根据用户在线时段,时长,活跃度等建立模型。

3、敏感数据访问量模型:根据敏感数据访问情况,建立时间序列模型。

二、对帐号的特征进行画像

根据正常模型及帐号使用环境对帐号画像;分析常用的ip工具、地理位置等对用户画像。

1、基本要素:帐号名称、常用ip、所在城市、常用浏览器、常用的软件客户端、登录频率、活跃程度、访问协议、常用访问时间段。

2、动态更新:随着时间的变化更新画像。

三、基于帐号的关联分析

1、业务的前后关联:

实际业务中,用户的操作习惯存在前后关联的情况;业务系统的设计逻辑也会使不同帐号业务之间存在前后序列关系,可通过Apriori等算法分析帐号业务操作之间的关系。

2、同帐号异地多ip, 同ip多帐号:

同ip有多个同类型的帐号登录,公用帐号使用,异地登陆等很容易发现问题

3、帐号群体划分

对帐号进行相似度计算和聚类分析,划分多个帐号簇,分析容易出现异常情况的簇群,更有利于综合得出个体与群体的关系,更好地分析是用户个体行为的变化还是用户群体行为的变化。

用户实体行为分析(User and Entity Behavior Analytics,UEBA)系统

1. 通过用户、实体、行为三要素的关联,反映用户行为基线的各类数据;

2. 定义4类特征提取维度,提取几十种最能反映用户异常的基础特征;

3. 将3种异常检测算法通过集成学习方法用于异常用户建模;

4. 通过异常打分,定位异常风险最大的一批用户。

传统方法多为分散的、事后的、缺少针对性的,安全最薄弱的环节是人,只有建立以用户为核心对象的分析体系,才能更加及时发现和终止内部威胁,

而 UEBA 是基于大数据驱动、以用户为核心、关联实体资产、采用机器学习算法进行异常分析以发现解决内部威胁的一套框架和体系。传统手段是对安全事件的关注,UEBA更关心人,通过用户画像和资产画像。

企业员工账号的关联

UEBA 属于数据驱动的安全分析技术,需要采集大量而广泛的用户行为类数据。

行为分析的基础是数据,数据采集的前提是场景,采集的数据要和分析的特定场景匹配,高质量多种类的数据是用户实体行为分析的核心。

用户实体行为分析可以使用的数据,包括安全日志、网络流量、威胁情报以及身份访问相关日志等,尽可能多地接入和用户场景相关的数据,如VPN日志、OA日志、员工卡消费日志及门禁刷脸日志等。

数据可归纳为用户身份数据、实体身份数据和用户行为数据 3 种类型。用户身份数据分为两类:真实身份数据,如人事部门提供的员工资料;虚拟身份数据,如用户在网络上的注册资料;需要有统一的数据字典,通过统一数据字典,统一不同日志的字段信息,进而关联不同日志的用户信息,通过关联真实身份与虚拟身份,达到定位具体的用户的目标。实体身份数据是网络中用户的唯一身份标识,如IP地址、MAC地址等。用户行为数据分类则可分为网络行为信息和终端行为信息。

员工账号与实体资产的关联

员工账号与实体资产关联,即用户身份数据与实体身份数据的关联,通过用户行为数据实现关联。

基础特征提取

用户行为特征提取是整个用户行为分析建模的基础,需结合业务实际需求,找出相关的数据实体,以数据实体为中心,一般的特征提取步骤包括用户数据与实体数据的分解和对应、实体间关联关系分解、用户特征维度分解以及用户行为特征的提取。

通常用4类方法提取用户行为特征,分别是用户与用户之间行为基线的对比用户组与用户组之间行为基线的对比基于用户自身行为基线对比的离散数据特征提取基于用户自身行为基线对比的连续数据特征提取

基于大部分用户行为是正常的原则,通过用户与用户之间的行为基线对比,可以发现偏离集群基线的少数用户,这些少数用户就是疑似异常的,如非工作时间的用户行为异常。

可使用所有员工的历史行为记录,通过核密度估计(Kernel Density Estimation,KDE)计算一天24 h每个时间点用户访问资源的概率密度,将概率低于动态阈值的时间点定义为非工作时间,把员工在非工作时间段产生的行为提取为一个异常特征。

用户组与用户组之间行为基线的对比。通常在企业内部处于同一个部门相似岗位的员工应该有类似的行为基线,不同部门之间如技术部门与销售部门工作上有较大差异,反映在网络行为和终端行为上肯定会有较大不同。同角色属性或者同部门的员工应该会有更多共同访问对象和访问目的;根据日志信息,建立用户和一段时间内被访问较多的或者业务相关的URL的关联矩阵。矩阵元素可以是访问次数、访问时长或者平均访问时长,利用欧式距离计算客户之间的距离,并进行聚类操作。

对远离自身角色所在部门群组的用户可以标记为异常,同时基于用户与群组中心的距离给出偏离度,针对异常出现的偏离程度,可提取访问异常特征。偏离度的计算公式如下:

Di :i 用户的偏离度;di:i 用户与簇中心距离;dmean:同组用户与簇中心距离均值

用户自身行为基线对比的离散数据特征提取,建立正常的用户基线可对偏离历史基线的用户行为提取异常特征。如:用户使用新 IP。通过一些场景的设想,可以基于用户自身行为基线提取离散数据的异常特征。

基于用户自身行为基线对比的连续数据特征提取,学习用户的连续数据的行为基线,对偏离历史基线的用户行为提取异常特征。

基于Ensemble Learning的异常用户检测

通过访问关系的关联,将用户、实体和行为特征等 3 大要素映射到核心的用户行为上。

内部攻击并不经常发生,标签数据的稀少性决定了多数情况下UEBA使用的是无监督学习算法。

不依赖先前的攻击知识反而允许系统发现少见的和过往未曾发现的威胁。异常检测的主要任务是在正常的用户数据集中提取出小概率的异常数据点,这些异常点的产生不是由于随机偏差,而是有如故障、威胁、入侵等完全不同的机制。采用孤立森林、One Class SVM以及局部异常因子3种算法的集成来全面识别和评价最可能影响系统的各种异常用户。利用这3种算法进行异常检测,可以分别得到所有用户的异常打分。对3种算法结果进行加权归一,便可以得到最终的针对所有用户的异常打分排名。

参考:

用户账号异常分析 - 简书 (jianshu.com)

基于机器学习的用户实体行为分析技术在账号异常检测中的应用-阿里云开发者社区 (aliyun.com)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://blog.csdn.net/MarkAustralia/article/details/125084502

智能推荐

FortiGate防火墙500D下PC至外网丢包-程序员宅基地

文章浏览阅读235次。1.现状:如图,防火墙堆叠,500D共4个出口方向,联通、电信、FQ、运维专线2.现象:  到网关和防火墙上、下联口不丢包,到网联通和运维专线方向丢包4%左右,电信和FQ方向不丢包    3.分析  采用从上向下的方式,一点点加网络设备。如先测试运营商,若没问题加防火墙,若没问题加上网行为管理,以此类推。4.排查  去除防火墙,PC直连运营商光猫,不丢包,排除运..._fortigate 掉线

VisualStudio安装以及与Unity3d关联使用_unity和vs关联-程序员宅基地

文章浏览阅读4.8k次,点赞6次,收藏29次。问题:1、正确VisualStudio下载安装,以及后期添加或删除VS内容组件、更新恢复VS、以及正确卸载VS等。2、Unity3d里的C#脚本,编辑代码时,还是一个字母一个字母输入,没有api等函数或错误智能显示提示(顶多个别词和符号下面显示红色波浪线)。3、Unity3d里的C#脚本,在打开时总是用Visual Studio Tools for Unity 2.0打开,而不是用Visual Studio打开。_unity和vs关联

了解BFC_b 'i jkfccfdd 。/-程序员宅基地

文章浏览阅读76次。在学习css盒子布局过程中,会出现盒子塌陷问题,在解决这些问题时,看到BFC的特性,并可以解决这方面的问题,本文是简单对BFC的总结。1、什么是BFC BFC 即 Block Formatting Contexts (块级格式化上下文),它属于上述布局模式的流动模型。是W3C CSS2.1规范中的一个概念,决定了元素如何对其内容进行定位,以及与其他元素的关系和相互作用。..._b 'i jkfccfdd 。/

java爬取双色球所有中奖号码历史数据-程序员宅基地

文章浏览阅读3.7k次。org.jsoup是一个用于解析、操作和遍历HTML文档的Java库。它提供了简单易用的API,使得开发者能够方便地从HTML中提取数据、修改HTML内容、进行选择器查询等操作。下面对org.jsoup的主要功能进行详细解释。

[ 云计算 | AWS 实践 ] 基于 Amazon S3 协议搭建个人云存储服务_s3存储安装-程序员宅基地

文章浏览阅读5.8k次,点赞55次,收藏42次。MinIO 是一个高性能的对象存储系统。它被设计为云原生存储系统的替代方案。事实上,其 API 与 Amazon S3 完全兼容;MinIO 也提供兼容阿里云等国内云厂商的 API,由于本文篇幅问题,在本博文中,只介绍亚马逊 AWS 与其关联的案例以及如何快速使用 MinIO。Minio 是 GlusterFS 创始人之一 Anand Babu Periasamy 发布新的开源项目。MinIO 从一开始就被设计为完全兼容 Amazon S3 存储 API 的替代方案。_s3存储安装

jackson出现错误 Unrecognized field,几种处理方法_unrecognized field "crspool" (class com.ctyun.prob-程序员宅基地

文章浏览阅读5.5w次,点赞4次,收藏8次。错误堆栈信息如下:org.codehaus.jackson.map.exc.UnrecognizedPropertyException: Unrecognized field "HPYS" (Class com.traffic.entity.BusBaseInfo), not marked as ignorable at [Source: java.io.StringReader@76c5f_unrecognized field "crspool" (class com.ctyun.probe.cmdbinfo), not marked as

随便推点

高效Web开发的10个jQuery代码片段-程序员宅基地

文章浏览阅读367次。在过去的几年中,jQuery一直是使用最为广泛的JavaScript脚本库。今天我们将为各位Web开发者提供10个最实用的jQuery代码片段,有需要的开发者可以保存起来。 1、检 测Internet Explorer版本当涉及到CSS设计时,对开发者和设计者而言Internet Explorer一直是个问题。尽管IE6的黑暗时代已经过去,IE也越来越不流行,它始终是一个能够容易检测的好东西。当

公司感染勒索病毒怎么办 怎样及时补救?-程序员宅基地

文章浏览阅读2.3w次。什么是勒索病毒勒索病毒,简单来说就是黑客用来劫持用户数据资料,索取巨额赎金的武器。因为对企业用户造成的损失更加巨大,勒索病毒一出现就引起了广大企业用户以及安全厂商的高度重视。这种病毒主要通过漏洞、邮件和广告推广进行传播,利用各种加密算法对文件进行加密,必须拿到密钥才有可能破解,从而向受害者索要数额不等的赎金后才予以解密。该病毒性质恶劣、危害极大,变种类型非常快,对常规的杀毒软件都具有免疫性,一...

Nginx 开启 IPv6 Nginx 开启 IPv6 SSL_nginx 支持ipv6版本-程序员宅基地

文章浏览阅读2.3k次,点赞2次,收藏5次。Nginx 开启IPv6,Nginx 开启IPv6 SSL,IPv6支持http,IPv6支持https_nginx 支持ipv6版本

空间关系_空间数据库touch,inside关系-程序员宅基地

文章浏览阅读3.2k次。基于维度扩展九交模式(Dimensionally Extended 9-Intersection Model,DE-9IM),MapGuide定义了如表8-3所示的11种空间关系,其中8种是OGC简单要素规范所定义的空间关系,另外3种FDO中自定义的空间关系。 空间关系中文名称OGC标准解释Contains_空间数据库touch,inside关系

Vmware虚拟机安装Ubuntu 18.04.2 LTS(长期支持)版本+VMware tools安装总结_虚拟机怎么打开usr文件夹-程序员宅基地

文章浏览阅读1.8k次,点赞2次,收藏6次。Vmware虚拟机安装Ubuntu 18.04.2 LTS(长期支持)版本+VMware tools安装可参考如下方法,不再赘述:http://www.cnblogs.com/Alier/p/6337151.html下面就安装过程中的注意事项和遇到的问题进行总结。在输入sudo ./vmware-install.pl后,再输入密码,会遇到很多询问,截图如下。其中, “ifconfig”的解决办..._虚拟机怎么打开usr文件夹

Ardunio开发ESP8266 中断问题_arduino esp8266 定时器中断-程序员宅基地

文章浏览阅读4.7k次,点赞16次,收藏55次。按键中断代码一直在找ESP8266的按键中断代码,大部分格式如下:const byte interruptPin = 0; //NodeUMCU 按键volatile byte interruptCounter = 0;int numberOfInterrupts = 0; void setup() { Serial.begin(115200); pinMode(interruptPin, INPUT_PULLUP); attachInterrupt(digitalPinT_arduino esp8266 定时器中断