LivedForward 发表于 2023-4-2 11:14

SECCOMP_RET_TRAP 信号量检测主动执行的对抗

关于SECCOMP_RET_TRAP,使用信号量去检测的方法,在之前的帖子里面已经讲过了。
其实这种方法可以通过拦截sigaction系统调用,拿到handler地址,主动去调用执行handler即可。
handler函数一般有如下两种:






第一种一般是与sigqueue函数配套使用,第二种则是与raise或者kill函数配套使用。
那是不是意味着信号量这种检测手段就彻底被废弃了呢?当然不是,既然是第三方的主动去执行,
那我们也可以检测这种主动执行的情况。比如注册SIGSYS的信号注册3个handler任意挑选里面的1个去
真正产生SIGSYS信号的执行检测seccomp,另外两个不产生SIGSYS信号(这里产生信号的方式有很多种,
使用函数去主动发送信号是其中的一种)。然后去检测这三个handler的结果,做分析判断即可。

也可以使用sigqueue发送信号时携带一些数据信息,然后handler里面验证这些数据,当然也可以拦截
sigqueue系统调用,也一样可以绕过了。

另外我们也可以解析handler的调用堆栈,符号,一般主动执行的都会与系统执行的堆栈有较大的不同。
其实检测的维度也是多种多样的,仔细静下心来想想,也很容易就得出方案。

debug_cat 发表于 2023-4-2 11:41

大佬能详细讲解下关于这个东西用途嘛,比如应用到哪些地方,有什么具体的场景可以适用。或者入门的资料有推荐吗

vshonker 发表于 2023-4-2 12:48

不错 学习学习

LivedForward 发表于 2023-4-2 12:51

debug_cat 发表于 2023-4-2 11:41
大佬能详细讲解下关于这个东西用途嘛,比如应用到哪些地方,有什么具体的场景可以适用。或者入门的资料有推 ...

可以去看雪论坛,看看 王麻子本人 《seccomp+bpf》拦截系统调用实现IO重定向的帖子,这个可以用于IO重定向,沙盒类的场景,比如过签名校验,apk校验等。

debug_cat 发表于 2023-4-3 09:10

LivedForward 发表于 2023-4-2 12:51
可以去看雪论坛,看看 王麻子本人 《seccomp+bpf》拦截系统调用实现IO重定向的帖子,这个可以用于IO重定 ...

{:1_893:}感谢感谢指点

楠枫nf 发表于 2023-8-9 14:42

学习了学习了 这个之前的帖子呀全没了想参考一下,结果没看到了:'(weeqw
页: [1]
查看完整版本: SECCOMP_RET_TRAP 信号量检测主动执行的对抗