摘要:为电力信息系统实现日志审计和日志分析,已经成为电力信息化管理部门首先需要解决的问题。本文设计并实现了一个基于ELK的电力信息监控日志审计系统。系统通过logstash、redis、elasticsearch实现对操作行为日志、设备运行日志、上网行为日志、维护记录日志的分布式采集存储,经过数据格式化、用户识别、会话识别、路径补充等于处理后,利用并行化的K-Means聚类算法对日志进行审计分析,发现和捕获海量日志中的异常行为和违规行为。实验表明,系统可以实现电力企业信息系统的安全审计功能。关键词:日志审计;ELK;安全监控;K-Means;异常检测中图分类号:TP274文献标识码:A文章编号:1009-3044(2016)30-0061-04DOI:10.14004/j.cnki.ckt.2016.4218
TheImplementationofElectricityInformationMonitoringLogAuditSystemBasedELKLIUSi-yao,LIBin(StateGridNingxiaElectricPowerCompany,Yinchuan750001,China)Abstract:Electricinformationsystem’slogsaudithasbecomethemainissuesofinformationmanagementdepartment.Thispa-perdesignandimplementanelectricityinformationmonitoringlogauditsystembasedELK.Itapplieslogstash,redis,elastic-searchtocollectandstoreoperationalbehaviorlogs,equipmentoperationlogs,Internetbehaviorlog,themaintenancelog.Afterthepre-processingsuchasdataformatting,useridentification,sessionidentification,pathsupplement,theparallelK-Meansclus-teringalgorithmisusedtodiscoverabnormalbehaviorandirregularitiesfrommassivelog.Experimentalresultsshowthatthesystemcanachievesecurityauditfunctionsforelectricenterpriseinformationsystem.Keywords:logaudit;ELK;securitymonitoring;K-Means;anomalydetection1概述电力产业是典型的技术密集型和设备密集型行业[1],随着智能电网的建设和推进,通讯、计算机、自动化等信息化技术在电网中得到了广泛深入的应用。目前,信息化技术已经在电力行业的生产、调度、传输、管理等多个业务层面上得到了深度应用,如电力数据采集、系统监控、故障管理、能力管理等信息化系统已被广泛接受。然而,信息化技术同时也为电力行业带来了众多困扰和问题。信息化系统的开放性会导致越来越多的非法访问、黑客攻击等外部入侵问题,以及非法操作、越权操作、信息泄露等内部安全问题。特别是,智能电网更加注重网络化、智能化和集约化,各种业务均需要在信息系统、互联网络开展,电力企业面临着严重的信息安全隐患问题。因此,为电力信息系统实现日志审计和日志分析,通过业务系统的运行日志分析系统中存在的安全隐患,已经成为电力信息化管理部门首先需要解决的问题。
电力企业的设备和信息系统每天都产生海量日志,而且由于设备众多产生的日志格式不一、种类多样,亟需建立统一的日志分析平台,进行统一维护。根据电力行业信息系统和网络
应用的特点,日志主要包含四类:1)操作行为日志,即对电力关
键信息系统以及关键业务的操作行为日志;2)设备运行日志,即电力信息化系统所包括的如防火墙、入侵检测、小型机、业务系统的运行日志;3)上网行为日志,即内部业务人员的网络访问行为及外部的访问行为;4)维护记录日志,即对关键设备的维护过程、违规操作行为的记录。本文针对这些异构日志,采用ELK技术搭建实时日志分析平台,使得电力运维人员从海量的日志信息中准确地监控及维护所需的信息,快速定位并解决设备运行过程中的错误。
2相关工作当前,日志管理和审计技术已经成为了保障企业信息系统和网络安全的重要手段,国内外已经有了很多研究并出现了众多产品。典型的日志审计系统有NFR-SLR安全日志库审计系统[2]、思福迪LogBase日志管理综合审计系统[3]、网神SecFox-LAS日志审计系统[4]和NAR2日志审计系统[5]等。
NFR-SLR安全日志库审计系统包括日志采集代理、日志管理和日志存储等三个模块。其工作流程是首先通过日志采集代理将从设备采集来的数据交给日志存储模块进行集中存
收稿日期:2016-09-25基金项目:群众性科技创新(5229XT16000J)作者简介:刘思尧(1987—),女,宁夏银川人,工程师,硕士,研究方向为计算机应用技术;李斌(1985—),男,宁夏银川人,工程师,研究方向为计算机科学技术。本栏目责任编辑:谢媛媛
软件设计开发
61
ComputerKnowledgeandTechnology电脑知识与技术储;然后日志管理对日志进行预处理并对规范处理后的数据进行分析和报表统计生成。该系统的问题是日志采集代理对日志数据不做消冗处理,导致存储空间和传输带宽的浪费。
思福迪LogBase日志管理综合审计系统采用了智能分析技术和自动采集技术,将系统、应用软件日志以及操作行为进行规范化处理,之后对日志进行分析处理,发现系统中存在的安全隐患和故障定位。但是该系统是直接对日志进行采集,导致整个系统的计算压力较大。
由上可见,市场上的通用日志管理系统功能基本一致,但应用于电力等特定行业,无法满足行业的特定功能需求,本文试图采用ELK建立电力行业的信息监控日志审计系统。ELK是一个开源实时日志分析平台[6],包括Elasticsearch(弹性搜索)、Logstash(日志采集)、Kibana(统计展示)等三个开源系统。其中,Elasticsearch建立在Lucene基础之上,可以提供海量数据、分布式的检索功能,将其应用于云平台中,能够实现快速配置、索引自动分片、实时检索等功能;Logstash可以提供日志采集、分析的功能;kibana可以为Logstash和ElasticSearch提供丰富的网页交互页面,能够实现日志数据的统计、分析和搜索。
3日志审计系统3.1系统架构基于ELK的电力信息监控日志审计系统的体系结构总体
上分为日志采集、日志预处理和日志分析三个部分,如图1所示。
图1系统结构图在日志采集模块,系统采用logstash、redis、elasticsearch等组件构成分布式日志收集系统。首先由一级logstash分别收集各个web服务器产生的日志,并由一级logstash对日志进行简单的过滤,再传递给二级logstash。为了解决收发速率不一致
62
软件设计开发
第12卷第30期(2016年10月)
而导致的丢包问题,在两级logstash之间安装redis,它提供缓存
作用(redis性能强大在本系统中仅需安装一个即可满足要求),最后存入elasticsearch集群。在elasticsearch中,利用本文设定的数据预处理规则编写python程序对web日志进行数据预处理,ticsearch将日志转化为可以进行聚类分析的数据格式后再存入elas⁃HDFS类分析,,再交由集群。日志分析模块从日志收集模块获取数据存入并得到异常检测规则。Map和Reduce利用k-means算法进行分布式聚3.2关键技术实现3.2.1日志收集模块日志收集模块主要由logstash、redis、elasticsearch三种开源
部件组成。数据收集模块的主要功能是采集所有目标服务器中实时产生日志并进行日志预处理和特征提取。本文采用两级logstash的分布式的数据收集模块,其中一级logstash主要起日志发送和数据清理的作用。通过设置logstash的配置文件,可实现实时的收集各个服务器产生的日志,并根据数据清理的规则,过滤掉无意义日志;二级logstash起到接收日志的作用,它将接收到的web日志传递给elasticsearch集群。为了防止发送和接收速率不一致而导致的数据丢失问题,logstash日志存入之间搭建了本系统在两级elasticsearchredis集群后,部件,再进行日志预处理,它主要起到缓存作用。当将web日志web转化成会话数据集后再存入elasticsearch和数据净化。在实际生成的数据中,Logstash在日志收集模块中的作用有:集群。
尤其是来自不同服务器的日志解析,发送数据日志中,往往存在大量的字段不完整的、或是含有噪声的,甚至是数据格式不一致的数据。如果将这些数据直接用于数据挖掘,必然不能获得良好的效果,因此必须进行数据的预处理,使它们达到统一的格式,logstash生成的日志文件,的input函数设置接收数据,进而满足数据挖掘的需要。本系统通过并进行接收。再通过自定义实现实时监听logstashweb服务器的filter函数,对日志文件进行解析,过滤,或者必要的修改等简单的预处理。最后通过设置output函数选择logstash的输出位置,及使用的传输协议。
由于日志的生成速度可能不断变化和数据存储及分析系统对数据处理速度变化等因素的影响,可能导致日志的发送速度与接收速度不一致,而logstash虽然本身有缓存功能,但是性能较差,工程效果不好,因此本系统采用了redis部件。Redis主要解决了日志收发速度不一致而导致的日志丢失问题,它在整个系统中主要起到缓存的作用。当日志的发送速度大于接收速度时,会在redis部件中进行缓存,进而保证日志不会丢失。由于disredis性能强大以及综合本系统的实际情况,搭建一个re⁃化,便可保证日志收集系统正常运行。考虑到网络环境的变也可以搭建成以及向网络管理员提供日志搜索服务。在日志传入Elasticsearch集群在本系统中的作用是:redis集群。
日志存储和备份search据处理。由于此过程需要反复搜索日志,集群后,利用python编程语言编写日志处理程序进行数elastic⁃因此本系统选取提供高速搜索方案的elasticsearch作为数据库。3.2.2日志预处理模块由于各种原因,采集的日志数据可能存在数据遗漏、数据冗余、噪声数据等现象,在日志分析前,需要首先进行数据预处
本栏目责任编辑:谢媛媛
第12卷第30期(2016年10月)
理。日志数据预处理的过程主要包括数据格式化、用户识别、会话识别、路径补充等。
web日志中某一条的访问中的数据格式化是指将日志记录中缺失的字段补充完整,Request字段的URL信息不完整,/index.asp是如在webtest.com/index.aspRequest字段,将其信息补充完整后为www.用户识别是指从多条日志中识别出同一用户。由于局域。
网以及代理服务器存在的原因,在日志中准确的辨别每一个用户是比较困难的,比如可能出现以下多种情况:同一用户可能通过不同的终端访问web服务器;同一用户在同一终端使用不同的浏览器访问服务器;多个用户使用同一代理访问服务器。因此在对日志进行数据挖掘之前应该详细分析日志记录,区分各种情况的用户。本文采用启发式规则方式进行用户识别:
规则1:使用不同IP地址的日志视为不同用户;规则2:对具有相同IP地址的多条日志记录,如果使用的浏览器或者系统不一样则视为不同用户;
规则3:对具有相同IP地址且使用相同的浏览器和操作系统的用户则根据网络拓扑结构进行区分。例如:用户访问的某个页面不能从已往访问的任何一个页面的超级链接到达,则认为这是一个新的用户。
会话识别的主要目的是从大量的杂乱的日志中,重构用户访问的行为序列。经典的会话识别方法有以下几种,Timeout方法:在用户识别的基础上,连续多个请求的时间间隔超过一定的阈值时便定为会话的边界,经过Pit的实验证明[7]:比较合理的时间阀值为26分钟,但在实际商业应用中通常设置阀值为30分钟;对网站所有页面设置固定的访问时间阀值,如果超过阀值则将此页面视为两段会话的边界;最大向前序列法:此方法根据用户访问行为进行会话识别,如果用户后退访问已经浏览过的页面,则视为新的会话的开始。目前,Timeout法是研究和应用最多的方法。综合以上三种方法,本系统采用三条规则进行会话识别,的超级链接之一,1)如果在访问页面按优先级排序如下:
A后访问页面B,且页面B是页面A中一页面停留时间超过2)在同一页面上停留的时间不超过则视为B属于A的会话集;
10分钟,对访问下个页面则视为下一次10min。如果用户在某会话的开始;
有日志,3)单个会话时间不超过必须在30分钟内,如果时间超过30min。放入同一会话集30分钟,则视为下一A中的所次会话。
路径补充主要是为了补充在日志中没有记录的用户访问请求,进而获得完整的有意义的用户访问路径。由于浏览器或者代理服务器的缓存功能,经常会导致那些缓存的页面和访问对象的丢失。通常先进行会话识别再进行路径补充。例如,页面B和C同属于页面A的超级链接,用户在访问页面A后,A被缓存在本地浏览器中,用户在访问页面B后,返回访问A,再访问C。A—B—A—C这是用户实际的访问顺序,但是由于A被缓存在本地,所以第二次访问A的记录会丢失,在服务器的日志中,记录的用户访问顺序可能为A—B—C。这就需要进行路径补充。
本文主要根据网站的逻辑结构进行路径补充,以图2为例说明本系统路径补充的具体方法。
本栏目责任编辑:谢媛媛
ComputerKnowledgeandTechnology电脑知识与技术
图2网站部分结构图I-M-S-K-P例如web服务器日志经会话处理后得到一条会话为到达K页面的超级链接,,经与web站点结构图对比,A-D-因此此处需要做会话补充此会话中S页面无直接(虽然用户可以通过输入URL直接访问K页面,但是这种情况非常少,几乎不影响数据挖掘的结果)。从S页面处按照用户访问路径倒序查找,直到找到能直接访问K页面的D页面为止,上述会话经路径补充后的结果为A-D-I-M-S-M-I-D-K-P。路径补充还可能出现以下情况:B-E-L-D-I-M,显然通过L页面不能直接访问D页面,而且此会话中L页面之前的页面都不能直接访问D,对此情况本文将其拆分为两条会话B-E-L和D-I-M。3.2.3日志分析模块日志分析的目的是从海量日志中挖掘出正常行为和异常行为,Means因为同类行为有相似的特征,本文采用基于并行化提取异常检测规则。其工作流程如图聚类的日志分析算法,将正常行为和异常行为分别聚类,K-3所示:
图3异常检测的MapReduce并行化过程类型。MapHDFS函数在异常检测的主要作用是判断每条数据的访问将n条数据分别与异常检测规则(k个质心)组成n对 进行合并。key种访问类型,值(访问类型Combine将在接收到mapper的输出后,将具有同样因此只需要固定的)的数据传入同一4个reducerreducer。在本系统中只有。每个Reducer将4收到的数据进行合并后输出,XSS攻击,数据集}。 如reduce2输出的 软件设计开发 63 ComputerKnowledgeandTechnology电脑知识与技术服务器上,在日志收集模块中起发送日志的作用。用一台台式机搭建redis,它在发送和接收日志间起到缓存的作用。三台云平台虚拟机搭建elasticsearch集群,起到存储的作用。Hadoop搭建在4台云平台虚拟机上,其中一台做Master节点,另三台分别做slaves节点。主机Master作为HDFS的NameNode节点以及MapReduce的TaskTracker节点,主要负责日志分析。 图3实验环境部署图为了测试本文的日志审计系统的性能,采用Web日志安全分析工具v2.0作为对比基准。Web日志安全分析工具v2.0根据自身的特征库定义的常见攻击的攻击特征,采用正则表达式匹配的方式进行入侵检测。默认可以检测XSS攻击、SQL注入攻击、CSRF攻击等多种攻击类型。图4为本系统与该工具的检测率对比图: 64 软件设计开发 第12卷第30期(2016年10月) 图4检测率对比图通过上图测试结果对比,可以明显地看到,本系统对跨站脚本攻击、SQL注入攻击和跨站请求伪造攻击的检测率明显高于传统的web日志安全分析工具v2.0。 5结论本文通过利用ELK构建电力企业的信息监控日志审计系统,采集电力信息系统和设备的操作行为日志、设备运行日志、上网行为日志、维护记录日志,在日志预处理的基础上,利用并行化K-Means聚类算法发现和捕获海量日志中的异常行为和违规行为,为保障电力企业信息安全提供支持。 参考文献:[1]段娟.基于Web应用的安全日志审计系统研究与设计[J].信[2]息网络安全吴志用.日志审计系统中预处理关键技术研究,2014(10):70-76.[D].杭州:浙[3]江工商大学查穹,丁峰,倪晓勤,2011..[4]置周琪锋[J].电脑知识与技术天融信防火墙日记审计系统的搭建与配.基于网络日志的安全审计系统的研究与设计,2013,9(23):5227-5228.[J].计[5]算机技术与发展周映,韩晓霞,2009,19(11).[6]赵伟中的应用,何不廉[J].信息技术与标准化.ELK日志分析平台在电子商务系统监控服务,陈霞,等.web,2016(7):67-70.[7]Cooley研究[J].ingR,计算机应用MobasherB,,2003,Srivastava23(5):62-67.日志挖掘中的数据预处理技术J.DataPreparationforMin⁃edgeWorldandInformationWideWebSystems,Browsing1999,Patterns[J].1(1):5-32.JournalofKnowl⁃本栏目责任编辑:谢媛媛 因篇幅问题不能全部显示,请点此查看更多更全内容