恶意软件防御之道:高级逃避技术大起底
2014-12-30 TechTarget中国 编辑:邹铮
只要有攻击目标和金钱吸引,恶意软件就会不断进化。
为了保持攻击性和赚取利益,恶意软件编写者将会采用高级逃避技术,并增加新功能来满足其客户的要求,这样一来,利用恶意软件的攻击会变得更加有效和有利可图。在过去几个月,我们看到恶意软件变得更加复杂的很多例子,包括Zeus从32位过渡到64位以及iBanking恶意软件改进为针对Android设备。
除了恶意软件中引入新功能,还出现了围绕“回归自然”的新理念,即攻击者利用内置或合法工具来防止其攻击被反恶意软件检测。Poweliks恶意软件是这方面最新的例子。在本文中,笔者将探讨最新的恶意软件改进以及检测和控制恶意软件所需的企业控制。
恶意软件的进化
TROJ_POWELIKS.A或者Poweliks是一种fileless恶意软件,旨在下载其他恶意软件来控制受感染系统。Poweliks需要单独的初始感染媒介来感染本地系统和安装该恶意软件,据报道,这个媒介是Word文件。在初次感染后,恶意软件会被安装,并作为经编码的动态链接库(DLL)存储在注册表中,这个DLL被提取和注入系统中运行的合法dllhost.exe进程,随后将会被执行。
虽然存储DLL在注册表并不是在端点安装恶意软件的常见方法,但这确实使企业更难以检测到该恶意软件,因为并不是所有反恶意软件工具都会检查注册表。然而,对于检测注册表的工具,发现包含大量数据的注册表项肯定会有所警觉。Poweliks恶意软件还会运行PowerShell命令来完成攻击。PowerShell命令可以被用来避免检测,因为PowerShell被安装在大多数系统,并且它具有与操作系统交互的高级功能,这可以帮助完成攻击。
其他恶意软件也在继续改进,以让恶意软件编写者保持盈利。成熟的Zeus恶意软件不断加入新功能;据称最新添加的功能是完善的社会工程攻击,即恶意软件发送假的浏览器警告消息来让用户安装恶意软件。同样地,iBanking.Android也添加了新功能,它使用假的安全软件来让用户安装该恶意软件,然后它窃取双因素身份验证中使用的短信。
必要的企业控制
我们可以通过很多不同的方式来检测高级恶意软件。多级恶意软件(例如Poweliks)和多级攻击会给企业更多时间来检测恶意软件,因为每个步骤都需要一定的时间;然而,未必需要检测出每个步骤,因为有些步骤本身可能并不是恶意。
在Poweliks的例子中,当每个单独的阶段发生时,其多级方面可能很难检测,但关联所有阶段和操作可以帮助检测和缓解恶意活动。
例如,虽然PowerShell脚本对系统管理员或高级用户很有用,但很少有终端用户会开发和使用它们。检测恶意PowerShell命令很难,因为有很多PowerShell功能的合法企业用例。然而,对于最终用户使用的PowerShell脚本,系统管理员可能会要求脚本在执行前进行签名;这可以帮助阻止恶意软件执行恶意脚本。尽管这个政策不能阻止专注的攻击者,但这会提高攻击难度,足以阻挠他们来防止攻击。
虽然Poweliks恶意软件的PowerShell方面可能很难检测,但检测它的命令和控制基础设施及网络连接会更容易。趋势科技的博客文章提到特定IP可以用作攻击的指标,让企业可以监控其网络对该IP的连接,并调查每个连接。监控恶意网络连接还可以帮助发现受感染系统,并对系统进一步调查。这可能包括查看NetFlow日志来看看哪些系统是连接到外部IP的主要系统,或者具有大量失败身份验证尝试的系统。
新修改的Zeus恶意软件和iBanking.Android恶意软件可以通过用来发现Poweliks类似的步骤来识别,因为它们都依赖于安全意识。Zeus变体可以通过检测网络中到命令控制IP的连接来检测;而iBanking.Android则可以通过使用移动反恶意软件工具来扫描系统中的恶意文件来检测。
需要注意的是,检测知识有效控制恶意软件的一部分。对涉及恶意软件事件的积极响应才是尽量减小受感染系统的影响的关键。
总结
毫无疑问,恶意软件将会继续改进和自动化其最有效的手动攻击技术。随着企业恶意软件防御措施日趋成熟,恶意软件将不可避免地寻找新方法来规避它们。这将需要企业的持续关注来控制和缓解潜在攻击。企业需要不断审查安全控制和技术来确保其可以有效抵御当前攻击。在发现新攻击或新漏洞时,更新安全程序和控制是领先于攻击者的关键。
同样重要的是,企业不仅需要评估其如何管理系统,还需要评估对其系统的管理以决定某些功能(例如PowerShell脚本)是否会给其环境带来新的风险,并需要额外的政策来防止漏洞被利用。