沙箱的无能为力之处

安全 应用安全
沙箱是安全栈重要组成部分,但企业的整个策略不能依靠沙箱来检测所有威胁,它也有自己的无能为力之处。

沙箱是安全栈重要组成部分,但企业的整个策略不能依靠沙箱来检测所有威胁。

[[263951]]

从事网络安全工作就好像在罪恶之城当警察,每天对战顶着WannaCry、Petya和 “红色十月” 等花名的不知名恶棍,而且恶棍们的战术、技术和装备还在不断更新。一轮扫黑除恶下来,以为天下太平了,没几天这些老对手又强势归来……

比如说,2014年发现的Emotet银行木马,最近就改头换面重现江湖了。该新版本是带.doc后缀的XML文档,利用大多数沙箱要求真实文件类型的特性规避检测。即便真实文件类型是XML,终端上还是在Word中打开。

一旦在Word中打开,XML文件中的宏就会触发一段PowerShell脚本,第二阶段的URL,下载Emotet载荷。Emotet会枚举系统上安装的应用程序并检查磁盘空间以确定自身是否处于沙箱环境。如果判断自身身处沙箱环境,载荷就会停止执行。而且,Emotet还有长期睡眠和延迟机制以阻碍动态分析技术,让沙箱无法检测恶意行为。很聪明的做法!

最近的其他威胁也采用了类似的技术规避沙箱检测。Bebloh是2009年检测到的通用银行木马,最近以针对日本用户的变种重新冒头。该版本通过带宏的Excel邮件附件传播,用户点击后会触发后台命令shell。有趣的是,该变种每次执行时都会检测系统的地区和国家设置。

只要地区设置不是日本,宏就会阻止Bebloh执行并退出Excel应用。而一旦命令shell被激活,Bebloh即开始执行一个PowerShell脚本从URL获取远程内容,该远程内容是长得像RAR文件的又一个PowerShell脚本文件,内嵌base64编码的加密DLL。解密该DLL的密钥依据操作系统文化设置的国家代码产生。解密出来的DLL被另一个进程用PowerShell注入内存,其入口点被调用来启动该恶意软件。

最终结果就是,整个沙箱环境的地区设置必须设成JP(日本的国家代码),才可以检测到该感染链。Bebloh还会检查系统运行时间和物理系统特征,只要判断是在沙箱环境就会停止执行。

网络钓鱼也是沙箱无能为力的一个领域,因为检测有赖于文件展现出恶意行为。黑客简单地利用包含恶意链接的PDF文件就可以规避检测。带统一资源标识符(URI)的文档被沙箱检出的概率很低,生存时间(TTL)短暂的域几乎不会给事后分析或威胁情报服务器留下什么证据。

Emotet、Bebloh和PDF网络钓鱼之所以令人担忧,是因为这些威胁都使用了非常复杂,甚至可以说是精巧的技术,来规避沙箱环境的检测。沙箱历来被当成行之有效的Web威胁防护方法,可以在恶意内容触及用户设备之前加以隔离。在过去,这种方法便已足够。被检测出来,然后被放到沙箱环境中,与网络隔离开来并进行分析,以供未来缓解所用。直到现在,这种策略一直效果良好。

然而,沙箱技术依赖检测。只要威胁能够掩饰自己,关停自身,或者以某种方式规避检测,就能自由感染用户的设备,最终侵入到公司网络和关键业务系统。在检测-响应式网络安全策略中,只要威胁绕过大门,一切都完了。

网络威胁战术与技术的持续进化屡见不鲜。恶意软件与其他基于Web的威胁一直在发展进化,对抗传统网络安全解决方案。道高一尺魔高一丈的感觉挥之不去。似乎安全行业的每一个进步,黑客都能马上拿出相应的对策,网络安全战线呈现持续拉锯状态。

除了完全基于检测的网络安全策略,我们还可以考虑网络分隔和Web隔离。这两个备选解决方案简单地去除了用户主机与公共互联网之间的任何连接。网络分隔方法往往需要用户使用两台计算机,连接公司网络的计算机就不能访问公共互联网。Web隔离方法允许Web浏览操作,但将获取和执行命令的操作从终端移到了现场或云端的远程隔离服务器上。

沙箱依然是安全栈的重要组成部分,但企业的整个策略不能完全依赖沙箱检出每一个威胁。非法进入是必然的,总有能避过检测的威胁;安全策略是限制威胁,让威胁触及不到用户,让用户甚至不知道自己经历了什么

【本文是51CTO专栏作者“李少鹏”的原创文章,转载请通过安全牛(微信公众号id:gooann-sectv)获取授权】

戳这里,看该作者更多好文

 

责任编辑:赵宁宁 来源: 51CTO专栏
相关推荐

2014-03-25 09:48:19

2016-03-15 10:57:42

数据中心

2022-11-09 09:47:44

2011-03-17 15:20:32

iOS应用在线广告

2023-06-19 10:03:34

2018-09-05 09:32:42

高性能网络模型

2021-08-31 06:37:35

Java 语言 Java 基础

2020-10-14 09:44:52

漏洞

2020-10-12 08:02:04

开发人员开发编码

2015-12-16 11:15:01

2010-09-14 13:08:52

2009-06-25 09:50:00

2018-09-04 09:00:20

2018-08-10 14:35:42

程序员技术代码

2010-08-26 10:55:05

网络故障

2011-03-31 14:44:50

2023-10-23 14:30:22

2010-06-01 10:40:31

柳传志杨元庆

2018-04-27 13:00:00

数据库MySQL删除重复行

2011-05-10 10:46:35

点赞
收藏

51CTO技术栈公众号