Sec Hotspot 首页  排行榜  收藏本站  技术博客  RSS
统计信息
已收录文章数量:12203 篇
已收录公众号数量:89 个
本站文章为爬虫采集,如有侵权请告知
已收录微信公众号
网信中国 区块链大本营 白说区块链 区块链投资家 区块链官微 区块链铅笔Blockchain HACK学习呀 二道情报贩子 合天智汇 小白帽学习之路 小米安全中心 弥天安全实验室 SAINTSEC SecPulse安全脉搏 TideSec安全团队 360安全卫士 游侠安全网 计算机与网络安全 安全祖师爷 安全学习那些事 腾讯安全联合实验室 黑客技术与网络安全 安全圈 腾讯御见威胁情报中心 Python开发者 Python之禅 编程派 Python那些事 Python程序员 安全威胁情报 吾爱破解论坛 行长叠报 安在 i春秋 嘶吼专业版 E安全 MottoIN 网信防务 网安杂谈 数说安全 互联网安全内参 漏洞战争 安全分析与研究 邑安全 ChaMd5安全团队 天融信阿尔法实验室 安全牛 SecWiki 安全学术圈 信安之路 漏洞感知 浅黑科技 Secquan圈子社区 奇安信集团 奇安信 CERT 国舜股份 雷神众测 盘古实验室 美团安全应急响应中心 瓜子安全应急响应中心 顺丰安全应急响应中心 蚂蚁金服安全响应中心 携程安全应急响应中心 滴滴安全应急响应中心 字节跳动安全中心 百度安全应急响应中心 腾讯安全应急响应中心 网易安全应急响应中心 OPPO安全应急响应中心 京东安全应急响应中心 Bypass CNNVD安全动态 安恒应急响应中心 天融信每日安全简报 奇安信威胁情报中心 看雪学院 黑白之道 水滴安全实验室 安全客 木星安全实验室 云鼎实验室 绿盟科技安全预警 白帽汇 深信服千里目安全实验室 腾讯玄武实验室 长亭安全课堂 FreeBuf 绿盟科技 nmask
使用yarGen提取Linux恶意脚本特征
本文来自公众号:深信服千里目安全实验室   2020.05.30 18:00:34


不同于Windows,Linux下的恶意软件多为sh脚本,且由于使用的命令大同小异(均为下载文件、运行进程、创建定时任务、写ssh后门等操作),经常难以分辨恶意sh脚本是属于哪个病毒家族的。


遇到这种情况,使用yara规则对恶意脚本进行检测分类是个不错的选择,本文将介绍 如何借助yargen实现对Linux恶意脚本特征的半自动化提取


什么是yargen?


yargen是一个自动化提取yara规则的工具,可以提取strings和opcodes特征,其原理是先解析出样本集中的共同的字符串,然后经过白名单库的过滤,最后通过启发式、机器学习等方式筛选出最优的yara规则,项目地址:https://github.com/Neo23x0/yarGen。


下面就以8220黑客团伙(StartMiner)的恶意脚本进行演示:


如何提取其yara规则?

首先需要收集该家族每次变种的样本,如下图所示,该家族从2018年8月到现在一直在更新,其特点是脚本大部分都伪装成.jpg后缀。


yargen的用法很简单,-m参数,加上样本集的目录就行了,第一次运行yargen的话可能会比较久,因为它要下载更新白名单库。

运行过程中,yargen会显示提取的特征数详情,其中我们要关注的是SUPER rules,这些规则代表的是泛规则,可以匹配家族的多个样本。

生成的文件yargen_rules.yar在yargen.py的同目录下,打开找到Super Rules的地方,即是泛规则。

规则的名字代表着能匹配哪些样本,如下图第一个rule _logo8_jpg_hehe_0,代表匹配脚本logo8.jpg及hehe.sh。

不过也不是 Super Rules里 所有规则都要关注,主要聚焦看匹配数最多的规则,如下我会关注

rule _cr_logo8_jpg_2start_jpg_2start_jpg_3start_jpg_1

规则,及

rule _cr_cr_logo8_jpg_logo8_jpg_2start_jpg_2start_jpg_2start_jpg_2start_jpg_3start_jpg_3start_jpg_3规则。

yargen虽然能自动化提取字符串特征很方便,但工具难免会有误报,必须得自己人工筛选一遍,如下图,先看

rule _cr_logo8_jpg_2start_jpg_2start_jpg_3start_jpg_1规则,我挑选了红框中5个比较特别的字符串,其他一些WGET、download、sleep等字符串可能会存在误报场景,就不考虑了。


再看

rule _cr_cr_logo8_jpg_logo8_jpg_2start_jpg_2start_jpg_2start_jpg_2start_jpg_3start_jpg_3start_jpg_3规则,由于其匹配的样本数多,自然的特征项就比较少,选取了如下2个特征。

筛选出前面所说的特征后,需要查看字符串在脚本中对应的位置,以确认该特征是否为黑客独特的脚本编写习惯。

如下图以echo “*”为例,发现黑客在编写echo语句时都喜欢在开头加个大写首字母,且延续了好几个变种,这个可以作为特征。

再看"case $sum in"规则,该语句用于判断文件MD5,也是黑客的一个脚本编写习惯,延续了几个变种。

除此之外,还发现脚本里都有f2=”*”的变量声明,也可以作为特征。


以及judge函数名。


接下来提取脚本中的域名/IP作为特征,因为黑客在新的变种中有可能复用旧的C&C。


最后优化后的规则如下,主要为3类字符串,语法特征、变量特征、ioc特征,根据不同的比重编写condition,其中ioc相当于硬性指标,只要出现任意1个就可以直接确认该脚本为8220/StartMiner家族。


验证:对该规则进行测试,测试样本均能检出。

Linux脚本基本不会进行混淆,且均是字符串,使用yargen进行自动化提取有其优势,可以大大提高提取特征的效率,大家可以尝试使用该方法来提取其他家族的yara特征。


另外,每个安全研究员提取的yara都不一样,风格不一,需要进行大量样本的测试,来不断优化yara规则的质量。


参考链接:

https://blog.csdn.net/m0_37552052/article/details/104570954

https://s.tencent.com/research/report/978.html



深信服千里目安全实验室
扫描关注我们