技术领域
[0001] 本发明涉及计算机信息安全技术领域,具体涉及一种基于实时日志的网站威胁检测的方法及系统。
背景技术
[0002] 随着互联网技术的快速发展,网络安全问题显得尤为重要,网络空间的安全问题也已上升到国家战略。一些政府、学校机关单位及中小企业建立了自己的网络站点,由于缺乏信息安全专业技术人员,系统在遭受攻击后不能及时发现而导致恶劣的影响。网络攻击手段多种多样,如分布式拒绝服务(Distributed Denial of Service,简称DDoS)攻击、Oday漏洞攻击等,越早发现系统或网络的异常及威胁,积极采取防范应对措施,损失才会越小。
[0003] 现有的基于日志的网站威胁分析检测方法及系统,大多采取将日志数据归一化转化为结构化数据存储在数据库表中,这种处理方式中日志数据的读写较为复杂,性能较低,无法满足网站威胁的实时检测及分析,且大多采取基于数据库的事后检测方式处理效率低、缺乏时效性,不能在攻击产生时立即采取有效措施。同时传统的日志分析的架构不能做到存储性能的线性扩展,当存储的日志数据达到一定量的时候,数据的读写性能受到严重的影响,而且对海量日志数据的存储和分析的时间很长,随着网站日志数据的快速增长,时效性越来越差,成本也越来越高,更难以多维度快速地检测出网站的威胁并及时地采取有效措施。
发明内容
[0004] 针对现有技术的缺陷,本发明提供一种基于实时日志的网站威胁检测方法及系统,能够提高日志数据的处理能力及时效性,提高网站威胁检测与反应的及时性,降低网站运行的风险,为网络的信息安全提供有力的保障。
[0005] 第一方面,本发明提供了一种基于实时日志的网站威胁检测方法,所述方法包括:
[0006] 实时采集监控网站日志服务器的日志数据;
[0007] 对日志数据进行转换与实时分发;
[0008] 对日志数据进行实时处理与检测;
[0009] 对所述网站威胁检测结果进行实时展示,并根据所述检测结果的严重程度进行实时预警。
[0010] 优选地,所述实时采集监控网站日志服务器的日志数据,包括:
[0011] 实时监控网站日志服务器上的日志文件,当检测到日志文件内容发生变化时,对变化的数据进行增量采集;
[0012] 并将采集到的数据进行整合,添加网站名称及日志名称;
[0013] 其中,所述日志文件内容包括:来访用户的IP地址、目的地址、目的端口、访问时间、请求内容、访问次数、访问深度、访问宽度及get文件访问比例。
[0014] 优选地,所述对日志数据进行转换与实时分发,包括:
[0015] 将采集到的日志数据转换为消息队列,分别发送给历史数据存储集群及实时计算集群;
[0016] 将实时采集的日志数据备份到本地的文件系统,支持对日志数据的定期清理。
[0017] 优选地,所述对日志数据进行实时处理与检测,包括:
[0018] 对日志数据进行实时清洗、加工,及特征值提取,获取规则匹配所需的关键信息项;
[0019] 利用网站威胁规则知识库中所包括的规则,实时对日志数据的关键信息项进行匹配;
[0020] 将实时匹配计算的结果保存在内存数据库中;
[0021] 其中,所述规则知识库支持对规则的增加、删除、修改及查询的操作;利用数据挖掘的频繁挖掘算法对历史数据进行分析,获取用户的行为特征,得到新的网站威胁规则。
[0022] 优选地,所述网站威胁包括:结构化查询语言SQL注入攻击、跨站脚本攻击、可疑的网站后门工具WebshelI访问、异常对象访问、缓冲区溢出、目录遍历、敏感路径猜测、管理后台访问、密码暴力尝试、越权访问、非法大量下载、频繁登陆、参数异常。
[0023] 优选地,所述对所述网站威胁检测结果进行展示,并根据所述检测结果的严重程度进行预警的步骤后,所述方法还包括:
[0024] 根据网站威胁检测结果,若判定为攻击行为,则根据预设的规则采取强制措施;若需要人工干预,则将所述网站威胁检测结果通过短信或邮件的方式推送给系统或管理员。
[0025] 第二方面,本发明提供了一种基于实时日志的网站威胁检测系统,该系统包括:
[0026]日志数据实时采集单元,用于实时采集监控网站日志服务器上的日志数据;
[0027]日志数据实时转换与分发单元,用于对日志数据进行转换与实时分发;
[0028] 日志数据实时处理与检测单元,用于对日志数据进行实时处理与检测;
[0029]日志数据实时监控单元,用于对所述网站威胁检测结果进行展示,并根据所述检测结果的严重程度进行预警。
[0030] 优选地,所述日志数据实时采集单元,具体用于:
[0031] 实时监控网站日志服务器上的日志文件,当检测到日志文件发生变化时,对变化的数据进行增量采集;
[0032] 并将采集到的数据进行整合,添加网站名称及日志名称;
[0033] 通过数据传输接口,将数据发送给数据实时分发单元。
[0034] 优选地,所述日志数据实时转换与分发单元,包括:
[0035] 数据实时传输模块,用于将采集到的日志数据转换为消息队列,并对所述日志数据进行分发;
[0036] 数据备份模块,用于将实时采集的日志数据备份到本地的文件系统,支持对日志数据的定期清理。
[0037] 优选地,所述日志数据实时处理与检测单元,包括:
[0038]日志数据实时加工单元,用于对日志数据进行实时清洗、加工,及特征值提取,获取规则匹配所需的关键信息项;
[0039] 网站威胁实时匹配单元,用于利用网站威胁规则知识库中所包括的规则,实时对日志数据的关键信息项进行匹配;
[0040] 实时计算结果存储单元,用于将实时匹配计算的结果保存在内存数据库中;
[0041] 规则库维护单元,用于支持对规则的增加、删除、修改及查询的操作;
[0042] 历史数据学习单元,用于利用数据挖掘的频繁挖掘算法对历史数据进行分析,获取用户的行为特征,得到新的网站威胁规则。
[0043] 优选地,所述日志数据实时监控单元,包括:
[0044] 数据结果实时展示单元,用于实时查询、显示威胁检测计算得到的关键指标数据;
[0045] 实时预警单元,用于对出现的威胁根据严重程度进行实时预警;根据网站威胁检测结果,若判定为攻击行为,则根据预设的规则采取强制措施;若需要人工干预,则将所述网站威胁检测结果通过短信或邮件的方式推送给系统或管理员。
[0046] 由上述技术方案可知,本发明提供一种基于实时日志的网站威胁检测方法及系统,通过实时采集网站日志数据、将日志数据实时分发、对日志数据实时分析和检测,发现网站运行过程中的异常及遭遇到的攻击,将检测结果实时反馈来进行实时监测与控制。本发明能够提高日志数据的处理能力及时效性,提高网站威胁检测与反应的及时性,降低网站运行的风险,为网络的信息安全提供有力的保障。
附图说明
[0047] 为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些图获得其他的附图。
[0048] 图1是本发明一实施例提供的基于实时日志的网站威胁检测方法的流程示意图;
[0049] 图2是本发明一实施例提供的基于实时日志的网站威胁检测方法的部分流程示意图;
[0050] 图3是本发明一实施例提供的基于实时日志的网站威胁检测方法的部分流程示意图;
[0051] 图4是本发明另一实施例提供的基于实时日志的网站威胁检测方法的示意图;
[0052]图5是本发明一实施例提供的基于实时日志的网站威胁检测系统的结构示意图;
[0053]图6是本发明一实施例提供的日志数据实时转换与分发单元的结构示意图;
[0054] 图7是本发明一实施例提供的日志数据实时处理与检测单元的结构示意图;
[0055] 图8是本发明一实施例提供的日志数据实时监控单元的结构示意图。
具体实施方式
[0056] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0057] 如图1所示,为本发明一实施例提供的基于实时日志的网站威胁检测方法,该方法包括如下步骤:
[0058] 101、实时采集监控网站日志服务器的日志数据。
[0059] 102、对日志数据进行转换与实时分发。
[0060] 103、对日志数据进行实时处理与检测。
[0061] 104、对所述网站威胁检测结果进行实时展示,并根据所述检测结果的严重程度进行实时预警。
[0062] 其中,检测结果的展示可以通过网络Web端或手机应用程序App展示。
[0063] 具体来说,步骤101包括:
[0064] 实时监控网站日志服务器上的日志文件,当检测到日志文件发生变化时,对变化的数据进行增量采集。其中,日志文件发生变化是指日志文件的内容发生变化,而日志文件内容包括:来访用户的IP地址、目的地址、目的端口、访问时间、请求内容、访问次数、访问深度、访问宽度及get文件访问比例。并将采集到的数据进行整合,添加网站名称及日志名称。
[0065] 需要说明的是,该方法能够从多个网站同时并行采集多个日志数据,也能够从一个网站的多个服务器上并行采集日志数据。且实时采集时,可以控制采集的时机与数据传输的速率,以减小对原服务器的压力。
[0066] 本实施例中,如图2所示,步骤102具体包括如下步骤:
[0067] 1021、将采集到的日志数据转换为消息队列,分别发送给历史数据存储集群及实时计算集群。
[0068] 1022、将实时采集的日志数据备份到本地的文件系统,支持对日志数据的定期清理。
[0069] 其中,利用分布式消息系统实时接收日志数据,将日志数据转换为消息队列后,进行数据实时分发:一方面将日志数据写入分布式文件系统,数据以Key-Value形式,如分布式文件系统(Hadoop Distributed File System, HDFS)文件进行存储;另一方面将日志数据发送给实时计算集群。为了提高数据的发送效率,分布式消息系统可以采取小批量的方式发送消息队列中的数据,如每100条数据发送一次,当超过系统设定的时间,不到100条也强行发送。
[0070] 本实施例中,如图3所示,步骤103中根据网站ID和日志名称来区分日志数据,并通过如下步骤对日志数据进行计算:
[0071] 1031、对日志数据进行实时清洗、加工,及特征值提取,获取规则匹配所需的关键信息项。
[0072] 1032、利用网站威胁规则知识库中所包括的规则,实时对日志数据的关键信息项进行匹配。
[0073] 1033、将实时匹配计算的结果保存在内存数据库中。
[0074] 1034、规则知识库支持对规则的增加、删除、修改及查询的操作。
[0075] 1035、利用数据挖掘的频繁挖掘算法对历史数据进行分析,获取用户的行为特征,得到新的网站威胁规则。
[0076] 其中,历史数据为步骤1021中历史数据存储集群中所存储的日志数据。
[0077] 其中,网站威胁规则包括:(I)已知的网站威胁规则知识库,该规则知识库支持对规则的增加、删除、修改、查询等操作;(2)根据存储的历史日志数据,利用数据挖掘技术如频繁项挖掘的方式,提取出用户异常行为特征来完善规则知识库。
[0078] 其中,网站威胁包括:结构化查询语言(Structured Query Language,SQL)注入攻击、跨站脚本攻击、可疑的网站后门工具Web she 11访问、异常对象访问、缓冲区溢出、目录遍历、敏感路径猜测、管理后台访问、密码暴力尝试、越权访问、非法大量下载、频繁登陆及参数异常等常见网站攻击和异常操作行为。
[0079] 本实施例中,步骤104后还包括如下步骤:
[0080] 根据网站威胁检测结果,若判定为攻击行为,则根据预设的规则采取强制措施;若需要人工干预,则将所述网站威胁检测结果通过短信或邮件的方式推送给系统或管理员。
[0081] 本实施例提供了一种基于实时日志的网站威胁检测方法,通过实时采集网站日志数据、将日志数据实时分发、对日志数据实时分析和检测,发现网站运行过程中遇到的攻击和异常威胁,并将检测结果实时反馈来进行实时监测与控制。通过上述方法能够提高日志数据的处理能力及时效性,提高网站威胁检测与反应的及时性,降低网站运行的风险,为网络的信息安全提供有力的保障。
[0082] 下面,通过一个更为具体的实施例来说明基于实时日志的网站威胁检测方法,如图4所示,该方法包括:
[0083] (I)网站日志数据的实时采集
[0084] 本实施例中,日志数据的实时采集优先采用Flume-Ng组件,Flume是一个高可用的,高可靠的,分布式的海量日志采集、聚合和传输的系统。在网站后台日志服务器上部署一个或多个Flume-Ng的Agent。实时采集网站的访问、请求等日志数据,如来访用户的IP源地址、源端口,目的地址,目的端口,访问时间、请求内容等数据,访问次数,访问深度,访问宽度,Get文件访问比例等信息。Flume-Ng可以根据网站的实际情况,控制采集的时机及数据传输的速率,尽可能减小对原网站服务器的压力。
[0085] (2)日志数据的实时传输
[0086] 本实施例中,分布式消息系统优先选择Kafka组件,其中Kafka是一种高吞吐量的分布式分布订阅消息系统,可以支持每秒几十万条消息的传输。可以根据网站的特点和日志分析的需求对Kafka的数据主题和分片数量进行设置,通过Kafka的数据生产接口,可以实现实时将数据传送给Kafka集群进行处理,其中数据生产接口为Kafka的Producer接口。Flume-Ng将数据传输给Kafka集群,Kafka Producer将收集到的Flume-ng Agent的日志数据进行实时分发。
[0087]日志数据实时采集进入Kafka集群后,Kafka broker对数据进行了分片和备份。Kafka集群数据分别分发给Hadoop集群和Storm集群。Hadoop集群保存历史数据,利用MapReduce分布式并行计算的方式批量的清洗、转换、提取特征向量,再利用频繁项挖掘的方式获取威胁的行为特征,从而发现新的规则,不断更新完善规则知识库。
[0088] (3)日志数据的实时分析处理
[0089] 本实施例中,日志数据的实时计算优先采用Storm集群,Storm是一种分布式、高可靠、低延时、易扩展的实时计算平台。每接收到一条数据,Storm集群能做到实时的响应,进行日志数据的清洗、加工和整合,特征值提取,生成检测向量,利用规则知识库中的规则进行实时匹配,从实时的日志数据中发现网站中的威胁。规则匹配采用正则表达式的方式。Storm集群采用Spout-Bolts程序编写形式,或者Storm Trident程序完成相应的处理与计算。将实时计算的结果保存在内存数据库中,优先选用Redis,便于后续的实时查询与展不O
[0090] (4)实时监测与控制
[0091] 具体来说,数据的实时监测与控制用于将数据实时计算的结果反馈与展示,数据实时监测采用Web浏览器的方式展示或者手机APP的方式,重要信息提供短信、邮件的方式推送到系统或相关网站管理员。实时控制,对于一些威胁情况采取事先设定的规则,机器直接自动执行,如直接暂停网站服务等。还有些威胁状况需要人工干预处理以最终判定。
[0092] 本实施例中,分布式可靠协调系统优先选用Zookeeper,其中Zookeeper是一种针对大型分布式系统的可靠协调系统,主要提供配置维护、名字服务、分布式同步等服务。Kafka集群、Storm集群都需要Zookeeper来维护。
[0093] 如图5所示,为本发明一实施例提供的基于实时日志的网站威胁检测系统的结构示意图,该系统包括日志数据实时采集单元501、日志数据实时转换与分发单元502、日志数据实时处理与检测单元503及日志数据实时监控单元504。
[0094] 其中,日志数据实时采集单元501,用于实时采集监控网站日志服务器上的日志数据。
[0095]日志数据实时转换与分发单元502,用于对日志数据进行转换与实时分发。
[0096] 日志数据实时处理与检测单元503,用于对日志数据进行实时处理与检测。
[0097]日志数据实时监控单元504,用于对所述网站威胁检测结果进行展示,并根据所述检测结果的严重程度进行预警。
[0098] 本实施例中,日志数据实时采集单元501,具体用于:
[0099] (I)实时监控网站日志服务器上的日志文件,当检测到日志文件发生变化时,对变化的数据进行增量采集。
[0100] (2)将采集到的数据进行整合,添加网站名称及日志名称。
[0101] (3)通过数据传输接口,将数据发送给数据实时分发单元。
[0102] 本实施例中,如图6所示,日志数据实时转换与分发单元502,包括数据实时传输模块601及数据备份模块602。
[0103] 其中,数据实时传输模块601,用于将采集到的日志数据转换为消息队列,并对所述消息队列中的数据进行分发。
[0104] 数据备份模块602,用于将实时采集的日志数据备份到本地的文件系统,支持对日志数据的定期清理。
[0105] 本实施例中,如图7所示,日志数据实时处理与检测单元503,包括日志数据实时加工模块701、网站威胁实时匹配模块702、实时计算结果存储模块703、规则库维护模块704及历史数据学习模块705。
[0106] 其中,日志数据实时加工模块701,用于对日志数据进行实时清洗、加工,及特征值提取,获取规则匹配所需的关键信息项。
[0107] 网站威胁实时匹配模块702,用于利用网站威胁规则知识库中所包括的规则,实时对日志数据的关键信息项进行匹配。
[0108] 实时计算结果存储模块703,用于将实时匹配计算的结果保存在内存数据库中。
[0109] 规则库维护模块704,用于支持对规则的增加、删除、修改及查询的操作。
[0110] 历史数据学习模块705,用于利用数据挖掘的频繁挖掘算法对历史数据进行分析,获取用户的行为特征,得到新的网站威胁规则。
[0111] 本实施例中,如图8所示,日志数据实时监控单元504,包括数据结果实时展示模块801及实时预警模块802。
[0112] 其中,数据结果实时展示模块801,用于实时查询、显示威胁检测计算得到的关键指标数据。
[0113] 实时预警模块802,用于对出现的威胁根据严重程度进行实时预警;根据网站威胁检测结果,若判定为攻击行为,则根据预设的规则采取强制措施;若需要人工干预,则将所述网站威胁检测结果通过短信或邮件的方式推送给系统或管理员。
[0114] 以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解;其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。