代码审计——四款主流的源代码扫描工具简介
工欲善其事,必先利其器。
在源代码的静态安全审计中,使用自动化工具代替人工漏洞挖掘,可以显著提高审计工作的效率。学会利用自动化代码审计工具,是每一个代码审计人员必备的能力。在学习PHP源代码审计的过程中,本人搜集使用了多款自动化工具。本文将简要介绍其中三款比较实用的工具:
Fortify SCA(Static Code Analyzer)是由Fortify软件公司(已被惠普收购)开发的一款商业版源代码审计工具。它使用的数据流分析技术,跨层跨语言地分析代码的漏洞产生,目前支持所有的主流开发语言。Fortify SCA是一个静态的、白盒的软件源代码安全测试工具。它通过内置的五大主要分析引擎:数据流、语义、结构、控制流、配置流等对应用软件的源代码进行静态分析,分析的过程中与它特有的软件安全漏洞规则进行地匹配、查找,从而将源代码中存在的安全漏洞扫描出来,并给于整理报告。
Checkmarx的CxEnterprise静态源代码安全漏洞扫描和管理方案是一款比较的、综合的源代码安全扫描和管理方案,该方案提供用户、角色和团队管理、权限管理、扫描结果管理、扫描调度和自动化管理、扫描资源管理、查询规则管理、扫描策略管理、更新管理、报表管理等多种企业环境下实施源代码安全扫描和管理功能。
VeraCode静态源代码扫描分析服务平台是商业运营好的平台,数千家 软件科技公司都在使用其服务发现软件安全漏洞、质量缺陷。
代码安全审计报告主要包含哪些内容
对于审计发现的问题,我们会对发现的问题进行相关分析并出具报告。针对具体的漏洞,报告中主要会包含以下内容:
1、指出该安全漏洞可能对目标系统产生的影响
2、对致漏洞的具体代码进行定位,分析形成漏洞的具体原因
3、对漏洞利用方式进行阐述,可以在客户提供的测试系统中进行验证测试
4、对漏洞的可利用行和风险等级进行评定
5、给出修复该漏洞的正确方案
代码安全存在的问题
现在软件功能都在朝着越来越复杂的方向变化,同时导致软件漏洞逐渐的增加。软件在设计开发过程中,存在着软件开发周期短,工作量大,没有涉及到或无暇顾及代码安全问题,甚至在软件设计前期就缺乏对代码安全的设计,同时也体现出我们的软件开发人员自身就缺乏安全编程的经验。在现在的互联网环境下,代码安全也面临着更多的安全挑战。
软件开发所面临的安全问题
1、代码与架构复杂
几十万、几百万行代码、一个业务分几十个模块几十个代码仓库家常便饭;开发语言多种多样,各种自研框架、流行框架应接不暇、架构还非常复杂。
以上两个问题对审计人员、SAST工具来说无疑都是很大的挑战。
2、工具准召率
没有工具是所谓银弹,规则、插件准召率很低,需要根据开发语言、编码风格自定义;工具对逻辑漏洞的无力,与业务逻辑漏洞大量曝光的漏洞态势之间的矛盾,工具、系统的运营也需要专门人力投入,从而不断提高工具的准召率。
3、心态
审计人员出于KPI的考虑,想着既然花了很长时间做了代码审计,为了体现工作量就必须说点什么,如果系统本来没有问题却在那挑刺,会更加不信任你。对于甲方代码审计人员,审计任务多、代码庞大是常态,如果不考虑后果的只提高速度,这种方式会遗漏掉细节,导致不能的审查。
版权所有©2025 天助网