APT威胁安全检测产品(沙箱与宿主机交互信息过程 )

合集下载
相关主题
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

沙箱与宿主机交互信息过程

沙箱的作用就是跑出样本的行为,供威胁分析模块分析检测是否有威胁。

系统部分模块组织图

沙箱与宿主机交互信息过程:

分为两个方向:1 (宿主机—>沙箱)沙箱获取任务,拿到任务后拼接完整样

本存储路径,然后去拿原样本

2 (沙箱—>宿主机)沙箱拿到样本后会在本地执行样本,在样本执行

过程中我们的get_log程序会抓取该样本的所有行为并记录在本地

Test.log的文件中(log放在本地是没用的,需要传到宿主机让威胁分

模块解析判断是否有威胁),把该log信息传到宿主机去。

详细过程:

这个过程中(沙箱与宿主机)运行的程序有:

沙箱中跑的程序:ExeAngrt.exe(负责取任务GET、拿样本GET、执行样本)

Getlog.exe (负责抓取样本的行为信息)

xxx 发送log的程序

宿主机的服务程序:httpd(有两个作用1、80和443端口提供web界面的使用,

8080端口提供沙箱GET响应。)

Gettask.fcgi (当8080端口收到get请求时,开启该程序。

处理该响应、判断是哪类型沙箱的请求,去相映

Redis队列确认是否有任务,然后给出响应)

Sendreuslt.fcgi(当8080端口收到post消息时会开启该进程,

将该post消息中的样本log信息放到redis

中的aba_l队列,供后续abaserver程序检测)

Thttpd (自己开发的类httpd服务,开放8081端口只用

来响应沙箱拿样本,根目录是/home/bds/sample)

具体信息的交互顺序是:

1 沙箱中ExeAnget.exe会自动启动,不停的向宿主机发送get请求

(http://192.168.122.1:8080)确认宿主机是否有待检测的样本。

2 宿主机的httpd服务从8080端口收到get请求后,会开启gettask.fcgi进程

先识别哪类沙箱在要任务,然后去redis队列中查看相映的队列是否有任务,无任务就回复沙箱等待,有任务就从对应的队列中pop一条任务,把该任务的Samples_id与其他信息封装到200ok的回应包给沙箱。

3 沙箱收到200ok的响应后,会解析里面的内容、拿到sample_id后拼接成任务样本的存储路径,get该样本,这里是thttpd服务。

(http://192.168.122.1:8081/xxx/sample_id.dat)

4 拿到任务样本后会在本地执行该样本,getlog.exe会记录该样本的所有行为并存储在test.log的文件中,同时某程序监控这该文件,如果有记录产生就将该记录post到宿主机的8080端口。

5 宿主机的8080端口收到post消息后会开启sendrueslt.fcgi的进程,该进程的作用是把post消息中的样本行为log信息放到redis队列的aba_l队列中去,供abaserver(威胁分析)程序判断是否恶意。这就是沙箱与宿主机一个完整交互信息的过程,往后都是重复该过程(每次重复的时候加沙箱恢复快照)。

附图:

1 ExeAgent.exe 截图

2 http的8080虚拟主机配置

3 沙箱get任务日志信息,tail -f /var/log/httpd/bds-access-2017-02-08.log

4 沙箱上传样本行为log的post消息日志

tail -f /var/log/httpd/bds-access-2017-02-08.log

5 宿主机与虚拟机的通信pcap包(tcpdump -vv -nn -i virbr0 -w getpost2.cap)

getpost2.cap

相关文档
最新文档