知方号

知方号

一种Redis的安全审计方法、终端以及存储介质与流程

一种Redis的安全审计方法、终端以及存储介质与流程

一种redis的安全审计方法、终端以及存储介质技术领域1.本发明涉及计算机技术领域,特别涉及一种redis的安全审计方法、终端以及存储介质。

背景技术:

2.在当前的行业发展中,数据库审计系统普遍是针对oracle、mysql及sqlserver等关系型数据库的审计系统,只能审计采用标准sql协议的数据库,同时审计的也是针对标准的sql语句,而对非关系型数据库,如redis等,则没有审计能力。

技术实现要素:

3.本发明所要解决的技术问题是:提供一种redis的安全审计方法、终端以及存储介质,能够有效对redis的安全状况进行审计,及时发现风险并进行告警。4.为了解决上述技术问题,本发明采用的技术方案为:5.一种redis的安全审计方法,包括步骤:6.s1、运行redis-rdb-tools按照预设频率,对redis的rdb文件进行解析,生成统计报告,并将所述统计报告上报至elaticsearch;7.s2、运行wireshark抓取并过滤得到redis的读写数据包,将所述读写数据包上传至elaticsearch;8.s3、运行kibana对所述统计报告和所述读写数据包进行分析,得到redis的内存占用信息和读写流量信息;9.s4、根据所述内存占用信息以及所述读写流量信息进行风险识别和告警。10.为了解决上述技术问题,本发明采用的另一技术方案为:11.一种redis的安全审计终端,包括处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现以上一种redis的安全审计方法中的步骤。12.为了解决上述技术问题,本发明采用的另一技术方案为:13.一种存储介质,其上存储有计算机程序,所述计算机程序被执行时实现以上一种redis的安全审计方法中的步骤。14.本发明的有益效果在于:本发明通过redis-rdb-tools对redis的rdb文件进行解析,生成统计报告,通过wireshark来抓取redis的读写数据包,且均上传至elaticsearch,通过kibana对elaticsearch中的数据进行分析,从而能够得到redis的内存占用信息和读写流量信息,并进而能够从内存占用和读写流量两个角度来判断是否存在风险需要进行告警。附图说明15.图1为本发明实施例的一种redis的安全审计方法的流程图;16.图2为本发明实施例的一种redis的安全审计终端的结构图;17.图3为本发明实施例的一种redis的安全审计方法的部分功能实现示意图;18.标号说明:19.1、一种redis的安全审计终端;2、处理器;3、存储器。具体实施方式20.为详细说明本发明的技术内容、所实现目的及效果,以下结合实施方式并配合附图予以说明。21.请参照图1以及图2,一种redis的安全审计方法,包括步骤:22.s1、运行redis-rdb-tools按照预设频率,对redis的rdb文件进行解析,生成统计报告,并将所述统计报告上报至elaticsearch;23.s2、运行wireshark抓取并过滤得到redis的读写数据包,将所述读写数据包上传至elaticsearch;24.s3、运行kibana对所述统计报告和所述读写数据包进行分析,得到redis的内存占用信息和读写流量信息;25.s4、根据所述内存占用信息以及所述读写流量信息进行风险识别和告警。26.从上述描述可知,本发明的有益效果在于:本发明通过redis-rdb-tools对redis的rdb文件进行解析,生成统计报告,通过wireshark来抓取redis的读写数据包,且均上传至elaticsearch,通过kibana对elaticsearch中的数据进行分析,从而能够得到redis的内存占用信息和读写流量信息,并进而能够从内存占用和读写流量两个角度来判断是否存在风险需要进行告警。27.进一步的,所述步骤s4具体为:28.根据历史的所述内存占用信息以及所述读写流量信息,对当前的内存占用情况和读写流量进行预测,根据预测结果进行风险识别和告警。29.由上述描述可知,通过对内存占用信息和读写流量进行预测,从而根据预测结果进行风险识别和告警,结合发展轨迹来进行动态判断,有效提高风险识别的准确度。30.进一步地,所述内存占用信息具体为redis中每个key的内存占用信息;31.步骤s4中对内存占用情况进行预测具体为:32.根据预设天数内的历史的所述内存占用信息,通过移动平均算法计算每个key当前的内存占用预测值;33.根据预测结果进行风险识别和告警包括步骤:34.根据每个key当前的内存占用预测值和实际的内存占用信息,判断是否存在风险需要进行告警。35.由上述描述可知,在进行内存的风险识别时,我们通过移动平均算法计算redis中每个key对应的内存占用信息,移动平均算法能够在服务发展平稳的阶段,较准确地进行数值预测,保证正常发展下得到的实际值和预测值不会出现较大的偏差,通过结合每个key当前的实际内存占用信息进行分析,从而能够准确判断每个key对应的内存占用是否存在异常,在存在异常时能够更精确地定位到异常的key,实现更有效的风险识别和告警。36.进一步地,根据每个key当前的内存占用预测值和实际的内存占用信息,判断是否存在风险需要进行告警具体为:37.判断每个key当前的内存占用预测值和实际的内存占用信息的差值是否大于预设的第一偏差阈值,若是则判断为风险,发出告警。38.由上述描述可知,通过对预测值和实际值的偏差设置阈值,来判断每个key对应的内存占用是否存在异常,阈值的设置可避免识别过敏,并可在偏差较大时即使识别异常风险。39.进一步地,步骤s4中对读写流量进行预测具体为:40.根据预设时长内的历史的读写流量信息,通过移动平均算法计算当前的读写流量预测值;41.根据预测结果进行风险识别和告警包括步骤:42.根据当前的所述读写流量预测值和实际的所述读写流量信息,判断是否存在风险需要进行告警。43.由上述描述可知,在进行读写流量的风险识别时,通过移动平均算法来进行当前读写流量的预测,在服务发展平稳的阶段,移动平均算法能够较准确地进行数值预测,保证正常发展下得到的实际值和预测值不会出现较大的偏差,通过预测值和实际值进行分析,从而有效识别服务在读写流量上是否存在异常风险。44.进一步地,根据当前的读写流量预测值和实际的读写流量信息,判断是否存在风险需要进行告警具体为:45.判断当前的所述读写流量预测值和实际的所述读写流量信息的差值是否查过预设的第二偏差阈值,若是则判断为风险,发出告警。46.由上述描述可知,通过对预测值和实际值的偏差设置阈值,来判断读写流量是否存在异常,阈值的设置可避免识别过敏,并可在偏差较大时即使识别异常风险。47.进一步地,还包括步骤:48.s5、监测到存在风险并触发告警后,向redis进行慢日志获取,并生成慢日志记录。49.由上述描述可知,在监测到存在风险并触发告警后,向redis进行慢日志获取,并生成记录,用于辅助开发/运维人员发现问题。50.进一步地,所述向redis进行慢日志获取,并生成慢日志记录具体为:51.向redis获取执行时长超过时长阈值的操作日志,并根据最大存储条数生成慢日志记录。52.由上述描述可知,慢日志具体指执行时长超过预设的时长阈值的操作的操作日志,通过慢日志的获取能够有效筛选出可能存在异常的操作行为,以辅助开发/运维人员发现问题,且为了避免无限量获取历史数据,设定了最大存储条数。53.请参照图2,一种redis的安全审计终端,包括处理器、存储器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,实现以上一种redis的安全审计方法中的步骤。54.从上述描述可知,本发明的有益效果在于:本发明通过redis-rdb-tools对redis的rdb文件进行解析,生成统计报告,通过wireshark来抓取redis的读写数据包,且均上传至elaticsearch,通过kibana对elaticsearch中的数据进行分析,从而能够得到redis的内存占用信息和读写流量信息,并进而能够从内存占用和读写流量两个角度来判断是否存在风险需要进行告警。55.一种存储介质,其上存储有计算机程序,所述计算机程序被执行时实现以上一种redis的安全审计方法中的步骤。56.从上述描述可知,本发明的有益效果在于:本发明通过redis-rdb-tools对redis的rdb文件进行解析,生成统计报告,通过wireshark来抓取redis的读写数据包,且均上传至elaticsearch,通过kibana对elaticsearch中的数据进行分析,从而能够得到redis的内存占用信息和读写流量信息,并进而能够从内存占用和读写流量两个角度来判断是否存在风险需要进行告警。57.本发明的一种redis的安全审计方法、终端以及存储介质,适用于服务存在redis的使用,并需要对其进行安全审计的场景。58.请参照图1和图3,本发明的实施例一为:59.一种redis的安全审计方法,包括步骤:60.s1、运行redis-rdb-tools按照预设频率,对redis的rdb文件进行解析,生成统计报告,并将所述统计报告上报至elaticsearch。61.本实施例中,使用开源的redis-rdb-tools(一种redis内存分析工具),每个小时解析redis的rdb文件,生成一份csv文件格式的统计报告,再通过自研的.net core统计上报工具,将统计报告处理后上报到elaticsearch(在apache lucene上构建的分布式搜索和分析引擎,能够自动存储原始文档,并在集群的索引中添加该文档的可搜索引用)。62.s2、运行wireshark抓取并过滤得到redis的读写数据包,将所述读写数据包上传至elaticsearch。63.本实施例中,在服务器上执行shell脚本,使用wireshark(前称ethereal,是一个网络封包分析软件)抓取并过滤redis的读写数据包,再将数据包上报至elasticsearch。64.s3、运行kibana对所述统计报告和所述读写数据包进行分析,得到redis的内存占用信息和读写流量信息。65.本实施例中,在统计报告和读写数据包上传至elasticsearch后,通过kibana(一种数据可视化和挖掘工具)进行分析得到内存占用信息和读写流量信息,并通过创建图表,可直观查看redis中每个key的内存分布情况,以及redis的读写流量情况,并可统计到读写操作的来源ip和端口。66.s4、根据所述内存占用信息以及所述读写流量信息进行风险识别和告警;67.所述步骤s4具体为:68.根据历史的所述内存占用信息以及所述读写流量信息,对当前的内存占用情况和读写流量进行预测,根据预测结果进行风险识别和告警。69.本实施例中,根据历史的内存占用信息和读写流量信息来对当前的内存占用情况和读写流量进行预测。本实施例中,通过绘制内存占用信息的发展折线图以及读写流量的发展折线图,通过计算预设时间内发展折线图的平均斜率,来作为当前内存占用和读写流量信息的折线图的预测斜率,并根据预测斜率以及上一时间点(本实施例中为上一小时,在其他等同实施例中,可根据检测频率的不同设计对应确认)的实际值,来计算当前的内存占用信息的预测值和读写流量的预测值。本实施例中,通过预测值与实际值进行比较,并根据二者的偏差是否超过20%来判断是否存在风险,在其他等同实施例中,也可直接通过斜率的比较,根据预测斜率和实际斜率的偏差来判断是否存在风险,适用于服务的任意发展阶段,例如服务的使用量在稳步上涨或逐渐下跌的情况。70.本发明的实施例二为:71.一种redis的安全审计方法,与实施例一的区别在于,所述内存占用信息具体为redis中每个key的内存占用信息;72.步骤s4中对内存占用情况进行预测具体为:73.根据预设天数内的历史的所述内存占用信息,通过移动平均算法计算每个key当前的内存占用预测值;74.根据预测结果进行风险识别和告警包括步骤:75.根据每个key当前的内存占用预测值和实际的内存占用信息,判断是否存在风险需要进行告警;76.根据每个key当前的内存占用预测值和实际的内存占用信息,判断是否存在风险需要进行告警具体为:77.判断每个key当前的内存占用预测值和实际的内存占用信息的差值是否大于预设的第一偏差阈值,若是则判断为风险,发出告警。78.即本实施例中,对于内存占用的分析具体到对redis中每个key对应的内存占用进行分析,从而在识别到内存占用可能存在风险时,能够快速定位风险的源头。79.步骤s4中对读写流量进行预测具体为:80.根据预设时长内的历史的读写流量信息,通过移动平均算法计算当前的读写流量预测值;81.根据预测结果进行风险识别和告警包括步骤:82.根据当前的所述读写流量预测值和实际的所述读写流量信息,判断是否存在风险需要进行告警;83.根据当前的读写流量预测值和实际的读写流量信息,判断是否存在风险需要进行告警具体为:84.判断当前的所述读写流量预测值和实际的所述读写流量信息的差值是否查过预设的第二偏差阈值,若是则判断为风险,发出告警。85.同时,可选的,在本实施例中,为了针对当前服务的发展已经趋于平稳,内存占用和读写流量的增减已较为平缓,不易出现起伏的情况进行更准确的分析,或为了减少计算资源,采用移动平均算法来进行内存占用信息和读写流量的预测值计算。86.移动平均算法的核心是得到移动平均数=周期内所有数据总和/数据个数。如针对某个key的内存,近一周每日的内存占用为c1、c2、c3、c4、c5、c6、c7,那么得出当日的预估值ma=(c1+c2+c3+c4+c5+c6+c7)/7。在本实施例中,每个数据项会细化到每小时,周期是一个月内。87.本实施例中,采用偏差阈值比较的方式来判断是否存在风险。通过比较统计得到的当前的每个key实际的内存占用和内存占用的预测值,并判断偏差是否超过预设的偏差阈值(本实施例中为20%,在其他等同实施例中可根据需求调整,如3%、5%或其他任意数值),若超过预设阈值则存在风险。同理,对读写流量进行实际值与预测值的比较和偏差阈值判断,进而判断是否存在风险。88.在其他等同实施例中,也可通过实施例一的方法,对redis中每个key的内存情况绘制折线图,并通过斜率或根据斜率计算预测值,并与实际值进行比较的方式,来判断各个key对应的内存情况是否存在风险。89.同时,可以根据需求,对内存占用和读写流量采用不同的风险识别方式。或可先生成redis预设时间内的历史的读写流量的发展折线图和每个key对应的内存占用的发展折线图,根据发展折线图中各段折线的斜率平均值是否超过预设的斜率阈值,来分别选择风险识别方式。例如redis上一个key的内存发展折线图的平均斜率为1,另一key的内存发展折线图的平均斜率为0,则平均斜率为1的可选择采用实施例一的风险识别方式,斜率为0的可选择实施例二的风险识别方式。90.本发明的实施例三为:91.一种redis的安全审计方法,与实施例一或二的区别在于,还包括步骤:92.s5、监测到存在风险并触发告警后,向redis进行慢日志获取,并生成慢日志记录;93.所述向redis进行慢日志获取,并生成慢日志记录具体为:94.向redis获取执行时长超过时长阈值的操作日志,并根据最大存储条数生成慢日志记录。95.本实施例中,redis慢查询日志是一个记录超过指定执行时间的查询的系统,可以设置的参数有预设的时长阈值(超过这个时长阈值就会记录),还可以设置最大存储条数。当上述两个监控系统(redis内存占用和读写流量的监控)触发告警时,可结合redis慢查询日志进行问题排查。在识别到存在风险后,向redis进行了慢日志获取,获取执行时长超过时长阈值的操作日志(包括超时日志),生成记录,以提供开发人员或运维人员进行分析。96.本发明的实施例四为:97.一种redis的安全审计方法,与实施例三的区别在于,还包括风险类型预识别。98.本实施例中,在识别到风险后,若为读写流量存在异常风险,则对统计到的读写行为的来源ip进行筛查,判断来源ip是否集中,即是否存在来自某个来源ip的操作请求数占所有请求数的百分比超过预设的操作数百分比阈值,或是否存在预设个数内的相同网络号下的ip地址的操作请求数的总和超过预设的操作数百分比阈值,若是则识别为存在异常攻击行为。可选的,操作数百分比阈值在计算有内存使用情况的预测值的情况下,可以为预测值与实际值的差值占预测值的百分比减去偏差阈值得到的值,如实际值超出预测值40%,偏差阈值为3%,则操作数百分比阈值为40%-3%=37%。99.若为redis中key的内存占用存在异常,则识别为程序异常。100.请参照图2,本发明的实施例五为:101.一种redis的安全审计终端1,包括处理器2、存储器3以及存储在所述存储器3中并可在所述处理器2上运行的计算机程序,所述处理器2执行所述计算机程序时,实现以上实施例一至四中的任意一种redis的安全审计方法的步骤。102.本发明的实施例六为:103.一种存储介质,其上存储有计算机程序,所述计算机程序被执行时实现以上实施例一至四中的任意一种redis的安全审计方法的步骤。104.综上所述,本发明提供的一种redis的安全审计方法、终端以及存储介质,通过redis-rdb-tools对redis的rdb文件进行解析,生成统计报告,通过wireshark来抓取redis的读写数据包,且均上传至elaticsearch,通过kibana对elaticsearch中的数据进行分析,从而能够得到redis的内存占用信息和读写流量信息,并进而能够从内存占用和读写流量两个角度来判断是否存在风险需要进行告警。同时,能够初步识别出风险的可能类别,并能够获取慢日志生成慢日志记录,能够有有效辅助相关工作人员进行风险处理。105.以上所述仅为本发明的实施例,并非因此限制本发明的专利范围,凡是利用本发明说明书及附图内容所作的等同变换,或直接或间接运用在相关的技术领域,均同理包括在本发明的专利保护范围内。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至lizi9903@foxmail.com举报,一经查实,本站将立刻删除。