一个Python开源项目-腾讯哈勃沙箱源码剖析(上)

2019年来了,2020年还会远吗? 请把下一年的年终奖发一下,谢谢。。。

回顾逝去的2018年,最大的改变是从一名学生变成了一位工作者,不敢说自己多么的职业化,但是正在努力往那个方向走。

以前想的更多是尝试,现在需要考虑的更多是落地。学校和公司还是有很大的不一样,学到了很多东西

 

2019年了,新年新气象,给大家宣布一下”七夜安全博客“今年的规划:

1. 2019年不再接任何商业广告(文末腾讯广告除外),纯粹输出安全技术干货。

2. 2019年每周至少两篇原创图文,也就是说每个月至少八篇文章。

3. 2019年每篇图文都不再单独开赞赏,统一在每个月1号开赞赏,并回顾上个月的内容,简称收租,大家觉得上个月的文章不错,就多赞赏即可

4. 2019年的主题是二进制安全,至少上半年是这样,包括木马的设计与检测方面,会按照系列和专题发布文章。

 

废话不多说,新的一年就从哈勃沙箱说起,用来检测linux恶意文件。

 

哈勃沙箱

今天说的哈勃沙箱是腾讯哈勃检测系统中,linux恶意文件检测部分的开源代码。github地址为:

 

https://github.com/Tencent/HaboMalHunter

一个Python开源项目-腾讯哈勃沙箱源码剖析(上)

 

今天是源码剖析的第一篇,目标是简要介绍一下沙箱使用的检测手段和主要技术点。从github中输出的html报表里,监控的信息还是挺丰富的。这里只截取一部分,根据github中的说明,大家很容易就可以搭建一个沙箱。

 

一个Python开源项目-腾讯哈勃沙箱源码剖析(上)

 

静态检测

在哈勃沙箱的代码目录中,static目录下即为静态检测的代码,代码很清晰。静态检测的本质是特征码匹配,对已知的恶意文件进行快速匹配进而查杀,如果能在静态检测层面发现恶意代码,就不需要动态分析了,这样速度就会快很多。

 

一个Python开源项目-腾讯哈勃沙箱源码剖析(上)

 

 从static_analyzer.py来看,哈勃linux沙箱静态检测,获取的信息主要有六个方面:

 

一个Python开源项目-腾讯哈勃沙箱源码剖析(上)

 

1. 文件类型信息

通过file命令获取文件信息,比如是二进制还是其他类型文件,在linux中是无法通过后缀判断它是什么文件的。

 

一个Python开源项目-腾讯哈勃沙箱源码剖析(上)

 

2. 文件hash比对

对于已知的恶意文件都有相应的hash库,方便快速比对。哈勃主要计算文件的md5,sha1,sha256,这是一种绝对匹配方式。

一个Python开源项目-腾讯哈勃沙箱源码剖析(上)

还有一种方式是计算文件的ssdeep值,这个在我之前在公众号讲webshell检测时讲过这个,这个值可以通过相似度判断恶意文件的一些变形。

 

一个Python开源项目-腾讯哈勃沙箱源码剖析(上)

 

3. exiftool信息

获取文件属性信息,通过exiftool工具来实现,内容包括修改时间,创建时间等等。

一个Python开源项目-腾讯哈勃沙箱源码剖析(上)

 

4. 文件大小

文件大小也是一个辅助判断的依据,毕竟木马文件不会很大,几兆的木马文件上传也是费事。

 

5. yara模糊过滤

YARA是一款旨在帮助恶意软件研究人员识别和分类恶意软件样本的开源工具,使用YARA可以基于文本或二进制模式创建恶意软件家族描述信息。

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/wsswxy.html