一种多级过滤的源代码数据检测方法及装置制造方法及图纸

技术编号:14235452 阅读:115 留言:0更新日期:2016-12-21 09:12
本发明专利技术公开了一种多级过滤的源代码数据检测方法及装置,该装置包括:文件类型检测过滤模块,用于判断输入文件是否为指定文件类型;词法分析过滤模块,提取所述文件中的词法记号并确定对应权重,计算加权得分总和,判断所述加权得分总和是否超过指定阈值;语法分析过滤模块,从所述文件截取指定长度的文本作为可疑文本,提取所述可疑文本中包含的语法短语和表达式,判断所述短语和表达式对构成源代码的重要程度;语义分析过滤模块,提取所述文本的语义特征,将其与指定核心源代码的语义特征进行相似性分析;含源代码数据保护模块,对包含源程序数据的文件做敏感数据保护;无源代码标记模块,对所述文件做无源代码标记。通过上述方案,提高了对源代码检测的准确性,加强了对源代码的安全保护力度。

Method and device for detecting source code data of multi-stage filtering

The invention discloses a method and a device for detecting the source code data of a multi-stage filtration, the device comprises: a file type detection and filtering module, used to determine whether an input file for the specified file type; lexical analysis lexical extraction filtering module, the file mark and determine the corresponding weight, calculate the weighted sum of the weighted score, judgment the sum of scores exceeds the specified threshold; syntax analysis from the text filtering module, the file interception of the specified length as suspicious text, including the extraction of suspicious text in grammatical phrases and expressions, judge the phrases and expressions of the source code of the importance of semantic analysis; semantic feature extraction filter module, the text the semantic features, and specifies the core source code similarity analysis; containing source code contains the source of data protection module. The data files of the program are sensitive data protection; the passive code marking module is used for the passive code marking of the file. Through the above scheme, the accuracy of the source code detection is improved, and the security protection of the source code is strengthened.

【技术实现步骤摘要】

本专利技术涉及源代码数据检测
,具体涉及一种多级过滤的源代码数据检测方法及装置
技术介绍
作为研发设计企业,设计文档、图纸和源代码等数据是企业的核心智慧资产,也是企业的核心竞争力所在,对这些核心数据进行有效管控是企业信息安全工作的重中之重。其中源代码数据由于以文本文件或文本片段的形式存在,更易混杂或嵌入在常规的文本文件中,进而发生流失、泄密或非受控扩散等危害企业信息安全的情况。这些源代码数据丢失的情况大多发生原因是企业内部人员的无意操作,也有少数来自内部人员的故意泄密和企业外部的恶意攻击。这些数据丢失情况的发生,对于研发设计企业可能会带来灾难性的后果。因此企业需要对源代码数据的分布、存储、流转、外发进行全方位的管控,而源代码数据检测方法是实现这些管控的基础。数据安全管控技术的发展经历了DSM(数据加密软件)、DSA(数据安全隔离)、DLP(数据泄漏防护)三个阶段。在进行源代码数据的保护时,因为源代码的进程调用十分复杂,如果进行加密,极易损坏代码或影响系统性能,所以DSM并不适用于源代码数据的保护。目前主要采用的源代码防护都是基于DSA或DLP的。DSA并不对源代码进行加密,而是保证源代码仅在隔离出的数据安全区域中流转,在未获审批允许时,不能进行任何形式的外发和外传。DLP摆脱了DSM的敏感数据“全加密”和DSA的“全隔离”的囚笼式信息安全管控策略,通过对文件的分类分级,实现了对敏感数据的网络防护和终端防护。而DLP的核心功能是对文件或数据流的内容进行识别,通过识别来实现对数据丢失的防控。基于源代码数据检测的结果,DLP的源代码管控可以实现敏感代码的隔离、外发代码的阻截、内部代码和网络公共代码的区分等功能。源代码数据的检测本质上是文本数据检测,目前文本数据检测技术包括基础检测技术和高级检测技术。基础检测技术包括文档属性检测、关键字匹配、正则表达式等方法,这些检测技术不涉及文档的语义、结构和逻辑特征,具有简单高效的特征,但是难以实现精确细致的分类。高级检测技术包括精确数据匹配(Exact Data Matching,EDM)、文档指纹(FingerPrint,本质是一种Index data matching,IDM方法)、机器学习(或称作统计学习)方法。其中数据精确匹配是基于对文件的逻辑和结构特征进行深入分析后,提取其模式特征进行的匹配分类方法;文档指纹是基于对文档的语义分析,采用基于关键词的散列算法获得文档指纹作为文件索引(或称信息摘要),通过索引匹配检测文档或文档片段是否相似的方法;而机器学习方法都是通过学习算法获取文件内部的数据或语义统计特征,从而进行模式识别。因为源代码是依据一定程序设计语言书写而成,具有词法、语法、语义特征,所以可以利用精确数据匹配进行源代码数据的检测,但是必须设计出合理有效的精确匹配信息处理流程。本专利技术中提出的检测方法,将上述文本数据检测技术中的多种技术手段组合成一种多级过滤的信息处理过程,从不同信息粒度水平上进行多次信息过滤,实现对源代码数据的精确检测。现有技术中与本专利技术最接近的技术是一种现有专利技术,它通过拦截网络数据流,通过对所述网络数据流进行协议解析得到字符流;获取预设的与程序语言对应的检测字符串和/或语法分析库函数;根据所述检测字符串和/或语法分析库函数判断所述解析得到的字符流是否包含源码,若是,则阻断所述网络数据流。上述现有技术存在以下缺点:(1)上述专利所用方法仅对网络数据流进行拦截,并不适用于对于本地存储文件是否包含源代码数据进行检测,无法获知本地源代码的分布情况。(2)上述专利中判定字符流是否包含源代码的依据是“预设的与程序语言对应的检测字符串和/或语法分析库函数”,并未对字符流的文件类型、词法记号属性和语义内容进行分析,对源代码数据检测的精度有限。(3)在软件开发过程规范化程度不高的企业中,存在着开发工具众多、代码风格各异、标识符命名不规范、代码标注用词复杂的特征。检测这些源代码,仅依靠文件属性检测、关键字匹配、正则表达式匹配等基础检测技术会存在着定位不够准确的问题(难以确定一篇普通文档中包含源代码数据片段的位置);采用文档指纹、统计学习等方法又存在着由于样本获取的不完整而造成检测方法通用性不足的缺陷。(4)上述文本数据的高级检测技术在对篇幅较长的文本进行语义分析时,会对文本全文进行计算,具有较大的计算量,会造成检测结果输出用时较长。
技术实现思路
名词解释:源代码:也指源程序,是指按照一定的程序设计语言规范书写的、未经编译的文本文件或文本片段,是一系列人类可读的计算机语言指令。将源代码翻译成计算机可以执行的二进制指令的过程即为编译。词法分析:将字符串序列转换为词法记号(token)序列的过程。源程序中的词法记号包括关键字、标识符、常数、运算符、界符等。关键字:关键字是对不同编程语言编译器具有特殊含义的单词,仅用于表示数据类型或进行程序流程控制,而不能作为其它用途使用(关键字不能用作标识符来标记常量名、变量名、方法名、函数名、程序名、类名、包名和参数名)。标识符:在编程语言中,标识符是用户进行源代码书写时使用的名字,用来标记变量、常量、函数、方法、类、对象、语句块、文件、参数等。标识符可以是字母、数字、下划线、特殊符号(例如’$’)的组合。常数:是源代码中固定不变的数值,包括整型、实型、布尔型等。运算符:是说明特定操作的符号,用于连接不同的运算对象形成表达式。包括算术运算符、关系运算符、赋值运算符、逻辑运算符、连接运算符等。界符:标记源代码语句块范围界限的特殊符号。界符一般都是成对出现(例如(){本文档来自技高网
...
一种多级过滤的源代码数据检测方法及装置

【技术保护点】
一种多级过滤的源代码数据检测方法,该方法包括以下步骤:(1)文件类型检测过滤,包括:判断输入文件是否为指定文件类型,如果是,将该文件判定为包含源代码数据的文件,转入步骤(5),否则转入步骤(2);(2)词法分析过滤,包括:将所述文件统一转换成标准文件,提取所述标准文件中的词法记号,并为不同词法记号建立相应的权重,根据所述权重计算所述文件中词法记号的加权得分总和,判断所述加权得分总和是否超过指定阈值,如果是,将该文件判定为包含源代码数据的文件,转入步骤(5),否则转入步骤(3);(3)语法分析过滤,包括:从所述文件截取指定长度的文本作为可疑文本,提取所述可疑文本中包含的语法短语和表达式,判断所述语法短语或表达式对于源代码构成的重要程度是否超过指定阈值,如果是,将该文件判定为包含源代码数据的文件,转入步骤(5),否则转入步骤(4);(4)语义分析过滤,包括:提取所述文本的语义特征,将其与指定核心源代码的语义特征进行相似性分析,如果相似,将该文件判定为包含源代码数据的文件,转入步骤(5),否则转入步骤(6);(5)对包含源程序数据的文件做敏感数据保护,结束检测;(6)对所述文件做无源代码标记,结束检测。...

【技术特征摘要】
1.一种多级过滤的源代码数据检测方法,该方法包括以下步骤:(1)文件类型检测过滤,包括:判断输入文件是否为指定文件类型,如果是,将该文件判定为包含源代码数据的文件,转入步骤(5),否则转入步骤(2);(2)词法分析过滤,包括:将所述文件统一转换成标准文件,提取所述标准文件中的词法记号,并为不同词法记号建立相应的权重,根据所述权重计算所述文件中词法记号的加权得分总和,判断所述加权得分总和是否超过指定阈值,如果是,将该文件判定为包含源代码数据的文件,转入步骤(5),否则转入步骤(3);(3)语法分析过滤,包括:从所述文件截取指定长度的文本作为可疑文本,提取所述可疑文本中包含的语法短语和表达式,判断所述语法短语或表达式对于源代码构成的重要程度是否超过指定阈值,如果是,将该文件判定为包含源代码数据的文件,转入步骤(5),否则转入步骤(4);(4)语义分析过滤,包括:提取所述文本的语义特征,将其与指定核心源代码的语义特征进行相似性分析,如果相似,将该文件判定为包含源代码数据的文件,转入步骤(5),否则转入步骤(6);(5)对包含源程序数据的文件做敏感数据保护,结束检测;(6)对所述文件做无源代码标记,结束检测。2.根据权利要求1所述的方法,所述步骤(1)中所述输入文件为:本地进行存储或网络外发的文件。3.根据权利要求1所述的方法,所述词法记号包括:特定程序设计语言中的关键字、标识符、算符和界符。4.根据权利要求1所述的方法,所述步骤(3)从所述文件截取指定长度的可疑文本具体包括:根据执行所述数据检测方法的装置性能,确定所述指定长度,并截取所述权重大于指定阈值的词法记号后所述指定长度的文本作为可疑文本,截取的该可疑文本包含该词法记号。5.根据权利要求4所述的方法,所述步骤(3)中提取所述可疑文本中包含的语法短语和表达式具体包括:对所述可疑文本进行语法分析,将相邻的词法记号组合成符合程序设计语言规则的语法短语和表达式。6.根据权利要求4或5所述的方法,所述判断所述语法短语或表达式对于源代码构成的重要程度具体为:根据所述语法短语在语法树中的层级,判断其重要程度,根据所述表达式的运算复杂度,判断其重要程度。7.根据权利要求1所述的方法,所述步骤(4)中利用关键字词频统计或局部敏感哈希(LSH)方法提取所述标准文件的语义特征,将所述指定核心源代码的语义特征构造成敏...

【专利技术属性】
技术研发人员:邸宏宇王志海魏效征张静何晋昊喻波安鹏
申请(专利权)人:北京明朝万达科技股份有限公司
类型:发明
国别省市:北京;11

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

1