UNIX主机行为监控系统的设计与实现
摘要 :该文介绍了Unix主机行为监控系统在大型网络中的应用及作用 ,并提出了具体的设计方案与实现方法.该系统主要采用透明的方式串接在工作区域和服务器群之间 ,利用网卡零拷贝的技术保障业务流量不会产生瓶颈 ,同时利用 bypass 的技术来保障服务器群的高可用性 ,既能保证服务器群的安全 ,又不会给网络带来附加的影响.
引 言
目前 ,财税\ 公安\ 金融\ 电力\ 电信和移动行业\大型公司和著名门户网站 ,通常选择 Unix/Linux 主机来运行关键业务 ,企业数据中心通常拥有数量众多的 Unix/Linux 主机 ,用以运行电子商务\ 数据库应用\ 运维管理\ ERP和协同工作群件等.大型企业内部甚至有数百台 Linux/ Unix 主机\ 大量的数据库系统应用\ 系统软件和复杂的网络系统.面对系统和网络安全性\ IT运维管理和 IT内控外审的挑战 ,管理人员需要采用有效的技术手段 ,按照行业标准进行精确管理\ 事后追溯审计\ 实时监控和警报.但由于缺乏相应的先进工具和手段 ,企业无法保证系统管理员严格按照规范来进行管理 ,如无法保证系统管理员的真实管理行为/ 管理报告与规章制度要求一致 ,造成企业网络及服务器经常处于不可信\ 不可控\不可视的状态.UNIX主机行为监控系统主要用于 UNIX服务器系统安全防护 ,让 UNIX服务器的操作\管理与运行更加可视\ 可控\ 可管理\ 可跟踪\ 可鉴定.该系统解决了 UNIX服务器系统级别的安全问题与安全威胁 ,为国家重要部门和企业 UNIX服务器的正常有序运行 ,提供可靠的安全保障;同时 ,可对数据库\ 网络设备\ 安全设备等各种 IT设备进行操作行为管理.
1 系统设计
1.1 总体设计
考虑到系统的安全性和运行的效率 ,UNIX主机行为监控系统可采用自行修改和裁剪的 Linux 内核作为基础平台 ,系统工具集采用 busybox ,因此除了 C 语言的一些运行时库外 ,不依赖于任何发行版的Linux 系统.这样既避免了发行版Linux 众多的服务中可能存在安全漏洞的隐患 ,也节省下来了这些服务运行所消耗的系统资源.
UNIX主机行为监控系统完全可透明地串接在工作区域和服务器群之间 ,系统本身不需要分配 IP地址 ,直接将两端的出口分别接在系统的两个网卡上即可.一般情况下流经系统的数据分为两部分 :一部分是服务器对外提供的业务流量;另一部分是维护人员对服务器本身进行维护的操作流量.系统需要监控的是第二部分流量 ,也就是维护操作流量 ,对于业务流量系统需要近乎于线性的转发 ,不能因为 接入了系统而影响原有正常业务的运行效率.系统总体设计可采用如图 1\ 2 所示 ,图 1 是在设备一切正常的情况下运行示意 ,图 2 是在数据分流引擎或者反解析引擎崩溃的情况下运行示意.
图 1 设备一切正常的情况下运行示意
图 2 数据分流引擎或反解析引擎崩溃的情况下运行示意
1.2 模块设计
1.2.1 网卡驱动设计
网卡驱动是系统中唯一运行在内核级的模块 ,通过/proc 与运行在应用层的模块进行交互.考虑到稳定性因素 ,网卡驱动仅仅向应用层提供读取数据包和转发数据包接口 ,其他逻辑功能均在其他模块中实现.同时考虑到系统后期升级问题 ,网卡驱动以 ko 的方式存在 ,而不是直接编译到内核当中.
1.2.2 数据分流引擎设计
数据分流引擎的主要作用在于从网卡驱动获取当前进入系统的数据包 ,同时对数据包进行识别 ,当识别为操作数据流时 ,将数据包交由反解析引擎做进一步处理 ,反之直接通过另一边网卡发送数据.
1.2.3 反解析引擎设计
反解析引擎从得到的操作数据流中还原出维护操作 ,并将操作以日志的形式发送至分析引擎进行规则匹配 ,同时将数据流记录为二进制文件 ,该文件将作为实时监控和回放的源文件.
1.2.4 分析引擎设计
分析引擎接收到反解析引擎发送来的操作日志时 ,通过预定义的规则库对操作日志进行匹配.如果在匹配过程中 ,命中了规则库的某条规则 ,则产生相应的动作 ,反之简单地将操作日志录入操作日志数据库.
1.2.5 Bypass 引擎设计(本文最后详细介绍Bypass网卡)
Bypass 引擎实时监控反解析引擎和数据分流引擎的运行情况 ,一旦发生故障 ,立即通过内核打开硬件Bypass 继电器 ,保证网络的通畅 ,同时重新启动反解析引擎和数据分流引擎 ,当重启完毕后再次进入系统监控状态.
2 系统实现
2.1 网卡驱动实现(本文最后详细介绍Bypass网卡)
网卡驱动需要根据选择的硬件不同而实现不同的代码 ,这里以 intel100M网卡为例来介绍如何实现系统中的纯透明模式.纯透明不同于桥接 ,假设使用 eth0 和 eth1 两个网口 ,那么两端分别接到这两个网口上 ,但对于两端而言都感知不到系统的存在 ,和直接使用网线把两端连接起来效果相同.
首先 ,在 e100-set-multicast-list 接口中 ,将 eth0 和 eth1 对应的 flags 置为 IFF-PROMISC ,保证网卡工作在混杂模式.然后 ,在 e100-rx-indicate 接口中加入代码 ,如果发现是由 eth0 和 eth1 接收到的数据包 ,则把相应的 sk-buff(Linux 内核存储网络数据包的结构体)缓存下来 ,而不交给内核中的 TCP/ IP 协议栈代码处理 ,等待数据分流引擎来读取.最后 ,封装 e100-xmit-frame 接口 ,供其他引擎直接调用发送数据包.
2.2 数据分流引擎实现
数据分流引擎从/proc 下的指定文件中读取出网卡驱动接收到数据包的物理地址 ,通过 mmap 将物理地址映射到本进程的虚拟地址空间 ,此后对数据包所在内存的操作可以完全与进程空间内的内存操作相同.
由于获取到的数据包为包含链路层包头的裸数据包 ,因此首先需要模拟内核的 TCP/ IP协议栈对数据包进行重组和拆解处理 ,然后对应用层数据进行模式匹配 ,匹配命中的数据包交给反解析引擎做进一步处理 ,反之通过/proc 下指定文件将转发指令传给内核 ,由内核负责数据包直接转发.
2.3 反解析引擎实现
反解析引擎需要对 SSH\TELNET和 RLOGIN 3 种常用的 UNIX 服务器维护协议进行反解析.对于TELNET和 RLOGIN 两种协议比较简单 ,因为它们使用明文方式传输 ,所以只需要对数据包进行分析并解析出操作 ,然后原样转发数据包即可.SSH 使用公钥加密\ 私钥解密的加密通讯方式 ,因此需要首先在 SSH连接协商阶段对密钥对进行替换 ,接下来的处理方式与 TELNET和 RLOGIN 雷同 ,原理如图 3 所示 :
图 3 反解析引擎实现
2.4 分析引擎实现
分析引擎启动时从用户自定义规则文件中加载规则树(为达到高速匹配的目的 ,使用树形规则库 ,而不使用规则链) ,规则节点中包含规则 ID\ 条件和动作 3 个主要字段 ,动作包括告警和阻断两种.
分析引擎实时接收反解析引擎发送来的操作日志数据 ,然后对操作日志进行规则树匹配 ,如果匹配命中则按照动作进行相应处理.命中规则中动作为阻断则向连接建立的两端分别模拟发送 rst 包阻断连接 ,动作为告警则向告警中心发送告警信息.
2.5 Bypass 引擎实现
Bypass 引擎通过本地 UDP通讯分别向数据分流引擎和反解析引擎发送质询包 ,询问两者的实时状态 ,两个引擎接收到质询后要立即向 Bypass 引擎回复运行状态.质询期超时设定为 3s ,也就是说如果3s 内 Bypass 引擎收不到数据分流引擎和反解析引擎的运行状态 ,则立刻通过/proc 下指定文件向内核发送开启 Bypass 继电器指令 ,整个系统进入直接通路状态.在通路状态下 ,由于继电器的作用 ,所有网络数据包直接由两块网卡在硬件上转发 ,此时软件模块全部失效 ,具体状态可参见图 2.
当然 ,由于存在一个质询周期 ,如果刚好在质询周期的开始数据分流引擎或者反解析引擎出现问题 ,那么网络会在质询周期内出现中断的现象 ,因此在 CPU 性能较强的情况下 ,应该将质询周期适当缩短 ,以保证网络通畅.
3 结束语
UNIX主机行为监控系统 ,实现了对 UNIX 服务器进行远程维护的全方位控制和监管 ,不改变原有网络结构和使用方式 ,且整体部署方式简单 ,可以比较方便地集成到现有安全策略的管理架构中.可以预见 ,该系统将会成为网络安全防护系统的重要组成部分 ,对单位内部网络安全起到积极的作用.
本文转载百度学术:http://xueshu.baidu.com/s?wd=paperuri%3A%2843a3cc93385516d52369f01b5d602d23%29&filter=sc_long_sign&sc_ks_para=q%3DUNIX%E4%B8%BB%E6%9C%BA%E8%A1%8C%E4%B8%BA%E7%9B%91%E6%8E%A7%E7%B3%BB%E7%BB%9F%E7%9A%84%E8%AE%BE%E8%AE%A1%E4%B8%8E%E5%AE%9E%E7%8E%B0&sc_us=13894097016487055883&tn=SE_baiduxueshu_c1gjeupa&ie=utf-8
联瑞(LR-Link)Byapss网卡图:
(LREC9712HT-BP详细参数请点击图片)
关于bypass网卡功能如下:
1.支持各类网关设备(如:防火墙\IDP\UTM\入侵防御系统IPS\垃圾邮件网关\防病毒网关\专用DDos设备\各领域专用逻辑隔离设备等等)的智能切换,提供标准开发接口(支持windows /Linux/BSD/Unix/Solaries等各类系统设备);
2.纯硬件切换,切换时间短\不影响数据传输速率;
3.可自定义切换临界选择点;
4.支持多种切换方式:自动切换或人工软件切换;
5.确保自身设备安全性,故障时自动直通;
6.指示灯\声音切换告警通知功能;
7.支持多接口自动切换;
8.透明模式\自身无需IP地址;
9.即插即用\不影响网络结构;
10.1U标准工业级机箱设计,平均无故障工作时间MTBF(Mean Time Between Failure)大于4万小时;
11.可应用于网关设备维护\升级\程序调试\设备测试等各阶段,避免网络短时间中断;
12.支持定制单模或多模光纤接口;