利用数字签名增强杀毒效果

admin 2026-01-23 12:24:05 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 文章提出用数字签名构建‘白库’,把可信签名文件提前标记为正常,显著缩小待检样本量,降低误报与运营成本;并给出四层白库建设路径:签名可信链、相似度聚类、大数据热度、持续挖掘扩充,为杀毒系统提供可落地的负样本过滤框架 综合评分: 82 文章分类: 威胁情报,安全建设,安全运营,恶意软件,安全工具


cover_image

利用数字签名增强杀毒效果

原创

jishuzhain jishuzhain

OnionSec

2026年1月22日 17:36 广东

最近三年投入在威胁检测与杀毒能力建设方向,喜欢思考如何能解决最实际的网络安全问题,尽极大可能地提高检测系统的杀毒能力与效果。为此基于现实情况将以往思考过程以及想法成文记录下来,一方面是可以记录保存,另一方面时间是最好的检验手段,经得住时间考验的想法以及快速实践落地才是最符合当时当下的最佳实践。想法可以不拘一格,但是一定要快速实践,不然就是空中楼阁。

关于数字签名这个对象,我以前已经写过几篇文章进行了记录,不过趋向于碎片化,行文不成体系。在这里我主要关注解决现实问题,利用对象是“数字签名”。数字签名的出现本身就是为了解决信息安全的本质问题,信息安全三要素(CIA三要素)指的是机密性(Confidentiality)、完整性(Integrity)和可用性(Availability),是信息安全领域的基石模型,旨在确保信息不被未授权访问、不被篡改,并能被授权用户及时获取,而数字签名解决的就是完整性这个维度。具体是利用密码学手段验证文件或者程序是否完整,是否被恶意篡改。一旦数字签名验证流程通过,那么说明当时当下该文件是未曾被篡改的,当前状态它是“可信”的。

一种手段的出现必然引起新的攻击面,用数字签名保护自己的文件不被篡改也是如此,基于可信这个表征信息,自然也会出现被用于其余恶意目的的案例。例如如下:

1、合法的数字签名被盗取,这类数字签名就可以给恶意程序加上有效可被信任的数字签名了。

2、冒领数字签名,尽力伪装成具有合法的数字签名的各类信息,人一不留神就会认为这个是合法的官方来源签名。

3、密码学漏洞,用于数字签名的密码学算法存在缺陷,可以被绕过,实际变成数字签名流程全部通过且合法,但是最终保护的文件并不是当初合法的文件。此类案例过于罕见,按照概率来说基于等同于不可能事件。

在主流操作系统里,MacOS只有存在数字签名才能安装App,Windows有些宽松,只针对权限与破环力更高的驱动文件要求具备数字签名才能正常安装(老版本另外说),而Linux系统不管这些,完全给用户拥抱细节,只要用户愿意就可以随意折腾,所以攻击者还没有开始实施破坏就需要面对数字签名这道关。既然数字签名是“天然”地如此重要,那么肯定要利用好这个工具才可以。

威胁检测系统顾名思义是要检出威胁的,检出威胁表明有概率是威胁,为什么是有概率,当前就没有一个检测系统能保证100%检出的威胁是真正的威胁,没有任何误报可能,可以说能无限地逼近这个理论值,但是受限于现实条件不能完全逼近甚至于等于这个值。我们正向思考一下,既然数字签名的作用就是表明该文件不曾被篡改,那么基于可信链路,如果该文件的最初公开源头也是可信的,是不是就可以基于可信链路将其归类到正常文件呢?此时它距离威胁文件有很远的边界。现在将问题进一步抽象,问题是公开的源头是否可信?如果能证明公开的源头可信,那么基于该数字签名所签署有效并被关联的所有文件均可被认为是可信文件,属于正常文件。

好了,这一条链路理清楚之后。现在对于威胁检测系统来说就是构建自己的“白库”,也就是正常文件数据库。为什么需要“白库”,举一个例子,现实世界里计算机软件必然存在三种状态,一种是纯恶意的计算机软件,也就是大家常说的病毒木马等威胁。第二种是纯解决现实问题而编写的计算机软件,它们不符合法律里对计算机病毒的定义,那么它就可以被归类为正常计算机软件范畴,也就是我们刚刚提及的“白库”。第三种就是非黑非白,都涉及一点,处于灰色地带。因为法律明显落后于现实的案例(不然流氓软件如何能持续活跃这些多年?),所以为了对现实对象进行抽象,大家就会选择将其作为灰色软件。

既然现实世界所有的计算机软件都是三种状态组合而成,那么如果我们将白库做得很大且准确,对于发现纯恶意或者灰色软件来说是不是就会变得容易一些呢?这是前提假设。这里举一些正向案例,例如MacOS系统里被公开的恶意软件其实不多,因为受限于一些系统限制与安全机制,攻击MacOS系统实施破坏比Windows系统要困难。没有数字签名认证就没有在MacOS系统里安装软件的资格,自然也会相对Windows平台少了很多恶意软件案例。第二个正向案例就是现实情况恶意软件很少,前提条件是除去蠕虫以及可修改内容改变自身哈希的同类恶意软件,一家大型企业里每天或者每年能出现的恶意软件是不多的,而正常文件是庞大的且增长速度更快的。这是可以统计摸索出来的,如果仅仅观察网络安全领域的市场宣传文档的信息就会被夸大的词汇或数量给带偏,每年新增500万个恶意软件,但总是不给出真正的前提条件,故意误导网民。既然黑白灰状态组成的软件占比如此悬殊,构建庞大的“白库”是不是效果会很好?这是肯定的。

举个例子,1万个未知文件,其中有真正恶意软件的数量可能只有不到10个,如果构建的白库足够大(构建白库的思考或者思路下面会写),那么至少可以去除掉8000个文件,剩余2000个文件会被送入威胁检测系统。从1万个会被送入威胁检测系统的数量到缩减到2000个,系统性能是不是会提升?同时分母变少了,计算出现误报的概率是不是会降低?基于相同的误报率条件下,威胁检测系统产生的告警信息是不是会降低?如果一个威胁检测系统产生大量的告警无疑是失败的,因为现实情况下真正的威胁与攻击活动明显是不多的,不符合现实规律。其次是大量的告警对于运营人员来说是噩梦,相当于引入了新的“安全风险”,告警事件处理不过来等于没有处理。如果做不到这两类现象,威胁检测系统无疑是失败的系统,可以直接弃用。

“白库”的好处显而易见,但是事物都是相对的。建设白库“费时费力”,短期很难出现明显的效果,很难在周期内向上汇报团队成果。对于追求表面效率的组织来说肯定会优先丢弃掉,把资源投入在更高优先级的事项上,于是乎建设之路一拖再拖,“白库”建设遥遥无期,最终实在是火烧眉毛了需要建设了才会抓紧时间投入。

“白库”建设思路基于我这三年的思考与体会:

第一步肯定是基于数字签名这个优秀的世界体系进行构建基础“白库”。思想来源是别人有的系统我投入资源后拥有了,也解决了自己遇到的现实问题,这是及格线。别人没有的系统,我思考构建后又解决了现实问题,这是核心竞争力。

第二步是基于文件相似度构建第二层“白库”,相似度算法可以任意选择,例如SSDEEP或者TLSH,如果你搜索互联网信息,就会发现安天公司在十多年前就撰写了专利,专门提到在哈希杀毒的背景下如何利用相似度构建云端的文件库(对象是恶意软件库)。这里的思想是基于倒金字塔模型进行构建。我们基于统计与现实情况明显能得到一个结论,现实世界里的正常文件远远多于恶意软件,而这些正常文件都具备数字签名吗?很显然不全是,那么基于数量占比它一定是以倒金字塔形状分布的。

第三步是基于大数据,众人拾柴火焰高,恶意软件先天会具备隐蔽性,那么既然不希望被曝光,它的出现在数据分析统计层面肯定是热度排名靠后的,机器学习里的随机森林具有的投票机制也是类似的思想。这里的思想是基于热度,除去有些破坏性恶意软件或者蠕虫能大规模造成破坏产生热度靠前的现象外,其余现实世界里的恶意软件无不是静悄悄地来到用户计算机,然后悄摸摸地离开,能不被发现就是它的最终使命。热度思想是如果一个文件在大量客户侧里出现,那么它是恶意软件的概率就会变得很低很低,那么它会归类到哪里呢?必然是正常文件或者灰色软件。是不是很简单啊?

第四步是基于我们经过数学统计或者概率获得的知识,现实世界里真正恶意软件的比例是不高的,如果检测系统检出大量地“恶意软件”,那么需要你筛选出正常文件,扩充“白库”了,就可以涉及各种各样的数据挖掘算法或者系统帮助我们实现对“白库”的扩充。

行文先写到这里,想感慨一下,这确实是很有意思的一种思考路径。


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:OnionSec jishuzhain jishuzhain《利用数字签名增强杀毒效果》

利用数字签名增强杀毒效果 网络安全文章

利用数字签名增强杀毒效果

文章总结: 文章提出用数字签名构建‘白库’,把可信签名文件提前标记为正常,显著缩小待检样本量,降低误报与运营成本;并给出四层白库建设路径:签名可信链、相似度聚类
评论:0   参与:  0