同一事物在不同个体的认知差异下,结果可能截然相反,比如一辆汽车,车主认为带上上车门并按下报警器就已经安全上锁,但对于专业的盗窃犯而言,这些停放的一辆辆汽车,好比一个个等待打开的盲盒,车中的贵重物品一旦被发现,将随时面临被盗走的风险,正犹如0day漏洞相对于多重防护的业务系统。
根据Ponemon Institute的数据统计显示,80%的成功入侵都与0day有直接或间接关系。此类攻击通常将0day与多态蠕虫病毒、特洛伊木马或其它恶意传播工具整合,蓄意发起大规模恶意攻击,攻在暗守在明,以致于每次安全人员仍在聚焦于分析新样本,修复新漏洞之际,与之关联的新变种或新形势的攻击武器已悄然投放市场,并大范围搜寻与狩猎新的攻击目标,致使当前网络世界威胁事件层出不穷,难以根除。
一、0day漏洞成为黑客眼中的“绝杀武器”
众所周知,恶意软件是一种旨在感染计算机以执行各种恶意操作的软件。如常见的病毒、间谍软件、蠕虫和特洛伊木马等,其造成的危害包括但又不限于数据被篡改或删除、机密数据泄露、设备被远程操控监听、资金被盗等,但绝大多数传统的恶意软件能够被现有的特征签名检测机制捕获且拦截。
而“高级威胁”是一种更加隐蔽和复杂的恶意攻击手段。它能够轻松绕过基于签名的传统安全防御机制,通过0day漏洞利用、无文件攻击、内存攻击、缓冲区溢出攻击等近期危害性极强的新型攻击方式,对目标实行渗透和潜入,以达到攻击目的。
在网络攻防博弈过程中,0day漏洞因具备极强的危害性,以及极高的成功渗透率,而备受攻击者青睐,通过利用0day漏洞可成功入侵系统并执行有效载荷,而当载荷为具备感染性和自传播的恶意软件时,其破坏力更是惊人,无论是曾经波及全球且造成严重影响的suxnet、wannacry,还是今年4月影响较广的英国铁路遭受勒索攻击,以及chrome v8引擎远程代码执行漏洞,都是值得警醒与反思的痛苦教训。
二、0day漏洞被利用的过程
近年来,各大安全厂商的产品开始将动静态程序分析、代码审计、逆向工程和模糊测试等多种技术,应用于0day漏洞的检测场景,但却依然收效甚微,其主要原因还是由于0day强的隐蔽性以及短时间内爆发的危害性。当0day漏洞被应用于网络杀伤链(Cyber kill chain)时,攻击者通常会先利用0day漏洞突破外围防线渗入内网,之后再尝试暴力破解或权限提权等手段,获得系统的绝对控制权,进而实施持久化攻击。
通常攻击者利用0day攻击目标,会涉及以下步骤:
挖掘漏洞:寻找程序代码中的漏洞;
识别漏洞:发现漏洞,并编写恶意代码,与0day漏洞整合,验证可行性;
收集信息:尽可能多的收集目标信息;
执行渗透:利用攻击武器对目标发起攻击,潜入其内部网络;
远程控制:获取内部重要主机的控制权限,并在内部横向移动;
长期潜伏:攻击者在控制的主机中植入后门,监听信息,盗取数据。
四、内存保护的解决方案
内存保护是控制计算机内存访问权限的一种方式,其目的是防止进程访问尚未分配给它的内存,可以防止进程中的错误或恶意软件影响其它进程或操作系统本身。内存保护技术可检测或拦截恶意软件有效负载的执行,如未经授权或企图通过利用逻辑漏洞获得系统控制权的指令。还可以保护对特定内存区域的所有访问、写访问或执行该区域内容的尝试。
1. 通过细粒度的监控内存读、写、执行行为,可实时检测内存中存在堆喷射、堆栈溢出、内存数据覆盖等异常行为,结合拦截模块进行漏洞防御;
2. 由于0day漏洞在调用内存数据的时候,易使用内存篡改技术发起攻击,绕过传统终端防护机制。内存保护技术能够结合操作行为进行上下文关联分析,监控应用对业务相关内存数据的多读、挂钩、篡改等行为,及时拦截恶意代码对内存数据的攻击,确保用户核心业务应用的运行时安全;
3. 在内存级别监控应用进程和指令,识别更多的应用行为,并将其实现可视化展示,使内存数据信息更直观易于管理,系统收集终端上的各种安全状态信息。
利用内存保护技术,通过监控CPU指令并结合上下文分析,可以监控系统、程序的各种行为动作,另外通过内存虚拟化等技术可以监控内存的读、写、执行行为,然后结合关联行为分析模块,有效防御各种高级威胁。