一种基于自然语言处理技术的代码泄露检测系统和方法技术方案

技术编号:23765216 阅读:39 留言:0更新日期:2020-04-11 19:28
本发明专利技术公开了一种基于自然语言处理技术的代码泄露检测系统和方法,通过将代码视为更严格更具逻辑性的特殊语言,活用自然语言处理技术对源代码进行解析并分析,以取代人工解析、分析的过程,提取最能代表项目的关键信息;使用网络爬虫技术提取网页信息、并通过机器学习技术对采集的网页信息进行内容筛选提取;使用传统的文本相似度计算方法与深度学习算法相结合的策略,对源代码与网上可疑代码进行相似度比较,按照相似度高低显示可疑网页,为最终判定提供依据。解决传统的人工手段解析源代码并从源码中提取关键信息时,过度依赖人的经验、大规模代码解析的低效、耗时耗财力等问题。

A code leak detection system and method based on natural language processing technology

【技术实现步骤摘要】
一种基于自然语言处理技术的代码泄露检测系统和方法
本专利技术属于信息安全
,具体涉及一种基于自然语言处理技术的代码泄露检测系统和方法。
技术介绍
企业的信息安全关系到企业的正常发展。对于IT类企业,信息泄露是典型的信息安全事故,主要表现为项目中的代码、文档等资料泄露到网上。近年来,代码泄露事件频发,对企业或者个人都产生了一些负面影响,信息安全面临极大的挑战。产品核心代码泄露,可能会对产品的安全带来潜在威胁;企业机密信息泄露,可能会对企业造成直接经济损失;不仅是企业,信息泄露还会危害公众用户个人隐私。因此避免信息泄露很有必要。那么,信息是如何泄露出去的呢?信息安全的威胁来自多个方面,例如病毒木马、黑客攻击、局域网内部ARP、溢出攻击、内部人员故意泄密、内部人员无意泄密、数据信息存储设备故障、自然灾害等。据调查报告显示,80%的安全威胁来自企业内部,60%的人离职会带走企业数据。针对这些威胁,出现了相关的安全策略以及产品或者服务。例如以下预防信息泄露产品。①DLP(DataLeakagePrevention)数据泄露防护数据泄密防护(DLP)是通过一定的技术手段,防止企业的指定数据或信息资产以违反安全策略规定的形式流出企业的一种策略。通过加密、文档维护、文档外发限制、离线办公、设备管理、日志审计等多种方法,进行防护。②加密软件透明加密软件、磁盘加密软件等。所谓强制透明加密,是指采用后台自动加密方式,对操作者所存储的文档和数据实时进行强制加密,而操作者并无直观的感知。强制透明加密软件对于研发部门、设计部门或者其他核心部门的所有指定格式文档,均采用加密方式存储。加密方式对部门之间的文档数据交互,以及对外信息交流产生直接的影响,因此,这种软件往往只部署在单位最核心的部门,或者是小型用户单位。不可能大规模部署在大集团用户。③安全过滤网关的防泄密以关键词查询为核心技术的安全过滤网关防泄密产品。这种产品一般是针对网页发帖、IM信息交互、邮件外发等内容进行深度过滤。利用深度的内容钻取技术获取传输的真实内容,附件可以准确的还原。通过对网络出口进行内容过滤的方式,一方面是因为内容本身没有进行加密和控制权限,另一方面是防范的途径非常有限。④移动存储介质管理移动存储介质往往成为一种泄密出口和泄密工具。一般会有部署在单位内部的移动介质管理系统,和单个的加密移动存储产品两种类型。不管移动存储介质管理产品多么的完善,都不足以防止单位内部信息泄漏。市场上目前没有针对代码文档泄露至网上的检测产品或者服务。由于信息泄露事故主要是由于企业内部员工的违规操作造成的,比如在个人博客中公开企业内部项目代码、使用公共存储服务上传公司项目代码等。为了避免信息泄露的发生,企业一方面需要加强员工的信息安全教育,防患于未然,另一方面需要定期检查现有项目,尽早发现已经发生的泄露事件。人工检查项目是检查信息泄露的一种对策。由项目的负责人(或者项目成员)从项目中抽取关键字,使用搜索引擎搜索关键字,然后核对搜索出来的网页是否含有从项目中泄露出来的内容。人工检查的局限性在于企业有众多的历史项目,其中不乏代码量很大的大型项目,单纯依靠人工检查,受限于人工成本,只能检查有限的范围。如果能通过技术手段自动化整个检查过程,提升检查效率并提高检查精度,有助于尽早地检测到信息泄露情况并作出对应。机器学习是一种能够赋予机器学习的能力,以此让它完成直接编程无法完成的功能的方法。从实践的意义上来说,机器学习是一种通过利用数据,训练出模型,然后使用模型预测的一种方法。从应用领域上来说,机器学习跟模式识别,统计学习,数据挖掘,计算机视觉,语音识别,自然语言处理(NLP)等领域有着很深的联系。其中NLP技术的主要目的是让机器能够理解人类的语言,可以应用到智能问答、主题提取、机器翻译等领域。代码文本使用的编程语言作为比人类语言有着更加严格规则的人工语言,同样也可以作为NLP技术的使用对象。
技术实现思路
本专利技术所要解决的技术问题是针对上述现有技术的不足,提供一种基于自然语言处理技术的代码泄露检测系统和方法。为实现上述技术目的,本专利技术采取的技术方案为:一种基于自然语言处理技术的代码泄露检测系统,包括权限管理模块、邮件通知模块、日志记录模块、系统设定模块、项目登录模块、项目解析模块、关键字管理模块、搜索引擎模块、可疑分析判定模块,可疑页面表示及确认模块、Dashboard模块、数据库。所述权限管理模块,用于针对企业用户管理系统访问权限的设定;所述邮件通知模块,用于项目解析完成和信息泄露检测完成的情况下,向相关人员发送相关邮件;所述日志记录模块,用于异常情况、错误发生时记录相关日志信息,方便解决问题;所述系统设定模块,用于针对搜索引擎的设置和相似度阈值设置进行系统设定;所述项目登录模块,用于代码上传及相关基础信息设定;所述项目解析模块,用于代码解析,并提取关键字;所述关键字管理模块,用于对关键字进行增删改查;所述搜索引擎模块,用于基于搜索引擎取得可疑页面;所述可疑分析判定模块,用于对提取的可疑页面提取网页正文中的代码,并与项目代码进行相似度计算;所述可疑页面表示及确认模块,用于对提取的可疑页面提取网页正文中的代码,按照可疑度排序表示后,人工可对可疑页面进行判定,确认是否真实泄露所述Dashboard模块,用于对项目数量、关键字数量、可疑网页数量、真实泄露网页数量等进行统计分析;所述数据库,用于存储代码泄露检测系统的数据。为优化上述技术方案,采取的具体措施还包括:上述的搜索引擎模块包括爬虫模块和搜索API模块;所述爬虫模块基于Google、Baidu和Yahoo通用搜索引擎搜索爬取可疑页面;所述搜索API模块基于Google提供的搜索API以及GitHub提供的搜索API,取得可疑页面。一种基于自然语言处理技术的代码泄露检测方法,所述方法包括以下步骤:步骤1:上传项目源代码至项目登录模块,设定项目的基本信息;步骤2:项目解析模块对项目源代码进行解析,提取函数、变量、注释、类、包等代码信息,基于代码信息提取关键字(Keyword)代码信息;步骤3:关键字管理模块对关键字进行人工确认,包括增、删、改和查;步骤3:搜索引擎模块检索关键字代码信息,抓取网页并保存;步骤4:使用爬虫模块或者搜索API模块分析搜索结果并保存;步骤5:可疑分析判定模块将可疑网页中的代码块与源代码进行相似度比较;步骤6:设定相似度阈值,可疑页面表示及确认模块显示高可疑网页相关信息;步骤7:采用深度学习方法,对可疑度计算进行准确度改善。上述的步骤1具体为:步骤1.1:通过SVN、GIT或本地文件上传的形式,将源代码上传至系统;步骤1.2:对步骤1.1中上传的源代码进行预处理,消除与源代码完全无关的文件,只保本文档来自技高网
...

【技术保护点】
1.一种基于自然语言处理技术的代码泄露检测系统,其特征在于,包括权限管理模块、邮件通知模块、日志记录模块、系统设定模块、项目登录模块、项目解析模块、关键字管理模块、搜索引擎模块、可疑分析判定模块,可疑页面表示及确认模块、Dashboard模块和数据库;/n所述权限管理模块,用于针对企业用户管理系统访问权限的设定;/n所述邮件通知模块,用于项目解析完成和信息泄露检测完成的情况下,向相关人员发送相关邮件;/n所述日志记录模块,用于异常情况、错误发生时记录相关日志信息,方便解决问题;/n所述系统设定模块,用于针对搜索引擎的设置和相似度阈值设置进行系统设定;/n所述项目登录模块,用于代码上传及相关基础信息设定;/n所述项目解析模块,用于代码解析,并提取关键字;/n所述关键字管理模块,用于对关键字进行增删改查;/n所述搜索引擎模块,用于基于搜索引擎取得可疑页面;/n所述可疑分析判定模块,用于对提取的可疑页面提取网页正文中的代码,并与项目代码进行相似度计算;/n所述可疑页面表示及确认模块,用于对提取的可疑页面提取网页正文中的代码,按照可疑度排序表示后,人工可对可疑页面进行判定,确认是否真实泄露/n所述Dashboard模块,用于对项目数量、关键字数量、可疑网页数量、真实泄露网页数量等进行统计分析;/n所述数据库,用于存储代码泄露检测系统的数据。/n...

【技术特征摘要】
1.一种基于自然语言处理技术的代码泄露检测系统,其特征在于,包括权限管理模块、邮件通知模块、日志记录模块、系统设定模块、项目登录模块、项目解析模块、关键字管理模块、搜索引擎模块、可疑分析判定模块,可疑页面表示及确认模块、Dashboard模块和数据库;
所述权限管理模块,用于针对企业用户管理系统访问权限的设定;
所述邮件通知模块,用于项目解析完成和信息泄露检测完成的情况下,向相关人员发送相关邮件;
所述日志记录模块,用于异常情况、错误发生时记录相关日志信息,方便解决问题;
所述系统设定模块,用于针对搜索引擎的设置和相似度阈值设置进行系统设定;
所述项目登录模块,用于代码上传及相关基础信息设定;
所述项目解析模块,用于代码解析,并提取关键字;
所述关键字管理模块,用于对关键字进行增删改查;
所述搜索引擎模块,用于基于搜索引擎取得可疑页面;
所述可疑分析判定模块,用于对提取的可疑页面提取网页正文中的代码,并与项目代码进行相似度计算;
所述可疑页面表示及确认模块,用于对提取的可疑页面提取网页正文中的代码,按照可疑度排序表示后,人工可对可疑页面进行判定,确认是否真实泄露
所述Dashboard模块,用于对项目数量、关键字数量、可疑网页数量、真实泄露网页数量等进行统计分析;
所述数据库,用于存储代码泄露检测系统的数据。


2.根据权利要求1所述的一种基于自然语言处理技术的代码泄露检测系统,其特征在于,所述搜索引擎模块包括爬虫模块和搜索API模块;
所述爬虫模块基于Google、Baidu和Yahoo通用搜索引擎搜索爬取可疑页面;
所述搜索API模块基于Google提供的搜索API以及GitHub提供的搜索API,取得可疑页面。


3.根据权利要求2所述的一种基于自然语言处理技术的代码泄露检测系统的代码泄露检测方法,其特征在于,所述方法包括以下步骤:
步骤1:上传项目源代码至项目登录模块,设定项目的基本信息;
步骤2:项目解析模块对项目源代码进行解析,提取函数、变量、注释、类、包等代码信息,基于代码信息提取关键字代码信息;
步骤3:关键字管理模块对关键字进行人工确认,包括增、删、改和查;
步骤3:搜索引擎模块检索关键字代码信息,抓取网页并保存;
步骤4:使用爬虫模块或者搜索API模块分析搜索结果并保存;
步骤5:可疑分析判定模块将可疑网页中的代码块与源代码进行相似度比较;
步骤6:设定相似度阈值,可疑页面表示及确认模块显示高可疑网页相关信息;
步骤7:采用深度学习方法,对可疑度计算进行准确度改善。


4.根据权利要求3所述的一种基于自然语言处理技术的代码泄露检测系统的代码泄露检测方法,其特征在于,所述步骤1具体为:
步骤1.1:通过SVN、GIT或本地文件上传的形式,将源代码上传至系统;
步骤1.2:对步骤1.1中上传的源代码进行预处理,消除与源代码完全无关的文件,只保留源代码文本文件。


5.根据权利要求4所述的一种基于自然语言处理技术的代码泄露检测系统的代码泄露检测方法,其特征在于,所述步骤2具体为:
步骤2.1:对步骤1.2中取得的源代码文本文件进行解析,将源代码按文件提取关键字信息,所述关键信息包括包、类、函数、变量和注释;
步骤2.2:将步骤2.1中提取的关键字信息与...

【专利技术属性】
技术研发人员:许方超钱志强周文烨陈奕鑫
申请(专利权)人:南京富士通南大软件技术有限公司
类型:发明
国别省市:江苏;32

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

1