Page 213 - 配电网及其自动化技术研究
P. 213
第三章 配电网自动化系统的关键技术研究
行设备检测,以防止恶意的设备伪装成Agent盗取服务器的信息。
(三)程序流程设计
首先初始化Agent和Server,Server端开启RPC服务,通过配置文件绑定Agent
端的IP和端口,进行sokcet通信。接着初始化规则库中的数据,通过操作系统的
系统调用获取相关权限,并通过相关函数fileService()、ProcessService0等获取
文件、进程相关的访问服务信息,并读入程序中进行挂钩。当某个程序进程调用
相关信息时,进程访问控制就会检测规则库中是否存在相关匹配,如果匹配将继
续调用系统服务并将结果保存到数据库,如果不授权,将拒绝访问,最后也可以
通过日志文件进行查看。
四、配电自动化系统入侵防御系统的实现
(一)文件保护模块实现
fsnotify是一种对文件系统变化进行监控从而产生通知事件的机制,并通过文
件变化动态控制程序运行,从而达到监控系统内文件的效果。fsnotify作为一个
监控器,最基本的功能是当文件系统出现变化时通知相应的监控程序。比如,配
电自动化系统文件A被打开时,监控程序就能得到通知,说文件A即将被打开,
这样监控程序就可以做一些相应的工作。类似文件夹异常打开等操作都依赖这个
机制,通过对fanotify 事件的改变来达到实现文件系统读、写、打开、关闭变化
的监控。
首先,调用NewWatcher创建一个监听器watch;调用getConfigFile0获取配置文
件路径,抽出文件名、目录,配置文件如果是一个符号链接,获得链接指向的路
径;调用watcher.Add(conDir)监听配置文件所在目录,另起一个goroutine 处理事
件。接着就能使用Create、Write、Remove 等方法创建,写入,删除等操作了。
(二)进程防御模块实现
进程防御规则内核态通过so preload来覆盖libe.so中的execve。等函数来监控
进程的创建。程序员可以设定载入动态链接库的优先级别,方便系统操作者根据
自身需求有选择地载入不同动态链接库中具有相同功能的函数。通过进程事件连
接系统的内核,有效的处理进程事件,实现对进程加载的操作,从而阻止非法进
程的启动,从而达到系统保护的目的。
205

