电力营销系统海量用户行为日志安全分析技术研究
2016-02-05刘玉婷苏永东赵晓平
◆刘玉婷 苏永东 赵晓平 欧 玮
(云南电网有限责任公司信息中心 云南 650217)
电力营销系统海量用户行为日志安全分析技术研究
◆刘玉婷 苏永东 赵晓平 欧 玮
(云南电网有限责任公司信息中心 云南 650217)
随着电力体制改革和能源互联网不断推进,营销系统在电力企业生产支撑中的作用日益关键,一旦遭到攻击、破坏将对企业、社会和国家造成十分严重的影响。本文在对国内某电力企业营销系统原始日志分析的基础上,对原始日志进行数据清理,去除噪声记录、提取关键特征,形成适合数据挖掘的日志格式,据此开展海量用户行为日志安全分析工作,并利用统一安全信息检索平台完成了可视化展现,并针对后续深入的数据挖掘工作给出了研究方向。
电力营销系统;用户行为日志分析;日志数据清理;数据挖掘可视化;统一安全信息检索
0 引言
随着电力企业信息化水平的不断提升,能源互联网和电力体制改革的不断推进,电力营销系统在企业日常生产中的重要性日益凸显。2015年云南电网推广CSG II营销管理系统,重点包括业扩报装、抄核收、客户服务和用电检查四大功能,覆盖了20个客户全方位服务流程、10类营销客服业务专业、342项协同业务。负责存储和管理云南电网下属供电单位的用户数据、业扩数据、计量数据、计费参数、银电互联、抄表信息、电费台账、账务数据和财务结算等数据。由于系统横向协同关系复杂,涉及与营业厅、自助终端、第三方支付、移动应用等系统的接口,同时还与安全级别程度较高的电网运行系统对接,如调度自动化系统、配电自动化系统、负荷控制系统等。系统用户数量众多,任何一个环节的安全破坏极易导致自身及其他系统的安全相继受损,甚至造成较大的社会影响,因此其安全性十分重要。
目前云南电网营销系统配备了较为完善的安全防护措施,能够抵御常规的攻击,但对于目前流行的APT渗入等攻击方式,以及内部人员恶意行为,缺少快速、及时的发现手段,仅能通过操作日志后期审计发现,效率低、时间长,仅能用于事后追责,无法在初始阶段发现异常并阻断。利用海量用户行为日志分析技术,可以实现用户异常行为的及时检测与报警,管理人员能够快速确认异常,并及时采取措施,能够有效避免严重后果的产生。
1 用户行为分析技术现状
最初的用户行为分析更关注于电子商务平台对用户点击、停留时间等一系列行为的分析,从而分析出用户的兴趣点,并针对性的给出推荐产品,从而提升用户体验和销售额。
在信息安全领域,Malek Ben Salem和Shlomo Hershkop首次利用大量用户行为记录进行数据挖掘从而实现内部威胁检测的方法进行了研究,第一次正式提出了内部威胁,并且将其细化为了Traitor(组织合法成员)和Masquerader(外部伪装的内部成员)两类攻击,并且根据两类攻击者的特点进行了分析,提出了可行的应对建议。[1]。
2013年,美国国际科学应用国际公司SAIC联合美国四家高校联合开发了PRODIGAL[2]系统,专门用于美国敏感部门的内部威胁检测。目前PRODIGAL已经在美国的部分涉密企业实际部署。该产品使用与IT相关的7类111个数据集进行计数与比例作为特征,同时使用人员关系图作为辅助分析,应用指示器、异常和场景三个维度作为异常检测的起点,综合使用了15种机器学习算法实现内部威胁的检测。
随后陆续有研究人员提出基于多域信息融合的内部威胁检测方法[3]、基于用户行为动态变化的内部威胁检测方法[4]等,均在一定程度上降低了误报率。然而仍然存在一定的应用困难,无法形成成熟产品应用于实际企业环境中。
同时,上述研究成果难以直接应用于营销系统用户行为分析当中,主要原因是营销系统记录了用户登录时间、修改数据、功能访问的信息,与现有研究成果中记录用户登录终端、使用Email、浏览网页、使用/连接设备等数据模型差异较大,特征点也存在较大差异。
2 电力营销系统海量用户行为日志分析技术研究
2.1 营销系统日志数据清理与数据提取
(1)系统原始日志结构分析
目前,云电营销系统主要记录有3类日志信息:功能访问日志、系统数据修改日志、系统登录注销日志,分别存放在数据库3个系统表中。
登录日志的信息包括:登录日志标识、人员标识、登录类型、登录账号、用户姓名、登录IP、服务器IP、服务器名称、注销时间、登录时间、失败次数、响应时长等字段。
功能访问日志包括日志记录标识、人员标识、功能菜单标识、菜单名称、访问时间、访问URL、访问IP等。
系统数据修改日志包括记录标识、修改的数据表名、修改的数据记录主键与记录行、修改类型(增、删、改)、修改日期、修改人员标识、修改说明(本条日志的可读概要说明)、时间戳(精确时间)、修改人员访问IP。
三类日志基本上记录了用户在本系统上进行的操作,部分涉及IP的字段也无参考意义,比如服务器IP,在登录时往往由负载均衡分配,并且仅在登录日志中出现,相关用途并不大。
并且这三张日志表对于用户行为来说,是存在依赖关系的,比如数据修改日志一定是和特定的功能调用日志相关联的,而文献[3]提出的多域信息融合方法适用于关联性较弱的领域,如登录、设备、HTTP、Email等,难以直接应用该成果。
根据分析结果,如果需要对某个用户的操作记录进行分析,那有必要将三个记录表合成1份进行分析;而如果需要对系统总体的操作情况进行分析,那么保持操作内容的分离性是十分有必要的。
(2)营销系统日志数据清理
为了去除原始日志中多余的信息,使日志记录更适合于数据挖掘工具分析,并能够同时适用于单用户行为分析和多用户综合操作分析,需要在现有日志中提取关键特征,并根据特征进行日志格式的设计。
图1 清理过的日志格式
我们遵循3W2H原则,设计了who what how where when日志格式,设计有日志记录主键、操作账户、操作、操作细节、源IP、操作时间4个字段。数据库表结构如图1所示。
其中LOGID为本条日志的唯一索引,用于数据库对记录进行管理,实际挖掘中可以去除本属性。
RYBS和DLZH是一个一一对应的字段,DLZH是人可读的账号名称,RYBS是账号表中的主键数字编码,实际挖掘中可以仅使用DLZH,原始日志记录中不仅保存了用户标识,还保存有用户中文名、用户全网统一的用户名(形如xxx@xxx.cn),为了后续便于联合准入系统进行关联分析,DLZH字段保存了用户全网统一的用户名。
ACT字段描述了本条记录的行为,我们设计了营销系统中有Login、Logout、FuncInvoke、Add_data、Modify_data、Del_data共6种操作类型,分别代表登录、注销、功能调用、增加数据、修改数据和删除数据,可以用于粗略的行为分析,也可以用于对每一类操作进行过滤,以进行深入挖掘。
Detail字段是ACT字段的详细描述,对于Login、Logout来说没有详细信息,仅重复填充;对于FuncInvoke来说,由于原日志中记录的菜单编码、URL和菜单名称均是一一对应的,为保证可读性,Detail字段记录了调用的功能菜单名称;而Add_data、Modify_data、Del_data字段在原始日志中记录的内容包括修改的数据表名以及该条数据的记录主键值,实际应用中单独参考数据主键没有实际意义,而结合实际记录进行分析将给系统带来较大压力,极可能影响系统稳定运行,因此此处Detail字段仅记录修改的表名。
IP字段记录的是该账户进行本次操作的源IP地址。
DLSJ字段记录的是本次操作发生的时间。
(3)数据清理总结
通过上述数据清理工作,将不同类型的日志进行特征提取、日志合并,去除对数据挖掘意义不大或目标不明确的记录字段,形成一个适合进行数据挖掘的日志记录格式,为后续的挖掘工作奠定了基础。
而要想获得良好的数据挖掘结果,成功应用聚类、决策树等挖掘算法,还需要对记录进行分类,针对本项研究内容需要从海里日志记录中提取一定数量的日志样本,对样本中每一个操作记录进行人工分析,标识该记录的异常、正常等,作为挖掘模型的训练数据集,并保留一部分识别出的记录,去除标识字段结果,用于数据挖掘模型测试。
由于时间有限,目前暂未进行上述工作,在后续工作中将开展相关工作。
2.2 电力营销系统用户行为日志分析
分析特征提取与模型设计
(1)账号共享情况检测
通过对账号登录的IP地址进行统计,能够发现多人共用账号的情况,进一步对登录和注销时间内同一账号同一IP的登录注销记录统计,可以发现单机多重登录的情况,便于落实安全管理制度。针对营销系统登录情况,针对同一账号统计登录IP的个数,个数大于1认为账号存在账号共享使用的情况。
(2)账户异常登录情况检测
对账号登录的IP地址进行次数统计,提取出最常登录的3个IP地址,当最常登录的IP地址变化时,结合网络准入系统协同验证,对于未在本人证书插入的终端IP上的登录行为认为是异常。
(3)账号口令破解情况检测
通过检测一个较短时间周期(1小时)内单个IP上登录的账户数量以及不同账号的登录失败次数,其数量显著较高的IP可以怀疑其进行账户口令破解或登录测试。
(4)用户在线与登录情况统计
通过对用户工作时段和非工作时段的登录时长进行统计,分析营销系统各账户每天使用系统的情况,包含单帐户登录时长和总用户在线时长,可以用来识别僵尸账号和时间过长的异常账户。统计一段时间每天(8:00-18:00,18:01-次日7:59)各账户的登录记录,根据记录中的登录时间和注销时间及登录次数计算每个时间区间内的账号在线时长,最后计算总用户在线时长。
(5)用户菜单访问情况统计
通过对账号菜单调用情况进行统计,分析用户访问功能的情况,统计一段时间内(1天或1周)各菜单的调用情况并进行排序,获得该用户最常用的前10个菜单列表,当菜单列表变化时认为用户行为存在改变,需要进一步调查。
(6)用户数据修改情况统计
通过对单个用户的数据修改情况进行统计,分析用户在数据修改方面的情况,统计一段时间内(1天或1周)用户执行新增、修改、删除的数据表名数量,获得该用户最经常增加、修改、删除的前10个数据表,当数据列表变化时认为用户行为存在改变,需要进一步调查。
2.3 检测模型在信息安全统一检索平台的实现
(1)账号共享情况检测及账户异常登录情况检测
通过对每个账户的登录次数进行计数并对每个账户进行聚合,搜索过去110天内所有登录行为日志,同时对总计数情况使用分割条形式的账户字段聚合,利用统一信息安全检索平台中的可视化工具进行绘图,纵轴为登录次数,横轴为登录账户,不同颜色代表登录的IP,如图2所示。可以看出有10个账户涉及账户共享。
图2 账户异常登录情况
图3 账户口令破解情况检测
(2)账号口令破解情况检测
通过检测一个较短时间周期(1小时)内单个IP上登录的账户数量以及不同账号的登录失败次数,其数量显著较高的IP可以怀疑其进行账户口令破解或登录测试。对总计数情况使用分割条形式的IP字段聚合,利用统一信息安全检索平台中的可视化工具进行绘图,纵轴为登录次数,横轴为IP,不同颜色代表登录的账户,如图3所示。可以看出第二列的IP存在多个账户登录的情况,需要进行深入调查。
(3)用户在线与登录情况统计
通过统计用户登录与在线时长,形成如图4所示的账户在线情况,通过排列趋势的变化发现异常用户使用系统的情况。
图4 用户登录与在线统计
(4)用户菜单访问情况统计
用户对菜单的访问情况统计如图5所示,即实际应用中需要跟踪前5个账户的情况。