Skip to content

1 需求分析

okokme edited this page Apr 27, 2019 · 3 revisions

背景

运行环境

  • deepin Linux x86_64 系统

条件与限制

业务功能需求

  • 监视和记录指定目录文件下文件事件(包括打开和关闭),当打开和关闭事件发生时,client向server发送一个文件事件信息(包括文件路径、文件句柄、和操作方式等等)
  • 用户在配置了指定的监视服务器后,必须等待server对该文件进行指令后,才可根据规则执行操作(操作包括:读取、删除、重写等)
  • 当监视服务器关闭或网络不通时,client拒绝任何操作,不允许任何人打开文件
  • 当没有配置监视服务器时,根据默认权限执行操作

业务功能注意事项

  • 关于多进程同时对多文件执行不同操作的情况
  • 关于服务端同时接受多个客户端请求执行的情况

系统功能需求

  • 客户端服务端进行通信,包括客户端使用(XX协议)进行事件信息上传和服务端进行下发指令
  • 文件系统监听,审计

客户端实现方案

  • 在对某目录或文件进行监测的时候,使用hook技术在ring0层来拦截系统调用(包括open close 以及读写操作),执行我们自己的代码模块。在这个过程中,通过服务器的反馈来决定是否同意被监视进程对该文件的所有操作。

性能及运行需求

hook方案的调研

  • 系统调用属于一种软中断机制,它有操作系统提供的功能入口(sys_call),
Clone this wiki locally