基础知识点
https://www.secrss.com/articles/12468
第一部分是事件部分,事件是所有数据的基础,event事件代表了每一个API发生时一条数据、一条日志信息。
系统调用表的 hook
这种审计的方式有一个好处是在内核当中、在这个文件中对每条指令都插入了这两条指令。通过用户态praudit访问管道设备可以抓取系统中每条系统调用的日志信息。
审计部分的 日志信息
这种审计的方式有一个好处是在内核当中、在这个文件中对每条指令都插入了这两条指令。通过用户态praudit访问管道设备可以抓取系统中每条系统调用的日志信息。
kauth 机制
可以编写一些回调函数,对系统发生的事件进行监控 常规、进程、VNODE、文件操作
使用 MACF 框架, mac_
开头的一组调用的封装
所有资源访问的系统调用都会经过一组预先注册好的回调函数进行预检
1、文件读写是重点关注vnode的API,vonode类似于Linux的inode,是文件系统对文件抽象的一个数据类型,可以对常见的write、unlink等进行挂钩,检测文件读写信息。
2、文件执行管理。首先是一个进程启动fork,通常一个应用执行是fork和exec两部分组成。可以在fork时检测应用程序启动过程中的证书信息、签名信息以及teamID信息。
启动的第二个阶段我们可以去检测它的权限信息,包括权限、父进程、参数信息。另外一种管理文件执行的方案是挂钩这个函数接口,是应用程序执行后会调用的一个API,我们可以在内核当中获取这个API,对它进行hook操作,同样也是可以实行文件执行管理的功能。
3、网络访问管理。可以通过这一系列API,socket创建、设置socket属性的这么一个API,或者使用NKE的一个接口。NKE需要传入一个信息,这个信息可以包含它的协议,包括TCP、UDP甚至ITV6这些信息。
4、进程管理。进程信息由一组proc_check开头的信息,我们可以挂钩这些接口去实现进程的管理。
5、系统调用审计。系统调用审计可以看一下一个进程执行过程中所有的流程,它最终是调用了这个调用,在底层10.15里引入了这个接口,可以完全对所有的syscall的调用审计。
6、终端隔离。终端隔离主要分为网络访问阻断和进程启动阻断,这两个机制可以通过前面介绍的方式对它进行管控。
7、资产报备。EDR会对用户的信息进行统计。