一种基于协同安全防护模型的电力信息通用采集系统的制作方法

文档序号:13882645阅读:114来源:国知局

本发明涉及一种电力信息通用采集系统;尤其涉及一种基于协同安全防护模型的电力信息通用采集系统;属于电力通信安全技术领域。



背景技术:

网络安全的协同控制是指利用现有安全技术、措施和设备,将时间上分离、空间上分布而工作上又相互依赖的多个安全系统有机组织起来,从而使整个安全系统具有预防、检测、分析、恢复、对抗等综合防御功能,使各个安全系统能够最大程度或近似最大程度地发挥其效能。

目前的网络攻击技术、攻击方法层出不穷,攻击手段愈来愈复杂,网络安全作为一个综合的、立体的工程,单纯依靠某一种防御技术或措施是不可能有效防御当前各种复杂攻击的。因此,需要通过计算机内部、局域网内计算机之间、局域网与局域网之间各级安全技术和安全信息的协同工作,构造一个多层次、全方位的防御体系。建立一个集成审计分析、多层次协同防御、应急响应和事故恢复、电子取证、以及各种安全技术,并能够协同工作的、动态的、自治的安全体系结构。

为了建立一个集成审计分析、多层次协同防御、应急响应和事故恢复、电子取证、以及各种安全技术,并能够协同工作的、动态的、自治的安全体系结构,需要将各个系统的数据进行统一的采集分析,进而对整个安全系统进行预防、检测、分析、恢复、对抗等综合防御处理。

在辛耀中、陶洪铸、李毅松、石俊杰发表的《电力系统数据模型描述语言》(《电力系统自动化》,2006,30(10))中,定义电网模型是对物理电网进行数学抽象的表达方式。规定了一组相互关联的类及其属性,每个类对应一类电网元件,即将物理设备抽象为类描述的逻辑结果。电网模型数据是按照电网模型的规则描述一个具体电网的数据集合。电网模型信息管理主要包括模型信息的提交、下载、模型拆分/合并、抽取、订阅/发布等功能。模型信息从三个方面实现一体化的维护和管理:多业务模型一体化维护管理,多时态一体化管理和多级电网模型一体化管理。在叶飞、米为民、尚学伟发表的《模型管理技术在智能调度支撑平台上的研究》(《电网技术》,2011,190:103-105)中,提出了分布式一体化的模型管理技术方案。该方案通过调度系统之间的模型信息实时交换技术,模型拆分、模型合并、负载均衡等技术实现了高效的分布式一体化建模,利用模型订阅服务实现了应用系统个性化的模型建立。

上述文献均是将各个系统的数据进行统一的采集分析,进而对整个安全系统进行综合防御处理,但是,它们并没有对基于协同安全防护模型的电力信息的通用采集技术进行深入研究。



技术实现要素:

针对现有技术的不足,本发明所要解决的技术问题在于提供一种基于协同安全防护模型的电力信息通用采集系统。

为实现上述发明目的,本发明采用下述的技术方案:

一种基于协同安全防护模型的电力信息通用采集系统,包括配置文件解析模块、远程登录模块、信息处理模块和文件传输模块;

其中,所述配置文件解析模块用于获取安全防护模型中各主机信息,并进行解密解析处理;

所述远程登录模块根据解析出的主机信息进行多线程登录;

所述信息处理模块将登录后远程主机返回的数据进行处理后生成格式化的json数据;

所述文件存储模块将生成的所述json数据存储到通用提取的通道供用户使用。

其中较优的,所述的基于协同安全防护模型的电力信息通用采集系统,还包括初始化模块;

所述初始化模块用于初始参数读取和创建守护进程。

其中较优的,配置文件解析模块包括配置文件设计单元;

所述配置文件设计单元用于存储采集的安全防护模型中各个主机的主机信息以及控制信息。

其中较优的,所述配置文件设计单元包括主机信息文件子单元和程序控制信息文件子单元;

所述主机信息文件子单元用于保存主机用户名密码信息;

所述程序控制信息文件子单元用于保存包含程序控制信息的配置文件。

其中较优的,配置文件解析模块还包括配置文件获取与解密单元;

所述配置文件获取与解密单元用于在其他主机上获取保存当前主机的主机信息的加密文件,并对加密文件进行解密生成字符串。

其中较优的,配置文件获取与解密单元在其他主机上获取保存当前主机的主机信息的加密文件,并对加密文件进行解密生成字符串,包括如下步骤:

s1,对除当前主机外的其他主机进行编号生成主机编号映射表,并初始化加密文件;

s2,从主机编号映射表中获取主机编号和主机名的映射关系,读取配置文件,获取随机数字段,如果随机数字段取值为0,转向步骤s3;否则,转向步骤s4;

s3,获取当前时间的第一时间戳,根据所述第一时间戳得到第一随机数,查询主机编号映射表,找到主机编号为第一随机数的主机,并删除除所述主机编号为第一随机数的主机以外的所有主机上存储的所述主机编号为第一随机数的主机对应的加密文件;

s4,根据随机数字段的值查询主机编号映射表找到对应主机,去所述对应主机上下载加密文件,下载完成后删除所述对应主机上的加密文件,同时对下载到本地的加密文件进行解密得到初步解密文件,解密完成后删除本地的加密文件;

s5,获取当前时间的第二时间戳,根据第二时间戳得到第二随机数,通过主机名与密钥映射表找到主机编号为第二随机数的主机,使用所述主机编号为第二随机数的主机对应的加密密码对初步解密文件进行加密并重新保存为新加密文件,发送到所述主机编号为第二随机数的主机对应的存储文件中,删除本地的新加密文件,将配置文件的随机数字段取值设置为所述第二随机数。

其中较优的,所述配置文件解析模块还包括配置文件解析单元;

所述配置文件解析单元用于直接在内存中对解密后的字符串进行解析,得到主机信息。

其中较优的,所述的基于协同安全防护模型的电力信息通用采集系统包含n个远程登录模块,每个远程登录模块对应安全防护模型中的一台主机;其中,n为正整数;

所述远程登录模块只在程序启动时登录一次,如果登录失败,将不再进行继续登录。

其中较优的,所述文件存储模块设置有临时存放单元和最终存放单元;

所述临时存放单元用于存储信息处理模块传送来的json数据;当主机返回的单位数据进行处理后生成的json数据传送完成后,所述临时存放单元将接收的json数据传送到所述最终存放单元;所述最终存放单元将所述json数据存储到通用提取的通道供用户使用;

其中,所述单位数据是主机完成一个操作的所用的最少数据。

其中较优的,所述的基于协同安全防护模型的电力信息通用采集系统,还包括日志记录模块;

所述日志记录模块用于记录程序运行产生的日志信息;

所述日志记录模块包含紧急日志文件和普通日志文件;

当获取日志信息之后,所述日志记录模块将采集的所述日志信息与日志文件列表中存储的紧急日志文件中的内容进行对比,如果存在,则所述日志信息为紧急日志文件,保存到文件存储模块,立即进行处理并上报;如果不存在,则将所述日志信息存储到普通日志文件中,并判断所述日志文件的大小。

本发明所提供的基于协同安全防护模型的电力信息通用采集系统,通过设置配置文件解析模块获取安全防护模型中各主机信息,并进行解密解析处理;通过信息处理模块将登录后远程主机返回的数据进行处理后生成格式化的json数据;克服了异构的安全防护模型中各主机的数据类型差异。最后通过文件传输模块将生成的json数据存储到通用提取的通道供用户使用,屏蔽了底层的差异性,提高了对异构的安全防护模型的分析处理能力,而且具有很强的可扩展性。

附图说明

图1为本发明所提供的基于协同安全防护模型的电力信息通用采集系统的结构图。

具体实施方式

下面结合附图和具体实施例对本发明的技术内容进行详细具体的说明。

如图1所示,本发明所提供的基于协同安全防护模型的电力信息通用采集系统,包括初始化模块、配置文件解析模块、远程登录模块、信息处理模块和文件传输模块。其中,初始化模块用于初始参数读取和创建守护进程。配置文件解析模块用于获取安全防护模型中各主机信息,并进行解密解析处理。远程登录模块根据解析出的主机信息进行多线程登录。信息处理模块将登录后远程主机返回的数据进行相应的处理后生成格式化的json数据,文件存储模块将生成的json数据存储到通用提取的通道供用户使用。在本发明所提供的实施例中,文件存储模块将生成的json数据写入到本地文件,并移动到flume系统的监控目录下以实现用户对各个类型主机数据的调用和处理。其中,flume是cloudera公司提供的一个高可用、高可靠、分布式的海量日志采集、聚合和传输的系统,进一步可以参阅其官方网站flume.apache.org。flume系统支持在日志系统中定制各类数据发送方,用于收集数据;同时,flume系统提供对数据进行简单处理,并写到各种数据接受方(可定制)的能力。下面对各个模块以及各个模块之间的关系进行详细说明。

初始化模块主要完成初始参数读取、转变为守护进程的初始化工作等。初始参数主要是指电力信息通用采集系统的启动、终止命令,包括启动、终止和重启。为了保证系统中的程序能够长期在后台执行,程序采用守护进程的方式运行,因此要对其进行守护进程化处理。python有专门的第三方daemon模块,只需使自己程序的主类继承daemon类,重写运行方法,在运行方法中实现需要的功能即可。在此便不在赘述了。

配置文件解析模块包括配置文件设计单元、配置文件获取与解密单元和配置文件解析单元。其中,配置文件设计单元主要用于存储电力信息通用采集系统需要采集的各个主机的信息以及控制信息。配置文件设计单元包括主机信息文件子单元和程序控制信息文件子单元。

主机信息文件子单元用于保存主机用户名密码信息,在本发明所提供的实施例中,保存主机用户名密码信息的配置文件的文件名为ilogagents.xml,即加密文件。在根标签下有一系列的host标签来记录电力信息通用采集系统中每个主机的基本登录信息,每个host标签包含四个子标签,分别为hostname(主机名)、ip(主机ip)、username(登录的用户名)和passwd(登录的用户密码)。

程序控制信息文件子单元用于保存包含程序控制信息的配置文件,在本发明所提供的实施例中,保存程序控制信息的配置文件的文件名为ilogcapture.xml,主要分两大属性标签:store.dir(存储目录标签)和time.interval(间隔时间标签)。其中,存储目录标签用于配置存储目录。time.interval(间隔时间标签)用于配置间隔时间,定时在远程主机上执行命令,采集系统数据,一般情况下默认是30秒采集一次。在实际使用过程中可以根据使用需求进行设定。

配置文件获取与解密单元用于在其他主机上获取保存当前主机的主机信息的加密文件,并对加密文件进行解密生成字符串。

其中,配置文件获取与解密单元在其他主机上获取保存当前主机的主机信息的加密文件,并对加密文件进行解密生成字符串,采用如下处理过程:

s1,对除当前主机外的其他主机进行编号生成主机编号映射表,并初始化ilogagents.xml文件。

在程序首次运行时,需要对除当前主机外的其他所有工作站进行编号生成主机编号映射表和初始化ilogagents.xml文件。其中,主机编号映射表生成方法是:对所有工作站的主机名进行排序,然后按先后顺序依次编号,将编号和主机名一一对应写入映射表中,并保存为文件。比如共有n台工作站,工作站主机名分别为h1、h2、h3、......、hn-1、hn,本机为h1,则生成的映射表为1:h2、2:h3、3:h4、......、(n-2):hn-1、(n-1):hn。初始情况是,每台工作站上保存的都是除自己外其他工作站上所需的ilogagents.xml文件,保存位置为/home/对应主机名,比如h1机器上保存的为h2到hn的ilogagents.xml文件,保存位置分别为/home/h2到/home/hn,这样每台工作站上的/home目录下都存在名称为除当前主机(本机)外其他所有工作站主机名的文件夹,每个文件夹保存的是文件夹名代表的工作站的ilogagents.xml文件。

s2,读取主机编号映射表,获取主机编号和主机名的映射关系,读取配置文件,获取随机数字段,如果随机数字段取值为0,转向步骤s3;否则,转向步骤s4。

在本发明所提供的实施例中,以工作站h1为例,介绍随机选取算法。工作站h1启动时读取主机编号映射表,获取主机编号和主机名的映射关系,读取配置文件,获取随机数字段(hostnum字段),如果hostnum字段取值为0,说明程序是首次运行,则执行步骤s3,随机选取下载ilogagents.xml文件的工作站;如果hostnum取值不为0,则执行步骤s4。

s3,获取当前时间的第一时间戳t1,根据第一时间戳t1得到一个第一随机数m,查询主机编号映射表,找到主机编号m所映射的主机hm+1,并删除除主机编号为第一随机数的主机hm+1外所有主机上存储的当前主机对应的ilogagents.xml文件。

程序获取当前时间的第一时间戳t1,根据第一时间戳t1随机选取一个1到n-1之间的整数,在本发明所提供的实施例中,使用通用函数random(t1)生成一个0-(t1-1)为随机数k1,其中通用函数可以是根据t1得到任意随机数的任意函数。将k1除以n取余数,得到一个1到n-1之间的整数,假定生成的整数为m,设置hostnum字段取值为m,查询映射表找到主机编号m所映射的工作站hm+1,删除除hm+1外所有工作站上/home/h1目录的ilogagents.xml文件,执行步骤s4。

s4,根据随机数字段的值查询主机编号映射表找到对应主机h,去对应主机h上下载ilogagents.xml文件,下载完成后删除对应主机h上的ilogagents.xml文件,同时通过对下载到本地的ilogagents.xml文件进行解密得到初步解密文件,解密完成后删除本地的ilogagents.xml文件。

根据hostnum的值查询主机编号映射表找到对应主机h,去对应主机h上下载到ilogagents.xml文件,下载完成后删除主机h上的ilogagents.xml文件,同时通过内置于程序的主机名与密钥映射表,使用主机h对应的解密密码对下载到本地的ilogagents.xml进行解密,解密完成后删除本地的ilogagents.xml,执行步骤s5。

s5,获取当前时间的第二时间戳t2,根据第二时间戳t2得到一个第二随机数r,通过主机名与密钥映射表找到主机hr+1,使用主机hr+1对应的加密密码对已经解密后的主机名密码数据进行加密并重新保存为新的ilogagents.xml文件(新加密文件),发送到主机hr+1的/home/hr+1文件夹下。删除本地的新的ilogagents.xml文件,将主机hr+1的主机编号r写入配置文件的hostnum字段。

获取当前时间的第二时间戳t2,使用通用函数random(t2)生成一个0-(t2-1)为随机数k2,将k2除以n取余数,得到一个1到n-1之间的整数,假定得到的整数为r(第二随机数),则查询映射表找到主机编号r所映射的工作站hr+1,通过主机名与密钥映射表,使用hr+1对应的加密密码对已经解密后主机名密码数据进行加密并重新保存为ilogagents.xml文件,发送到hr+1的/home/hr+1文件夹下。删除本地的ilogagents.xml文件,将hr+1的主机编号r写入配置文件的hostnum字段。

上述随机选取算法的优势是:每次程序读取完ilogagents.xml文件后,会删除远端的ilogagents.xml文件,并对ilogagents.xml文件进行重新加密,通过随机算法选取新的工作站作为保存ilogagents.xml文件的主机,这样程序每次读取ilogagents.xml文件后,保存ilogagents.xml文件的工作站都是随机的,可以很好的保证ilogagents.xml数据的安全性。

配置文件解析单元用于直接在内存中对解密后的字符串进行解析,得到主机信息。对于ilogagents.xml文件,在使用aes算法解密后,为避免信息泄漏,遵循重要信息不落地的原则,直接在内存中对解密后的xml字符串流进行xml解析,并将解析后的主机信息保存在一个列表中,供远程登录模块使用。

远程登录模块根据解析出的主机信息进行多线程登录,在配置文件解析模块中将解析出的主机信息保存在一个列表中,列表中的每一项是四组键值对,分别为表示主机名,主机ip,登录用户名和登录密码。json结构是由两种数据结构结合起来进行数据表示的,分别是对象和数组。其中,对象由{}括起来,里面包括的是key:value的键值对结构,key代表属性名,value代表属性的值,value的值可以是符合json要求的任意数据。对象的取值方式是通过对象.key来获取属性的值。数组由[]括起来,数组中的值可以为符合json要求的任意数据,各数据之间用逗号分隔。数组的取值方式是数组[索引]。

由于要实现对多台远程主机的登录和访问,因此采用多线程的方式,每个线程对应一台主机,负责对其进行登录和访问的控制。

每个线程上单独使用ssh登录到对应主机,由于ssh每次登录和注销的时间消耗比较大而且程序采集信息的频度较高,因此在本发明所提供的实施例中,登录模式为一旦登录主机成功,就一直保持登录状态。同时由于linux系统对登录失败一定次数后就锁死用户,为了避免多次登录失败造成系统锁死,影响正常业务运行,只在程序启动时登录一次,如果登录失败,将不再尝试继续登录,但会将登录失败的信息立即上报,由用户更新登录密码或检查其他操作后,重新运行。

在使用ssh登录上远程主机后,执行相应的linux命令来获取系统信息数据,命令执行完返回的数据以字符串形式返回给信息处理模块。

信息处理模块将登录后远程主机返回的数据进行相应的处理后生成格式化的json数据,数据格式说明参见《自动化系统运行分析与预警系统-数据格式设计》文档,在此便不在赘述了。

文件存储模块将生成的json数据存储到通用提取的通道供用户使用。在本发明所提供的实施例中,采用flume的监控目录来实现通用的通道。文件存储模块将生成的json数据写入到本地文件,并移动到flume的监控目录,用户通过调用flume的监控目录来获取对不同主机传送来的数据进行处理生成的json数据。文件存储模块的输入是信息处理模块返回的json格式数据,首先在文件目录下创建要被写入的文件,文件名为ilogcapture+所在线程登录的主机ip+`.`+当前时间戳,然后将传入的json数据写入到该文件,最后将写入完成的文件移动到程序配置文件中配置的flume的监控目录。文件存储模块设置有临时存放单元和最终存放单元。临时存放单元(tmp.store.dir)是从各个远程主机采集回来的数据经处理后生成的采集信息文件临时存放的位置,如果将采集信息文件直接放在最终存放单元(final.store.dir)中可能出现文件还未写入完成,就被flume剪切走的情况。final.store.dir是采集信息文件最终的存放位置。当主机返回的单位数据进行处理后生成的json数据传送完成后,临时存放单元将接收的json数据传送到最终存放单元;最终存放单元将json数据存储到通用提取的通道供用户使用;其中,单位数据是主机完成一个操作的所用的最少数据。

在本发明所提供的实施例中,临时存放单元和最终存放单元均以目录的形式存在,最终存放单元设置的目录与flume的文件监控目录一致。

在本发明所提供的实施例中,基于协同安全防护模型的电力信息通用采集系统还包括日志记录模块。日志记录模块用于记录程序运行过程中产生的日志信息,包括每台主机的ssh连接情况和命令执行情况等。每次执行完一条命令或一个模块的任务完成,都会产生一条程序执行情况的日志写入到ilogcapture.log文件中,该文件存放在`/usr/local/ilogsvr/logpool/ilogcapture`下。日志文件的生成方式分为两种:紧急日志文件和普通日志文件。

在程序运行过程中有一些十分重要的错误信息是需要立即上报的,比如无法ssh登录主机,此时需要将该条错误信息使用相应函数生成日志信息,写入flume监控目录立即上报。对于程序运行过程中的普通日志信息,则使用日志回滚方式,设定日志文件大小的阈值为max_log(默认为10m),超过阈值时,将原有日志文件ilogcapture.log改名为ilogcapture.log.1,并创建新的ilogcapture.log文件,新日志记录写入到ilogcapture.log文件中,并在每个固定时间检查是否存在ilogcapture.log.1的文件,如果有就将该文件转移到flume监控目录下。

在本发明所提供的实施例中,紧急日志文件和普通日志文件通过日志文件列表来判断。当获取日志信息之后,将日志信息与日志文件列表中存储的紧急日志文件中的内容进行对比,如果存在,则证明该日志信息为紧急日志文件,保存到文件存储模块,立即进行处理并上报。如果不存在,则将该日志信息存储到普通日志文件中,并判断日志文件的大小。根据日志文件的大小进行进一步处理。

综上所述,本发明所提供的基于协同安全防护模型的电力信息通用采集系统,包括配置文件解析模块、远程登录模块、信息处理模块和文件传输模块;其中,配置文件解析模块用于获取安全防护模型中各主机信息,并进行解密解析处理;远程登录模块根据解析出的主机信息进行多线程登录;信息处理模块将登录后远程主机返回的数据进行处理后生成格式化的json数据;文件存储模块将生成的json数据存储到通用提取的通道供用户使用。该系统通过将安全防护模型中各个主机传送的数据转化成统一的json格式的数据,并通过统一的通用通道提供给上层用户分析使用,屏蔽了底层的差异性,提高了对异构的安全防护模型的分析处理能力,而且具有很强的可扩展性。

上面对本发明所提供的基于协同安全防护模型的电力信息通用采集系统进行了详细的说明。对本领域的一般技术人员而言,在不背离本发明实质精神的前提下对它所做的任何显而易见的改动,都将构成对本发明专利权的侵犯,将承担相应的法律责任。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1