【牛人访谈】争夺网络安全的“制空权”:内存安全
星期日, 二月 7, 2021
近日,安全牛邀请了安芯网盾的创始人兼CTO姚纪卫先生,就内存安全防护技术与未来发展方面,进行了深度的探讨。
姚纪卫 linxer 联合创始人兼CTO
毕业于哈尔滨工程大学,Windows顶级内核专家,国内反病毒虚拟机技术的开拓者,主导安芯网盾内存保护系统的开发与管理。多款知名软件作者:PChunter作者,PChunter被国际权威机构评为全球最优秀的AntiRootkit安全软件。LinxerUnpacker软件作者,该软件被评为当时最强的基于反病毒虚拟机技术的通用脱壳机。
安全牛:您从2009年开始,一直致力于未知威胁检测引擎的开发和研究,是什么样的机缘让您在2019年选择以内存保护为创业方向?
姚纪卫:2019年的某个下午,我和合伙人聊起近几年国内的网络安全市场,发现尽管系统、应用层面的防护手段越来越多元,安全产品与防护功能趋于完善,但是类似使用永恒之蓝漏洞这种大规模、高伤亡的网络攻击事件还是偶有发生,甚至有逐渐增多的迹象,究其原因,在于传统的安全软件是通过传统的检测方式对系统做检测分析,对当前流行的0day攻击、无文件攻击缺乏有效防御手段,这就像用上个世纪的雷达去检测最新一代的隐形战斗机一样没有效果。我们那次聊了很久,最后一拍即合开启我们的第二次创业,并选择了内存保护这条路。
我们从2006年就一直在做高级威胁防护的研究,发现无论威胁、攻击怎么变换,恶意代码最终都将出现在内存上,也终将需要依赖CPU去执行。因而理论上我们守护住内存和CPU就能防御所有的威胁,这也是我们做内存保护的理论基础,把安全产品的防护能力从应用层、系统层下沉到硬件虚拟化层,从内存方面着手进行应对系统设计缺陷、外部入侵等威胁的检测和防护,也就是“内存安全”,我们希望借此解决最令行业头疼的威胁。
传统方法依赖特征、规则匹配检测无法满足内存安全类产品的要求,但是通过内存虚拟化等技术手段,可以有效监控内存读、写、执行行为,解决了内存访问行为不可见问题,内存访问行为不再是一个黑盒。
此外,传统方法也无法实现指令集监控。而我们的内存保护系统是基于硬件虚拟化技术架构设计,在特定的CPU指令执行时结合其执行的上下文能分析出程序发生了什么行为,同时基于硬件虚拟化技术其充分利用CPU层本身的隔离机制,不容易被反检测机制发现,从而保障自身核心模块的安全能力。
相比其他安全产品来说,内存保护技术的应用需要团队拥有对操作系统、CPU体系结构、病毒攻击以及虚拟化技术都十分了解的复合型技术人才。所以我们目前遇到的最大困难就是招聘,我们渴望找到比我们更优秀的伙伴,我们考验的关键点不是是否有漂亮的履历,手握实力的人才才是我们需要的。
安全牛:在您看来,内存安全与传统端点安全最大的的区别在哪里?
姚纪卫:传统端点安全一般指杀毒软件、EDR、HIPS等软件,这些软件一般由病毒查杀、信息采集分析、管控、监控等功能组成,它们采用的技术方法也较为传统,对威胁的检测要么通过特征码检测,要么通过Hook监控分析识别等技术。传统的端点安全软件也许运行在应用层,也许运行在系统层,但内存保护是运行在系统层、应用层和硬件虚拟化层,超过70%的高级攻击都是跟内存安全相关的,比如内存破坏型漏洞,对这些攻击仅仅在应用层、系统层设防是力不从心的。
当前很多威胁开发者已经熟知这些检测手段并能绕过这些检测机制。内存保护系统除了会采用一些传统的技术手段外,还有一些独特的技术手段,比如内存虚拟化技术,它可以解决内存访问动作不可见问题,对一些内存破坏型漏洞攻击有很好的效果;脚本解析引擎挂钩分析技术,它可以很好的识别一些脚本类型的无文件攻击;基于硬件虚拟化的行为监控,可以很好的解决由系统PatchGuard等导致的无法有效监控、拦截一些系统行为的问题。内存保护系统能有效监控内存访问行为和识别更多的程序行为动作,这样对威胁的检出率会更高,误报率会更低。
大家开始关注到内存安全,因为内存安全问题也是Android、Java、Windows 10和Chrome等各类平台的头号安全问题。比如近几年的攻防演练中备受关注的内存马攻击,也是一种典型的无文件攻击手段,它可以有效地躲避传统安全软件的检测,在系统的内存中远程加载执行、驻留在注册表中或滥用常用的白名单工具,例如PowerShell、Windows Management Instrumentation(WMI)和PsExec等。传统的端点安全软件就很难去检测到它,更别提实时防御了。而通过对内存数据访问行为细粒度的检测以及对数据状态、数据流动状态与内存中行为动作的观察,内存马就会在内存保护系统的检测下暴露无遗。
安全牛:因为内存安全防护技术直接监控一些内存访问状态,那么产品对系统的稳定性会不会产生严重的影响?在威胁的检测技术上,跟传统的防护产品相比,有什么先进性。
姚纪卫:对系统稳定性不会有特别的影响。传统的端点安全软件也会有驱动程序,内存保护也会有驱动程序,它们的作用都是差不多的。区别之处在于,内存保护系统是基于硬件虚拟化技术架构设计的,现在的硬件虚拟化技术已经很成熟了,CPU硬件也提供了比较好的支持,只要考虑周全不会对系统稳定性有特殊的影响。
利用硬件虚拟化技术后,可以监控更多的内存行为和程序行为,这样对威胁的检出率会更高,误报率会更低。另外,也能解决一些传统防护手段无法解决的问题,比如能跟踪内存的访问状态,通过这些访问跟踪能识别发现无文件攻击、0day攻击、内存代码片段攻击。
安全牛:请您谈谈内存安全技术的发展趋势。
姚纪卫:使用内存保护技术能细粒度跟踪、监控系统的各类行为动作,这有利于在低误报率的情况下,发现更多的威胁;内存保护技术还能有效绕开当前操作系统的一些限制(比如PatchGuard等),实现对系统中各类行为的有效监控,正是因为这些优点,相较于传统端点防护技术,内存保护技术会有更广阔的应用场景。
当然内存保护技术也有局限性,就是对开发者的要求会比较高,既要懂安全,又要懂操作系统,还需要对CPU硬件特性特别了解,本身这一块的技术人员就很少,所以开发难度会更大些。
内存保护如果与其他技术结合会有很多场景,比如当前内存保护可以检测内存的一些访问状态,因此除了可以检测0day攻击外,也可用于漏洞挖掘,可以结合测试技术来检测软件内存使用方面的bug,提高软件健壮性。
过去的一年,我们服务了很多大型客户。举个例子,国内某头部电商平台,它有200多条产品线,开放的API有数百个,这种业务复杂度高的客户面临的问题是操作系统和业务系统很难进行打补丁升级,并且也无法去确定它的每一条业务线是否完成了升级,这个时候内存保护就可以帮助客户解决这个问题,使用内存保护虽然无法阻止漏洞的产生,但是可以让漏洞无法被利用,可以让客户带伤上阵,保障业务和数据,这个需求场景也是很多其他客户的痛点。另外内存保护可以帮助解决了域控场景的防护,企业AD域服务器的攻击事件层出不穷,一旦拥有域控管理权限的域控服务器被攻破,所有加入域的终端和服务器都将被控制,存在全网沦陷的可能,而客户的数据又与我们很多人的生活息息相关的,而内存保护给客户提供的漏洞防御、内存数据保护及未知威胁防御等能力,帮助客户对抗PTH攻击、黄金票据攻击、白银票据攻击、lsass进程读取明文密码,以及最新的NetLogon特权提升漏洞攻击等攻击,保护他们的高价值数据不被窃取,核心业务不被阻断。