你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

手工搭建一个简易的Linux恶意脚本分析系统

[复制链接]
gaosmile 发布时间:2020-9-15 21:03
概述
Linux环境下的恶意软件大部分以shell脚本作为母体文件进行传播,而且,同一个病毒家族所使用的的恶意脚本往往具有极高相似性,新变种的脚本大部分是在旧变种脚本的基础上进行修改,新增或替换部分关键恶意代码,同时,不同家族之间的恶意脚本也可能出现代码互相借鉴,部分重合的情况。
该如何揭示病毒家族中恶意脚本之间的关系呢?接下来,我们就通过手工搭建一个简易的恶意脚本分析系统,来实现对恶意脚本之间关系的研究。
系统功能
系统的功能如下,主要为3个:
使用yara检测脚本对应的病毒家族。
计算脚本与样本库中每个样本的相似度。
提取脚本新增/改动的恶意代码。
通过以上3个环节,就能检测出该脚本所属的家族,与其最相似的样本,以及新改动的恶意代码,从而快速定位到本次病毒变种更新的恶意项(C&C域名/文件路径/进程名等)。
微信图片_20200915205941.jpg
使用方法
系统结构由3部分组成,yara规则库、病毒样本库、功能代码,后者运行后会读取规则和样本内容进行检测。
微信图片_20200915205945.jpg
系统运行效果如下,测试的脚本为7月份新发现的H2Miner新变种,该变种与1月份变种ex.sh的相似度为97%,与5月份变种sa.sh的相似度为93%。同时,相比于1月份的变种新增了18行代码,更改了8行代码。
微信图片_20200915205948.jpg
然而,待检测的脚本有可能是新的病毒家族,已有的yara规则无法匹配成功,这时候系统会遍历该脚本与样本库中每一个样本的相似度,筛选出相似度最高的家族。
微信图片_20200915205952.jpg
系统运行完成后,会生成一个html报告,用于可视化显示脚本之间的具体差异。
微信图片_20200915205955.jpg
显示效果如下,高亮显示脚本与相似样本间具体的新增/更改/删除恶意代码行。
微信图片_20200915205958.jpg
原理分析
3个核心功能分别由yara_scan函数、check_similarity函数、parse_modification函数实现,若check_similarity没有计算出相似度高的关联样本,则不执行parse_modification函数。
微信图片_20200915210002.jpg
yara_scan函数
通过yara库,调用rule_db里的yara规则对目标脚本进行扫描,返回匹配到病毒家族名。
微信图片_20200915210005.jpg
目前支持的检测的病毒家族如下。
微信图片_20200915210009.jpg
check_similarity函数
调用开源difflib库的SequenceMatcher函数进行文本相似度计算,筛选出相似百分比最高的样本。PS:若前面yara检测出对应的病毒家族,则只计算该家族目录下的样本相似度,否则,计算所有家族样本的相似度。
微信图片_20200915210013.jpg
样本按照发现日期进行存放,便于整理其中关系。
微信图片_20200915210017.jpg
parse_modifcation函数
最后,使用difflib.context_diff函数提取差异(新增/更改/删除)代码,并使用difflib.HtmlDiff生成详细报告。
微信图片_20200915210020.jpg
总结
Linux恶意脚本大部分没有进行混淆,使用开源库difflib进行文本比较是个简单高效的方法,通过该系统,可以快速的分析新型恶意脚本的更新部分,以及与其他病毒家族脚本的关系。

收藏 评论0 发布时间:2020-9-15 21:03

举报

0个回答

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版