《一种云工作负载管理和安全感知系统的设计和实现 (2).doc》由会员分享,可在线阅读,更多相关《一种云工作负载管理和安全感知系统的设计和实现 (2).doc(76页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、摘要随着信息化的发展,信息服务在社会生活中变得越来越重要,这给人们生产生活带来巨大便利的同时也带来了更大的安全威胁。新型网络犯罪层出不穷,尤其示对于信息服务提供商而言,其带来的安全隐患可能导致致命的后果。安全管理作为网络安全建设的重要一步,越来越受到重视,对工作负载的主动安全感知能力的要求也越来越高。尤其是随着虚拟化、云计算的发展,工作负载的概念已经从原来的物理机的概念扩展到虚拟机、容器,对其进行安全管理也变得更加的繁琐。本文以上述问题作为出发点,设计并实现了一套云工作负载管理和安全感知系统,用于辅助决策,提高安全防御能力。该系统分为两个子系统:采集和处理子系统、安全感知平台子系统。前者又可以
2、分为Client端和Manager端,分别负责云工作负载上数据的获取和加工处理,并使用国密SM4加密算法保证两者之间的通信安全;后者负责将加工处理后的数据以友好的界面展示给用户,让用户直观地了解当前云工作负载的基本信息和安全状况。其中安全状况由三方面体现:事件警告、文件监控及安全基线检测。本系统使用XML文件实现了特征规则和安全基线检测点的灵活配置,大大提高了系统的扩展性。本系统在实现过程中,严格按照软件开发标准流程进行,首先通过构建需求用例图对需求进行认真分析,确认系统需要实现的功能;再对系统整体架构及各个子模块进行概要设计,之后采用流程图、时序图的方式对系统进行详细设计并实现了该系统,最后
3、对系统进行测试,保证系统正常工作。关键词:安全感知,特征规则,安全基线检测,文件监控,安全管理iAbstractWith the development of informatization, information services have become more and more important in social life, which has brought great convenience to peoples production and life and also brought greater security threats. The emergence of new
4、 types of cybercrimes is endless, especially for information service providers, which can lead to fatal consequences for security risks. As an important step in the construction of network security, security management is receiving more and more attention, and the requirements for active security aw
5、areness of workloads are becoming higher and higher. Especially with the development of virtualization and cloud computing, the concept of workload has been extended from the original concept of physical machines to virtual machines and containers, and the security management of it has become more t
6、edious.Based on the above issues, this paper designs and implements a cloud workload management and security awareness system to assist decision-making and improve security defense capabilities. The system is divided into two subsystems: the acquisition and processing subsystem, and the security-awa
7、re platform subsystem. The former can be divided into Client and Manager, which are responsible for data acquisition and processing on cloud workloads, and use the SM4 encryption algorithm to ensure communication security between the two; the latter is responsible for showing, in a friendly way, the
8、 processed data to the user, allowing the user to intuitively understand the basic information and security status of the current cloud workload. The security situation is reflected in three aspects: event warning, file monitoring and security baseline detection. This system uses XML files to achiev
9、e flexible configuration of feature rules and security baseline detection points, which greatly improves the scalability of the system.The system is developed in strict accordance with the standard software development process. First, carefully analyze the requirements by constructing use case diagr
10、am to confirm the functions that the system needs to implement. Then outline the overall architecture of the system and each sub-module. The system is designed and implemented in detail in the manner of diagrams and timing diagrams. Finally, the system is tested to ensure that the system works norma
11、lly.Keywords:security awareness, feature rules, security baseline detection, file monitoring, security management iii浙江大学硕士学位论文 目录目录摘要iAbstractii图目录IV表目录VI第1章 绪论11.1 课题背景11.2 研究现状11.3 本文主要工作3第2章 系统需求分析42.1 系统整体需求分析42.2 用户角色分析42.2.1 普通用户52.2.2 安全运维人员52.2.1 系统管理人员52.3 安全感知平台功能性需求分析52.3.1 登陆模块52.3.2 警告
12、管理62.3.3 文件监控管理62.3.4 安全基线管理72.3.5 资产管理72.3.6 客户端管理82.3.7 系统管理82.4 采集和处理子系统功能性需求分析92.4.1 Client端92.4.2 Manager端92.5 系统非功能性需求分析102.6 本章小结10第3章 系统概要设计113.1 系统总体设计113.2 采集和处理子系统概要设计123.2.1 系统信息采集133.2.2 文件监控133.2.3 日志收集143.2.4 安全基线检测143.2.5 消息发送和命令接受143.2.6 注册143.2.7 消息接受和命令下发143.2.8 消息处理153.2.9 数据存取15
13、3.3 安全感知平台概要设计153.3.1 登陆模块173.3.2 警告管理173.3.3 文件监控管理183.3.4 安全基线管理183.3.5 资产管理183.3.6 客户端管理183.3.7 系统管理193.1 数据库设计193.1.1 数据库概念设计193.1.2 数据库物理结构设计213.1 本章小结29第4章 系统详细设计和实现304.1 特征规则匹配实现304.2 安全检测点实现334.3 采集和处理子系统详细设计和实现354.3.1 系统信息采集354.3.2 文件监控374.3.3 日志收集394.3.4 安全基线检测404.3.5 消息发送和命令接受404.3.6 注册41
14、4.3.7 消息接受和命令下发424.3.8 消息处理434.3.9 数据存取464.4 安全感知平台详细设计和实现474.4.1 登陆模块474.4.2 警告管理484.4.3 文件监控管理494.4.4 安全基线管理494.4.5 资产管理504.4.6 客户端管理514.4.7 系统管理524.5 本章小结53第5章 系统测试545.1 测试环境545.2 功能测试545.2.1 登陆模块545.2.2 警告管理555.2.3 文件监控管理565.2.4 安全基线管理575.2.5 资产管理585.2.6 客户端管理595.2.7 系统管理605.3 非功能测试615.4 本章小结62第
15、6章 总结和展望636.1 全文总结636.2 问题展望64参考文献65III图目录图 1.1 信息安全产品矩阵图2图 2.1 登陆模块用例图6图 2.2 警告管理用例图6图 2.3 文件监控管理用例图7图 2.4 安全基线管理用例图7图 2.5资产管理用例图8图 2.6 客户端管理用例图8图 2.7 系统管理用例图9图 3.1 系统总体架构设计图12图 3.2 采集和处理子系统架构图13图 3.3 安全感知平台架构设计16图 3.4 采集和处理子系统E-R图20图 3.5 安全感知平台E-R图21图 4.1 解析器节点组织示意图31图 4.2 检测点组织形式33图 4.3 系统信息采集流程图
16、36图 4.4 端口信息采集流程图37图 4.5 文件监控流程图38图 4.6 日志收集流程图39图 4.7 安全基线检测流程图40图 4.8 消息发送和命令接受流程图41图 4.9 注册模块流程图42图 4.10 消息接受和命令下发43图 4.11 消息处理模块流程图44图 4.12 事件解析处理流程图45图 4.13 数据存取模块流程图46图 4.14 登陆模块功能示意图47图 4.15 警告管理时序图48图 4.16 更改检测模版时序图50图 4.17 资产清点时序图51图 4.18 版本升级时序图52图 4.19 用户操作记录时序图53表目录表 3.1 用户信息表21表 3.2 角色表
17、21表 3.3 角色权限表22表 3.4 操作记录表22表 3.5 安全基线检测项表22表 3.6 文件监控表23表 3.7 资产信息表24表 3.8 资产用户信息表24表 3.9 资产用户组信息表25表 3.10 端口信息表25表 3.11 通用软件信息表26表 3.12 内核模块信息表26表 3.13 资产用户登陆信息表27表 3.14 资产系统用户操作记录表28表 3.15 进程信息表28表 5.1 登陆模块功能测试用例表54表 5.2 警告管理功能测试用例表55表 5.3 文件监控管理功能测试用例表56表 5.4 安全基线管理功能测试用例表57表 5.5 资产管理模块功能测试用例表59
18、表 5.6 客户端管理模块功能测试用例表59表 5.7 系统管理模块功能测试用例表61表 5.8 非功能测试用例表61VI第1章 绪论1.1 课题背景互联网已经渗透到人类社会的各个方面,极大地推动了社会进步1,成为人们生活日常中不可或缺的一部分。根据中国互联网络信息安全中心发布的第44次中国互联网络发展状况统计报告(下称统计报告),截止2019年6月,我国网民规模达8.54亿,较2018年底增长2598万,互联网普及率达61.2%,在线政务服务规模达5.09亿,占网民整体的59.6%2。显然,网络已经深入到政府服务、企业生产、个人生活的方方面面,网络服务厂商在社会中也承担越来越重要的角色。但是
19、,网络带来巨大效率和便利的同时,也带来了更多的安全隐患。统计报告显示,2019年上半年安全事件频发,我国总计有近4万个网站被篡改(包含200多个政府网站),同时,有2.6万个网站被植入后门,同比增长了1.2倍2。国家信息安全漏洞库2019年的统计报告显示,截至2019年底,采集漏洞总数已达137822个,下半年月平均增加数量达到1660个3。安全形势越来越严峻,网络攻击行为发展趋势呈现分布化、规模化和复杂化,网络威胁表现多样化4。尤其是移动互联网、大数据等技术的发展,工作负载承担的功能越来越复杂,安全问题也日益突出,目前的安全防御措施已经无法满足工作负载的安全防护要求了。另外,随着虚拟技术和云
20、计算技术的提高,工作负载的概念已经延伸到物理机、虚拟机、容器甚至Serverless,安全也不再仅仅是物理机上的安全,而是要更加关注于工作负载的安全。在安全问题如此频发、安全形势如此严峻的网络环境下,对工作负载进行安全管理,及时感知到其中潜在的不安全事件并做好防范,对网络与安全的建设具有重要意义。1.2 研究现状安全威胁来自于多方面,例如网络病毒、网络钓鱼、SQL注入、拒绝服务攻击、恶意软件攻击、跨站脚本攻击、利用系统安全漏洞以及内部用户的恶意破坏或泄密等5。针对这些安全威胁,可以采取的保护措施有访问控制、数据加密、防火墙技术和入侵检测技术等。访问控制一共有两种:显式访问控制和隐式访问控制。显
21、示访问控制是指某个主体直接控制对其他对象的访问权限,比如配置用户可以访问的网络地址。隐式访问控制是指信息加密后无法被任何非授权节点和用户访问6。数据加密用于保障信息安全性。使用最广泛的就是数字签名技术,不仅保证了信息安全性,还保障了数据的抗抵赖性。加密方法大体上可以分为对称性加密和非对称性加密,区别在于加密和解密是否使用了同一个密钥。典型的对称性加密算法有AES算法、SM4算法等。典型的非对称性加密算法有RSA算法。防火墙技术将网络划分为内外和外网,基于提前定义好的安全规则,一定程度上限制内、外网之间的交流。目前,常见的防火墙包括代理型防火墙和包过滤型防火墙7,两者各有优势和特点。代理型防火墙
22、用于OSI的应用层中,对应用层通信流进行监视和控制,进而达到确保网络安全的目的。包过滤型防火墙用于OSI网络层和数据传输层,其能够按照相关标志确定是否允许数据包通过,如端口号、网络通信协议类型以及目的地址等8。入侵检测系统(Instruction Dectection System,IDS)既可以用来检测已知攻击,也可以用来发现未知威胁9。它负责监控与检测应用、系统和用户的行为,如果发现某些行为具有安全威胁,如删除关键文件等,则会产生警告,帮助安全运维人员采取有效措施。针对安全威胁,国内外的安全厂商也推出了应对各种场景的、种类繁多的安全产品。按照信息安全事件的生命周期,安全过程分为四个阶段,分
23、别是:信息资产的风险分析、安全事件事前预防、安全事件事中检测以及安全事件事后响应10。这些安全产品都是从这四个阶段入手的,信息安全产品矩阵如图 1.1所示。图 1.1 信息安全产品矩阵图1.3 本文主要工作基于上述课题背景和研究现状,从自身安全入手,设计并实现了一个云工作负载管理和安全感知系统,该系统提供对云工作负载的集中管理功能,展示云工作负载的基本信息,让用户直观的了解到云工作负载的当前状态;另外也具有对云工作负载的安全感知能力,包括事件警告、关键文件监控及安全基线检测。系统主要通过对云工作负载的定期扫描获取到系统相关信息(包括日志、系统文件等),再对信息进行解析和特特征规则匹配得到对应的
24、事件警告,用户通过事件警告快速了解系统安全情况。为实现云工作负载管理和安全感知系统,本文做了以下工作:(1)结合用户角色进行分析,确定需求的范围,再对需求进行整理,明确该系统的功能性需求和非功能性需求。(2)根据上述需求分析,对系统进行概要设计,包括架构设计和功能模块概要设计。再根据系统概要设计,对数据库进行概念设计,并绘制E-R图,之后进一步设计数据库表的物理存储结构。(3)再系统需求分析和系统概要设计的基础上,对系统各个功能模块进行详细设计并实现系统。(4)对系统进行测试,包括功能性测试和非功能性测试,保证系统的可用性,为系统上线做准备。(5)对全文进行了总结和展望,提出了项目特点及不足,
25、并在后续开发中不断完善。3第2章 系统需求分析需求分析是软件计划阶段的重要环节,可以清晰指出系统必须要实现并提供哪些功能,从而确定系统功能模块该如何划分、任务该如何分配。此外,系统的非功能性需求也是需求分析的目标,比如安全性、可靠性、系统性能等。本章首先从系统整体需求分析入手,明确子系统的划分,再通过分析用户角色明确用户角色分类,整理出各个用户角色的需求,再根据整理结果对子系统的功能性模块进行划分,并通过用例图的方式对各功能模块需求进行详细阐述1112,进一步明确项目目标。最后,分析该系统的非功能性需求。2.1 系统整体需求分析本系统的目标是向用户提供对云工作负载的统一管理及安全感知能力,面向
26、的是客户是已经拥有一定数量的云工作负载,但还缺乏对云工作负载统一管理或安全感知能力的系统。所以,该系统需要向客户提供一个云工作负载统一管理平台。通过该平台,客户就可以把所有对云工作负载零碎的管理操作都转移到对单一平台的管理操作了,极大的减小了客户的工作量,大大提高了管理的效率。当然,该统一管理平台不只具备管理功能,还需要提供安全感知的功能,能够将已经发生的或可能发生的威胁以合适的形式进行展示,让客户轻松了解云工作负载当前的安全状况,安全感知能力由三部分组成:警告管理、文件监控、安全基线管理。该统一管理及安全感知平台(以下简称安全感知平台)只负责展示和用户交互,并不负责云工作负载的数据采集和处理
27、,所以除了安全感知平台以外,该系统还需要提供采集和处理子系统,专门负责采集数据、处理数据、存储数据、接受命令及执行命令。综上,该系统可以分为两个相对独立的子系统:采集和处理子系统、安全感知平台子系统。前者专注于数据获取并执行命令,后者专注于数据展示和下发命令。2.2 用户角色分析根据产品特点和现实需求,安全感知平台的用户角色可以分为三大类:系统管理人员、安全运维人员以及普通用户。不同的角色权限不同,以避免一些可预见的安全威胁,保证系统运行的安全性。2.2.1 普通用户普通用户角色是整个平台中拥有权限最少的用户角色,不拥有任何修改系统配置、云工作负载配置的权限。作为一个普通用户,可以登陆到平台并
28、浏览可视化信息的内容,包括资产信息、警告信息、文件监控信息及安全基线信息。另外,普通用户可以根据自身需要,针对日期、关键字等字段对展示的信息进行筛选,以便查看关键信息。最后,普通用户角色还拥有个人信息维护的需求,可根据需要修改个人信息、密码等。2.2.2 安全运维人员安全运维人员是该平台中最核心的用户角色,主要负责安全管理和云工作负载运维的相关工作。作为一名安全运维人员,除拥有普通用户角色的所有权限外,还可以管理客户端和安全基线,变更当前运行策略。2.2.1 系统管理人员这里的系统管理主要是针对该安全感知平台的。系统管理人员除拥有安全运维人员所有的权限外,还拥有系统管理的权限。2.3 安全感知
29、平台功能性需求分析基于以上对各个用户角色的需求分析,可以将整个安全感知平台功能划分为以下几大功能模块:登陆模块、警告管理、文件监控管理、安全基线管理、资产管理、客户端管理、系统管理。有些功能模块又可以进一步划分为多个子功能模块,下文将逐一详细介绍。2.3.1 登陆模块该模块作为安全校验的第一步,用于验证用户身份,判断用户是否有权限登陆平台,以避免无关人员对平台进行操作。由于该平台仅面向客户内部使用,所以不提供注册功能,新用户只能通过系统管理人员在系统管理模块中添加。登陆模块用例图如图 2.1所示。图 2.1 登陆模块用例图2.3.2 警告管理所有用户都可以进入该模块。警告管理用于向用户展示当前
30、系统中所有的警告,包括警告概览页和警告详情,直观反映了系统的安全状态。另外,用户也可以在当前页面搜索,概览页也会随着搜索的结果有所变化。警告管理用例图如图 2.2所示。图 2.2 警告管理用例图2.3.3 文件监控管理所有用户都可以进入该模块。文件监控用于向用户展示所有云工作负载中关键文件的总体安全情况,会以概览页和详情页的形式呈现。另外,用户也可以在概览页下进行搜索。文件监控用例图如图 2.3所示。图 2.3 文件监控管理用例图2.3.4 安全基线管理安全基线管理用于反映云工作负载基于某安全基线配置的检测结果,一定程度上反映了云工作负载的安全状况。另外用户也可以搜索,以快速获取某个云工作负载
31、的安全基线检测结果。所有用户都可以访问安全基线信息,但只有安全运维人员和系统管理员有权限更改安全基线模板配置和下发检测任务。安全基线管理用例图如图 2.4所示。图 2.4 安全基线管理用例图2.3.5 资产管理所有用户都可以访问该模块。资产即云工作负载,资产管理可以分为资产概览、资产详情和资产搜索。资产详情又分为硬件信息,用户及用户组信息、端口信息,进程信息,通用软件信息,内核模块信息以及用户操作记录。资产管理用例图如图 2.5所示。图 2.5资产管理用例图2.3.6 客户端管理该模块只有安全运维人员和系统管理员能够访问。用户可以在这个模块对客户端进行升级、更改客户端的运行策略以及向客户端下发
32、任务,所以该模块可以分为版本管理、策略管理、检测模版管理和快速任务。登陆模块用例图如图 2.6所示。图 2.6 客户端管理用例图2.3.7 系统管理系统管理模块主要是为系统管理员提供的,可以分为个人信息维护,用户管理,角色权限管理,操作日志审计四大功能。其中只有个人信息维护是普通用户和安全运维人员能够访问的。用户管理又可以分为用户新增、删除、启用、停用以及用户信息管理。操作日志是指所有用户在安全感知平台上的登陆和操作记录。系统管理用例图如图 2.7所示。图 2.7 系统管理用例图2.4 采集和处理子系统功能性需求分析该子系统负责云工作负载的数据采集和处理,并将处理后的数据存储到数据库。为降低对
33、原先业务的影响,该子系统可以拆分为Client端和Manager端,这样只用在云工作负载上面部署性能消耗较小的Client端即可。下文将逐一详细介绍。2.4.1 Client端Client端只负责数据采集、数据发送以及执行用户下发的命令。具体来说,可以分为系统信息采集、文件监控、日志收集、安全基线检测、消息发送及命令执行功能。系统信息采集负责云工作负载的系统相关信息的采集,包括硬件信息,用户及用户组信息、端口信息,进程信息,通用软件信息,内核模块信息以及用户操作记录。文件监控负责监控关键文件,当发现文件发生变化时产成消息,高出警告。安全基线检测负责从XML中读取安全检测点,再依次进行检测并将结
34、果拼接成规定的消息格式发送给Manager端。消息发送和命令执行模块专门负责转发Client端其他进程的消息以及接受Manager端发送过来的命令消息并执行。2.4.2 Manager端Manager端负责消息接受、命令下发、消息处理和数据存取。Manager端也需要监控自己的工作负载,所以Manager端的工作负载也需要安装Client端。另外,为了提高Client端和Manager端之间通信的安全性,需要对消息进行加密,所以需要一个注册功能来帮忙实现key的分发了,只有注册过的Client端才能跟Manager端通信,否则接受到的数据会被直接抛弃。2.5 系统非功能性需求分析非功能性需求分
35、析也是系统需求分析的重要组成部分,它能够保证为用户提供更好的使用体验13,也需要开发人员重点关注。就该云工作负载管理和安全感知系统而言,由于特殊的功能特点,对系统性非功能性需求的要求也很高。本文接下来从一下几个方面详细阐述:正确性、健壮性、安全性、易用性、兼容性。正确性:系统子系统能够正常运行,各个子系统的功能模块能够正常提供服务,为用户展示正确的信息,提供正常的服务。够在99.9%情况下,提供7*24小时的不间断服务。健壮性:系统能够分辨不合法的输入及不合法的消息格式并进行正确处理,能够正确打印日志提供相关信息,拥有一定的容错能力,在遇到异常情况时还能够正常运行,而不是直接导致系统的崩溃。安
36、全性:安全性是本系统必须提供的。由于整个系统需要在每个云工作负载上面部署Client端,客户端和服务端之间通信安全是首先需要考虑的,就需要一定的安全手段来保障消息安全。平台的访问也需要经过用户名、密码的认证,密码需要以密文的形式存储。对用户的权限加以限制,避免用户的非法操作。易用性:安全感知平台子系统基于B/S架构,用户只需要通过浏览器就可以访问系统。此外,开发人员会提供用户操作必要的帮助,比如用户手册。对于部署在云工作负载上部署的Client端和Manager端,都可以通过平台进行统一管理、一键升级,大大提高了可操作性。兼容性:安全感知平台子系统要能够兼容多种环境,比如谷歌浏览器、火狐浏览器
37、以及IE9.0以上版本等主流浏览器。采集和处理子系统要能够兼容CentOS7以上的版本。2.6 本章小结本章主要对系统总体进行了分析,将系统分为两大子系统:安全感知平台子系统、采集和处理子系统。再从用户角色分析入手,详细阐述了用户角色的需求。然后对子系统各功能模块的需求进行详细分析,最后对系统非功能性需求进行了具体阐述。为后续系统设计和实现工作奠定了基础。10第3章 系统概要设计系统设计作为软件工程过程中的一个重要环节,定义了系统要素之间的关系。系统要素包括:系统架构、模块、组件以及数据在各个组件之间的传输方式等。在正式进入系统开发之前,可以通过系统的概要设计充分论证系统的组件功能和组件之间联
38、系,有助于开发人员工作的分配和推进。此外,系统设计也能够在一定程度上避免因边界认识不清晰等造成的工程延期,甚至工程失败。本章将根据上一章需求分析的结果,从系统总体设计出发,再以从底至顶的顺序对采集和处理子系统及安全感知平台子系统进行概要设计,描述各个功能模块的主要设计思路和模块间的关联等内容。3.1 系统总体设计由上述需求分析可知,本系统可以分为两大子系统:采集和处理子系统、安全感知平台子系统。采集和处理子系统又可以分为Client端和Manager端,Client端部署在需要管理的云工作负载上,负责采集数据、收集日志、校验文件以及执行安全基线检测,再把结果转发给Manager端,由Manag
39、er负责解析、处理消息,并处理完的消息存储到MySQL数据库或ElasticSearch搜索引擎。安全感知平台子系统负责从MySQL数据库和ElasticSearch中读取数据,并以合理的方式展示给用户,同时接受用户的操作命令,并转发给Manager端,再由Manager端转发给对应Client端来执行。系统总体架构设计如图 3.1所示。图 3.1 系统总体架构设计图3.2 采集和处理子系统概要设计采集和处理子系统是本系统的基础,所有展示的数据都是该子系统处理后的结果。考虑到该子系统跟系统的交互比较频繁,而且对性能要求比较高,采用C语言作为开发语言进行设计开发。同时为了保证健壮性和并发性,该子
40、系统将会采取每个功能模块单独一个进程的设计,总共可以分为系统信息采集、文件监控、日志收集、安全基线检测、消息发送和命令接受、注册、消息接受和命令下发、消息处理及数据存取九大模块。本机进程之间通信使用域套接字(Unix Domain Socket,以下简称UDS),Client端和Manager端之间通信使用网络套接字(Socket),并通过SM4算法保证通信安全。SM4算法是我国自主设计的对称性加密算法,具有加解密速度快,使用简单,安全性高等特点14。SM4该子系统架构图如图 3.2所示。图 3.2 采集和处理子系统架构图3.2.1 系统信息采集该功能模块用于周期性采集系统信息。根据需求分析可
41、知,需要收集的系统信息包括硬件信息,用户及用户组信息、端口信息,进程信息,通用软件信息,内核模块信息以及用户操作记录。进程通过读取系统文件等方式采集到系统信息后,通过UDS交给消息发送模块,再由消息发送模块转发给Manager端处理。同时,也给用户提供了简单易懂的配置选项,用户可以通过修改配置文件来决定信息采集是否开启,以及信息采集的周期大小。3.2.2 文件监控文件监控模块用于周期性监控关键文件的属性和内容,一旦发现被监控的文件属性或内容发生变化,就会产生文件变更的消息,并转发给消息发送模块。监控的文件属性有:文件名、文件权限、文件拥有者、文件所属组、文件大小,最后一次修改日期,以及文件内容
42、摘要。文件内容摘要采用SHA256摘要算法产生。跟信息采集一样,也向用户提供了可配置选项:用户可以通过修改配置项来增加或删除需要监控的文件或文件夹;如果不想监控某个文件或文件夹,也可以配置成忽略;对于敏感文件也可以配置成只监控文件是否存在,而不去比对文件内容;文件监控的周期大小也可以自己设定。每一轮文件监控都需要跟上一次的扫描结果进行比对,所以在运行中需要记录上一次的扫描结果。本模块通过Hash表来记录每个文件的扫描结果,key为文件名,value为文件node,文件监控操作就转化为对Hash表的操作了。3.2.3 日志收集日志收集模块负责持续不断地根据日志类型采集特定日志文件,然后转发给消息
43、发送模块。每一条日志消息都可以理解为一个事件,该模块在采集过程中会在消息头添加日志类型,拼接被拆分多行的日志等,组织成Manager能理解的格式。本模块支持多种日志类型的采集,包括系统日志和应用日志,用户可以根据需要在配置文件中指定收集的日志文件路径和日志类型。3.2.4 安全基线检测安全基线检测可以分为系统安全基线检测和应用安全基线检测。该功能模块周期性执行系统安全基线检测,并根据用户需要执行应用安全基线检测。由于应用安全基线检测可能需要用户提供账号和密码(比如MySQL,部分检测点需要登陆到MySQL才能获取检测值),所以为了安全性考虑,无法保障其周期性检测。另外,用户可以自定义系统安全基
44、线检测的周期大小,以及更改检测模版,实现定制化检测。3.2.5 消息发送和命令接受该功能模块负责转发其他进程的消息给Manager端,同时也接受Manager端的命令并执行命令。这样可以让其他功能模块只关注于业务逻辑的实现,而不用考虑消息的发送,降低各模块之间的耦合,同时保证只有一个进程跟外界通信,提高了Client端的整体安全性,并大大减轻Manager端的连接压力,提高服务能力。另外,该功能模块还负责消息发送前的压缩、加密及消息接受后的解密、解压,提高通信的性能和安全性。3.2.6 注册注册模块负责Client端到Manager端的注册请求。Client端在注册时通过密码验证客户端的合法性
45、,通过验证后Client发送合法的注册请求来完成注册,之后该Client会接受到专有key,用于消息的加解密。3.2.7 消息接受和命令下发该功能模块负责对接消息发送和命令接受模块,Client端和Manager端之间的交互就是基于这两个模块之间的通信。Manager端使用Epoll机制来监听所有连接。Epoll是Linux下多路复用I/O的一种实现,极大提高了服务器资源利用率和服务能力15。同时,该模块在下发命令前会对消息进行压缩、加密,在接受消息后会对其进行解密、解压,提高通信的性能和安全性。3.2.8 消息处理该模块用于处理Client端发送过来的事件消息,执行对应的处理逻辑。由于涉及到
46、的消息类型众多,可以先将消息进行分发,交给对应的处理逻辑进行处理,处理完之后再根据需要交给警告写入线程处理或数据存取模块处理。因此该模块分为以下几种处理逻辑:消息分发处理,系统信息处理,文件监控处理,事件解析处理,事件特征匹配处理及警告写入处理。对于该功能模块而言,不同处理逻辑可以使用不同线程实现,各线程之间通过线程安全的消息队列进行通信。用户可以根据需要自定义特征规则及规则等级,让系统产生更符合用需求的警告信息。3.2.9 数据存取该模块负责接受和处理Manager端其他模块对数据库的操作请求。因为其他进程在请求数据库操作的同时也希望获取结果数据,所以这里可以采用基于SOCK_STREAM协议的UDS通信方式,它可以提供有序可靠的双向连接,便于其他进程接收数据库操作结果。同时,为了减少连接资源的消耗,采用Epoll机制来监听所有的UDS连接,并使用连接池维护与MySQL的连接。此外,用户也可以通过配置文件来配置该模块的工作线程数和数据库连接池大小。3.3 安全感知平台概要设计安全感知平台采用的是标准的B/S(Browser/Server)架构设计模式。采用这种设计模式有很多优点。对于开发者来说,采用B/S有部署简单、不依赖特殊环境、跨平台等优点16,是当前开发的主流选择