源代码泄露检测方法及装置制造方法及图纸

技术编号:10979545 阅读:92 留言:0更新日期:2015-01-30 16:17
一种源代码泄露检测方法,包括:拦截网络数据流;对所述网络数据流进行协议解析得到字符流;获取预设的与程序语言对应的检测字符串和/或语法分析库函数;根据所述检测字符串和/或语法分析库函数判断所述解析得到的字符流是否包含源码,若是,则阻断所述网络数据流。此外,还提供了一种源代码泄露检测装置。上述源代码泄露检测检测方法及装置能够提高源代码泄露检测的安全性。

【技术实现步骤摘要】
【专利摘要】一种源代码泄露检测方法,包括:拦截网络数据流;对所述网络数据流进行协议解析得到字符流;获取预设的与程序语言对应的检测字符串和/或语法分析库函数;根据所述检测字符串和/或语法分析库函数判断所述解析得到的字符流是否包含源码,若是,则阻断所述网络数据流。此外,还提供了一种源代码泄露检测装置。上述源代码泄露检测检测方法及装置能够提高源代码泄露检测的安全性。【专利说明】源代码泄露检测方法及装置
本专利技术涉及网络安全
,特别是涉及一种源代码泄露检测方法及装置。
技术介绍
现在技术中,若互联网应用的源代码遭到泄露(企业内部人员在企业内部网络通过文件传输发送给外网,或者由黑客通过漏洞下载web服务器上存储的源代码,例如php服务器),黑客即可能通过分析源代码,找到应用系统存在的漏洞,从而对应用系统进行攻击。 而当前企业在网关对付源码防泄露的方法为通过检查传输的文件后缀名来判断是否存在泄露。若源代码文件被压缩或经过后缀名更改后再发送则无法检测得出。因此,传统技术中的源代码泄露检测的安全性不足。
技术实现思路
基于此,有必要提供一种能够提高源代码泄露检测的安全性的源代码泄露检测方法。 一种源代码泄露检测方法,包括: 拦截网络数据流; 对所述网络数据流进行协议解析得到字符流; 获取预设的与程序语言对应的检测字符串和/或语法分析库函数; 根据所述检测字符串和/或语法分析库函数判断所述解析得到的字符流是否包含源码,若是,则阻断所述网络数据流。 在其中一个实施例中,所述对所述网络数据流进行协议解析的步骤之后还包括: 判断所述网络数据流是否为文件传输流,若是,则获取所述网络数据流对应的文件后缀名,判断所述文件后缀名是否与预设的后缀名关键字匹配,若是,则执行阻断所述网络数据流的步骤。 在其中一个实施例中,所述获取所述网络数据流对应的文件后缀名的步骤之后还包括: 判断所述文件后缀名是否对应压缩文件,若是,则对所述网络数据流进行解压。 在其中一个实施例中,所述方法还包括: 接收上传的规则配置请求,提取相应的检测字符串和/或语法分析库函数,并写入到配置文件中; 所述获取预设的与程序语言对应的检测字符串和/或语法分析库函数的步骤为: 由所述配置文件读取预设的与程序语言对应的检测字符串和/或语法分析库函数。 在其中一个实施例中,所述根据所述检测字符串和/或语法分析库函数判断所述解析得到的字符流是否包含源码的步骤包括: 获取所述检测字符串和/或语法分析库函数的匹配次数,根据所述匹配次数判断所述解析得到的字符流是否包含源码。 此外,还有必要提供一种能够提高源代码泄露检测的安全性的源代码泄露检测装置。 一种源代码泄露检测装置,包括: 数据拦截模块,用于拦截网络数据流; 数据解析模块,用于对所述网络数据流进行协议解析得到字符流; 匹配规则获取模块,用于获取预设的与程序语言对应的检测字符串和/或语法分析库函数; 字符串匹配模块,用于根据所述检测字符串和/或语法分析库函数判断所述解析得到的字符流是否包含源码,若是,则阻断所述网络数据流。 在其中一个实施例中,所述装置还包括后缀名匹配模块,用于判断所述网络数据流是否为文件传输流,若是,则获取所述网络数据流对应的文件后缀名,判断所述文件后缀名是否与预设的后缀名关键字匹配,若是,则阻断所述网络数据流。 在其中一个实施例中,所述后缀名匹配模块还用于判断所述文件后缀名是否对应压缩文件,若是,则对所述网络数据流进行解压。 在其中一个实施例中,所述装置还包括匹配规则配置模块,用于接收上传的规则配置请求,提取相应的检测字符串和/或语法分析库函数,并写入到配置文件中; 所述匹配规则获取模块还用于由所述配置文件读取预设的与程序语言对应的检测字符串和/或语法分析库函数。 在其中一个实施例中,所述字符串匹配模块还用于获取所述检测字符串和/或语法分析库函数的匹配次数,根据所述匹配次数判断所述解析得到的字符流是否包含源码。 上述源代码泄露检测方法和装置中,对网络传输的数据流中的字符串进行检测,通过预设的与程序语言对应的检测字符串和/或语法分析库函数对其进行匹配,从而判断网络传输的数据流是否为传输源代码的数据流。与传统技术中仅通过文件后缀名的方式进行判断的方法相比,不仅可应用于检测文件传输的场景中,对于通过邮件发送源代码的方式也可进行检测,因此源代码泄露检测的范围大大加大,从而提高了安全性。 【专利附图】【附图说明】 图1为一个实施例中一种源代码泄露检测方法的流程图; 图2为一个实施例中一种源代码泄露检测装置的结构示意图; 图3为另一个实施例中一种源代码泄露检测装置的结构示意图。 【具体实施方式】 为解决上述源代码泄露检测的安全性不足的问题,特提出了一种源代码泄露检测方法。该方法完全依赖于计算机程序,该计算机程序可运行于基于冯洛伊曼体系的计算机系统上。该计算机系统可以是企业网关或起到网关作用的设备。 在本实施例中,如图1所示,该方法包括: 步骤S102:拦截网络数据流。 在现有技术中,企业内部通常建有子网,该子网通过企业网关与广域网连接,子网内的用户在向广域网上的终端发送邮件或文件时,产生的网络数据流将被该子网的网关所拦截。 现有技术中的web应用服务器也架设在web服务器托管中心的机房里,并接入该机房的内网,内网与广域网之间也设置有网关设备。web服务器在响应广域网的终端的下载请求时,向其下发的网络数据流也需要通过网关进行转发,则在该网关处被拦截。 步骤S104:对网络数据流进行协议解析得到字符流。 在本示例中,协议解析所依赖的协议规则至少包括:HTTP、FTP (File TransferProtocol,文件传输协议)、TFTP (Trivial File Transfer Protocol,简单文件传输协议)、SMNP (Simple Network Management Protocol,简单网络管理协议)以及 SMTP (Simple MailTransfer Protocol,简单邮件传输协议)等。 网络数据流在以某种协议进行传输时,可检测网络数据流中的协议头部,判断网络数据流匹配的协议类型,然后再根据协议类型对协议正文进行解析(去掉协议头和协议尾以及网络数据流中的起到协议控制作用的字符),提取传输的字符流。 步骤S106:获取预设的与程序语言对应的检测字符串和/或语法分析库函数。 步骤S108:通过检测字符串和/或语法分析库函数判断所述解析得到的字符流是否包含源码,若是,则执行步骤SllO ;否则,执行步骤S112。 步骤SllO:阻断网络数据流。 步骤S112:放行网络数据流。 程序语言包含多个关键字,例如,使用if和else关键字定义条件分支,使用funct1n关键字定义函数。某些程序语言的语法中也包含该程序语言独有的关键字,例如,“〈? php phpinfoO ;? >”关键字表示php程序。则可根据每种程序语言的特性,预先设置多个与程序语言对应的检测字符串,通过字符串匹配,即能判断字符流中是否包含检测字符串,从而判断字符流是否包含源码。 优选的,本文档来自技高网...

【技术保护点】
一种源代码泄露检测方法,包括:拦截网络数据流;对所述网络数据流进行协议解析得到字符流;获取预设的与程序语言对应的检测字符串和/或语法分析库函数;根据所述检测字符串和/或语法分析库函数判断所述解析得到的字符流是否包含源码,若是,则阻断所述网络数据流。

【技术特征摘要】

【专利技术属性】
技术研发人员:曾加良
申请(专利权)人:深信服网络科技深圳有限公司
类型:发明
国别省市:广东;44

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1