背景 市面上大多数沙箱都是通过注入DLL、内联Hook加过滤驱动的形式来进行采集样本运行行为信息。
此方案是否已经过时了呢? 虚拟化技术运用在windows安全上已经有十几年了,常见的是运用在内核,做一些重要内核函数Hook。 那能不能将虚拟化技术运用在沙箱上,做应用层Hook呢,实现虚拟化R3 Hook+ 过滤驱动的形式来做采集样本动态行为的底层技术框架呢? 答案是肯定的。只要写一个windows驱动就能实现应用层Hook和内核层过滤驱动的统一。因此R3和R0的数据行为就关联起来。优势: 1.不在需要注入的DLL,这样就省去适配不同的操作系统。烦人的汇编代码就可以抛弃了。 2.Hook函数做统一处理。不需要inline Hook算地址长度跳来跳去,当字节不够了还需要做二级跳转。 3.内核和应用层做格式统一。将R3的Hook运行在R0.在运行时进行数据关联。 4.轻松实现内存查杀,特征码匹配。 5.ShellCode的检测变得异常简单。
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
0.0
saloyun 那么问题来了, 你猜为什么那些大佬还是要在R3采集一些数据呢?
R0获取的信息太少,需要在R3来采集更多的信息。
NoHeart saloyun 那么问题来了, 你猜为什么那些大佬还是要在R3采集一些数据呢? R0获取的信息太少,需要在R3来采集更多的信息。
沙箱开发本身限制不多,那玩意说白了所有组件都是在自己的VM环境里跑的,你可以在里面随心所欲玩各种黑魔法,没人管你。几年前VxStream被CrowdStrike收购之前玩的就是Patch内核干掉PG,然后在内核各种Hook,玩的就是Quick and Dirty,现在Any.run也是这招。你传个远控进去,远程探测一下你就知道了。VMRay类似,只不过用了VT做Hook而已。
yazigegeda 反了吧,r0不是应该获取得更多东西吗?