我正在寻找Linux内核的信号记录器,而不需要修补内核.
我发现很多文章都有补丁,但我对此并不感兴趣.
我正在运行默认的Ubuntu 13.04.
# uname -a
Linux bt 3.8.0-26-lowlatency #18-Ubuntu SMP PREEMPT Tue Jun 25 22:36:04 UTC 2013 x86_64 x86_64 x86_64 GNU/Linux
我需要:pid,comm(发送者) – >信号(编号0-31) – > pid,comm(捕手)
也会很棒:
pidtree of sender ----- - - - - - receiver(cmd) ---- child1 of receiver, etc
/ \----child2---child1 of child2(cmd)
ppid(+cmd) ----child3(+cmd)
/ \__child4(+cmd)
ppid of ppid(cmd)
....
/
init
捕手也一样.时间戳.
我已经找到了什么:
grsecurity补丁有类似的实现.
我需要轻松简便的方法在Ubuntu上实现这一点.
解决方法:
我可以给你一个部分解决方案.
在linux内核中使用audit子系统.审计子系统记录核心转储信号.核心转储信号是:
> ABRT
> FPE
> ILL
>退出
> SEGV
>陷阱
> SYS
> EMT
>公共汽车
> XCPU
> XFSZ
可以在/var/log/audit.log中找到审核日志.
对于核心转储信号,审核记录如下
type=ANOM_ABEND msg=audit(1386433952.455:141): auid=1000 uid=1000 gid=1000 ses=2 pid=6664 comm="bash" reason="memory violation" sig=24
以上是使用uid 1000在信号SIGXCPU上对用户的进程6664进行日志记录的示例.从该日志中,您可以找出“捕获器”的comm和pid的详细信息.请注意,日志中的reason字段已损坏.即使使用此日志,我们对发件人也毫无头绪.
您可以找到配置详细信息here