Linux内核学习笔记 -31 实践:配置/添加系统调用(收集系统日志)
发布时间
阅读量:
阅读量
在Linux 5.0内核的基础上引入一个新的系统调用功能,然而仅仅增加一个系统调用可能显得过于简单,因此将系统调用、工作队列、内核修改、内核编译、内核模块的编写与插入等多方面内容综合起来进行设计。此次新增的系统调用功能旨在构建一个日志收集系统。
系统调用作为用户程序与操作系统交互的关键接口,其安全性对整体系统的安全具有重要影响。例如,若某个用户恶意频繁使用fork系统调用,则可能造成系统资源的过度消耗和负载上升。因此,若能有效记录哪些用户执行了具有潜在风险的系统调用,并获取相关的时间及其他详细信息,则可为管理员提供事后追溯依据,从而增强系统的防护能力。下图展示了本次新增的日志收集系统的结构示意图。
当用户进程发起系统调用时,在执行到do_syscall_64这一阶段时,判断当前是否属于需要记录的特定系统调用类型。如若匹配成功,则通过my_audit函数将相关数据写入到内核中的缓冲区中。同时,在用户端编写测试程序以验证该功能。
在用户的测试程序中,通过新添加的335号系统调用来触发my_sysaudit函数的执行。该函数负责将存储于内核缓冲区中的信息传递至用户的缓冲区中。其中,my_audit和my_sysaudit这两个函数作为钩子函数,在my_audit内核模块中实现具体的功能逻辑。接下来将详细介绍具体的实现步骤。
全部评论 (0)
还没有任何评论哟~
