CN105740135B - 一种代码审计方法和装置 - Google Patents
一种代码审计方法和装置 Download PDFInfo
- Publication number
- CN105740135B CN105740135B CN201410745225.XA CN201410745225A CN105740135B CN 105740135 B CN105740135 B CN 105740135B CN 201410745225 A CN201410745225 A CN 201410745225A CN 105740135 B CN105740135 B CN 105740135B
- Authority
- CN
- China
- Prior art keywords
- key
- url
- operation parameters
- urls
- code
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 46
- 238000012550 audit Methods 0.000 title claims abstract description 27
- 238000013507 mapping Methods 0.000 claims description 36
- 238000004458 analytical method Methods 0.000 claims description 14
- 239000000284 extract Substances 0.000 claims description 7
- 238000000605 extraction Methods 0.000 claims 2
- 239000000243 solution Substances 0.000 description 7
- 238000012360 testing method Methods 0.000 description 6
- 238000011161 development Methods 0.000 description 4
- 230000035515 penetration Effects 0.000 description 4
- 230000008569 process Effects 0.000 description 4
- 238000012545 processing Methods 0.000 description 4
- 238000004891 communication Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012163 sequencing technique Methods 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 1
- 230000008878 coupling Effects 0.000 description 1
- 238000010168 coupling process Methods 0.000 description 1
- 238000005859 coupling reaction Methods 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 238000002347 injection Methods 0.000 description 1
- 239000007924 injection Substances 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008520 organization Effects 0.000 description 1
- 238000012805 post-processing Methods 0.000 description 1
- 230000009467 reduction Effects 0.000 description 1
Landscapes
- Computer And Data Communications (AREA)
- Storage Device Security (AREA)
Abstract
本发明公开了一种代码审计方法,包括:建立URL和操作参数与源代码之间的对应关系;根据用户访问URL和操作参数的频率、和/或安全扫描报告,选取关键URL和关键操作参数;对所述关键URL和关键操作参数对应的源代码进行审计。
Description
技术领域
本发明涉及信息安全技术领域,尤其涉及一种代码审计方法和装置。
背景技术
在应用系统设计开发过程中,由于开发规范不完善、落实不到位、开发人员技术水平参差不齐等因素,很容易导致开发出来的代码存在安全漏洞,如常见的结构化查询语言(Structured Query Language,SQL)注入漏洞、跨站脚本攻击(Cross Site Scripting,XSS)漏洞、缓冲区溢出漏洞、配置文件中敏感信息泄露漏洞等。这些漏洞如果不能及时发现并合理解决,会给上线后的WEB应用系统带来极大的安全隐患。
对应用系统进行代码安全审计是发现这些安全漏洞的主要方法,目前进行代码安全审计的方法主要包括:以工具扫描为主的代码审计方法和以人工审计为主的代码审计方法。
其中,以工具扫描为主的代码审计方法,主要是通过代码审计工具对源代码进行扫描,如fortify源代码扫描工具;然后在由专业人员对工具扫描报告进行分析和筛选,编制代码审计报告。这种方法中工具扫描全自动进行,用时短,一般用于对源代码的全量扫描,可以发现源代码中多种类型的漏洞,比如输入输出漏洞、访问控制漏洞等。但是由于系统本身代码量较大,逻辑较复杂,工具扫描出现的漏报和误报情况非常多,后期需要投入大量的人员对工具扫描报告进行分析,以尽可能多的发现和纠正工具扫描中的误报问题。实施过程包括两个操作步骤,两个输入输出;具体包括以下步骤:
步骤1:代码审计工具扫描;
在配置后扫描任务后,由扫描工具自动执行;其输入为需要审计的源代码,输出为扫描报告。
步骤2:扫描报告人工分析。
主要是采用人工分析的方式,梳理工具扫描报告中的代码审计结果,对工具扫描结果进行精简,去伪存真,最终形成代码审计报告;其输入为工具扫描报告,输出为代码审计报告。
以人工审计为主的代码审计方法,主要是通过经验丰富的专业技术人员对源代码进行人工审计,一般结合渗透测试、代码扫描工具作为辅助手段,最后编写代码审计报告。这种代码审计方法准确度很高,但需要投入大量的人力成本。实施过程包括四个操作步骤,多个输入和输出,其中步骤2和步骤3为辅助步骤,可以有效提高人工审计的效率;具体包括以下步骤:
步骤1:根据代码审计人员的经验,及人工代码审计相关流程,查看源代码,对源代码进行审计;其输入为源代码,输出为初步审计结果。
步骤2:采用代码审计工具对源代码进行扫描,以及采用应用安全扫描工具对应用系统进行安全扫描两种方式,输出代码审计扫描报告和应用系统漏洞扫描报告。
步骤3:采用网络攻击技术,模拟黑客对应用系统进行攻击测试。在代码审计工作中,渗透测试可以采用白盒测试的方式进行,输出渗透测试报告。
步骤4:综合人工审计、工具扫描、渗透测试等结果,进行全面分析,输出代码审计报告。
从现有的代码审计的技术方案中可以看出,当前采用的两种主要代码审计方法存在以下缺点:
以工具扫描为主的代码审计方法的审计报告中存在较多的误报和漏报,审计报告不能直接用于指导后期的代码修改,后期必须投入一定的专业技术人员,对审计报告进行人工分析和漏洞确认。且后期的人工分析工作是基于扫描报告的,是对扫描报告的梳理和精简,可以降低误报情况,但却无法解决工具扫描漏报的问题。据统计,一个具有100万行源代码的应用系统工具扫描报告中,剔除重复报的漏洞,误报率仍可达30%以上。由于工具扫描的局限性,对于代码逻辑错误漏洞和动态安全漏洞的漏报率高达60%。因此以工具扫描为主的代码审计方法虽然前期自动执行的效率较高,但由于存在误报漏报,且自动扫描报告可用性较差,后期还是需要一定的人员投入。
采用以人工审计为主的代码审计方法。代码审计工作量较大,实施周期较长,需要投入较大的人力物力成本,审计成本较高,不能适应系统业务的快速发展及降低系统安全防护成本的要求。另外,进行人工代码审计,其审计效果较多依赖于实施代码审计的专业技术人员,对人员的专业水平和实施经验要求较高,实施一次高水平的代码审计,对于多数组织或应用系统来说比较困难。经测算,如果每人每天审核5000行代码,在结合一定的辅助工具的情况下,提高1倍的审计效率,对一个具有100万行代码量的业务应用系统进行一次全面的代码审计,需要投入100个人天的工作量,约30万实施费用。按投入2到5个人计算,一般需要花费数周,甚至几个月。由于组织业务的高速发展,应用系统往往频繁更新以适应业务发展需求,等待数周甚至几个月的时间,以完成代码审计,然后再进行整改和加固,使系统达到上线或运行的安全要求,这显然是不能满足业务需求的。
综上所述,以工具扫描为主的代码审计,误报漏报多,后期加工的工作量大,且不能完全弥补漏报的问题;以人工审计为主的代码审计,工作量大,实施周期长,实施成本高,不适用于业务快速变更的应用系统。
发明内容
有鉴于此,本发明实施例期望提供一种代码审计方法和装置,能降低误报和漏报率,同时能降低分析的工作量,提高审计效率,大大缩短审计时间,降低审计成本。
为达到上述目的,本发明的技术方案是这样实现的:
本发明实施例提供了一种代码审计方法,所述方法包括:
建立统一资源定位符URL和操作参数与源代码之间的对应关系;
根据用户访问URL和操作参数的频率、和/或安全扫描报告,选取关键URL和关键操作参数;
对所述关键URL和关键操作参数对应的源代码进行审计。
上述方案中,所述建立URL和操作参数与源代码之间的对应关系包括:解析程序包配置文件中的映射关系,根据映射关系建立URL和操作参数与源代码之间的对应关系。
上述方案中,所述根据映射关系建立URL和操作参数与源代码之间的对应关系包括:
根据映射关系确定URL与操作参数之间的对应关系;
扫描程序文件,确定操作参数与源代码之间的对应关系;
确定URL与源代码之间的对应关系。
上述方案中,所述根据用户访问URL和操作参数的频率选取关键URL和关键操作参数包括:
分析应用系统访问操作日志,提取用户对URL和相关操作参数的访问频率,选取使用频率高于第一预设阈值的URL作为关键URL,选取使用频率高于第二预设阈值的操作参数作为关键操作参数。
上述方案中,所述根据安全扫描报告选取关键URL和关键操作参数包括:
分析系统应用安全扫描报告,提取报告中存在漏洞的URL和操作参数,选取漏洞严重等级高于第三预设阈值的URL为关键URL,选取漏洞严重等级高于第四预设阈值的操作参数作为关键操作参数。
本发明实施例还提供了一种代码审计装置,所述装置包括:映射模块、关键URL和关键操作参数选取模块、代码审计模块;其中,
所述映射模块,用于建立用统一资源定位符URL和操作参数与源代码之间的对应关系;
所述关键URL和关键操作参数选取模块,用于根据用户访问URL和操作参数的频率、和/或安全扫描报告,选取关键URL和关键操作参数;
所述代码审计模块,对所述关键URL和关键操作参数对应的源代码进行审计。
上述方案中,所述映射模块具体用于:解析程序包配置文件中的映射关系,根据映射关系建立URL和操作参数与源代码之间的对应关系。
上述方案中,所述映射模块具体用于:根据映射关系确定URL与操作参数之间的对应关系;扫描程序文件,确定操作参数源与代码之间的对应关系;确定URL与源代码之间的对应关系。
上述方案中,所述关键URL和关键操作参数选取模块具体用于:分析应用系统访问操作日志,提取用户对URL和相关操作参数的访问频率,选取使用频率高于第一预设阈值的URL作为关键URL,选取使用频率高于第二预设阈值的操作参数作为关键操作参数。
上述方案中,所述关键URL和关键操作参数选取模块具体用于:分析系统应用安全扫描报告,提取报告中存在漏洞的URL和操作参数,选取漏洞严重等级高于第三预设阈值的URL为关键URL,选取漏洞严重等级高于第四预设阈值的操作参数作为关键操作参数。
本发明实施例提供的代码审计方法和装置,建立统一资源定位符(URL,UniformResource Locator)和操作参数与源代码之间的对应关系;根据用户访问URL和操作参数的频率、和/或安全扫描报告,选取关键URL和关键操作参数;对所述关键URL和关键操作参数对应的源代码进行审计。如此,能够对优选出来的小部分关键代码进行重点审计,由于代码选取过程中参考了应用系统漏洞扫描报告,因此,能够准确定位问题代码,有效降低误报和漏报的概率。
另外,由于关键代码仅占全部代码量的15%到30%,因此,对选取出来的小部分关键代码进行重点审计,可以大大减小分析的工作量,提高审计的效率,大大缩短审计时间,降低审计成本。
附图说明
图1为本发明实施例代码审计方法流程示意图;
图2为本发明实施例代码审计装置结构示意图。
具体实施方式
在本发明实施例中,建立URL和操作参数与源代码之间的对应关系;根据用户访问URL和操作参数的频率、和/或安全扫描报告,选取关键URL和关键操作参数;对所述关键URL和关键操作参数对应的源代码进行审计。
一般情况下,HTTP的请求中会同时包括URL和操作参数,这里,所述URL是对可以从互联网上得到的资源的位置和访问方法的一种简洁表示,是互联网上标准资源的地址。互联网上的每个文件都有一个唯一的URL,它包含的信息指出文件的位置以及浏览器应该如何处理该URL。一般,URL从左到右由下述部分组成:Internet资源类型(scheme)、服务器地址(host)、端口(port)、路径(path);即URL的格式为:scheme://host:port/path,例如http://www.sohu.com/domain/HXWZ;
其中,Internet资源类型指WWW客户程序用来操作的工具,如“http://”表示WWW服务器,“ftp://”表示FTP服务器,“gopher://”表示Gopher服务器,而“new:”表示Newgroup新闻组;
服务器地址:指WWW页所在的服务器域名。
端口:对某些资源的访问来说,有时需给出相应的服务器提供端口号;
路径:指明服务器上某资源的位置,其格式与DOS系统中的格式一样,通常有目录/子目录/文件名这样结构组成,与端口一样,路径并非总是需要的。
所述操作参数,是指URL对应的资源中的具体操作,例如,当前URL对应的网络页面中包括多个具体操作,如登录、注册、退出等,不同的操作参数对应着不同的源代码,当用户点击相应操作时,即跳转到相应界面,例如,当用户点击注册时,即跳转到注册界面,等待用户输入的信息。
不同的操作参数,用户的使用频率不同,仍然以上述例子为例,对于一个比较成熟的网站来说,老用户在已经拥有账号信息的情况下,一般会选择登录操作,只有极少数没有账号的新用户,才会选择注册操作,因此,登录操作参数的访问频率会高于注册操作参数的访问频率。
下面结合附图及具体实施例,对本发明代码审计方法进一步详细描述。
图1为本发明实施例代码审计方法流程示意图,如图1所示,本发明实施例的代码审计方法包括以下步骤:
步骤101:建立URL和操作参数与源代码之间的对应关系;
本步骤具体包括:解析程序包配置文件中的映射关系,根据映射关系建立URL和操作参数与源代码之间的对应关系。
本发明实施例中,首先解析包含应用系统源代码的程序包,分析源代码中的配置文件和注解,抽象出Struts2中ActionMap;然后通过对ActionMap进行分析,建立URL及操作参数与源代码中相关代码的映射。
具体的,根据ActionMap确定URL与操作参数之间的对应关系;扫描程序文件,确定操作参数与源代码之间的对应关系;确定URL与源代码之间的对应关系。
本发明实施例中,通过对应用中struts2配置文件的扫描,提取URL与操作参数之间的映射MAP(URL to操作参数);对程序文件进行扫描,确定操作参数类与class、jsp等源代码之间的对应关系,并保存为调用关系图(操作参数to class、jsp),最后确定URL与源代码之间的对应关系。
步骤102:根据用户访问URL和操作参数的频率、和/或安全扫描报告,选取关键URL和关键操作参数;
本步骤中,所述根据用户访问URL和操作参数的频率选取关键URL和关键操作参数包括:分析应用系统访问操作日志,提取用户对URL和相关操作参数的访问频率,选取使用频率高于第一预设阈值的URL作为关键URL,选取使用频率高于第二预设阈值的操作参数作为关键操作参数。
本发明实施例中,通过系统接口或专有的采集控制平台,采集应用系统访问操作日志。从日志中提取用户访问的URL及操作参数,在一定的时间周期内对不同的用户访问的URL和操作参数的次数进行统计,按照访问频率高低进行排序,将排序结果记录到数据库。这里,所述一定的时间周期可以根据实际情况设定,例如,可以选择时间周期为一个星期,对一个星期内用户访问的URL和操作参数进行统计,并按使用频率由高到低进行排序后,将排序结果记录到数据库,并选择使用频率高于第一预设阈值的URL作为关键URL,选取使用频率高于第二预设阈值的操作参数作为关键操作参数。
所述第一预设阈值为标记URL使用频率的阈值,所述第二预设阈值为标记操作参数使用频率的阈值,所述第一预设阈值和第二预设阈值可以根据实际代码审计要求进行设置,例如,当对关键URL和关键操作参数的要求较高时,可以设置相对较高的使用频率预设阈值;也可以根据URL/操作参数按照使用频率高低进行排序后的排序结果进行设置,例如,选取排序队列中前30%的URL/操作参数为关键URL/操作参数,即设置位于排序队列30%位置的URL/操作参数的使用频率为第一预设阈值/第二预设阈值。
所述根据安全扫描报告选取关键URL和关键操作参数包括:分析系统应用安全扫描报告,提取报告中存在漏洞的URL和操作参数,选取漏洞严重等级高于第三预设阈值的URL为关键URL,选取漏洞严重等级高于第四预设阈值的操作参数作为关键操作参数。
本发明实施例中,通过安全扫描工具定期扫描产生的应用安全扫描报告,所述安全扫描报告中包括漏洞严重等级,一般情况下,漏洞严重等级一般分为:严重、高、中、低、信息五级,漏洞越严重,漏洞严重等级越高,即“严重”为五级,“中”为三级,“信息”为一级。本发明实施例中,首先将报告中存在漏洞的URL/操作参数按照漏洞严重程度由高到低的顺序进行排序,然后取漏洞严重等级高于第三预设阈值的URL为关键URL,选取漏洞严重等级高于第四预设阈值的操作参数作为关键操作参数。
本发明实施例中仅仅是以上述漏洞严重等级为例,在实际应用中,也可以选取其他方式的分级。所述第三预设阈值为标记URL漏洞严重程度的阈值,所述第四预设阈值为标记操作参数漏洞严重程度的阈值,所述第三预设阈值和第四预设阈值可以根据实际代码审计要求进行设置,例如,当对关键URL和关键操作参数的要求较高时,可以设置相对较高的使用第三预设阈值和第四预设阈值;也可以根据URL/操作参数按照漏洞严重程度由高到低进行排序后的排序结果进行设置,例如选取排序队列中前50%的URL/操作参数为关键URL/操作参数,即设置位于排序队列50%位置的URL/操作参数的漏洞等级为第三预设阈值/第四预设阈值。
本发明实施例中,步骤101和步骤102并不限定具体的执行顺序,步骤102的选取关键URL和关键操作参数的步骤可以先于步骤101执行,也可以在步骤101之后执行,也可以和步骤101同时执行。
当步骤101先于步骤102执行或步骤101与步骤102同时执行时,所述建立URL和操作参数与源代码之间的对应关系包括:建立当前所有URL和操作参数与源代码之间的对应关系;当步骤102先于步骤101执行时,所述建立URL和操作参数与源代码之间的对应关系包括:建立步骤102中选取出来的关键URL和关键操作参数与源代码之间的对应关系。
步骤103:对所述关键URL和关键操作参数对应的源代码进行审计。
本发明实施例中,根据步骤101中建立的URL和操作参数与源代码之间的对应关系,以及步骤102中确定的关键URL和关键操作参数,确定关键URL和关键操作参数对应的源代码,采用工具扫描、和/或人工分析的方式对确定的源代码进行审计。
本发明实施例还提供了一种代码审计装置,图2为本发明实施例代码审计装置结构示意图,如图2所示,所述装置包括:映射模块21、关键URL和关键操作参数选取模块22、代码审计模块23;其中,
所述映射模块21,用于建立URL和操作参数与源代码之间的对应关系;
本发明实施例中,所述映射模块21具体用于:解析程序包配置文件中的映射关系,根据映射关系建立URL和操作参数与源代码之间的对应关系。
本发明实施例中,所述映射模块21首先解析包含应用系统源代码的程序包,分析源代码中的配置文件和注解,抽象出Struts2中ActionMap;然后通过对ActionMap进行分析,建立URL及操作参数与源代码中相关代码的映射。
具体的,所述映射模块21具体用于:根据ActionMap确定URL与操作参数之间的对应关系;扫描程序文件,确定操作参数源与代码之间的对应关系;确定URL与源代码之间的对应关系。
例如,所述映射模块21通过对应用中struts2配置文件的扫描,提取URL与操作参数之间的映射MAP(URL to操作参数);对程序文件进行扫描,确定操作参数类与class、jsp等源代码之间的对应关系,并保存为调用关系图(操作参数to class、jsp),最后确定URL与源代码之间的对应关系。
所述关键URL和关键操作参数选取模块22,用于根据用户访问URL和操作参数的频率、和/或安全扫描报告,选取关键URL和关键操作参数;
本发明实施例中,所述关键URL和关键操作参数选取模块22具体用于:通过分析应用系统访问操作日志,提取用户对URL和相关操作参数的访问频率,选取使用频率高于第一预设阈值的URL作为关键URL,选取使用频率高于第二预设阈值的操作参数作为关键操作参数;分析系统应用安全扫描报告,提取报告中存在漏洞的URL和操作参数,选取漏洞严重等级高于第三预设阈值的URL为关键URL,选取漏洞严重等级高于第四预设阈值的操作参数作为关键操作参数。
本发明实施例中,所述关键URL和关键操作参数选取模块22通过系统接口或专有的采集控制平台,采集应用系统访问操作日志。从日志中提取用户访问的URL及操作参数,在一定的时间周期内对不同的用户访问的URL和操作参数的次数进行统计,按照访问操作频率高低进行排序,将排序结果记录到数据库,并选择使用频率高于第一预设阈值的URL作为关键URL,选取使用频率高于第二预设阈值的操作参数作为关键操作参数。
所述关键URL和关键操作参数选取模块22通过安全扫描工具定期扫描产生的应用安全扫描报告,所述安全扫描报告中包括漏洞严重等级,一般情况下,漏洞严重等级一般分为:严重、高、中、低、信息五级,漏洞越严重,漏洞严重等级越高,即“严重”为五级,“中”为三级,“信息”为一级。本发明实施例中,所述关键URL和关键操作参数选取模块22首先将报告中存在漏洞的URL/操作参数按照漏洞严重程度由高到低的顺序进行排序,然后取漏洞严重等级高于第三预设阈值的URL为关键URL,选取漏洞严重等级高于第四预设阈值的操作参数作为关键操作参数。
所述代码审计模块23,对所述关键URL和关键操作参数对应的源代码进行审计。
本发明实施例中,所述代码审计模块23根据步骤101中建立的URL和操作参数与源代码之间的对应关系,以及步骤102中确定的关键URL和关键操作参数,确定关键URL和关键操作参数对应的源代码,采用采工具扫描、和/或人工分析的方式对确定的源代码进行审计。
图2中所示的代码审计装置中的各处理模块的实现功能,可参照前述代码审计方法的相关描述而理解。本领域技术人员应当理解,图2所示的代码审计装置中各处理模块的功能可通过运行于处理器上的程序而实现,也可通过具体的逻辑电路而实现,比如:可由中央处理器(CPU)、微处理器(MPU)、数字信号处理器(DSP)、或现场可编程门阵列(FPGA)实现。
在本发明所提供的几个实施例中,应该理解到,所揭露的方法和装置,可以通过其他的方式实现。以上所描述的装置实施例仅仅是示意性的,例如,所述模块的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个模块或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的通信连接可以是通过一些接口,设备或模块的间接耦合或通信连接,可以是电性的、机械的或其他形式的。
上述作为分离部件说明的模块可以是、或也可以不是物理上分开的,作为模块显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部模块来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能模块可以全部集成在一个处理单元中,也可以是各模块分别单独作为一个单元,也可以两个或两个以上模块集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本发明实施例上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。
本发明是实例中记载的代码审计方法和装置只以本发明所述实施例为例,但不仅限于此,只要涉及到该代码审计方法和装置均在本发明的保护范围。
以上所述,仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。
Claims (10)
1.一种代码审计方法,其特征在于,所述方法包括:
建立统一资源定位符URL和操作参数与源代码之间的对应关系;
根据用户访问URL和操作参数的频率、和/或安全扫描报告,选取关键URL和关键操作参数;
对所述关键URL和关键操作参数对应的源代码进行审计。
2.根据权利要求1所述方法,其特征在于,所述建立统一资源定位符URL和操作参数与源代码之间的对应关系包括:解析程序包配置文件中的映射关系,根据映射关系建立URL和操作参数与源代码之间的对应关系。
3.根据权利要求2所述方法,其特征在于,所述根据映射关系建立URL和操作参数与源代码之间的对应关系包括:
根据映射关系确定URL与操作参数之间的对应关系;
扫描程序文件,确定操作参数与源代码之间的对应关系;
确定URL与源代码之间的对应关系。
4.根据权利要求1所述方法,其特征在于,所述根据用户访问URL和操作参数的频率选取关键URL和关键操作参数包括:
分析应用系统访问操作日志,提取用户对URL和相关操作参数的访问频率,选取使用频率高于第一预设阈值的URL作为关键URL,选取使用频率高于第二预设阈值的操作参数作为关键操作参数。
5.根据权利要求1或4所述方法,其特征在于,所述根据安全扫描报告选取关键URL和关键操作参数包括:
分析系统应用安全扫描报告,提取报告中存在漏洞的URL和操作参数,选取漏洞严重等级高于第三预设阈值的URL为关键URL,选取漏洞严重等级高于第四预设阈值的操作参数作为关键操作参数。
6.一种代码审计装置,其特征在于,所述装置包括:映射模块、关键URL和关键操作参数选取模块、代码审计模块;其中,
所述映射模块,用于建立统一资源定位符URL和操作参数与源代码之间的对应关系;
所述关键URL和关键操作参数选取模块,用于根据用户访问URL和操作参数的频率、和/或安全扫描报告,选取关键URL和关键操作参数;
所述代码审计模块,对所述关键URL和关键操作参数对应的源代码进行审计。
7.根据权利要求6所述装置,其特征在于,所述映射模块具体用于:解析程序包配置文件中的映射关系,根据映射关系建立URL和操作参数与源代码之间的对应关系。
8.根据权利要求7所述装置,其特征在于,所述映射模块具体用于:根据映射关系确定URL与操作参数之间的对应关系;扫描程序文件,确定操作参数与源代码之间的对应关系;确定URL与源代码之间的对应关系。
9.根据权利要求6所述装置,其特征在于,所述关键URL和关键操作参数选取模块具体用于:分析应用系统访问操作日志,提取用户对URL和相关操作参数的访问频率,选取使用频率高于第一预设阈值的URL作为关键URL,选取使用频率高于第二预设阈值的操作参数作为关键操作参数。
10.根据权利要求6所述装置,其特征在于,所述关键URL和关键操作参数选取模块具体用于:分析系统应用安全扫描报告,提取报告中存在漏洞的URL和操作参数,选取漏洞严重等级高于第三预设阈值的URL为关键URL,选取漏洞严重等级高于第四预设阈值的操作参数作为关键操作参数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410745225.XA CN105740135B (zh) | 2014-12-08 | 2014-12-08 | 一种代码审计方法和装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201410745225.XA CN105740135B (zh) | 2014-12-08 | 2014-12-08 | 一种代码审计方法和装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN105740135A CN105740135A (zh) | 2016-07-06 |
CN105740135B true CN105740135B (zh) | 2018-06-26 |
Family
ID=56237872
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201410745225.XA Active CN105740135B (zh) | 2014-12-08 | 2014-12-08 | 一种代码审计方法和装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105740135B (zh) |
Families Citing this family (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN106594825B (zh) * | 2016-11-25 | 2019-02-12 | 北京小米移动软件有限公司 | 抽烟机进行信息提醒方法、装置及终端 |
CN111352963A (zh) * | 2018-12-24 | 2020-06-30 | 北京奇虎科技有限公司 | 一种数据统计方法及装置 |
CN110109840A (zh) * | 2019-05-10 | 2019-08-09 | 重庆八戒电子商务有限公司 | 基于版本号比较的代码审计方法、审计装置及介质 |
CN110968868A (zh) * | 2019-11-20 | 2020-04-07 | 北京国舜科技股份有限公司 | 应用安全审计方法、装置、电子设备及存储介质 |
CN111008376B (zh) * | 2019-12-09 | 2021-11-05 | 国网山东省电力公司电力科学研究院 | 一种基于代码动态分析的移动应用源代码安全审计系统 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101256596A (zh) * | 2008-03-28 | 2008-09-03 | 北京搜狗科技发展有限公司 | 一种站内导航的方法及系统 |
CN103679018A (zh) * | 2012-09-06 | 2014-03-26 | 百度在线网络技术(北京)有限公司 | 一种检测csrf漏洞的方法和装置 |
CN103679053A (zh) * | 2013-11-29 | 2014-03-26 | 北京奇虎科技有限公司 | 一种网页篡改的检测方法及装置 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP5468837B2 (ja) * | 2009-07-30 | 2014-04-09 | 株式会社日立製作所 | 異常検出方法、装置、及びプログラム |
-
2014
- 2014-12-08 CN CN201410745225.XA patent/CN105740135B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101256596A (zh) * | 2008-03-28 | 2008-09-03 | 北京搜狗科技发展有限公司 | 一种站内导航的方法及系统 |
CN103679018A (zh) * | 2012-09-06 | 2014-03-26 | 百度在线网络技术(北京)有限公司 | 一种检测csrf漏洞的方法和装置 |
CN103679053A (zh) * | 2013-11-29 | 2014-03-26 | 北京奇虎科技有限公司 | 一种网页篡改的检测方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN105740135A (zh) | 2016-07-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2777434C (en) | Verifying application security vulnerabilities | |
CN105740135B (zh) | 一种代码审计方法和装置 | |
CN105068925B (zh) | 软件安全缺陷发现系统 | |
CN101377759B (zh) | 自动化界面测试系统 | |
CN109062780B (zh) | 自动化测试用例的开发方法及终端设备 | |
Artzi et al. | Practical fault localization for dynamic web applications | |
CN103942497B (zh) | 一种取证式网站漏洞扫描方法和系统 | |
CN103092761B (zh) | 基于差异信息文件识别和检查修改代码块的方法及装置 | |
CN108628748B (zh) | 自动化测试管理方法和自动化测试管理系统 | |
CN100561445C (zh) | 一种根据程序内容自动生成测试数据集的方法和装置 | |
CN107547490B (zh) | 一种扫描器识别方法、装置及系统 | |
CN102043720A (zh) | 利用sql语句自动生成测试数据的方法和装置 | |
CN116346456A (zh) | 业务逻辑漏洞攻击检测模型训练方法及装置 | |
CN115269444A (zh) | 代码静态检测方法、装置及服务器 | |
CN107430590B (zh) | 用于数据比较的系统和方法 | |
CN110287700A (zh) | 一种iOS应用安全分析方法及装置 | |
CN117493188A (zh) | 接口测试方法及装置、电子设备及存储介质 | |
Huynh et al. | An empirical investigation into open source web applications’ implementation vulnerabilities | |
CN110768860B (zh) | 一种测试方法、测试装置及电子设备 | |
KR102051580B1 (ko) | Cdisc 기반 통합 임상 시험 장치 | |
US8464103B2 (en) | Generating a functional coverage model from a trace | |
US11880470B2 (en) | System and method for vulnerability detection in computer code | |
Alshahwan et al. | Crawlability metrics for web applications | |
WO2021104027A1 (zh) | 代码性能检测方法、装置、设备及存储介质 | |
CN114003916A (zh) | Web角色纵向越权漏洞的测试方法、系统、终端及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |