原文标题:Hopper: Modeling and Detecting Lateral Movement Attacks
原文作者:Grant H, Mayank D, Devdatta A, Vern P, Stefan S, Geoffrey M. V, David W
原文链接:https://www.usenix.org/system/files/sec21-ho.pdf
发表会议:30th USENIX SECURITY SYMPOSIUM
笔记作者:[email protected]
笔记小编:[email protected]
Hopper构建内网机器之间的用户移动(登录)图,然后在该图中使用新颖的算法识别可疑移动路径。
攻击者在横向移动活动中需要获取并切换到一组新的凭据,以此来启用更高的访问权限。利用这一点,Hopper跟踪每个企业用户的登录路径,并通过识别路径来检测横向移动。作者开发了新的方法来关联随时间推移的活动,并在没有标记数据的情况下检测罕见的攻击。
作者所制定的规范指出,任何成功的横向移动攻击都:(1). 切换到一组新的凭据;(2). 最终访问初始用户无法访问的服务器。作者将此规范与异常检测相结合以降低误报率。
Hopper构建系统内部机器之间的用户登录图,然后通过识别该图中的“可疑”路径来检测横向移动。作者认为,可疑路径对应两个属性:(1). 该路径至少有一个用户使用一组与自己不匹配的凭据登录;(2). 路径访问至少一台用户根据自己的凭据无法访问的机器。
图1显示了一个由Hopper构建的登录图的示例。每次登录都会在图中创建一条有向边,其中边的源节点和目标节点分别对应发起和接收登录的机器。边表示从源机器到目标机器唯一的、带时间戳的登录,相同的两台机器之间的多次登录会生成多条边。每条边都标有目标用户名(目标机器上登录的账户)。
上图中,黑边代表了用户的良性登录事件,红色边代表了横向移动路径。每个节点代表一个内部企业机器,每条边代表一个登录事件。
下表显示了登录数据中包含的信息,用于标记图中的每条边和节点。
Hopper主要包括两个阶段,如图3所示:Hopper的第一个阶段是由一个“因果引擎(causality engine)”组成,该引擎根据各登录事件生成一组登录路径。第二阶段Hopper使用一组登录路径,并通过识别这些登陆路径中是否包含上述两个关键攻击属性来决定是否生成警报。在第二阶段,Hopper修剪常见的良性移动路径,为每条路径提取一组攻击驱动的特征,并结合使用检测规则和新的异常评分算法来计算每条登录路径的可疑性。
在一些情况下,如果路径包含足够多的可疑特征,Hopper 可以使用简单的规则集为该路径生成警报。在其他情况下,Hopper 的“因果关系”引擎无法提供足够的特征来直接将路径标记为恶意路径或良性路径。对于后一种情况,Hopper 采用用户指定的警报预期,该预期限制了它为这些不明确的场景生成的警报数量。使用此警报预期及其异常评分算法生成的可疑分数,Hopper 输出最可疑路径的列表。
对于每个登录(Li),Hopper第一阶段的“因果关系”引擎会粗略地推断登录所属的更广泛的移动路径,以及这个移动路径上的初始的启动用户(causal user)。Hopper使用基于时间的启发式算法为Li推断出一组“因果路径”。
一些情况下,Hopper可以清楚推断出新登录的单一路径和启动用户,使得Hopper可以用一组简单检测规则对登录路径进行分类。但是某些登录会导致Hopper生成许多不同启动用户的推断路径,这创造了路径Li不确定的真正的启动用户和路径。这种情况下,Hopper根据异常评分算法决定是否对推断路径发出警报。
下图是Hopper的“因果关系”引擎生成的推断因果路径中包含的信息:
Hopper的“因果关系”引擎需要三个输入:一个新的登录事件(Li)来去推断路径、一组所有的最近登录、一个不断增量更新的可疑登录路径“监视列表(watchlist)”。Hopper的“因果关系”引擎的“第一关”(first pass)旨在做出Li的贪婪决策,通过生成一组一跳或两跳的因果路径,然后将这些路径传递给警报生成器(alert generator)。如果警报生成器无法对其路径有一个良性或恶行的明确划分,则因果引擎的“第二关”(second pass)会继续跟踪路径,不断地向警报生成器重新提交不断更新的更长的路径。
对于每个登录路径,Hopper的警报生成阶段来决定路径是良性的还是可疑的,并采取以下三种操作之一:生成路径、丢弃路径、或将该路径加入到可疑登录路径“监视列表”中。
它在给定的三个输入的情况下做出决定:分类的登录路径(图4)、一组用于特征提取的历史登录事件、用户提供的“预期”,控制Hooper每天应产生多少警报。给定这些输入,Hopper将路径与横向移动的场景(四种良性场景、两种攻击场景、或者以上都不是)进行匹配。对于除了良性场景的剩余路径,Hopper将路径与攻击场景相匹配,并使用该场景的相应检测器,这个检测器会为路径提取一组特征,然后应用规则集或者异常评分算法来确定路径是否可疑,从而确定是否产生警报。如果一条路径与良性场景不匹配,并且在任何一个检测器下均为生成警报,就会把它添加到“监视列表”中进行进一步的跟踪。
警报聚类:Hopper会把每天的警报聚集在一起,从而避免同一路径生成冗余警报。
作者使用来自Dropbox的15个月的数据集来评估Hopper。Hopper可以成功检测到数据集中95.4%的攻击,同时平均每天生成9个警报。
第二列为Hopper所检测到的清楚凭据切换的攻击次数。第三列为Hopper针对“因果关系”不明确的路径所检测到的攻击次数。最后一列为Hopper的总体检测率:Hopper识别出的攻击总数/该场景的攻击总数。其中标星号的三行,是由于数据中登录属性的不准确或缺失,从而未能检测到这些攻击。
安全学术圈招募队友-ing
有兴趣加入学术圈的请联系 secdr#qq.com