软件沙箱技术 – 安全分析沙箱Cuckoo Sandbox
来源:互联网 发布:通话变音软件 编辑:程序博客网 时间:2024/05/23 02:03
1.Cockoo的功能
Cockoo Sandbox是开源安全沙箱,基于GPLv3。目的是恶意软件(malware analysis)分析。使用的时候将待分析文件丢到沙箱内,分析结束后输出报告。很多安全设备提供商所谓云沙箱是同类技术,一些所谓Anti-APT产品也是这个概念。和传统AV软件的静态分析相比,Cuckoo动态检测。扔到沙箱的可执行文件会被执行,文档会被打开,运行中检测。和不少开源软件学而优则仕一样,Cookoo搞了一个产品,Red Dragon。这种方式也是挺好的一种做开源软件的运营方式,Snort的SourceFire不就是被思科十几亿收购了吗。
Cuckoo它可以分析的内容有:
1.Windows可执行文件,DLL文件
2.PDF,MSOffice文档
3.URL和HTML文档
4.PHP脚本,VB脚本
5.CPL文件
6.ZIP文件,Jar文件
7.Python文件
可以看出,只是Windows平台,外加一些脚本和文件。
Cuckoo的分析结果包含如下内容:
1.函数以及API调用的Call Trace
2.应用拷贝和删除的文件
3.选定进程的内存镜像
4.分析机的full memory dump
5.恶意软件执行时的截屏
6.分析机产生的网络流量
2.部署和使用
下图是Cuckoo的部署,其实很简单,分为host和guests。
Host(管理机)
负责
管理guests
启动分析工作
网络流量收集等。
host依赖一些开源软件,例如
tcpdump用于Guest网络拦截
Volatility用于内存的dump
Guest(虚拟机)
Guest是通用的虚拟机,Xen、VirtualBox等。它运行Cuckoo的Agent,接收Host发过来的任务(文件)运行后获取信息。
Agent是跨平台的(就是Python脚本)可以运行在Windows、Linux和MAC OS上。它实际是是一个XMLRPC server,等待连接。
Cuckoo使用
Cuckoo提供了python命令行工具。
1.使用cuckoo.py启动引擎。
2.使用submit.py像cuckoo提交待分析应用。
3.引擎会和虚拟机中的Agent通信,运行应用。
4.分析结束后,结果输出到特定目录。
3.Hook引擎
cuckoo使用了通用虚拟机做Guest,本身也没有隔离机制和访问控制机制。它特殊的地方就是Hook机制。核心模块cuckoomon(Cuckoo Sandbox Monitor)的源码在这里。它的作用是Hook在可执行程序上,拦截执行流程。 形式上它是一个DLL,会被inject到待分析的恶意软件和它创建的所有进程中。所谓动态分析,就是Hook后的API,在线收集的运行时信息。主要有两个步骤:
3.1 DLL注入
注入是使用Python实现的,流程如下:
1.使用CreateProcess(CREATE SUSPENDED)启动应用
2.使用CreateRemoteThread和QueueUserAPC API调用LoadLibrary注入cuckoomon.dll。
3.Resume进程的主线程
参照下面代码
3.2 API Hook
1.上一步中主线程恢复后,因为APC callback,Cuckoo Monitor首先被执行。
2.初始化并且安装Hook
Cuckoo对ntdll.dll, kernel32.dll, advapi32.dll,shell32.dll,msvcrt.dll,user32.dll,wininet.dll,ws2_32.dll,mswsock.dll中的170+API进行hook
3.通知分析模块Analyzer(通过命名管道),应用启动。
4.Log将会通过实现配置好的TCP/IP端口发送给Host。
下面是添加Hook的代码:
4.躲避的应对
前面软件加壳技术介绍的时候有部分内容关于躲避。恶意软件会创建自进程,在子进程中做实际工作。对于类似Cuckoo这样的动态分析工具就要处理这种情况,在子进程中启动cuckoomon。下图就是应对流程,Monitor在监控到样本创建进程的时候,也会模拟初始化启动时候cuckoo做的事情,显示suspend,然后通知Analyzer。由后者进行DLL的注入。
From 【5】
前文也介绍过进程注入,也就是恶意软件利用周知进程,例如IE,运行自己的恶意逻辑,解决的方法类似。只是监控的不是CreateProcess而是OpenProcess。
【参考】
1.官方网站,http://www.cuckoosandbox.org/
2.Cuckoo Sandbox Book,http://cuckoo.readthedocs.org/en/latest/
3.Hooking functions with Cuckoobox’s hooking engine,http://living-security.blogspot.com/2014/07/hooking-functions-with-cuckooboxs.html
4.开源软件 cuckoo sandbox学习(二) 核心拦截模块源代码导读, http://sevemal.blog.51cto.com/8627322/1397666
5.Haow Sandbox, Cuckoo Sandbox Internal, http://recon.cx/2013/slides/recon2013-Jurriaan%20Bremer-Haow%20do%20I%20sandbox.pdf
- 软件沙箱技术 – 安全分析沙箱Cuckoo Sandbox
- 安全沙箱(SandBox)
- cuckoo沙箱的搭建
- Cuckoo Sandbox
- Linux沙箱技术 - Setuid Sandbox
- cuckoo sandbox之windows恶意文件分析环境搭建
- Sandbox——沙箱技术,来自chromium开发文档
- 恶意软件分析环境cuckoo+malwasm
- 【网络安全】Cuckoo Sandbox Realistic Application
- Sandbox—沙箱技术[翻译chromium开发文档]
- [转载]Sandbox——沙箱技术,来自chromium开发文档
- 《ODAY安全:软件漏洞分析技术》学习心得
- 0day安全:软件漏洞分析技术 学习分析记录
- 软件保护入口点安全及技术分析
- 《0day安全:软件漏洞分析技术第二版》
- 《0day安全:软件漏洞分析技术》的一点总结
- 沙盒机制(sandBox)
- Sandbox-沙盒效应
- 六年征程新跨越,正益移动敲响上市宝钟
- Linux CentOS 6 64位系统安装Git工具环境教程
- 【哈工大oj】1037 - 组合数末尾的零(位运算,好题)
- hashCode散列码
- 第5讲 Linux系统安装--Samba配置
- 软件沙箱技术 – 安全分析沙箱Cuckoo Sandbox
- Android xUtils 上传文件到C# webservice 服务器
- 页面静态化
- ViewStub问题解析
- 勿忘国耻 奋发图强
- UIStackView学习
- java activiti工作流 myeclipse10插件下载地址
- NSURLSession断点续传
- 10个用Java谋生非常有趣的方式