用电信息采集系统账号异常登陆和异常操作的监控方法与流程

文档序号:14179061阅读:358来源:国知局
本发明属于信息系统安全与监控
技术领域
:,涉及一种用电信息采集系统账号异常登陆和异常操作的监控方法。
背景技术
::用电信息采集系统是集现代数字通信技术、计算机软硬件技术、电能计量技术、电力负荷管理技术和电力营销技术为一体的综合的准实时信息采集与分析处理系统,它以移动通信网络、230mhz无线专网、光纤网为主要通信载体,通过多种通信方式实现系统主站和现场终端之间的数据通信,具有数据采集、远程抄表、用电异常信息报警、电能质量监测、线损分析、无功电压管理和负荷监控管理等功能。随着智能电网的发展与推广,智能电能表大量接入采集系统,使系统主站承担了越来越大的调试、接入和采集等方面的压力,系统负荷在业务高峰期达到90%以上,甚至出现服务器宕机现象,给公司正在逐步上升的用电采集业务应用及指标数据造成恶劣影响。因此,及时有效地解决采集系统瓶颈、优化采集系统性能成为保证电能准确采集、支撑智能电网发展的当务之急,而且随着采集系统数据量持续增长以及功能应用不断深化,系统的稳定运行也成为各部门管理者和应用者的共同期盼。系统负载和资源消耗情况是重要的系统运行指标,而账号登陆和操作的规范性,是对系统负载和资源消耗产生影响的重要因素。在系统使用高峰期,账号的登陆和操作频率大幅升高,系统负载和资源消耗也随之升高,而部分系统用户在此时间窗口使用账号的规范性不强,甚至使用自动软件和外挂插件频繁登陆系统并频繁操作。通过在系统后台数据库中对异常情况进行查询分析发现,存在账号异常登陆和频繁操作的情况,如表1中所示。据统计,正常的账号人工操作一般10次/分钟以内,而上述此类账号频繁操作消耗系统大量资源,对主站服务器寿命产生很大影响,使系统宕机概率大大增加,造成系统资源的浪费和流失,给采集系统带来严重的安全隐患。经过调查,发现部分账号通过外挂程序软件自动登陆采集系统页面自动进行预设操作,由于使用此方式登陆和操作的频率过高,对系统的安全、稳定和高效运行造成很大影响:系统平均负载达到49.8%,最高负载98.6%,当天系统负载如附图1所示。为保证系统安全稳定运行,监测系统账号的各项操作,杜绝网络入侵、非法外挂等非人工操作情况发生,需要设计一种实时监测系统账号,及时对异常账号进行限制的方法。用电信息采集系统账号异常登陆和异常操作监控功能实现用电信息采集系统账号的监测和控制,包括监测账号的登陆时间、登陆ip、登陆类型(包括正常登陆、注销和非法登陆)等,以及账号的操作时间、操作ip、操作内容等信息,经过统计分析判断账号异常情况,并及时对异常账号进行限制处理。技术实现要素:本发明的目的是提供一种用电信息采集系统账号异常登陆和异常操作的监控方法,通过对系统账号登陆和操作日志进行监测的方式,实时监控系统账号的登陆和操作情况,及时对异常登陆和操作的账号进行限制,提高系统运行的稳定性和安全性。本发明的目的通过以下技术方案来实现:一种用电信息采集系统账号异常登陆和异常操作的监控方法,包括如下步骤:(1)在系统后台分别建立记录账号登陆和账号操作的数据模型,对用电信息采集系统账号登陆和操作信息进行日志记录,账号登陆信息包括账号的登陆时间、登陆ip地址、登陆类型(包括登陆、注销、非正常登陆)等,账号操作信息包括账号的操作时间、操作ip地址、操作内容等信息;(2)通过周期性判断同一账号在一分钟内或一小时内登陆次数和操作次数是否超过一定阈值和/或同一秒钟内是否重复登录和操作,判断账号登陆异常和操作异常,对账号进行访问限制;(3)在日志表中记录账号出现的登陆异常或操作异常,包括异常时间、异常类型和被限制次数。本发明提出了一种用电信息采集系统账号异常登陆和异常操作的监控方法,具有如下有益效果:(1)通过对系统账号登陆和操作日志进行监测的方式,实时监控系统账号的登陆和操作情况,及时对异常登陆和操作的账号进行限制,杜绝网络入侵、非法外挂等非人工操作情况发生,提高系统运行的稳定性和安全性;(2)通过使用本发明的方法对异常账号进行封停,系统负荷得到较大缓解,业务高峰期(上午9时至11时)cpu负载由原来的90%降低至50%左右,内存占用也得到有效释放。使用异常账号监控后的系统负荷情况如图2所示。附图说明图1为现有状态下系统负载曲线;图2为使用本发明方法后的系统负载曲线;图3为本发明的监控流程。具体实施方式下面结合附图和具体实施例对本发明的内容进行进一步的解释和说明。在系统后台数据库中对异常情况进行查询分析发现,存在账号异常登陆和频繁操作的情况,如表1中所示。表1账号频繁操作情况序号账号操作类型操作时间操作内容ip地址1sjzzh_dongsy042017/2/1315:05:03常用项召测10.98.27.2432sjzzh_dongsy042017/2/1315:05:03常用项召测10.98.27.2433sjzzh_dongsy042017/2/1315:05:03常用项召测10.98.27.2434sjzzh_dongsy042017/2/1315:05:02常用项召测10.98.27.2435sjzzh_dongsy042017/2/1315:05:02常用项召测10.98.27.2436sjzzh_dongsy042017/2/1315:05:02常用项召测10.98.27.2437sjzzh_dongsy042017/2/1315:05:02常用项召测10.98.27.2438sjzzh_dongsy042017/2/1315:05:01常用项召测10.98.27.2439sjzzh_dongsy042017/2/1315:05:01常用项召测10.98.27.24310sjzzh_dongsy042017/2/1315:05:00常用项召测10.98.27.24311sjzzh_dongsy042017/2/1315:05:00常用项召测10.98.27.24312sjzzh_dongsy042017/2/1315:05:00常用项召测10.98.27.24313sjzzh_dongsy042017/2/1315:04:59常用项召测10.98.27.24314sjzzh_dongsy042017/2/1315:04:59常用项召测10.98.27.24315sjzzh_dongsy042017/2/1315:04:59常用项召测10.98.27.24316sjzzh_dongsy042017/2/1315:04:58常用项召测10.98.27.24317sjzzh_dongsy042017/2/1315:04:58常用项召测10.98.27.24318sjzzh_dongsy042017/2/1315:04:57常用项召测10.98.27.24319sjzzh_dongsy042017/2/1315:04:57常用项召测10.98.27.24320sjzzh_dongsy042017/2/1315:04:56常用项召测10.98.27.24321sjzzh_dongsy042017/2/1315:04:56常用项召测10.98.27.24322sjzzh_dongsy042017/2/1315:04:56常用项召测10.98.27.24323sjzzh_dongsy042017/2/1315:04:55常用项召测10.98.27.24324sjzzh_dongsy042017/2/1315:04:54常用项召测10.98.27.24325sjzzh_dongsy042017/2/1315:04:53常用项召测10.98.27.24326sjzzh_dongsy042017/2/1315:04:53常用项召测10.98.27.24327sjzzh_dongsy042017/2/1315:04:52常用项召测10.98.27.24328sjzzh_dongsy042017/2/1315:04:52常用项召测10.98.27.24329sjzzh_dongsy042017/2/1315:04:51常用项召测10.98.27.24330sjzzh_dongsy042017/2/1315:04:50常用项召测10.98.27.24331sjzzh_dongsy042017/2/1315:04:49常用项召测10.98.27.24332sjzzh_dongsy042017/2/1315:04:49常用项召测10.98.27.24333sjzzh_dongsy042017/2/1315:04:49常用项召测10.98.27.24334sjzzh_dongsy042017/2/1315:04:49常用项召测10.98.27.24335sjzzh_dongsy042017/2/1315:04:48常用项召测10.98.27.24336sjzzh_dongsy042017/2/1315:04:48常用项召测10.98.27.24337sjzzh_dongsy042017/2/1315:04:48常用项召测10.98.27.24338sjzzh_dongsy042017/2/1315:04:48常用项召测10.98.27.24339sjzzh_dongsy042017/2/1315:04:48常用项召测10.98.27.24340sjzzh_dongsy042017/2/1315:04:47常用项召测10.98.27.24341sjzzh_dongsy042017/2/1315:04:47常用项召测10.98.27.24342sjzzh_dongsy042017/2/1315:04:47常用项召测10.98.27.24343sjzzh_dongsy042017/2/1315:04:47常用项召测10.98.27.24344sjzzh_dongsy042017/2/1315:04:46常用项召测10.98.27.24345sjzzh_dongsy042017/2/1315:04:46常用项召测10.98.27.24346sjzzh_dongsy042017/2/1315:04:46常用项召测10.98.27.243据统计,正常的账号人工操作一般10次/分钟以内,而上述此类账号频繁操作消耗系统大量资源,对主站服务器寿命产生很大影响,使系统宕机概率大大增加,造成系统资源的浪费和流失,给采集系统带来严重的安全隐患。经过调查,发现部分账号通过外挂程序软件自动登陆采集系统页面自动进行预设操作,由于使用此方式登陆和操作的频率过高,对系统的安全、稳定和高效运行造成很大影响:系统平均负载达到49.8%,最高负载98.6%,当天系统负载如图1所示。为保证系统安全稳定运行,监测系统账号的各项操作,杜绝网络入侵、非法外挂等非人工操作情况发生,本发明设计了一种实时监测系统账号,及时对异常账号进行限制的方法即提供了一种用电信息采集系统账号异常登陆和异常操作监控方法,实现了用电信息采集系统账号的监测和控制。如图2所示,通过使用本发明对异常账号进行封停,系统负荷得到较大缓解,业务高峰期(上午9时至11时)cpu负载由原来的90%降低至50%左右,内存占用也得到有效释放。实施例1如图3所示的本发明的用电信息采集系统账号异常登陆和异常操作的监控的流程图,监控步骤如下:(1)在系统后台分别建立记录账号登陆和账号操作的数据模型,对用电信息采集系统账号登陆和操作信息进行日志记录,账号登陆信息包括账号的登陆时间、登陆ip地址、登陆类型(包括登陆、注销、非正常登陆)等,账号操作信息包括账号的操作时间、操作ip地址、操作内容等信息。账号登陆和账号操作的数据模型分别如表2和表3所示。表2记录账号登陆的数据模型表3记录账号操作的数据模型(2)判断同一账号一分钟内登陆次数是否≥50和/或同一秒钟内是否重复登录;(3)如果同一账号一分钟内登陆次数≥50和/或同一秒钟内重复登录,则账号登陆异常,对账号进行访问限制;(4)判断同一账号一分钟内操作次数是否≥50和/或一小时内操作次数是否≥100且存在同一秒钟内重复操作和/或一小时内存在一秒钟内重复操情况次数≥3;(5)如果同一账号一分钟内操作次数≥50和/或一小时内操作次数≥100且存在同一秒钟内重复操作和/或一小时内存在一秒钟内重复操情况次数≥3,则账号操作异常,对账号进行访问限制,如果账号操作正常则返回步骤(2);(6)将出现登陆或操作异常的账号在日志中进行记录,包括异常时间、异常类型和被限制次数。本发明的监控方法后台代码如下所示:createorreplaceproceduremonitor_user_abnormal_opisv_start_timedate;v_start_datedate;v_end_datedate;v_cnt_updatenumber;v_cnt_update2number;v_datedate;beginv_start_time:=sysdate;v_cnt_update:=0;v_cnt_update2:=0;v_date:=trunc(sysdate,'hh24');---下面,每分操作次数大于等于50,范围为一小时v_end_date:=v_date;v_start_date:=v_date-1/24;insertintomonitor_abnormal_op_datail(date_minute,emp_no,op_cnt,write_date,org_no,ip_addr,op_content,start_date,end_date,abnorbal_type)selecttrunc(l.op_time,'mi')date_minute,l.emp_no,count(*)asop_cnt,sysdateaswrite_date,max(l.org_no)asorg_no,max(l.ip_addr)asip_addr,l.op_content,v_start_date,v_end_date,'每分操作次数大于等于50'asabnorbal_typefroml_user_op_loglwherel.op_time>=v_start_dateandl.op_time<=v_end_dategroupbytrunc(l.op_time,'mi'),l.emp_no,l.op_contenthavingcount(*)>=50;commit;---下面,开始判断每秒操作次数大于等于3的情形,判断周期为一天v_end_date:=v_date;v_start_date:=v_date-1/24;--首先求出一天内每秒操作次数大于等于3操作记录,先插入临时表tmp_monitor_abnormal_op_datailexecuteimmediate'truncatetabletmp_monitor_abnormal_op_datail';insertintotmp_monitor_abnormal_op_datail(date_minute,emp_no,op_cnt,write_date,org_no,ip_addr,op_content)selectl.op_timedate_minute,l.emp_no,count(*)asop_cnt,sysdateaswrite_date,max(l.org_no)asorg_no,max(l.ip_addr)asip_addr,l.op_contentfroml_user_op_loglwherel.op_time>=v_start_dateandl.op_time<=v_end_dategroupbyl.op_time,l.emp_no,l.op_contenthavingcount(*)>=3;commit;--下面,每秒操作次数大于等于3,并且,出现每小时操作次数大于等于100insertintomonitor_abnormal_op_datail(date_minute,emp_no,op_cnt,write_date,org_no,ip_addr,op_content,start_date,end_date,abnorbal_type)selectdate_minute,emp_no,op_cnt,write_date,org_no,ip_addr,op_content,start_date,end_date,abnorbal_typefrom(selecttrunc(l.op_time,'hh24')date_minute,l.emp_no,count(*)asop_cnt,sysdateaswrite_date,max(l.org_no)asorg_no,max(l.ip_addr)asip_addr,l.op_content,v_start_dateasstart_date,v_end_dateasend_date,'每秒操作次数大于等于3&每小时操作次数大于等于100'asabnorbal_typefroml_user_op_loglwherel.op_time>=v_start_dateandl.op_time<=v_end_dategroupbytrunc(l.op_time,'hh24'),l.emp_no,l.op_contenthavingcount(*)>=100)lixwhereexists(select1fromtmp_monitor_abnormal_op_datailtwheret.emp_no=lix.emp_no);commit;executeimmediate'truncatetabletmp_monitor_abnormal_op_emp_no';insertintotmp_monitor_abnormal_op_emp_no(emp_no)selectdistinctl.emp_nofrommonitor_abnormal_op_dataillwherel.date_minute>=v_start_dateandl.date_minute<=v_end_dateandexists(select1fromp_sys_userpwherep.staff_no=l.emp_noandp.cur_status_code<>'03');--“03”为“删除”状态commit;updatep_sys_userpsetp.cur_status_code='03',p.lock_time=sysdatewherep.staff_noin(selectt.emp_nofromtmp_monitor_abnormal_op_emp_not);v_cnt_update:=sql%rowcount;commit;--监控出异常,同时账号为非删除状态,同时tmp_monitor_abnormal_op_emp_no中不存在记录,则认为是新发生的操作异常updatemonitor_abnormal_op_dataillset(l.lock_time,l.staff_name,l.lock_cnt,l.lock_history)=(selectu.lock_time,u.name,1aslock_cnt,to_char(u.lock_time,'yyyy-mm-ddhh24:mi:ss')aslock_historyfromp_sys_useruwhereu.staff_no=l.emp_no)wherel.date_minute>=v_start_dateandl.date_minute<=v_end_dateandexists(select1fromp_sys_useruwhereu.staff_no=l.emp_no)andexists(select1fromtmp_monitor_abnormal_op_emp_nouuwhereuu.emp_no=l.emp_no)andnotexists(select1frommonitor_abnormal_op_datailewheree.write_date<v_start_timeande.emp_no=l.emp_no);commit;--监控出异常,同时账号为非删除状态,同时tmp_monitor_abnormal_op_emp_no中存在记录,则认为是重复发生的操作异常updatemonitor_abnormal_op_dataillset(l.lock_time,l.staff_name,l.lock_cnt,l.lock_history)=(selectlock_time,staff_name,lock_cnt,lock_historyfrom(selectdistincte.emp_no,p.lock_time,p.nameasstaff_name,e.lock_cnt+1aslock_cnt,e.lock_history||','||to_char(p.lock_time,'yyyy-mm-ddhh24:mi:ss')aslock_historyfrommonitor_abnormal_op_dataile,tmp_monitor_abnormal_op_emp_not,p_sys_userpwheree.write_date<v_start_timeandp.staff_no=e.emp_noandt.emp_no=e.emp_no)lixwherelix.emp_no=l.emp_no)whereexists(selectlock_time,staff_name,lock_cnt,lock_historyfrom(selectdistincte.emp_no,p.lock_time,p.nameasstaff_name,e.lock_cnt+1aslock_cnt,e.lock_history||','||to_char(p.lock_time,'yyyy-mm-ddhh24:mi:ss')aslock_historyfrommonitor_abnormal_op_dataile,tmp_monitor_abnormal_op_emp_not,p_sys_userpwheree.write_date<v_start_timeandp.staff_no=e.emp_noandt.emp_no=e.emp_no)lixwherelix.emp_no=l.emp_no);commit;--监控出异常,但账号本身就是删除状态,也能找到之前置停历史操作记录,则认为这次是重复监测。updatemonitor_abnormal_op_dataillset(l.lock_time,l.staff_name,l.lock_cnt,l.lock_history)=(selectlock_time,staff_name,lock_cnt,lock_historyfrom(selecte.emp_no,max(p.lock_time)aslock_time,max(p.name)asstaff_name,max(e.lock_cnt)aslock_cnt,max(e.lock_history)aslock_historyfrommonitor_abnormal_op_dataile,p_sys_userpwheree.write_date<v_start_timeandp.staff_no=e.emp_nogroupbye.emp_no)lixwherelix.emp_no=l.emp_no)wherel.date_minute>=v_start_dateandl.date_minute<=v_end_dateandl.lock_cntisnullandexists((select1from(selecte.emp_no,max(p.lock_time)aslock_time,max(p.name)asstaff_name,max(e.lock_cnt)aslock_cnt,max(e.lock_history)aslock_historyfrommonitor_abnormal_op_dataile,p_sys_userpwheree.write_date<v_start_timeandp.staff_no=e.emp_nogroupbye.emp_no)lixwherelix.emp_no=l.emp_no))andnotexists(select1fromtmp_monitor_abnormal_op_emp_nouuwhereuu.emp_no=l.emp_no);commit;--监控出异常,但账号本身就是删除状态,但不能找到之前置停历史操作记录,则认为此置停是在此监控脚本之外的手工操作行为。updatemonitor_abnormal_op_dataillset(l.lock_time,l.staff_name,l.lock_cnt,l.lock_history)=(selectu.lock_time,u.name,1aslock_cnt,to_char(u.lock_time,'yyyy-mm-ddhh24:mi:ss')aslock_historyfromp_sys_useruwhereu.staff_no=l.emp_no)wherel.date_minute>=v_start_dateandl.date_minute<=v_end_dateandl.lock_cntisnullandexists(select1fromp_sys_useruwhereu.staff_no=l.emp_no)andnotexists(select1fromtmp_monitor_abnormal_op_emp_nouuwhereuu.emp_no=l.emp_no);commit;calc_srv_log('301','监控用户的非法操作**'||v_cnt_update||'--'||v_cnt_update2||'**------耗时'||'('||to_char(v_start_time,'hh24:mi:ss')||'至'||to_char(sysdate,'hh24:mi:ss')||')'||round(to_number(sysdate-v_start_time)*1440)||'分!','monitor_user_abnormal_op',round(to_number(sysdate-v_start_time)*1440),'',v_start_time,sysdate);commit;exceptionwhenothersthenrollback;system_log('monitor_user_abnormal_op','','');calc_srv_log('-1','监控用户的非法操作--出错!','monitor_user_abnormal_op','','');commit;endmonitor_user_abnormal_op。需要注意的是,以上仅是本发明的较佳实施例而不是全部实施例,不应造成对本发明保护范围的限制,本发明还可以采用其他实施方式,本领域技术人员在未做任何创造性劳动的基础上,对本发明的内容进行的任何修改或替换,均应当认为落入本发明的保护范围内。当前第1页12当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1