异常检测的一些资料整理


=Start=

缘由:

整理一下最近和之前收集到的和「异常检测」相关的资料,方便以后要用的时候参考。

正文:

参考解答:
什么是异常检测?

(因为在一个正常的环境中,异常对象是相对罕见的)所谓异常检测就是发现与大部分对象不同的对象,其实就是发现离群点。异常检测有时也称偏差检测。

为什么要做异常检测?

为了发现系统中的风险点,比如:

信息安全中:

  • WebShell检测
    恶意提权检测
    渗透攻击检测
    恶意操作检测
    僵尸主机检测
    木马回连检测
    恶意爬虫检测
    恶意访问检测

业务安全中:

  • 信用卡盗刷
    骗保骗赔

业务运维中:

  • 复杂业务指标(请求量、收入等)的异常波动检测
异常检测期望达到什么效果?

快速、准确的发现异常现象,以做出及时的应对,保证系统的整体稳定、安全。

常见异常检测方法整理
方法一:基于经验

基于分析人员自身的经验,使用特定的与日志相关的特征进行分析挖掘。比如特定的关键字等。

方法二:基于数据统计

比如常见的阈值、频率、同比、环比等。

方法三:基于外部数据关联

比如恶意手机号码库、恶意IP库、病毒木马库等。这个其实也可以归结到「基于经验」的分类中去。

方法四:基于算法

比如常见的以下几种:

基于模型的技术许多异常检测技术首先建立一个数据模型,异常是那些同模型不能完美拟合的对象。例如,数据分布的模型可以通过估计概率分布的参数来创建。如果一个对象不服从该分布,则认为他是一个异常。

基于邻近度的技术通常可以在对象之间定义邻近性度量,异常对象是那些远离大部分其他对象的对象。当数据能够以二维或者三维散布图呈现时,可以从视觉上检测出基于距离的离群点。

基于密度的技术:对象的密度估计可以相对直接计算,特别是当对象之间存在邻近性度量。低密度区域中的对象相对远离近邻,可能被看做为异常。

以上内容只是我对「异常检测」做的一点介绍、梳理和收集,根据我当前遇到的一些情况来看,有以下几点想法:

  1. 数据的质量最重要!
  2. 数据的质量最重要!
  3. 数据的质量最重要!
  4. 一定要对实际场景有所了解!
  5. 规则有时候比算法、模型更有效,算法、模型并不是万能的。
  6. 异常可能总是在变化,需要不断的调整策略和重新训练模型。
参考链接:

=END=


《 “异常检测的一些资料整理” 》 有 21 条评论

  1. 无监督异常检测模型原理与安全实践
    https://xz.aliyun.com/t/5378
    `
    异常检测模型按照其数据样本的分布可以分为无监督模型、半监督模型和有监督模型。当已标记数据量充足的情况下,例如具有海量真实样本数据的阿里云和360,此时优先选用有监督学习,效果一般不错;当只有少数黑样本的情况下,例如有成熟安全团队的二线互联网厂商应该有一些积累,可以考虑半监督学习;当遇到一个新的安全场景,没有样本数据或是以往积累的样本失效的情况下,只有先采用无监督学习来解决异常检测问题,当捕获到异常并人工审核积累样本到一定量后,可以转化为半监督学习,之后就是有监督学习。

    现实的情况是安全场景被细分,问题需要一个一个单独去解决,能够借助的资源比较有限,所以异常检测问题的开始往往是两眼一抹黑,只有业务场景和没有标记的海量数据,这时候就需要无监督异常检测模型了。

    无监督异常检测模型有基于密度的异常检测、基于邻近度的异常检测、基于模型的异常检测、基于概率统计的异常检测、基于聚类的异常检测、OneClassSVM的异常检测、iForest的异常检测、PCA异常检测、AutoEncoder异常检测、序列数据的异常检测等,有点杂乱,知乎大佬总结的很好,分为五大类:统计和概率模型、线性模型、基于相似度衡量的模型、集成异常检测和模型融合、特定领域的异常检测。

    1、统计和概率模型:主要是假设和检验。假设数据的分布,检验异常。
    2、线性模型:假设数据在低维空间上有嵌入,那么无法、或者在低维空间投射后表现不好的数据可以认为是异常点。
    3、基于相似度衡量的模型:这里的相似度衡量可以是密度、距离、划分超平面等。其中典型的当属基于局部相对密度的Local Outlier Factor,和基于划分超平面的Isolation Forest。
    4、集成异常检测和模型融合:Isolation Forest是经典例子,判别异常的直接依据是异常点的划分超平面数远小于正常点,Isolation Forest通过数据和特征的bagging和多模型等集成学习技术增加模型的鲁棒性。

    实践中可能会面临的几个问题:
    1、场景问题
    2、数据问题
    3、特征工程问题
    4、算法选择问题
    `

  2. 八大无监督异常检测技术
    https://www.csuldw.com/2019/03/24/2019-03-24-anomaly-detection-introduction/
    `
    异常检测是一种用于识别不符合预期行为的异常模式的技术,又称之为异常值检测。在商业中也有许多应用,如网络入侵检测(识别可能发出黑客攻击的网络流量中的特殊模式)、系统健康性监测、信用卡交易欺诈检测、设备故障检测、风险识别等。这里,将异常分为三种:

    1、数据点异常:如果样本点与其他数据相距太远,则单个数据实例是异常的。业务用例:根据“支出金额”检测信用卡欺诈。
    2、上下文异常:在时间序列数据中的异常行为。业务用例:旅游购物期间信用卡的花费比平时高出好多倍属于正常情况,但如果是被盗刷卡,则属于异常。
    3、集合异常:单个数据难以区分,只能根据一组数据来确定行为是否异常。业务用例:蚂蚁搬家式的拷贝文件,这种异常通常属于潜在的网络攻击行为。

    异常检测类似于噪声消除和新颖性检测。噪声消除(NR)是从不需要的观察发生中免疫分析的过程; 换句话说,从其他有意义的信号中去除噪声。新颖性检测涉及在未包含在训练数据中的新观察中识别未观察到的模式。

    1. 何为异常
    2. 异常检测的难点
    3. 基于统计的异常值检测
    4. 基于密度的异常检测
    5. 基于聚类的异常检测
    6. OneClassSVM的异常检测
    7. iForest异常检测
    8. PCA+MD异常检测
    9. AutoEncoder异常检测
    10. Conclusion
    11. References
    `

  3. 梳理 | 异常检测
    https://www.zuozuovera.com/archives/1395/
    `
    1 异常是什么?
    1.1 异常的成因
    1.2 异常的类型
    2 异常检测的应用
    3 异常检测的方法
    3.1 标签问题
    3.2 基于模型的方法
    3.2.1 一元高斯分布
    3.2.2 多元高斯分布
    3.2.3 混合模型方法
    3.2.4 优缺点
    3.3 基于邻近度的离群点检测
    3.4 基于密度的离群点检测
    3.5 基于聚类的技术
    4 异常检测的挑战
    5 References
    `

  4. 异常检测的N种方法,阿里工程师都盘出来了
    https://mp.weixin.qq.com/s/kv-ZrOF4nnxXoQwFOodzjA
    `
    导读:互联网黑产盛行,其作弊手段层出不穷,导致广告效果降低,APP推广成本暴增。精准识别作弊是互联网公司和广告主的殷切期望。今天我们将从时间序列、统计、距离、线性方法、分布、树、图、行为序列、有监督机器学习和深度学习模型等多个角度探讨异常检测。

    1.时间序列

    1.1 移动平均(Moving Average,MA)
    1.1.1 简单移动平均(Simple Moving Average,SMA)
    1.1.2 加权移动平均(Weighted Moving Average, WMA)
    1.1.3 指数移动平均(Exponential Moving Average, EMA)

    1.2 同比和环比

    1.3 时序指标异常检测(STL+GESD)
    (1)先将指标做STL时序分解,得到seasonal,trend,residual成分,如图3所示;
    (2)用GESD (generalized extreme studentized deviate)算法对trend+residual成分进行异常检测;
    (3)为增强对异常点的鲁棒性,将GESD算法中的mean,std等统计量用median, MAD(median absolute deviation)替换;
    (4)异常分输出:abnorm_score = (value – median)/MAD, value为当前值,median为序列的中位数。负分表示异常下跌,正分表示异常上升。

    2.统计
    2.1 单特征且符合高斯分布
    2.2 多个不相关特征且均符合高斯分布
    2.3 多个特征相关,且符合多元高斯分布
    2.4 马氏距离(Mahalanobis distance)
    2.5 箱线图

    3.距离
    3.1、基于角度的异常点检测
    3.2 基于KNN的异常点检测

    4.线性方法(矩阵分解和PCA降维)

    5.分布
    5.1 相对熵(KL散度)
    5.2 卡方检验

    6.树(孤立森林)
    孤立森林(Isolation Forest)假设我们用一个随机超平面来切割数据空间, 每切一次便可以生成两个子空间。接着继续用一个随机超平面来切割每个子空间,循环下去,直到每个子空间里面只有一个数据点为止。那些密度很高的簇是需要被切很多次才能让子空间中只有一个数据点,但是那些密度很低的点的子空间则很快就被切割成只有一个数据点。如图7所示,黑色的点是异常点,被切几次就停到一个子空间;白色点为正常点,白色点聚焦在一个簇中。孤立森林检测到的异常边界为图7中红色线条,它能正确地检测到所有黑色异常点。

    7.图
    7.1 最大联通图
    7.2 标签传播聚类

    8.行为序列(马尔科夫链)

    9.有监督模型
    9.1 机器学习模型GBDT
    9.2 深度学习模型Wide&Deep
    Wide&Deep通过分别提取wide特征和deep特征,再将其融合在一起训练,模型结构如图12所示。wide是指高维特征和特征组合的LR。LR高效、容易规模化(scalable)、可解释性强。出现的特征组合如果被不断加强,对模型的判断起到记忆作用。但是相反的泛化性弱。

    10.其他问题
    10.1 常用选择阈值的思路
    10.2 非高斯分布转高斯分布
    有些特征不符合高斯分布,那么可以通过一些函数变换使其符合高斯分布,以便于使用上述统计方法。常用的变换函数:,其中c为非负常数;,c为0-1之间的一个分数。
    `

  5. DataCon 2019: malicious DNS traffic & DGA analysis
    https://www.cdxy.me/?p=806
    https://bithack.io/forum/258
    `
    通过对数据的初步人工浏览和简单可视化分析发现:
    ……

    据此,我的解题策略为:
    原始日志->特征工程->异常检测->人工验证(得到部分答案)->pattern提取->规则匹配->全部答案。

    接下来开始思考本题的特征维度。根据我的安全经验,将DNS攻击分为三种建模:
    1、密集请求型:例如随机子域名DDoS、反射型DDoS。其特征为QPS高、时序特征强,一般能够可视化观察到波峰。
    2、漏洞攻击型:例如针对DNS server的已知漏洞攻击。其特征为数量少、受DNS type影响,适合分类统计。如果批量PoC的话,则特征同1。
    3、数据传输型:例如DNS Tunnel、Malware DGA、PoC中的DNS回显、SSRF重绑定等。其特征在于域名文本特征明显、适用于规则匹配。

    将DNS日志的Request和Response join到一起,然后做统计特征和文本特征:
    DNS请求时序分布
    QPS min/max/avg
    QPS均值
    QPS波动性
    连接成功率
    DNS响应率
    TCP报文占比
    请求响应比
    单域名平均访问次数
    单目标高频访问
    多级子域名变化率
    DNS type时序分布
    DNS type源IP分布
    长随机域名
    DNS Tunnel特征
    部分DNS RCE
    心跳包

    异常检测
    将以上统计特征通过全量数据建立基线,然后在每个特征维度滤出超越3sigma的异常值。

    总结:
    从结果来看,本题最高效的特征如下:
    1、DNS type。
    2、src_ip维度的统计分析特征(QPS、域名数量、请求响应数),因为出题人将src_ip的行为做的非常干净,找到了IP就找到了攻击。

    分析方法只用了3sigma异常基线一种,人工排序观察Top的异常结果,确认攻击后写规则捞出全部同类攻击。
    `

  6. 异常点检测算法小结
    https://www.cnblogs.com/pinard/p/9314198.html
    `
    异常点检测,有时也叫离群点检测,英文一般叫做Novelty Detection或者Outlier Detection,是比较常见的一类非监督学习算法,这里就对异常点检测算法做一个总结。

    1. 异常点检测算法使用场景
      什么时候我们需要异常点检测算法呢?常见的有三种情况。一是在做特征工程的时候需要对异常的数据做过滤,防止对归一化等处理的结果产生影响。二是对没有标记输出的特征数据做筛选,找出异常的数据。三是对有标记输出的特征数据做二分类时,由于某些类别的训练样本非常少,类别严重不平衡,此时也可以考虑用非监督的异常点检测算法来做。

    2. 异常点检测算法常见类别
      异常点检测的目的是找出数据集中和大多数数据不同的数据,常用的异常点检测算法一般分为三类。

      第一类是基于统计学的方法来处理异常数据,这种方法一般会构建一个概率分布模型,并计算对象符合该模型的概率,把具有低概率的对象视为异常点。比如特征工程中的RobustScaler方法,在做数据特征值缩放的时候,它会利用数据特征的分位数分布,将数据根据分位数划分为多段,只取中间段来做缩放,比如只取25%分位数到75%分位数的数据做缩放。这样减小了异常数据的影响。

      第二类是基于聚类的方法来做异常点检测。这个很好理解,由于大部分聚类算法是基于数据特征的分布来做的,通常如果我们聚类后发现某些聚类簇的数据样本量比其他簇少很多,而且这个簇里数据的特征均值分布之类的值和其他簇也差异很大,这些簇里的样本点大部分时候都是异常点。比如我之前讲到的BIRCH聚类算法原理和DBSCAN密度聚类算法都可以在聚类的同时做异常点的检测。

      第三类是基于专门的异常点检测算法来做。这些算法不像聚类算法,检测异常点只是一个赠品,它们的目的就是专门检测异常点的,这类算法的代表是One Class SVM和Isolation Forest。
    `

  7. 智能监控成效的上限该如何突破?
    https://mp.weixin.qq.com/s/WCdtcGvT117PKe3Dfcmw3w
    `
    与通常的介绍文章不同,本文结合作者从事智能监控的实践经验,从聚合数据、明细数据两种数据形态入手分析它们对模型效果上限的影响,并介绍了基于这两种数据形态的智能监控常用做法的本质。

    “数据决定效果的上限,而算法只是尽量逼近这个上限”。所以,本文从异常检测数据形态的角度出发,分析了它们对检测模型效果的影响,同时给出了一些实践中的经验和理解,希望抛砖引玉,帮助到大家。

    现阶段的人工智能善于解决问题定义良好、问题边界清晰、且有大量标注数据的问题,比如:图像识别等。对于异常检测,缺乏标注数据、问题定义模糊,在工业界、学术界都是一个挑战,但是我相信在广大行业同胞、学术界教授们的努力下,有一天无人值守的梦想可以实现。
    `

  8. 智能监控成效的上限该如何突破?
    https://mp.weixin.qq.com/s/WCdtcGvT117PKe3Dfcmw3w
    `
    作为在工业界的人,我必须讲究方法在实践中的有效性,在做应用的这一波人里,有一句流行话:“数据决定效果的上限,而算法只是尽量逼近这个上限”,所以本文先从数据形态(聚合数据、明细数据,下文将详细解释)来分析方法的上限,然后再结合数据形态讨论方法的优缺点。

    现阶段的人工智能善于解决问题定义良好、问题边界清晰、且有大量标注数据的问题,比如:图像识别等。对于异常检测,缺乏标注数据、问题定义模糊,在工业界、学术界都是一个挑战,但是我相信在广大行业同胞、学术界教授们的努力下,有一天无人值守的梦想可以实现。
    `

  9. 学会五种常用异常值检测方法,亡羊补牢不如积谷防饥
    https://www.jiqizhixin.com/articles/2019-07-05-2
    https://towardsdatascience.com/5-ways-to-detect-outliers-that-every-data-scientist-should-know-python-code-70a54335a623
    `
    什么是异常/离群点?
    在统计学中,离群点是并不属于特定族群的数据点,是与其它值相距甚远的异常观测。离群点是一种与其它结构良好的数据不同的观测值。
    当观测值是一堆数字且都是一维时,辨别离群点很容易,但如果有数以千计的观测值或数据是多维的,你可能会需要更机智的方法来检测这些离群点。

    方法 1—均方差
    在统计学中,如果一个数据分布近似正态,那么大约 68% 的数据值会在均值的一个标准差范围内,大约 95% 会在两个标准差范围内,大约 99.7% 会在三个标准差范围内。
    因此,如果你有任何数据点超过标准差的 3 倍,那么这些点很有可能是异常值或离群点。

    方法 2—箱形图
    箱形图是数字数据通过其四分位数形成的图形化描述。这是一种非常简单但有效的可视化离群点的方法。考虑把上下触须作为数据分布的边界。任何高于上触须或低于下触须的数据点都可以认为是离群点或异常值。

    方法 3—DBScan 聚类
    DBScan 是一种用于把数据聚成组的聚类算法。它同样也被用于单维或多维数据的基于密度的异常检测。其它聚类算法比如 k 均值和层次聚类也可用于检测离群点。

    方法 4—孤立森林
    孤立森林是一种无监督学习算法,属于组合决策树家族。这种方法和以上所有方法都不同。之前的所有方法都在试图寻找数据的常规区域,然后将任何在此定义区域之外的点都视为离群点或异常值。
    这种方法的工作方式不同。它明确地隔离异常值, 而不是通过给每个数据点分配一个分数来分析和构造正常的点和区域。它利用了这样一个事实:异常值只是少数,并且它们具有与正常实例非常不同的属性值。
    该算法适用于高维数据集,并且被证明是一种非常有效的异常检测方法。

    方法 5—Robust Random Cut Forest
    Random Cut Forest (RCF) 算法是亚马逊用于异常检测的无监督算法。它也通过关联异常分数来工作。较低的分数值表示数据点点是正常的,较高的分数值则表示数据中存在异常。
    「低」和「高」的定义取决于应用,但一般实践表明,超过平均分三个标准差的分数被认为是异常的。算法的细节可以在论文《Robust Random Cut Forest Based Anomaly Detection On Streams》里找到。
    这个算法的优点在于它可以处理非常高维的数据。它还可以处理实时流数据(内置 AWS Kinesis Analytics)和离线数据。
    `

  10. ML CLUB | 面向图数据的异常检测综述概述
    https://mp.weixin.qq.com/s/WBxmr_hCOVUbSk15ZPWsjw
    `
    本文是“面向图数据的异常检测综述”文章的概述讲解,针对面向图数据的图异常检测算法近十年的发展,定义了静态与动态图异常,给出了若干范例并讨论了相关研究难点、研究关键词、相关综述概述与研究框架图,在此基础上给出了基于静态图和动态图的异常检测算法分类,并对该领域未来相关工作作出了总结与展望。

    图数据异常检测在图数据任务体系中与图分类任务、Graph Entropy与graph edit distance理论、图模式挖掘这些任务关联较大。在整理相关研究内容与综述时,我们也重点关注了这些关键词。
    •异常检测(Anomaly Detection)
    •动态网络(Dynamic network/Time-evolving graph/Dynamic Graph)
    •图神经网络与深度学习(Graph Neural Network)
    •新颖模式检测(Novelty Detection)
    •社群检测(Community Detection)
    •图论方法(Graph Entropy Theory/Graph Edit Distance)
    `

  11. MacOS Installer Package Spawns Network Event
    https://www.elastic.co/guide/en/security/current/macos-installer-package-spawns-network-event.html

    Elastic Security Overview #Elastic安全概述
    https://www.elastic.co/guide/en/security/current/es-overview.html
    `
    Elastic Security provides the following security benefits and capabilities:

    * A detection engine to identify attacks and system misconfigurations
    * A workspace for event triage and investigations
    * Interactive visualizations to investigate process relationships
    * Inbuilt case management with automated actions
    * Detection of signatureless attacks with prebuilt machine learning anomaly jobs and detection rules
    `

    Prebuilt rule reference # 680 rules (@2022-10-17)
    https://www.elastic.co/guide/en/security/current/prebuilt-rules.html

  12. 一起APT对抗中的深度智能入侵检测算法
    https://mp.weixin.qq.com/s/A_eGoENqMY-U9hbXiFMa-A
    `
    # 背景
    2023年7月11日,微软安全博客上公布了一个技术分析报告:
    一个叫Storm-0058的黑客组织入侵了它多个客户的邮箱,微软及时进行了处置。这个事件是由它的一个客户在6月16号进行的上报。

    # 攻击方式
    微软调查发现:
    2023年5月15号,这个组织就已经成功获取了微软多个企业客户的邮箱权限,累计有25个企业客户受影响,包括政府部门的。
    也就是说,从被入侵到被发现,中间持续了一个多月。

    攻击方式:
    攻击者获取到一个Microsft account comsumer signing key。之后使用了这个key派发认证token来访问用户邮箱。

    从后续描述看,这应该是微软云管理侧的一个大key。而不是针对每个客户的那种key。

    理论上讲,微软consumer signing key跟企业自身AD的管理key的权限应该是隔离的。consumer signing key不应该具备访问企业AD的权限。攻击者找到了一个token验证的漏洞。完成了此次操作。

    这个攻击路径,一看就只能直呼牛牛牛!

    # 如何检测
    好了,这么牛的攻击到底是哪个客户发现的?毕竟这个攻击连微软自己都没发现。
    cisa的官网公布了一个公告:
    美国联邦民事行政部门(FCEB)发现了这次可疑攻击。

    2023年6月的某天,FCEB某部门发现微软的Audit日志里面,出现了一条可疑记录。
    有异常的AppId和ClientAppId执行了MailItemAccessed。

    整篇文章的精华就是这一句。

    说的更直白点,FCEB建立了一个Outlook行为基线。尤其是MailItemAccessed事件。从而发现了微软这么牛逼都没发现的APT攻击事件。
    **
    这里没有神秘的深度神经网络。
    只有基线,异常。
    **
    重剑无锋,大巧不工。

    就是这么平平无奇的检测策略,发现了这么牛逼的APT攻击。

    # 启发
    对于APT检测而言,智能检测算法不需要那么牛逼。

    但需要你
    1. 日志。首先要有日志。如果你连日志都没有,你谈智能算法,深度神经网络,大模型。那只能说,你神经啊?需要的是合格的日志。当你有合格的日志进来,知道采集哪些日志,哪些因子,你就已经成功了百分之二十五。
    2. 基线。基线的意思是,你需要通过治理手段将访问行为规范化。只允许特定的应用,特定的账户做特定的操作。只允许特定的服务器访问公网。这些都是常见的治理方式。这个事情对整体的成功要贡献百分之二十五。
    3. 检测策略或者算法。这个占比只占百分之二十。
    4. 剩下百分之三十是运营处置。即使你发现的这些异常,你直接miss了,也是一个悲剧。

    这里FCEB的人很牛逼,运营发现后,立马进行上报。微软也展现了一流响应处置能力。除了定性,还具备吊销key的能力,这种线上大key,说处置就处置。还没引起故障。

    平行空间里,可能有个FCEB的人看到后,默默选择了忽略该告警。
    另一个平行空间里,FCEB的人上报了,但是微软没调查出结果。

    还有个哪些平行空间,大家都可以脑补。

    我现在比较关注后续对微软有没有啥处罚。

    在我看来,这是一起非常优秀的范例。
    其中既涉及到的包括检测响应这种技术方面的事情,又展示了FCEB 微软 cisa FBI的合作案例。同时这起案例里面还给出了,对企业的技术指导,包括开启哪些日志,如何建立基线等。
    `

  13. 加强监控以检测针对Outlook Online的APT活动
    Enhanced Monitoring to Detect APT Activity Targeting Outlook Online
    https://www.cisa.gov/news-events/cybersecurity-advisories/aa23-193a
    `
    In Mid-June 2023, an FCEB agency observed MailItemsAccessed events with an unexpected ClientAppID and AppID in M365 Audit Logs. The MailItemsAccessed event is generated when licensed users access items in Exchange Online mailboxes using any connectivity protocol from any client. The FCEB agency deemed this activity suspicious because the observed AppId did not normally access mailbox items in their environment. The agency reported the activity to Microsoft and CISA.
    2023 年 6 月中旬,一家 FCEB 机构在 M365 审计日志中观察到异常的 ClientAppID 和 AppID 的 MailItemsAccessed 事件。当许可用户使用任何客户端的任何连接协议访问 Exchange Online 邮箱中的项目时,会生成 MailItemsAccessed 事件。FCEB 机构认为此活动可疑,因为观察到的 AppId 通常不会在其环境中访问邮箱项目。该机构向 Microsoft 和 CISA 报告了该活动。

    (2023年7月14日更新) 微软确定,APT行为者访问并外泄了少数账户中的非机密Exchange Online Outlook数据。APT 行为者使用 Microsoft 帐户 (MSA) 消费者密钥伪造令牌,冒充消费者和企业用户。微软通过首先阻止使用获取的密钥签发令牌,然后更换密钥以防止继续滥用来补救该问题。微软确定该活动是针对多个组织(微软已通知所有这些组织)的活动的一部分。[1]

    受影响的 FCEB 机构通过利用增强的日志记录(特别是 MailItemsAccessed 事件)和已建立的正常 Outlook 活动基线(例如,预期 AppID )来识别可疑活动。 MailItemsAccessed 事件能够检测到难以检测到的对抗活动。

    CISA和FBI不知道是否有其他审计日志或事件可以检测到这一活动。强烈建议关键基础设施组织实施本建议中的日志记录建议,以加强其网络安全态势,并使自己能够检测到类似的恶意活动。
    `

  14. isc2022主题演讲:AI驱动API安全风险检测与运营
    https://zhuanlan.zhihu.com/p/548450688
    https://mp.weixin.qq.com/s/Sme4gLnEHyxyhRSN2RUqCA
    `
    议题简介:

    随着企业信息化建设的不断普及,业务服务激增。API作为大数据时代业务数据交换的流行架构模式,围绕着API展开的攻击日益频繁和多样,因此API安全在近几年逐渐成为各行业安全领域的重要关注点。
    一方面,企业API数量与日俱增,使用场景、交互逻辑日益复杂,另一方面,黑灰产攻击手段复杂多变、日新月异。虽然传统以正则匹配和专家经验为核心的规则策略在WEB应用安全领域取得了一定效果,但在逻辑攻击、业务安全等方向始终差强人意。自大数据时代开始,AI技术得到突破性的发展,以深度学习为代表的AI技术在各领域得到了非常广泛的应用。同样,在安全领域,下一个时代的安全攻防对抗将以数据为基础,以算法为核心。因此我们借助AI技术探索挖掘各类复杂业务场景下的API访问模式,计算评估异常行为,定位并解释恶意攻击,帮助提升API全生命周期的风控能力。

    # 1-AI算法驱动API风险检测与运营

    在互联网环境愈发开放的背景下,针对API的攻击风险和攻击频率正在急速增长,API已经成为攻击者重点攻击的主要对象之一。

    基于传统规则的API风险检测,是根据IP访问总量、IP访问去重敏感数据总量等规则进行攻击风险分析和检测;在风险运营侧,也需要根据大量的安全运营人员的的经验进行风险排查。

    在这个过程中,传统规则不仅无法完全覆盖风险的发现,也不能满足复杂业务系统的动态性与复杂性;同时,在风险运营方面,定制和维护大量的规则不仅严重依赖专家经验,且耗时耗力。

    而基于AI算法的API风险检测和运营,则具有以下几点优势:
    ☑ 发现未知的高级攻击
    ☑ 根据业务场景自适应学习
    ☑ 智能推荐和动态迭代规则

    # 2-基于AI算法的智能风险感知

    整个智能风险感知建模流程为:首先我们需要进行流量数据的处理,如数据预处理,特征工程等,然后基于算法模型进行账号破解、越权攻击、数据泄露等API风险的智能感知。

    “异常检测”是风险感知的重要组成部分,常见的异常检测算法包括图计算,极值理论,动态图模型等等。拿图计算举例,应用到安全领域,图计算可以进行风险挖掘并进行安全可视化分析:综合利用节点特征和边的关联关系,如果出现异常的点、边、聚集性子图,风险的可能性往往较高。

    由于攻击者受资源约束和任务约束,资源、任务维度的同步以及和正常行为的偏离很难规避,因此可以利用图计算进行异常点、边、子图的挖掘进行风险的感知。

    传统规则引擎大多都是基于专家经验设定,不仅严重依赖专家经验,而且庞大的规则库难以维护,同时对于未知的高级攻击也成效甚微。基于以上痛点,我们可利用算法模型在不同攻防场景向运营人员智能推荐不同规则,并随着时间推移和攻防的升级智能迭代规则策略,打造智能规则引擎。

    利用智能规则学习算法,不仅解决了运营人员不知道怎么配置规则的问题;也能大幅降低运营人员在根据风险定制规则和维护规则库上的时间成本

    整个智能风险感知建模流程首先进行流量数据的处理,例如数据预处理,特征工程等,然后基于算法模型进行风险感知。**值得注意的是,模型也有一系列的全生命周期管理:模型评估,解释,监控,更新,这样才能保证整个算法建模流程的畅通。**

    # 3-基于AI算法的智能风险运营

    智能风险运营的建模流程是首先要基于智能风险感知流程产出的风险,进行推理、洞察、降噪、推送、分级等风险处置后,根据优先级对风险进行智能解释。

    很多种不同攻击方式会触发大量事件级别异常告警,形成风险风暴,例如登录爆破、资产扫描、漏洞扫描、数据爬虫等;因此我们可以通过异常检测算法进行风险风暴的检测,并用算法(例如聚类)进行风险的分类。

    在分类完成后,利用算法先进行风险的分级,然后根据分级结果对一个类别中的核心风险(例如聚类核心)进行推送,以提升运营效率。

    传统的风险异常是基于安全运营专家的经验进行解释,但是这种方式不仅极度依赖人为经验,而且费时费力。因此设计一系列根因分析算法为各种风险类型提供解释,对安全运营者进行风险分析大有帮助。

    **shap算法的核心思想是计算特征对模型输出的贡献,再从局部和全局两个层面对算法模型进行解释。简单来说就是shap算法基于统计原理去衡量特征对模型输出的贡献。**如图所示,我们利用shap算法发现某个风险ip主要是UA类型和访问去重数据量过多导致出现了风险告警。

    多维下钻算法的原理是当出现异常能够从多个维度(例如UA类型,地理位置,设备型号等等)下钻的快速精准根因定位。如图所示,是用根因分析算法快速定位到的某政企部分内网IP在2022年6月1号凌晨1点-2点突然对某敏感数据接口发起大量访问获利。

    # 总结与展望
    ● 传统以正则匹配和专家经验为核心的规则策略在WEB应用安全领域取得了一定效果,但在逻辑攻击、业务安全,新威胁发现等方向上始终差强人意。大数据时代,AI算法有望在这些领域大放光彩。
    ● 如何在大量风险告警中快速定位真实风险并精准解释是安全攻防场景绕不开的问题,应用算法进行风险分类分级,并进行根因定位对安全运营大有帮助。
    ● 由于数据安全领域难以获得数据标注,以及黑客、黑灰产攻击手段不断进阶升级,知识图谱、迁移学习、强化学习等等前沿领域在数据安全领域大有用武之地。
    `

  15. 基于UI交互意图理解的异常检测方法
    https://tech.meituan.com/2023/11/23/the-intent-of-ui-interaction-understanding.html
    `
    1. 背景
    近年来,随着美团多种业务线的扩充和迭代,UI测试的任务愈发繁重。针对UI测试中人工成本过高的问题,美团到店测试团队开发了视觉自动化工具以进行UI界面的静态回归检查。然而,对于UI交互功能逻辑的检验仍强依赖于脚本测试,其无法满足对于进一步效率、覆盖面提升的强烈需求。主要难点体现在两方面:

    * 前端技术栈多样,不同页面的实现方式各异,这导致不同页面中功能相似的UI模块的组件树差异很多,基于规则的测试脚本也就很难具备泛化能力,生产、维护的成本非常高。
    * UI样式繁多,同样的功能模块可能在视觉上有很大差异,这为基于CV方法实现自动化驱动带来了困难。

    考虑上述两个难点,美团到店平台技术部/质量工程部与复旦大学计算机科学技术学院周扬帆教授团队展开了“基于UI交互理解的智能化异常检测方法”的科研合作,利用多模态模型对用户可见文本、视觉图像内容和UI组件树中的属性进行融合,实现了对于UI交互意图[1]的准确识别。该工作对于大前端UI的质量保障等多个领域都具有可借鉴的意义,介绍该工作的学术论文[2]已经被 ESEC/FSE 2023 (软件领域CCF A类推荐会议)接收,并将于12月6日在其工业届轨(Industry track)公开发布、推介。

    2. UI交互介绍
    2.1 UI模块与交互意图
    2.2 当下痛点与启示
    2.3 研究目标
    本课题期望结合多种机器学习方法,通过机器获取与人工认知一致的“交互意图”,从而利用该信息模拟测试人员对客户端产品进行“理解-操作-检查”的测试验证流程。如人工操作一般,我们希望该能力能够以一个与一般用户类似的逻辑来操作、检查相似的功能,同时兼容不同的技术栈、App、业务领域,无需特定适配。就像一个用户在美团上能够订酒店,在没有使用过的点评或者美团小程序上也同样能完成预订酒店的流程。

    从能力目标视角来看,UI交互意图识别的定位是完成一般用户的交互概念到页面实体的映射。由人直接进该映射的准确率最高、泛化性最好,典型的场景就是手工测试,即人观测页面后操作、检查。人能在不同的设计、程序实现形式下实现下找到目标操作实体(例如各种各样的提交按钮、商品卡片)。当前的自动化脚本测试提高了效率,但由于映射的泛化性较差,往往需为每个页面做单独的适配。

    此外,业内尝试了诸如CV页面目标检测等方法,但在鲁棒性、泛化性、使用成本等方面上仍不太令人满意。本研究旨在利用深度学习和多模态信息,通过少量标注数据,尽可能提升交互意图识别的映射能力,使其接近人的识别、认知水平。

    2.4 效果预期
    本研究提供一种UI交互意图理解的通用能力,能够在测试核心流程“理解-操作-检查”各个环节应用。
    * 识别页面模块交互意图:通过页面UI交互意图识别来模拟测试人员的认知
    * 测试行为的注入:利用UI交互意图识别结果信息,将操作逻辑程序化
    * 测试结果检查:利用UI交互意图识别结果信息进行页面状态通用化校验

    3. 架构设计
    3.1 技术思路
    3.2 当前进展与效果Demo
    3.3 实现难点
    如何让机器学习到一般用户的认知概念,自动分析获取到预先定义的UI交互意图是本课题中最大的难点。

    4 实现方式探索
    针对上述难点,本课题从真实的业务需求出发,首先梳理了需要识别的交互意图类别。随后,对交互意图类别进行了分析,先后进行了多种方法的尝试,通过定量实验对不同设计进行了效果比对,最终选取了先分类,再聚类的落地方案:先以渲染树元素为最小单位进行交互意图类型的分类,然后在不同的交互意图维度进行元素聚类,生成对应的交互意图簇。

    4.1 交互意图识别需求
    4.2 模型的输入
    4.3 双阶段UI交互意图理解
    4.3.1 UI组件分类模型
    4.3.2 交互意图簇生成:UI组件聚类
    4.4 实验结论
    综上,我们得到了以下结论:

    本研究提出的基于多模态自注意力深度学习的UI交互意图理解方案在准确性、泛化性上具有一定优势,且其对数据标注和训练轻量化的需求贴合业界的真实测试场景。

    5 实际落地探索
    基于UI交互意图理解的智能化测试用例驱动

    6 总结
    本文介绍了利用页面多模态信息在UI测试领域的探索与实践经验。针对意图信息识别问题,我们利用图像+文本+渲染布局属性信息探索出了一种交互意图簇识别模型,验证了基于自注意力的多模态方向可行性。此模型可以识别出渲染树元素多维度的意图属性信息,同时利用聚类算法将节点聚成交互意图簇,可以为后续的任务提供结构化决策信息。在标注数据较少的情况下仍体现了较好的准确率以及泛化能力。后续计划通过扩大数据集、加强预训练等方式继续提升模型识别的精度。

    回顾整个UI交互意图理解探索历程,先后经历了“无监督/无类别的区域划分”,“有监督针对UI节点分类”, “分类后聚类”, “利用识别结果进行测试用例编写、执行”四个阶段。目前在UI交互意图提取上我们已探索出了较为合适的方案,正进行实际业务落地,让UI交互意图识别能力融入当前大前端测试能力,在智能测试用例驱动、智能检查等方向上取得实际应用收益。

    7 展望

    下面是几个基于UI交互意图理解能力开展的业务落地工作。

    1. 智能探索性测试

    当前App功能复杂,有大量可以操作的组件,无意识的探索效率太低,期望利用意图识别结果,对当前测试场景的一些通用可操作组件执行有意义操作的自动化测试,并进行逻辑问题校验。

    2. 跨分辨率UI Diff及归因

    不同分辨率/设备下布局存在差异,像素级比对无法识别不同分辨率下的UI Diff。使用交互意图簇Diff 可以大大削弱像素位置的差异造成的干扰,支持跨分辨率的比较,凸显Diff所需要关注的文本/图像变化,并可利用意图信息对结果进行结构化归因。

    3. 节点匹配选择

    利用意图识别预训练模型,支持节点匹配任务,实现泛化性较强的跨分辨率、跨技术栈、跨App的节点查找能力,与现有的基于XPath、Selector等的线性条件节点选择模式形成互补。

    在中长期来看,我们期望将UI交互意图识别作为大前端结构化信息提取的通用能力,在不同的业务领域进行如智能测试bot、终端测试标准化知识组织与覆盖率评估、智能辅助测试用例编写与生成等方向上持续探索、落地。
    `

  16. 收藏!14 种异常检测方法总结
    https://mp.weixin.qq.com/s/-tERMxGJX2vbHop7csL33Q
    `
    方法类别

    # 基于分布
    3sigma(值>mu+3sigma或值3)
    boxplot(值>q3+1.5IQR 或 值Grubbs临界值)

    # 基于距离
    KNN(K近邻平均距离>阈值)

    # 基于密度
    LOF(LOF>阈值)
    COF(COF>阈值)
    SOS(异常概率>阈值)

    # 基于聚类
    DBSCAN(无法被聚类成簇(label=-1))

    # 基于树
    iForest(异常得分>阈值)

    # 基于降维
    PCA(低维空间在所有方向上的偏离程度>阈值)
    AutoEncoder(重建样本和原始样本的误差>阈值)

    # 基于分类
    One-Class SVM(超平面外部的点(label=-1))

    # 基于预测
    Moving Average、ARIMA等(预测值和真实值的残差+基于分布的方法)
    `

  17. ##### 异常检测的原理和逻辑是什么?

    异常检测是一种数据分析技术,旨在识别数据中的异常模式或行为,这些异常可能表示潜在的问题、威胁或机会。异常检测的原理和逻辑如下:

    1. **定义正常模式**:首先,**异常检测需要先建立对“正常”行为或模式的理解。这可以通过历史数据、统计分析或专业知识来定义**。正常模式通常是指数据的典型行为,不包含异常情况。

    2. **检测异常**:一旦定义了正常模式,异常检测算法会分析新的数据样本,并与正常模式进行比较。如果数据样本与正常模式有显著差异,算法会将其标记为异常。

    3. **异常检测方法**:**异常检测方法可以简单分为基于规则的方法和基于统计学习的方法**。基于规则的方法依赖于预先定义的规则或阈值来识别异常,而基于统计学习的方法则利用数据的统计特征来检测异常。

    4. **常见异常检测算法**:常见的异常检测算法包括基于统计的方法(如Z分数、箱线图)、基于机器学习的方法(如离群点检测算法、聚类方法)以及基于深度学习的方法(如自编码器)等。

    5. **评估和调整**:在应用异常检测算法时,需要对其性能进行评估和调整。这包括使用评估指标(如准确率、召回率、误报率)来评估算法的效果,并根据需要调整算法参数或模型。

    总的来说,**异常检测的原理是通过与正常模式进行比较,识别数据中的异常模式或行为**。这种技术在安全领域、金融领域、工业生产等多个领域都有广泛的应用,帮助组织及时发现潜在问题并采取相应措施。

    ##### 信息安全中的异常检测的定义是什么?

    在信息安全领域,异常检测是指通过监控和分析系统或网络中的行为、活动或数据,以便及时发现和识别与正常行为模式不符的异常情况。这些异常情况可能是潜在的安全威胁、攻击行为、系统故障或其他异常事件。异常检测在信息安全中扮演着重要的角色,可以帮助及早发现潜在的安全问题,防止数据泄露、网络攻击和其他安全威胁。

    具体来说,信息安全中的异常检测通常包括以下方面:

    1. **监控行为**:异常检测系统会监控系统、网络或应用程序的各种行为,包括用户登录、文件访问、数据传输等,以便及时发现异常活动。

    2. **建模正常行为**:异常检测系统会通过学习和建模系统的正常行为模式,例如用户的典型操作模式、网络流量的正常模式等,以便将来检测到的行为与正常行为进行比较。

    3. **识别异常**:一旦系统检测到与正常行为模式不符的活动或数据,就会将其标记为异常。这可能表明潜在的安全威胁或其他问题。

    4. **响应和处理**:异常检测系统还需要能够及时响应异常情况,采取相应的措施,例如发出警报、阻止访问、隔离系统等,以减少潜在的安全风险。

    总的来说,信息安全中的异常检测旨在通过监控和分析系统行为,及时发现潜在的安全问题和异常情况,从而保护系统免受攻击和威胁。

    ##### 异常检测的难点主要在哪?

    异常检测在实践中面临多个挑战和难点,其中一些主要问题包括:

    1. **数据不平衡**:**异常数据通常是少数类别,与正常数据相比数量上存在明显不平衡**,这可能导致模型倾向于预测常见类别而忽略异常。

    2. **特征工程**:**选择合适的特征对异常检测至关重要**。有时候异常数据的特征可能与正常数据有很大不同,这就需要设计能够捕捉这些不同之处的特征。

    3. **噪声和异常数据的区分**:噪声数据与异常数据之间的界限有时很模糊,需要一种方法来有效区分它们。

    4. **领域知识**:**对于某些领域,需要深入了解数据的业务背景和特点,以便更好地识别异常**。

    5. **模型选择**:选择合适的异常检测算法对于取得良好的性能至关重要。不同的数据和场景可能需要不同的模型。

    6. **评估指标**:如何评估异常检测模型的性能也是一个挑战,因为通常无法依赖传统的准确率等指标。

    7. **实时性要求**:某些场景下需要实时检测异常,这就要求算法具有高效性能。

    8. **数据质量**:**异常检测的准确性高度依赖于数据的质量,包括数据的完整性、一致性和准确性**。

    解决这些挑战需要综合运用数据处理技术、机器学习算法、领域知识和实践经验。

    ##### 数据安全中,有没有基于特征去判断操作是否异常的具体案例可以分享一下?

    当涉及数据安全异常检测时,基于特征去判断操作是否异常是一种常见的方法。以下是一个简单的案例示例:

    假设你正在监控一家电子商务网站的用户行为,以检测潜在的异常操作。在这种情况下,你可以收集各种特征来描述用户的行为,例如:

    1. 登录时间:正常用户可能在白天登录,而异常用户可能在深夜登录。
    2. IP地址:正常用户的IP地址可能在同一地理位置或者在常用的地理位置范围内,而异常用户可能使用来自不同国家或地区的IP地址。
    3. 购买金额:正常用户的购买金额可能在一个合理的范围内,而异常用户可能购买大量高价值商品。
    4. 点击率:正常用户可能有一定的点击率模式,而异常用户可能频繁点击同一页面或者点击不相关的内容。

    基于这些特征,你可以使用机器学习算法或者规则引擎来构建异常检测模型。例如,你可以训练一个监督学习模型,使用已知的正常和异常操作数据来建立模型,然后对新的操作进行预测并标记为正常或异常。

    通过不断优化特征选择、模型训练和调整阈值等方法,你可以不断改进异常检测系统,以更好地保护数据安全。

    ##### 异常判断的步骤

    异常判断是指在数据安全或其他领域中,识别出与正常行为或模式不符的异常情况。以下是一般情况下异常判断的步骤:

    1. **数据收集**:首先需要收集相关数据,这些数据可能是用户行为数据、系统日志、传感器数据等,用于后续的分析和判断。

    2. **数据预处理**:对数据进行清洗、去噪、特征选择等预处理步骤,确保数据质量和可用性。

    3. **特征提取**:从原始数据中提取特征,这些特征可以是统计特征、频率特征、时间序列特征等,有助于描述数据的特点。

    4. **模型选择**:选择合适的异常检测模型,比如基于统计方法、机器学习方法、深度学习方法等,根据具体情况选择最适合的模型。

    5. **模型训练**:使用标记的正常数据进行模型训练,使模型能够学习正常模式。

    6. **异常检测**:使用训练好的模型对新数据进行预测,识别出可能的异常情况。

    7. **阈值设置**:根据业务需求和实际情况,设置合适的阈值来判断何为异常,这可以影响准确率和召回率。

    8. **异常结果分析**:对检测到的异常结果进行分析,确定其是否真的是异常情况,排除误报的可能性。

    9. **反馈与持续优化**:根据检测结果反馈到模型中,持续优化模型以提高异常检测的准确性和效率。

    10. **部署与监控**:将优化后的模型部署到实际环境中,并进行持续监控,确保异常检测系统的稳定性和可靠性。

    以上是一般异常判断的步骤,具体实施时可能会根据具体情况和领域的不同而有所调整。

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注