首页
社区
课程
招聘
[原创]浅谈下一代沙箱数据采集技术和虚拟化
发表于: 2024-10-8 17:18 4290

[原创]浅谈下一代沙箱数据采集技术和虚拟化

2024-10-8 17:18
4290

背景
市面上大多数沙箱都是通过注入DLL、内联Hook加过滤驱动的形式来进行采集样本运行行为信息。

此方案是否已经过时了呢?
虚拟化技术运用在windows安全上已经有十几年了,常见的是运用在内核,做一些重要内核函数Hook。
那能不能将虚拟化技术运用在沙箱上,做应用层Hook呢,实现虚拟化R3 Hook+ 过滤驱动的形式来做采集样本动态行为的底层技术框架呢?
答案是肯定的。只要写一个windows驱动就能实现应用层Hook和内核层过滤驱动的统一。因此R3和R0的数据行为就关联起来。
优势:
1.不在需要注入的DLL,这样就省去适配不同的操作系统。烦人的汇编代码就可以抛弃了。
2.Hook函数做统一处理。不需要inline Hook算地址长度跳来跳去,当字节不够了还需要做二级跳转。
3.内核和应用层做代码级整合。将R3的Hook运行在R0.在运行时进行数据关联。
4.ShellCode的检测变得异常简单:
例如调用了CreateFile。可以根据调用地址来查找模块信息,如果没有找到模块信息。是ShellCode或注入的代码或是其他非正常情况。这时候需要和内核结合使用


[注意]传递专业知识、拓宽行业人脉——看雪讲师团队等你加入!

最后于 2024-10-25 10:01 被NoHeart编辑 ,原因:
收藏
免费 0
支持
分享
最新回复 (22)
雪    币: 30
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
2

0.0

最后于 2024-10-18 11:35 被NoHeart编辑 ,原因:
2024-10-8 18:16
0
雪    币: 420
活跃值: (2638)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
3
那么问题来了, 你猜为什么那些大佬还是要在R3采集一些数据呢?
2024-10-8 19:20
0
雪    币: 30
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
4
saloyun 那么问题来了, 你猜为什么那些大佬还是要在R3采集一些数据呢?

R0获取的信息太少,需要在R3来采集更多的信息。

最后于 2024-10-8 19:31 被NoHeart编辑 ,原因:
2024-10-8 19:25
0
雪    币: 506
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
5
NoHeart saloyun 那么问题来了, 你猜为什么那些大佬还是要在R3采集一些数据呢? R0获取的信息太少,需要在R3来采集更多的信息。
反了吧,r0不是应该获取得更多东西吗?
2024-10-9 02:20
0
雪    币: 993
活跃值: (504)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6

沙箱开发本身限制不多,那玩意说白了所有组件都是在自己的VM环境里跑的,你可以在里面随心所欲玩各种黑魔法,没人管你。
几年前VxStream被CrowdStrike收购之前玩的就是Patch内核干掉PG,然后在内核各种Hook,玩的就是Quick and Dirty,现在Any.run也是这招。你传个远控进去,远程探测一下你就知道了。
VMRay类似,只不过用了VT做Hook而已。

最后于 2024-10-9 06:34 被Hiddukel编辑 ,原因:
2024-10-9 06:32
0
雪    币: 201
活跃值: (281)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
saloyun 那么问题来了, 你猜为什么那些大佬还是要在R3采集一些数据呢?
R3接近应用端,采集的数据受到干扰因素比较小。
2024-10-9 09:27
0
雪    币: 30
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
8
yazigegeda 反了吧,r0不是应该获取得更多东西吗?
只有过滤驱动,功能和process monitor类似的功能,获取的行为信息有限。
2024-10-9 09:49
0
雪    币: 1110
活跃值: (1305)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
r3能够做精细化过滤,内核驱动做到极致无非就是对内核调度相关组件的监控,但是一些微软提供的r3框架下的敏感API,到了内核可能就演变成了n个组件共同作用的结果,已经很难看到数据本来的面目了,例如COM, GUI, .NET, 之类的。
2024-10-15 10:35
3
雪    币: 30
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
10
利用虚拟化做R3hook 可以和驱动在代码上做数据整合,例如一段代码调用了CreateFile。可以根据调用地址来查找模块信息(Image回调),如果没有找到调用地址。就是ShellCode或注入的代码或是其他非正常情况。
2024-10-15 15:04
0
雪    币: 30
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
11
利用新技术解决老问题
2024-10-25 11:10
0
雪    币: 30
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
12
修改KVM的源码。可以做到
2024-10-28 10:13
0
雪    币: 789
活跃值: (2019)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
很多年前就已经有人搞过了
2024-10-28 10:54
0
雪    币: 30
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
14
のばら 很多年前就已经有人搞过了
产品或者工具名称是什么?我看一下







2024-10-28 11:00
0
雪    币: 789
活跃值: (2019)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
NoHeart 产品或者工具名称是什么?我看一下
都在大厂内部,不是2c产品
2024-10-28 11:36
0
雪    币: 30
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
16
のばら 都在大厂内部,不是2c产品
奇安信的沙箱有可能是这种方案,大厂人才储备丰富。小厂只能利用开源
2024-10-28 14:14
0
雪    币: 30
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
17
国内有没有大神,已经完成了上述方案呀?
2024-10-30 09:58
0
雪    币: 30
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
18
虚拟化交流
2024-11-4 09:59
0
雪    币: 30
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
19
更新
3天前
0
雪    币: 6061
活跃值: (12614)
能力值: ( LV12,RANK:312 )
在线值:
发帖
回帖
粉丝
20
基于r0`r3的沙箱也有很多,典型的sandboxie也不是完全r3,也有r0做拦截时机。
另外驱动不能忽略win os兼容和适配,win7~win11 x32/x64仍要编译多版本,hyperv driver也一样,差异化也很大.
不同业务场景需要规范化,使用和适配微软过滤驱动框架,流量用tdi,wfp,ndis,文件用sfilter,minifilter usb也有框架.
基于vt ept msr api hook是解决非常规技术方案的首选,而不是常规方案的首选.
3天前
2
雪    币: 30
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
21
一半人生 基于r0`r3的沙箱也有很多,典型的sandboxie也不是完全r3,也有r0做拦截时机。 另外驱动不能忽略win os兼容和适配,win7~win11 x32/x64仍要编译多版本,hyperv ...
sandbox.sys(Intel vt-x) 
                  a.1. HookCreateFile 2.HookWriteFile 3.HookDeleteFile 
            b.1.PsCallbackXxx 2.Minifilter 3.WFP/Ndis 4.RegisterCallback
  ex:
  HookCreateFile()
  {
          Call FindPsCallbackImageCallbackIsCallModel()
          if(Yes)
                  正常调用
    else
       Shell Code 调用()
            Then:
                    分析模块注意此线程的运行。
  }
  
  维护一个驱动就可以了。
3天前
0
雪    币: 6061
活跃值: (12614)
能力值: ( LV12,RANK:312 )
在线值:
发帖
回帖
粉丝
22
你的想法太简单了
1. OS自主可控,有多种方式干掉PG,SSDT HOOK更好,基于VT做MSR EPT HOOK方案是完全没必要。
2. 商化部署,没有VT终端是没有解决方案,其次要支持intel arm多平台架构和VT嵌套。
3. Win11以后可能会有hyperPG,用VT做OS欺骗,也充满了不确定性,基于VT的HOOK也可能0x109蓝屏。
1天前
1
雪    币: 6061
活跃值: (12614)
能力值: ( LV12,RANK:312 )
在线值:
发帖
回帖
粉丝
23
一半人生 你的想法太简单了[em_014] 1. OS自主可控,有多种方式干掉PG,SSDT HOOK更好,基于VT做MSR EPT HOOK方案是完全没必要。 2. 商化部署,没有VT终端是没有解决方案, ...
这个方向基本是闭源的,很多年之前安全大厂,游戏大厂就在搞,基于VT商化产品EDR,游戏反作弊。
有些更粗暴,早些时候还有黑灰产,网吧里滥用卡巴斯基,赛门VT HOOK.sys做盗号,Hyper-v总归是要被微软合规管理,就像过滤框架一样。
1天前
1
游客
登录 | 注册 方可回帖
返回
//