源代码泄露监控方法及相关设备与流程

文档序号:17985775发布日期:2019-06-22 00:24阅读:494来源:国知局
源代码泄露监控方法及相关设备与流程

本申请涉及网络安全应用领域,具体涉及一种源代码泄露监控方法及相关设备。



背景技术:

如今,源代码泄露已引起越来越多网站开发人员重视,以svn(subversion)/git源代码泄露为例,在网站开发人员使用该svn/git源代码版本管理软件时,因配置不当产生漏洞,导致黑客利用该漏洞拖取网站的源代码,造成网站的技术知识资产损失,且黑客还可能会通过分析源代码,进一步危害到网站服务器及用户数据安全。

对于这种情况,现有技术通常是在源代码被拖取后,接收到日志审计系统告警,由人工根据网站开发人员使用的代码版本控制软件类型,对访问日志记录的访问请求特征进行分析,确定造成源代码泄露的原因及影响范围,具有严重的滞后性,无法避免网站源代码的泄露,也就无法保证网站服务器及用户数据安全。



技术实现要素:

有鉴于此,本申请实施例提供一种源代码泄露监测方法及相关设备,解决了现有技术只能在源代码泄露后,人工分析泄露情况,具有严重滞后性,无法保证网站服务器及用户数据安全的技术问题。

为解决上述问题,本申请实施例提供如下技术方案:

本申请实施例提供了一种源代码泄露监控方法,所述方法包括:

获取向网站服务器发起的访问请求;

检测所述访问请求是否包含源代码泄露特征,所述源代码泄露特征基于所述网站服务器所使用的源代码版本控制系统确定;

利用检测结果,确定所述访问请求为恶意请求,输出提示信息,所述提示信息用于指示阻拦所述网站服务器响应所述恶意请求。

本申请实施例还提供了一种源代码泄露监控装置,所述装置包括:

请求获取模块,用于获取向网站服务器发起的访问请求;

特征检测模块,用于检测所述访问请求是否包含源代码泄露特征,所述源代码泄露特征基于所述网站服务器所使用的源代码版本控制系统确定;

提示模块,用于利用检测结果,确定所述访问请求为恶意请求,输出提示信息,所述提示信息用于指示阻拦所述网站服务器响应所述恶意请求。

本申请实施例还提供了一种存储介质,其上存储有程序,所述程序被处理器执行,实现如上所述的源代码泄露监控方法的各步骤。

本申请实施例还提供了一种源代码泄露监控设备,所述设备包括:

通信接口;

存储器,用于存储实现如上所述的源代码泄露监控方法的程序;

处理器,用于加载并执行所述存储器存储的程序,实现如上所述的源代码泄露监控方法的各步骤。

基于上述技术方案,本申请提供了一种源代码泄露监控方法及相关设备,通过获取向网站服务器发起的访问请求,并检测该访问请求是否包含源代码泄露特征,进而利用检测结果,准确且及时发现访问请求中的恶意请求,及时输出提示信息,来提示网站管理员阻拦网站服务器响应该恶意请求,可见,本实施例能够及时阻断非法用户获取网站服务器的整个源代码,而不是在非法用户获取源代码,并据此实现上传非法文件等操作后,才能够发现源代码泄露,提高了网站服务器及用户数据的安全性。

附图说明

为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。

图1示出了本申请实施例提供的一种源代码泄露监控系统的结构示意图;

图2示出了本申请实施例提供的一种源代码泄露监控方法的流程示意图;

图3示出了本申请实施例提供的一种源代码泄露监控方法的信令流程图;

图4示出了本申请实施例提供的另一种源代码泄露监控方法的流程示意图;

图5示出了本申请实施例提供的一种监控服务器的场景结构示意图;

图6示出了本申请实施例提供的一种源代码泄露监控装置的结构示意图;

图7示出了本申请实施例提供的另一种源代码泄露监控装置的结构示意图;

图8示出了本申请实施例提供的又一种源代码泄露监控装置的结构示意图;

图9示出了本申请实施例提供的一种源代码泄露监控设备的硬件结构示意图。

具体实施方式

本申请的发明人发现:svn(subversion)这种开放的源代码版本控制软件,用于多人共同开发同一项目,多人共用资源,且网站开发人员在使用svn管理本地代码过程中,会自动生成一个名为.svn的隐藏文件,其中包含了重要的源代码信息。但一些网站管理人员在发布代码时,不愿意使用“导出”功能,而是直接将整个代码文件夹复制到网站服务器上,使得.svn隐藏文件夹被暴露于外网环境,黑客利用这个目录存储的文件结构信息,将会逐步摸清站点结构,并通过.svn-base结尾的源代码副本文件获取整站源代码。

而对于git这个用于协同开发管理网站源代码的分布式版本控制系统,网站开发人员在使用git版本控制系统时,会自动生成一个.git的隐藏文件夹,这个文件夹保存有这个仓库的所有版本等一系列信息,当网站管理员从托管网站pull代码时,也会将.git文件夹下载到网站服务器的web目录下,导致.git文件夹被暴露于外网环境,黑客利用这个目录存储的版本控制信息,完全恢复网站的源代码和目标结构。

基于上文分析,发明人希望能够实现对源代码泄露的实时感知,以便及时采取相应的维护措施,及时止损,降低源代码泄露对网站服务器及用户数据完全的威胁。为了实现该发明目的,结合上文对svn和git源代码版本控制软件的应用分析,发明人提出监测网站运行过程中,通过验证用户向网站服务器发起的访问请求是否包含源代码泄露特征,即表示发生源代码泄露,所具有的特征,进而基于验证结果,确定该访问请求是否为恶意请求,之后,在确定为恶意请求的情况下,还可以输出提示信息,通知维护人员及时进行阻拦网站管理服务器对该恶意请求的响应,以便及时阻止黑客的攻击行为,提高网站服务器及用户数据的安全性。

下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。

参照图1,为实现本申请提供的源代码泄露监测方法的一种系统结构示意图,该系统可以包括终端11、网站服务器12、交换机13及监控服务器14,其中:

终端11可以是用户访问网站服务器12所使用的电子设备,如手机、笔记本电脑、ipad、工控机等电子设备,用户可以通过终端11中的应用程序,登录网站时将会访问访问网站服务器12,该应用程序可以是网站的专用客户端,也可以是浏览器客户端,用户可以通过输入网站网址的方式,来访问网站。

网站服务器12可以是提供网站功能的服务设备,其可以是一个独立的应用服务器,也可以是由多个服务器构成的服务器集群,本申请对该网站服务器12的组成结构不做限定。

交换机13是一种在通信系统中完成信息交换功能的设备,可以为接入交换机的任意两个网络节点提供独享的电信号通路,实现的功能可以有物理编址、网络拓扑结构、错误校验、帧序列及流控,还有对虚拟网络的支持、对链路汇聚的支持等等。常见的交换机有以太网交换机、光纤交换机等。

在本申请中,交换机13具体可以是机房的核心交换机,即放在核心层(网络主干部分)的交换机,本申请在此对核心交换机的工作原理及其组成结构不做详述。本实施例中,该交换机13可以用来实现网站服务器与任一终端之间的通信,具体的,用户使用终端登录网站过程中,终端发起的网站访问请求,通常经过交换机13,再转发至相应网站的网站服务器。

可选的,对于用户向网站服务器发起的访问请求,可以通过流量镜像方式获得,因此,本申请交换机13可以是具有镜像端口的网络交换机,该镜像端口可以连接监控服务器14,具体可以对交换机13的通讯端口进行流量镜像,得到交换机13通过通讯端口转发的访问流量,再将该访问流量发送至监控服务器14,以便通过对该访问流量进行分析,判断用户发起的请求是否存在恶意请求,即导致源代码泄露的行为请求。本申请对交换机13的组成结构及其工作过程不做详述。

监控服务器14可以是实现源代码泄露监控方法的服务设备,在本申请中,在交换机13的旁路部署了该监控服务器,实现对用户发起的访问请求的实时分析,以便及时发现源代码拖取行为,并及时止损,降低黑客攻击对网站服务器和用户数据安全造成的威胁。关于监控服务器14的组成结构及其工作过程,可以参照下文相应实施例的描述。

结合上图1所示的系统结构示意图,参照图2,为本申请实施例提供了一种源代码泄露监控方法的流程示意图,本实施提供的方法可以由监控服务器执行,如图2所示,该方法可以包括但并不局限于以下步骤:

步骤s11,获取向网站服务器发起的访问请求;

在实际应用中,用户需要访问网站时,通常是利用所在网络的交换机,将终端向网站服务器发起的访问请求,转发至网站服务器。所以说,交换机作为计算机网络中的重要节点设备,是网络链接的重要枢纽,具有报文(封包)转发功能,即访问请求的转发功能,本申请对交换机实现访问请求转发的具体过程不做详述。

可选的,本申请可以采用镜像访问流量的方式,对用户发起的访问请求进行流量镜像,通过对得到的流量数据进行分析,得到所有用户向网络服务器发起的访问请求。需要说明,步骤s11的实现方法并不局限于本文描述的方式。

另外,本实施例获取的访问请求可以包括:请求协议、头字段信息、cookie(用于辨别用户身份的数据),user-agent(用户代理,ua,可以是浏览器),body,和/或其他字段信息,可以基于不同网站的具体请求内容确定,本申请对该访问请求包含的内容不作限定。

步骤s12,检测该访问请求是否包含源代码泄露特征;

结合上文对源代码的相关描述,在网站服务器使用不同的源代码版本控制系统的情况下,所产生的可能作为黑客攻击突破点的源代码文件往往会不同,判断该情况下是否发生源代码泄露的方式也会所有区别,本申请可以提前经过试验或分析,获取不同源代码版本控制系统所对应的源代码泄露特征,该源代码泄露特征可以是表明发生了源代码泄露的特征,可以将其预先存储到监控服务器或其他数据库中。

这样,在获得用户向网站服务器发起的访问请求后,可以读取与该网站服务器所使用的源代码版本控制系统所对应的源代码泄露特征,再分析该访问请求是否与该源代码泄露特征相匹配,以便据此判断是否存在恶意请求,导致源代码泄露。

本申请以svn和git这两种源代码版本控制系统为例,来说明上述源代码泄露特征的内容,但并不局限于本文描述的内容,且网站服务器所使用的源代码版本控制系统,也并不局限于svn和git两种。其中,对于svn这种源代码版本控制系统,在使用过程中,不同版本svn黑客攻击的.svn文件可能会不同。

如,对于不高于1.6版本的svn源代码版本控制系统,在使用过程中,生成的svn目录中会包含一个以.svn-base结尾的源代码文件副本,一般网站服务器并不会解析该源代码文件副本,而是直接下载该源代码文件副本,且由于svn目录中存在可访问的entries文件,记录了代码目录所有的文件和目录结构,导致黑客很容易通过访问entries文件,追踪版本信息,得到这个源代码文件副本,获取整个源代码文件,造成代码泄露。

对于高于1.6版本的svn源代码版本控制系统,相对于低版本的svn源代码版本控制系统,引入了wc.db数据库文件,使得黑客能够通过访问网站服务器,获取wc.db数据库文件,并对其进行解析,得到.svn-base结尾的源代码文件副本的位置,下载该源代码文件副本,进而得到源代码文件。

由此可见,对于高于1.6版本的svn源代码版本控制系统,是否获取wc.db数据库文件,是判断是否有黑客攻击,造成源代码泄露的关键;对于不高于1.6版本的svn源代码版本控制系统,是否获取.svn-base源代码文件副本,是判断是否有黑客攻击,造成源代码泄露的关键。所以,本申请可以将wc.db数据库文件,作为高于1.6版本的svn源代码版本控制系统对应的源代码泄露特征,并将.svn-base源代码文件副本(可以将其记为预定源代码文件副本),作为不高于1.6版本的svn源代码版本控制系统对应的源代码泄露特征。

而对于网站服务器使用的git源代码版本控制系统,结合上文分析,黑客通常是利用git目录的索引文件及其哈希值,在objects目录下,获取相应文件,下载路径可以为domain/.git/objects/”xx”/”checksum”,此时得到的文件可能是压缩文件,黑客直接对其进行解压缩,即可得到整个源代码文件。因此,本申请可以将索引文件作为git源代码版本控制系统对应的源代码泄露特征。

综上,对于其他类型或其他版本的源代码版本控制系统对应的源代码泄露特征,可以参照上述源代码泄露特征的获取方法,分析黑客可能会利用网站服务器中存在的什么漏洞,来拖取源代码文件,并由此确定出黑客与合法用户访问网站服务器发起的访问请求,所请求的内容区别,进而确定出相应的源代码漏洞特征,据此作为判断用户发起的访问请求是否为恶意请求,实现过程类似,对于其他类型或其他版本的源代码版本控制系统,所对应的源代码泄露特征的获取过程,本申请不再一一详述。

此外,对于用户希望从网站服务器获取的数据,通常会在其向网站服务器发起的访问请求中体现,以使得网站服务器能够解析访问请求,得到用户所需的数据。因此,对于非法用户要从网站服务器获取的源代码文件,通常也需要向网站服务器发起相应的访问请求,来获取源代码泄露特征的内容,进而据此获取整个源代码文件。但对于普通合法用户来说,往往并不需要获取整个源代码文件,所以,合法用户与非法用户发起的访问请求的内容会存在差异,本申请可以利用这种差异,来识别恶意请求。

其中,对于访问请求的内容,通常会体现在访问请求包含的各字段信息中,因此,本申请可以通过对获取的访问请求的各字段信息进行分析,来检测该访问请求是否包含源代码泄露特征。

需要说明,对于使用不同类型或不同版本的源代码版本控制系统的网站服务器,其对应的源代码泄露特征可能不同,上述步骤s12的源代码泄露特征可以基于接收该访问请求的网站服务器所使用的源代码版本控制系统确定,获取过程可以采用但并不局限于上文列举的几种方式,且源代码泄露特征的内容也并不局限于上文列举的内容。

步骤s13,利用检测结果,确定该访问请求为恶意请求,输出提示信息,该提示信息用于指示阻拦网站服务器响应该恶意请求。

继上文描述,对于本实施例步骤s12得到的检测结果,能够直接表明当前向网站服务器发起的访问请求是否包含源代码泄露特征,如果该访问请求未包含源代码泄露特征,可以认为该访问请求为合法请求,监控服务器可以不用进行任何处理,网站服务器会按照常规方式,响应该访问请求,并将得到的响应数据反馈至发起该访问请求的客户端。

如果该访问请求包含源代码泄露特征,说明该访问请求可能为恶意请求,为了保证对恶意请求的及时阻拦,本申请可以直接输出提示信息,来通知网站管理员对该恶意请求进行处理。

在实际应用中,可能会出现合法用户发起的某次访问请求包含源代码泄露特征的情况下,若仅在确定某次访问请求包含了源代码泄露特征,就确定该访问请求为恶意请求,很可能会出现误判,导致网站服务器阻拦合法用户发起的该访问请求,不会向该合法用户的客户端反馈响应数据,影响合法用户对网站的访问。

为了避免这种情况的发生,本申请可以进一步限定同一用户连续发起的多次访问请求,是否都包含同一源代码泄露特征,也就是说,判断该用户是否试图遍历特征,以获取整个源代码文件,如果是,再将该用户发起的访问请求确定为恶意请求,输出提示信息,来指示网站服务器停止对该访问请求的响应,避免网站服务器出现源代码漏洞的情况下,非法用户利用该源代码漏洞拖取源代码文件,威胁网站服务器及用户数据的安全。具体实现过程可以参照下文相应实施例的描述,本实施例在此不做详述。

需要说明,关于步骤s13中如何利用检测结果,确定访问请求是否为恶意请求的实现方法,并不局限于上文列举的两种实现方式,可以结合非法用户(即黑客)利用源代码漏洞,所采用的具体拖取源代码行为实现,所以,在出现新的拖取源代码行为的情况下,可以由此生成相应的监控策略,并按照该监控策略,识别用户发起的访问请求是否为恶意请求,即步骤s13的具体实现方法是可以根据实际情况进行动态调整的。

其中,监控服务器可以设置相应的告警系统,来输出提示信息,该提示信息可以包括确定为恶意请求的访问请求的标识,如字段信息等,还可以包含监控服务器对该访问请求的检测结果,即该访问请求为恶意请求,或存在拖取源代码行为等,以使得网站服务器能够及时且准确识别出该恶意请求,并对其采用相应的措施,阻拦该恶意请求,避免源代码文件继续被拖取。

可选的,上述提示信息可以由监控服务器直接发送至网站服务器,并在网站服务器的管理平台输出,以使得网站管理员及时接收到该提示信息,拦截恶意请求,达到及时止损的目的,本申请对该提示信息的具体输出方式不妥限定。或者,网站服务器接收到该提示信息后,可以对其内容进行分析,来触发相应的阻拦程序,对该恶意请求进行拦截,避免网站服务器继续响应该恶意请求,其中,阻拦程序可以是强制停止响应某访问请求的程序代码,本申请对其具体代码内容不做限定。

当然,监控服务器也可以将生成的提示信息,直接发送至相应网站管理员随身携带的电子设备,来通知网站管理员及时对恶意请求进行处理等等,本申请对提示信息的内容、输出方式,以及如何基于该提示信息,阻拦网站服务器继续响应恶意请求的方法不做限定。

可选的,本申请在确定出现恶意请求的情况下,在输出提示信息的同时,还可以对该恶意请求包含的各字段信息进行存储,以供网站管理员调取字段信息,修复源代码漏洞等。具体可以采用数据仓库,实现对恶意请求的相关请求数据的存储,该请求数据并不局限于恶意请求的字段信息。

其中,关于对源代码漏洞的修复方法,本申请不作限定,可以直接删除网站服务器中相应的隐藏文件,如.svn文件等,避免后续恶意用户继续利用源代码漏洞,拖取源代码文件。

在实际应用中,还可以设置版本发布、升级和修复的约束要求,如禁止直接将源代码文件复制到网站服务器中,而是采用更为严谨的导入方式,避免源代码文件暴露在公开环境下等等,具体实现方法本申请不做详述,本申请主要对网站服务器出现源代码漏洞的情况下,如何及时阻拦非法用户发起的拖取源代码文件的恶意请求的方案进行说明,来提高网站服务器和用户数据的安全性。

综上,在网站使用某源代码控制系统,在发布版本、升级或修复版本的过程中,因管理员操作不当,使得网站服务器存在源代码泄露特征,且能够被用户访问到,导致非法用户通过访问源代码泄露特征,得到网站服务器的源代码,进而通过源代码挖掘一些安全漏洞,如文件上传、sql注入(sqlinject)等,威胁网站服务器及用户数据的安全性。

本实施例通过获取向网站服务器发起的访问请求,并检测该访问请求是否包含源代码泄露特征,进而利用检测结果,准确且及时发现访问请求中的恶意请求,及时输出提示信息,来提示网站管理员阻拦网站服务器响应该恶意请求,可见,本实施例能够及时阻断非法用户获取网站服务器的整个源代码,而不是在非法用户获取源代码,并据此实现上传非法文件等操作后,才能够发现源代码泄露,提高了网站服务器及用户数据的安全性。

参照图3,为本申请实施例提供的另一种源代码泄露监控方法的信令流程图,该方法描述的可以是上述源代码泄露监控方法的一种具体实例,但并不局限于本实施例描述的以下方法步骤:

步骤s21,交换机对发送至网站服务器的数据流量进行镜像;

步骤s22,监控服务器获取该交换机镜像得到的数据流量;

结合上述实施例对交换机的描述,该交换机可以具有镜像端口,能够在各用户的客户端向网站服务器发送访问请求,产生相应的数据流量过程中,可以由交换机的镜像端口,对网站服务器连接交换机的通讯端口,实时镜像一份数据流量,用来进行网络行为分析,本申请对镜像流量的具体实现方法不做详述。

其中,本申请可以将合法用户发起合法请求,产生的数据流量记为访问流量,将非法用户发起恶意请求产生的数据流量记为攻击流量,本实施例采用流量镜像方式,能够获取所有向网站服务器发起的访问请求产生的数据流量,包含了访问流量和攻击流量。

步骤s23,监控服务器对该数据流量进行分析,得到向该网站服务器发起的访问请求;

继上文分析,本实施例通过对镜像得到的数据流量进行解码解析,能够得到所有用户向网站服务器发起的访问请求,包括了合法请求和/或恶意请求,对于如何分析数据流量,得到向网站服务器发起的访问请求的实现方法不做限定。

可见,步骤s23得到的访问请求的数量可以是至少一个,当访问请求的数量为多个的情况下,多个访问请求可以是同一ip地址发起的,也可以是不同ip地址发起的,可以依据实际情况确定,本申请对此不做限定。

步骤s24,监控服务器解析该访问请求,得到该访问请求包含的各字段信息;

在实际应用中,在访问某网站,向网站服务器发起的访问请求,可以是按照某种协议,生成的包含有ip地址、用户名、密码、访问地址、访问内容等信息的请求,本申请对该访问请求的格式及内容不做限定,如http/https请求等。

可选的,本申请对访问请求进行解析,可以得到各字段的值,如url(uniformresourcelocator,统一资源定位符),head头字段,cookie(用于辨别用户身份的数据),user-agent(用户代理,ua,可以是浏览器),body等,其中url可以包括http(hypertexttransferprotocol,超文本传输协议)、用安全套接字层传送的超文本传输协议https等协议,用户、密码、主机名或ip地址、端口号、路径、参数、查询等。

所以,本实施例解析访问请求,得到的字段信息可以表明发起访问请求的ip地址,所获取的目标数据等,如通过访问路径,确定访问意图,进而分析该访问请求是否为恶意请求。应该理解,对于不同的访问请求,解析得到的字段信息内容会存在差异,本申请对各字段信息的内容,以及访问请求包含的字段数量等不做限定,可以依据获取的具体访问请求确定。

步骤s25,监控服务器确定该网站服务器所使用的源代码版本控制系统,并获取与该源代码版本控制系统对应的源代码泄露特征;

如上述实施例对源代码泄露特征的描述,对于使用不同类型或不同版本的代码版本控制系统,所得到的网站源代码,在发布、升级或修复过程中,因管理员操作不当等原因,导致用户源代码文件处于开放环境后,用户访问网站服务器,获取源代码文件的具体方式并不相同,由此得到的源代码泄露特征也不同。本申请可以预先针对不同类型或不同版本的代码版本控制系统,预存对应的源代码泄露特征,具体存储方式不作限定。

这样,监控服务器监控向网站服务器发送的访问请求的过程中,可以利用该网站服务器实际使用的源代码版本控制系统,所对应的源代码泄露特征,来识别向该网站服务器发起的恶意请求。因此,本实施例在对访问请求进行识别之前,可以先确定该访问请求所访问的网站服务器使用的源代码版本控制系统,并获取与其对应的源代码泄露特征。

步骤s26,监控服务器将各字段信息与该源代码泄露特征进行比对;

继上文描述,步骤s26的源代码泄露特征可以是:该访问请求所访问的网站服务器使用的源代码版本控制系统所对应的源代码泄露特征,具体可以是源代码文件的副本、索引文件或管理文件等,本申请对源代码泄露特征的内容不做限定。

这种情况下,本申请只需要将得到的各字段信息与一种源代码泄露特征进行比对,提高了检测效率,也就能够更加及时阻拦恶意请求。

但本申请并不排除将得到的字段信息,与存储各种源代码泄露特征进行比对,来确定访问请求是否包含任一源代码泄露特征,进而识别该访问请求是否为恶意请求的实现方法,该方法与本实施例描述的方法类型,本申请不再赘述。

步骤s27,监控服务器将存在与该源代码泄露特征相匹配的字段信息所在的访问请求确定为待处理请求;

步骤s28,监控服务器按照待处理请求的ip地址,对确定的所有待处理请求进行聚合统计,得到单位时间内同一ip地址发起的待处理请求的访问次数;

步骤s29,监控服务器将达到访问阈值的访问次数对应的ip地址发起的待处理请求确定为恶意请求;

在本实施例实际应用中,某ip地址发起的一次访问请求包含源代码泄露特征,该访问请求并不一定是恶意请求,通常出现遍历特征行为,以获取所有源代码文件的访问请求,才可能是黑客发起的恶意请求。

基于此,为了降低恶意请求的误判率,保证网站服务器能够及时响应合法请求,本实施例在确定某访问请求存在与源代码泄露特征相匹配的字段信息后,可以不将其直接确定为恶意请求,而将其确定为待处理请求,之后,进一步统计同一ip地址是否在预设时间内,连续发起多个待处理请求,如果是,可以认为该ip地址是非法用户的客户端ip地址,其发起的访问请求为恶意请求,但并不局限于本实施例描述的这种实现方式。

具体的,本实施例以预设时间为单位时间为例进行说明,本实施例可以按照ip地址对得到的待处理请求进行聚合统计,得到不同ip地址发起的待处理请求,进而判断是否存在单位时间内,同一ip地址连续发起多次待处理请求,若存在,可以将该ip地址发起的待处理请求确定为恶意请求。

进一步地,本实施例还可以对同一ip地址连续发起待处理请求的访问次数进行统计,并设置访问阈值,即判断单位时间内发起多少次待处理请求,就会认为发生了遍历特征行为,该ip地址的客户端正在试图拖取网站服务器的源代码文件,本申请对该访问阈值的具体数值不作限定。

需要说明,本申请判断单位时间内发起的多次待处理请求,均是与同一源代码泄露特征相匹配的访问请求,也就是要检测任一ip地址发起的多次访问请求,是否遍历同一源代码泄露特征,来获取所有源代码文件,威胁网站服务器及用户数据的安全。

应该理解,按照上述构思,本申请在对获取的访问请求进行检测后,也可以直接利用得到的ip地址、访问时间等信息,对包含源代码泄露特征的访问请求直接进行聚合统计,以判断统计各ip地址是否为非法用户的ip地址,即判断获取的访问请求是否存在恶意请求。

可选的,按照本申请上文描述的检测过,确定获取的访问请求中存在恶意请求,可以执行步骤s210;若获取的访问请求中不存在恶意请求,具体可以是不存在待处理请求,即各访问请求均未包含源代码泄露,或者,存在待处理请求,但不存在单位时间内,同一ip地址连续多次发起待处理请求的情况,可以不进行任何操作,网站服务器可以正常响应该访问请求。

步骤s210,监控服务器向网站管理员的电子设备发送提示信息;

本实施例在确定向网站服务器发起的访问请求中存在恶意请求的情况下,可以直接向预先绑定的网站管理员的电子设备,发送提示信息,来提醒网站管理员及时阻拦网站服务器响应该恶意请求,阻断非法用户获取网站的所有源代码文件,进而避免非法用户利用源代码文件,威胁网站服务器及用户数据的安全。

需要说明,本申请对该提示信息的内容及其发送方式不做限定,可以参照上文实施例相应部分的描述,且关于对网站管理员的提醒,也并不局限于本实施例提出这种预先绑定电子设备的方式。

步骤s211,网站服务器响应阻拦指令,中止响应该恶意请求。

按照上述方式,网站管理员得知有向网站服务器发送的恶意请求的情况下,可以在网站后台设备中,向网站服务器输入阻拦指令,来中止网站服务器响应恶意请求,进而避免非法用户获取网站服务器的所有源代码文件,威胁网站服务器及用户数据的安全。

需要说明,本申请对网站管理员向网站服务器发送的阻拦指令内容不做限定,可以基于具体的恶意请求内容确定,且该阻拦指令可以由网站管理员在出现恶意请求的情况下,根据实际情况,在线编写输入,也可以预先编写好了阻拦程序,网站管理员只需要输入阻拦指令,触发该阻拦程序运行即可,本申请对如何阻止网站服务器响应恶意请求的实现方法不做限定,并不局限于本申请列举的方式。

且,网站服务器中止响应恶意请求后,可以删除该恶意请求,并将该恶意请求加入网站服务器的黑名单,这样,网站服务器后续就能够直接识别出该恶意请求,不会再响应恶意请求,也就不会存在源代码泄露问题;网站服务器还可以将与该恶意请求相关的数据删除,如恶意请求对应的源代码泄露特征等,解决因配置不当,导致网站服务器产生源代码漏洞,威胁网站服务器及用户数据安全的问题。

需要说明,本申请对网站服务器确定其存在源代码漏洞后,如何解决该源代码漏洞,及改善网站安全机制,以提高网站服务器及用户数据安全性的实现方法不作限定,不局限于上文列举实现方式。

综上所述,本实施例为了解决现有技术中,都是在源代码被拖取后,才能够通过排查访问日志,得知源代码泄露时间点及被拖取数据的影响访问,无法做到实时感知以应对及时止损的问题,本实施例提出通过镜像对网站服务器的访问流量,分析得到向网站服务器发送的所有访问请求,检测该访问请求是否包含源代码泄露特征,并验证单位时间内,同一ip地址连续发起的包含源代码泄露特征的访问请求的访问次数达到访问阈值,可以认为该ip地址发送的访问请求是拖取源代码文件的行为请求,相对于网站服务器来说,这类访问请求即为恶意请求,监控服务器在网站服务器响应该恶意请求之前,或者响应过程中,能够自动实时感知到源代码泄露的威胁,及时发出告警,提醒网站管理员及时阻拦网站服务器继续响应恶意请求,导致整个源代码文件泄露,威胁网站服务器及用户数据的安全。

基于上文对申请提出的源代码泄露监控方法的描述,本申请通过实时感知源代码泄露威胁,及时应急响应并止损,在一定程度上提高了网站服务器及用户数据的安全性。若上述网站是企业内部网站,在实际应用中,实现企业不同业务所使用的网站可以不同,且不同业务的网站所使用的源代码版本控制系统可以不同,下文以不高于1.6版本svn、高于1.6版本svn,以及git这三类源代码版本控制系统为例进行说明。

结合上文对这三类源代码版本控制系统的分析,不高于1.6版本svn的源代码泄露特征可以包括:svn目录文件包含1个以.svn-base结尾的源代码文件副本,以及.svn/entries文件;高于1.6版本svn的源代码泄露特征可以包括.svn/wc.db数据库文件;git的源代码泄露特征可以包括:索引文件.git/index,其通常包含源文件名和文件哈希值sha1。本实施例得到这三类源代码版本控制系统对应的源代码泄露特征后,可以生成相应的源代码泄露分析策略,该分析策略可以参照上文利用对访问请求的检测结果,识别该访问请求是否为恶意请求的相应部分的描述。

在本实施例实际应用中,参照图4所示的流程示意图,监控服务器从交换机获取镜像得到的数据流量后,对数据流量解码解析,得到多个访问请求,关于一个访问请求的情况与本实施例类似,在此不做描述,这多个访问请求可以包括向不同网站服务器(即业务服务器)发起的访问请求,且各网站服务器所使用的源代码版本控制系统可以不同。

在这种情况下,若黑客攻击业务服务器,拖取实现业务的源代码文件,向业务服务器发起的访问请求中,往往会包含该业务服务器对应的源代码泄露特征,如在url地址中增加“.svn/entries”、“.svn/wc.db”、“.git/index”等信息,而合法用户访问业务服务器发起的访问请求中通常并不包含这些信息,所以,本实施例可以采用特征比对的方式,检测获取的各访问请求是否包含任一源代码泄露特征。

由于访问请求可以针对不同业务,经过上述检测,若访问请求未包含原代码泄露特征,可以执行上述实施例描述的处理方式;若确定包含不同源代码泄露特征的多个访问请求,可以进行盲扫误报,还可以按照发起访问请求的ip地址,对这多个访问请求进行聚合统计,检测单位时间内,同一ip地址连续发起的,包含同一源代码泄露特征的访问请求的访问次数是否大于访问阈值,若否,可以进行盲扫误报;如果是,确定该ip地址发起的访问请求存在源代码泄露拖取行为,即业务源代码正在被黑客非法拖取,可以直接阻拦业务服务器响应该ip地址发起的访问请求,从而阻止黑客对业务源代码的拖取行为,保证业务服务器及用户数据的安全性。

结合上述对源代码泄露监控方法的描述,参照图5,本申请可以将实现该源代码泄露监控方法的监控服务器的整个系统可以分为:流量分析系统、策略系统、告警系统和数据仓库四部分,如图5所示,流量分析系统可以与核心交换机的镜像端口连接,获取镜像得到的数据流量,并对该数据流量进行解析,依据策略系统的分析策略对解析得到的访问请求进行检测;策略系统为流量分析系统提供分析策略,并对该分析策略进行管理下发,联动告警系统进行恶意请求的告警,以及联动数据仓库实现对恶意请求的相关数据的存储,用于后续数据分析,具体实现过程本实施例不做赘述,可以根据实际需要灵活配置。

参照图6,为本申请实施例提供的源代码泄露监控装置的结构示意图,该装置可以应用于监控服务器,可以是实现上述源代码泄露监控方法的程序模块,如图6所示,该装置可以包括但并不局限于以下功能模块:

请求获取模块21,用于获取向网站服务器发起的访问请求;

可选的,该请求获取模块21可以包括:

数据流量获取单元,用于获取数据流量,所述数据流量是采用镜像方式得到的;

访问请求获取单元,用于对所述数据流量进行解析,得到向网站服务器发起的访问请求。

特征检测模块22,用于检测所述访问请求是否包含源代码泄露特征;

其中,源代码泄露特征可以基于网站服务器所使用的源代码版本控制系统确定,在发布应用程序版本、升级或维护过程中,所使用的源代码版本控制系统不同,进行源代码泄露监控过程中,需要检测的源代码泄露特征往往不同,本申请可以预先配置不同类型或版本的源代码版本控制系统,与源代码泄露特征之间的对应关系,具体配置过程可以参照上述方法实施例相应部分的描述。

可选的,如图7所示,特征检测模块22可以包括:

解析单元221,用于解析所述访问请求,得到所述访问请求包含的各字段信息;

比对单元222,用于将所述各字段信息与源代码泄露特征进行比对;

第一确定单元223,用于在存在与源代码泄露特征相匹配的字段信息的情况下,确定该访问请求包含源代码泄露特征。

提示模块23,用于利用检测结果,确定所述访问请求为恶意请求,输出提示信息;

其中,提示信息可以用于指示阻拦所述网站服务器响应所述恶意请求,本申请对该提示信息的内容不做限定,具体可以参照上述方法实施例描述、

综上,本实施例通过对向网站服务器发送的访问请求进行同步分析,具体利用该网站服务器所使用的源代码版本控制系统对应的源代码泄露特征,分析该访问请求是否为恶意请求,即拖取源代码文件的行为请求,如果确定发送至网站服务器中的访问请求中包含恶意请求,将及时输出提示信息,指示网站管理员及时阻拦网站服务器对该恶意请求的响应,也就避免了在出现源代码漏洞的情况下,非法用户利用该源代码漏洞,拖取整个源代码文件,威胁网站服务器及用户数据的安全。

可选的,对应合法请求,并不会阻拦网站服务器的响应,即网站服务器会正常响应用户发送的合法请求,及时反馈响应数据,以满足该用户的网站访问需求,可见,本实施例提供的源代码泄露监控装置,会干预网站服务器对恶意请求的响应,可以不用干预网站服务器对合法请求的响应,即避免了源代码泄露,又保证了合法用户对网站的访问。

可选的,如图8所示,上述提示模块23可以包括:

统计单元231,用于利用检测结果,统计同一ip地址发起的包含所述源代码泄露特征的访问请求的访问次数;

在本实施例中,该统计单元231可以包括:

第二确定单元,用于将包含所述源代码泄露特征的访问请求确定为待处理请求;

聚合统计单元,用于按照所述待处理请求的ip地址,对所述待处理请求进行聚合统计,得到单位时间内同一ip地址发起的所述待处理请求的访问次数。

提示单元232,用于在预设时间内统计得到的访问次数达到访问阈值的情况下,确定所述ip地址发起的访问请求为恶意请求,并输出提示信息。

可见,在源代码泄露监控过程中,具体可以通过对用户访问网站的行为进行监控,发现向网站服务器发起的访问请求中,出现遍历同一源代码泄露特征,获取所有源代码文件的行为请求,可以认为此时网站服务器受到非法用户攻击,可以及时告警,并阻拦网站服务器对这种行为请求的响应,避免非法用户获取完整的源代码文件。

其中,上述行为可以通过判断单位时间内,同一ip地址是否发起连续多个包含同一源代码泄露特征的访问请求,如果是,可以认为该ip地址是非法获取源代码文件的地址,可以对该ip地址发起的访问请求进行阻拦,具体阻拦方法不做限定。

可选的,如图8所示,上述装置还可以包括:

存储模块24,用于对恶意请求包含的各字段信息进行存储。

本申请实施例还提供了一种存储介质,其上存储有程序,该程序被处理器执行,实现上述源代码泄露监控方法的各步骤,具体实现步骤可以参照上述方法实施例部分的描述。

参照图9,为本申请实施例提供的一种源代码泄露监控设备的硬件结构示意图,该源代码泄露监控设备可以是上述监控服务器,如图9所示,该设备可以包括:通信接口31、存储器32及处理器33,其中:

实际应用中,通信接口31、存储器32及处理器33的数量可以为至少一个,且通信接口31、存储器32及处理器33可以通过通信总线实现相互间的通信。

通信接口31可以为通信模块的接口,如gsm模块的接口、wifi模块的接口、gprs模块的接口,和/或实现源代码泄露监控设备内部模块之间的数据传输的接口,如串/并口、i/o口等等,可以基于实际需求确定;

处理器33可能是一个中央处理器cpu,或者是特定集成电路asic(applicationspecificintegratedcircuit),或者是被配置成实施本申请实施例的一个或多个集成电路。

存储器32可能包含高速ram存储器,也可能还包括非易失性存储器(non-volatilememory),例如至少一个磁盘存储器。

其中,存储器32存储有程序,处理器33调用存储器32所存储的程序,以实现上述源代码泄露监控方法的各步骤,具体实现过程可以参照上述方法实施例相应部分的描述,本实施例不再赘述。

综上,本实施例通过分析如svn/git源代码泄露原理,建立精细化的svn/git源代码泄露感知策略,即上述分析策略,以使得源代码泄露监控设备获取向网站服务器发送的所有访问请求后,依据该分析策略,识别出非法用户通过源代码漏洞,拖取整个源代码文件的行为请求,即上述恶意请求,并实时输出提示信息,以使得网站管理员及时采取相应操作,阻拦对该恶意请求的继续响应,从而避免网站的源代码文件被非法用户获取,解决了现有技术中出现源代码漏洞后,只能在源代码泄露后进行人工排查泄露时间点和被拖取数据的影响范围,无法做到实时感知以应对,及时止损的目的。

本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置、设备而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。

专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。

结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(ram)、内存、只读存储器(rom)、电可编程rom、电可擦除可编程rom、寄存器、硬盘、可移动磁盘、cd-rom、或技术领域内所公知的任意其它形式的存储介质中。

对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的核心思想或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1