
2.分析audit_syscall_entry函数
(1)audit_syscall_entry接口功能说明
函数名:audit_syscall_entry
参数:arch为CPU的架构,major为系统调用号,a1~a4为系统调用的参数,
返回值:无
功能:系统调用信息先暂存在进程的审计上下文中。该函数是__audit_syscall_entry的封装函数。
(2)__audit_syscall_entry.函数分析
该函数首先获取进程的审计上下文结构,然后查询entry规则链表,判断该审计上文中需要审计的项目是否符合规则,如果符合规则,返回对此类符合规则的审计消息所能采取的动作(不生成记录或生成记录),该函数还将此次系统调用的信息(系统调用号、调用参数、调用的时间等)写入审计上下文。 __audit_syscall_entry的调用层次图如下:

图2-18 __audit_syscall_entry的调用层次图
3.分析audit_syscall_exit函数
audit_syscall_exit是__audit_syscall_exit的封装函数,所以这里主要分析__audit_syscall_exit。

(1).audit_syscall_exit接口功能说明
函数名:__audit_syscall_exit
参数:success为系统调用是否成功的标志,return_code为系统调用的返回值。
返回值:无
功能:将审计上下文中所有本次系统调用期间产生的有关进程的各类信息,符合exit规则链表上规则的信息全部写出(发送给用户)。
(2).函数分析
在前面一文中已经知道this,其指向不是指向函数自身,也不是指向函数的作用域,一旦创建一函数,系统会默认的生成一个名为this的关键字,它的指向与它所运行的坏境,也就是上下文有关,this是在运行时进行绑定的,它的上下文取决于函数调用的各种条件(函数调用(全局的),方法调用,构造函数调用,间接调用),this的绑定与函数声明的位置没有任何关系,只取决于函数的调用方式,也就是说,它链接到运行该函数的对象,我们之所以频繁的用this,其根本目的就是在找准对象,并对其进行dom相关操作,往往是为了找某个指定的元素,但是又由于this的使用比较特殊,除非特意,大多数时候,我们是不希望找出window对象的,所以非期望对象值总会令你困扰, 使用this时,什么时候出现问题。注意接口安全调用,一个函数可能会创建无数的上下文,因为对函数的每次调用(即使这个函数递归的调用自己)都会生成一个具有新状态的上下文:。通用发送使用一个不带阻塞时间的队列发送函数,调用这个函数与普通队列的不同就是在调用 prvcopydatatoqueue 这个函数时,此函数处理不同,这个函数之前在将队列时讲述过,函数代码如下:。

图2-19 audit_syscall_exit函数流程图
2.3.4.2其它内核函数的审计
进程在运行的过程中,许多操作会产生一些特征中间数据,如:执行二进制文件的文件名、参数、进程间通信的消息路径搜索时的目录项信息等,审计系统通过在内核的系统调用等函数中加入审计系统 hook 函数来实现对特征数据的截获,截获的特征数据填充在进程的审计上下文结构的辅助数据链表aux 上。
1.进程辅助审计数据

二、大数据时代下财务报告审计方法浅探(一)审计数据的采集与储存审计大数据系统收集审计数据,主要涉及将不同数据源中的多种数据类型的数据采集后通过云储存、分布式系统等平台存储起来,并按一定业务规则对这些数据进行预处理,使之满足下一步审计数据分析的需要。在切换时,一个进程存储在处理器各寄存器中的中间数据叫做进程的上下文,所以进程的 切换实质上就是被中止运行进程与待运行进程上下文的切换。控制调度器通过三个进程来协调url管理器和数据存储器的工作,一个是url管理进程,负责url的管理和将url传递给爬虫节点接口安全调用,一个是数据提取进程,负责读取爬虫节点返回的数据,将返回数据中的url交给url管理进程,将标题和摘要等数据交给数据存储进程,最后一个是数据存储进程,负责将数据提取进程中提交的数据进行本地存储。
struct audit_aux_data {
struct audit_aux_data *next;
Int type;
};
结构 audit_aux_data是个抽象的数据结构,必须由其他派生结构继承才能存放具体的信息,派生结构一般将基类结构作为第一个成员。通过基类结构指针,可将描述具体信息的派生结构形成链表放在审计上下文中。例如:记录执行应用程序环境信息的结构列出如下:
struct audit_aux_data_execve {
struct audit_aux_datad;
int argc;
int envc;
struct mm_struct *mm;
};

2.审计钩子函数
在任何需要写出审计信息的内核函数中都可以放置进程审计hook 函数,具体的审计信息存储在辅助数据结构 audit_aux_data 的派生结构中,hook函数完成的工作是:将内核函数的审计数据填充到派生结构并将派生结构挂接到进程审计上下文的辅助数据链表中。每个 hook 函数拦截的审计消息对应一个审计消息类型,工具 auditctl 可以过滤需要的审计消息。部分进程审计的hook函数如下表2-3:
表 2-3 进程审计的部分钩子函数
被放置的地点
audit_alloc
分配审计上下文结构
audit_getname
getname函数
获取名称信息
audit_inode
路径查询等函数
获取索引节点和设备信息

audit_inode_child
文件系统对象或删除的函数
获取父亲或孩子的索引节点信息
audit_ptrace
ptrace调用
获取进程的信用信息
audit_ipc_obj
msgctl调用
获取进程的ipc信息
execve调用
获取执行该程序的信息
赞赏
人赞赏
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/tongxinshuyu/article-115438-1.html
小编你是无知还是意淫
允许一妻多夫
这样大家都各取所需
美国佬喜欢欺负小字辈