加入收藏 | 设为首页 | 会员中心 | 我要投稿 源码门户网 (https://www.92codes.com/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 服务器 > 安全 > 正文

毒师周军:我如何创造一只“杀毒神兽”

发布时间:2017-03-04 06:09:40 所属栏目:安全 来源:雷锋网
导读:副标题#e# 周军,前瑞星内核团队负责人,火绒安全联合创始人。 这位“技术宅”的最大热情就是反病毒技术的研究。当杀毒软件之间进行暗黑攻伐的时候,他在研究病毒样本;当杀毒软件纷纷用免费方式流量变现时,他在研究反病毒技术;当杀毒软件纷纷成为“入室

做了这么多准备,我们终于准备开发自己的反病毒引擎了。

毒师周军:我如何创造一只“杀毒神兽”

【火绒安全截图】

(四)

乔装改扮是病毒的基本技能。Win PE 系统中 80% 的病毒都有对杀毒软件的对抗代码。病毒今天穿蓝衣服,明天换黑衣服,杀毒软件就可能无法识别了。

所以在把目标文件放到病毒引擎查杀之前,有一个非常重要的工作,那就是先用“照妖镜”让文件现出原形。这个照妖镜就是虚拟沙盒。

简单来说,就是让文件在这个虚拟的环境里“释放天性”,自由地展示它的好和坏的本性。

这件事情的难点在于,如何让杀毒软件相信,自己不是被放在实验台上任人亵玩,而是真的进入了目标电脑。

很多病毒的脚本会用各种奇异的姿势来测试它是否在真实的系统中。例如向系统请求一些冷门的环境,在真实的系统里,无论病毒提出什么要求,系统一定会满足。但是在虚拟系统里,稍有不慎就会“露馅”。病毒一旦没有拿到理想的相应结果,便不再继续运行。

另外,有些杀毒软件使用开源代码制造脚本解释引擎,这些开源代码本身就可能存在漏洞,这些漏洞如果被病毒利用,则会被病毒逆袭。

举个例子:

upatre 木马家族会使用一种独特的方法,它会在自身外层设立一个混淆器,登陆目标之后先创建一个窗口,在里面建立文本控件,使用这个计算出一个长度,再拿出来为自己解密。这个方法的巧妙之处在于它调用了其他病毒很少调用的窗口和文本系统,这就使得一般的虚拟机很难“跑开”它。

如果不能跑开,就只能进行静态的代码审计,由于代码复杂度极高,人工方法几乎没办法完全审看。

于是,我们用了一种方法,那就是在引擎里直接嵌入了一个“Windows 系统”,这个系统完全由我们开发,里面包含了注册表、窗口系统、进程调度等等功能。

病毒的目的是:看你和真实系统哪里不一样。

我们的目的是:让病毒相信我们就是真实的系统。

当然,Windows 系统极其复杂。理论上来说,我们如果模拟得一模一样,那么体量上也会和它一样大。我们希望不断抹平和最新 Windows 之间的差距,目标就是做到“病毒需要的,我们全都有”。

我们从成立一年半的时候开始做引擎,到现在为止对于虚拟沙盒的完善一直没停过。一旦发现病毒利用了新的系统特性,我们也会马上在虚拟沙盒里加入。

毒师周军:我如何创造一只“杀毒神兽”

【虚拟沙盒整体架构】

(五)

最大快人心的,就是引擎杀毒这一步。

引擎杀毒的依据是病毒库。病毒库分为三个部分。

病毒文件哈希:特定病毒文件呈现的具体特征

病毒基因特征:被“跑开”以后的病毒样本里的关键数据

病毒行为特征:病毒所具有的一系列行为特征。

检验文件的哈希,是一种比较笨的方法。就像警察拿着通缉令逐一排查。然而由于病毒会不断变幻加密生成变种,所以可怜的警察要拿着同一个人穿着不同衣服的照片才能识别。一旦病毒买了一件新衣服,警察还是会漏过。

检查文件的基因特征,大概就像先把路人的衣服脱光,然后再对照片进行比对。这种情况下,病毒的真身就会赤裸裸呈现在面前,彻底杜绝了穿上马甲就不认识的尴尬局面。

对病毒行为的分析,是引擎最让我自豪的能力。因为它已经脱离了病毒的外貌,转而判断病毒的灵魂。外表再和善的人,只要伸手做坏事,都难逃“老刑警”的法眼。

(编辑:源码门户网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

热点阅读