来源: 发布日期:2017.12.15 点击量:
源代码审计又称为白盒测试,主要原理就是代码审计人员根据系统的类型和实现的方式,找出与之相匹配的漏洞攻击类型,通过工具或者人工的方式尝试在代码中找到可能导致漏洞的代码。
所有的安全漏洞都是由计算机程序代码造成的,因此安言咨询从软件开发的角度入手,从程序的业务功能、技术架构、代码着手,才能全面、高效、有效的发掘安全漏洞。代码审计适用于对安全水准要求较高,已经做过一些黑盒安全措施的系统。通过全面深入的代码安全审计,可以有效覆盖黑盒测试的盲区,显著提高系统安全性。通过代码审计发掘安全漏洞具有以下优势:
全面覆盖
代码中包含了软件系统所有的功能和逻辑细节以及安全漏洞。通过自动化和人工结合的代码安全审计,可以实现接近于100%覆盖率的安全漏洞挖掘。
快捷高效
通过自动化工具,可以快速发掘大量潜在安全漏洞,再结合人工深度代码审计,并扩展和验证工具的发现,综合效率明显高于黑盒渗透测试。
易于修复
修复漏洞,就是修复代码中错误。代码安全审计,从代码中发现问题,并在报告中提供准确、直观的代码级修复方法,让开发人员轻松高效、水到渠成地修复漏洞。
1.源代码审计的方法
目前安言咨询采用的技术方法框架如下:
关于代码审计的实施方法,目前主要有两种方法:自动化工具和人工审计。
关于自动化工具,目前常用的代码扫描的工具有:Fority、Coverity,使用工具扫描,需要将代码整理成扫描软件的格式,初步检查必要的源码是否存在,如类的源码,配置文件,访问页面,脚本文件等。使用工具的最大的优势就是可以快速地找到尽可能多的可能会导致安全问题的代码,但是,缺点也很明显,工具想包含大而全就很容易导致误报,关于误报的审查,还是需要人工参与,而且是需要有丰富经验的安全工作人员,否则,工具带来的优势可能会变成劣势。对工具扫描漏洞结果依然需要有安全工作经验的安全人员进行确认并整理,漏洞详细列表中并在漏洞日报列表中。每种类型漏洞确认需要做实际环境中能否绕过处理、有无做通用防护以及根据该项目实际情况存在的风险等级。
人工审计就是人工直接面对代码,不需要代代码进行特殊的整理,也不需要编译,参与代码审计人员根据自己的经验,依据系统的类型和特征,找出有针对性的的问题列表,制定规则,通过规则,找到所有可能的有问题的代码,再进行人工确认。人工审计,比较有针对性,可以更高效地发现代码中的问题。
目前参考的是基于业界权威的代码安全标准:OWASP开发指南以及移动安全项目以及CERT的安全编码标准,将提供更高质量的审计结果。
2.源代码审计流程
代码审计的主要流程有一下几个阶段:
1)系统评估
2)方案设计
3)审计实施
4)报告及支持
系统评估
此阶段是参与审计的人员了解系统的阶段,只有参与审计的人员全面了解了当前系统的尽可能多的信息,才可能从全方位地把握整个系统,列举出尽可能多的漏洞列表,审计结果才会更加完善。了解系统可以通过访谈、问卷、文档研读等手段,收集系统当前的业务、技术、安全等信息,充分了解客户的具体审计需求、侧重点,了解系统以前出现过的安全事件,可以目的更明确地去审计代码。
系统评估的方式有:与客户进行访谈和会议、通过产品和技术信息问卷收集目标系统关键信息和研读目标系统的业务需求文档、架构设计文档等。在了解系统的基础之上,为代码审计实施方案的制定收集充分的信息,保证方案设计有备而来、有的放矢
方案设计
根据系统业务、技术特点以及审计需求,和客户一起商讨、设计代码审计方案,确定审计策略、重点和工作量。根据系统整体功能、系统的架构以及模块划分业务流程,确定审计的目标和内容,以及使用什么工具和方法等,同时,也确认交付内容、形式、格式、验收标准。
审计实施
根据预定的方案,具体实施代码审计工作。审计对象不限于代码,也包括文档和访谈。项目的实施流程如下:
1) 客户准备好待分析的完整项目程序代码,交付给实施方。
2) 实施方使用自动化工具对代码进行扫描。
3) 安全专家针对敏感模块、审计重点,进行深度人工代码审计,并复查和拓展工具的扫描结果。
4) 综合工具和专家的发现,出具代码审计报告,给出漏洞详情和修复方法。
报告及支持
发布报告,包含漏洞以及修复方案信息,并提供技术支持,帮助甲方工程师透彻理解、全面正确地修复相关漏洞。
复查阶段
针对已经修复过的漏洞,进行复查可以查出修复不当或者未修复的漏洞。源代码审计复查结束后根据应用系统修复情况进,通过进行整理汇总,形成提交复查报告,报告中包含漏洞名称、修复状态、原漏洞的描述、原漏洞风险分析、原漏洞改进措施与防范。提供详细代码审计漏洞修复状态列表,包含漏洞代码的位置、修复状态、代码段、漏洞描述、风险描述和修改建议。
3.源代码审计成果
根据应用代码审计中发现的问题,通过进行整理汇总,形成提交报告,报告中包含发现的漏洞,进行漏洞分析、漏洞风险分析、漏洞改进措施与防范。提供详细代码审计漏洞列表,包含漏洞代码的位置、代码段、漏洞描述、风险描述和修改建议。
源代码审计提交的成果:
序号 |
检查项 |
描述 |
1 |
工作日报报告 |
适合代码审计所有环节中。当日发现高危漏洞,需要当天报告甲方 |
2 |
漏洞详细列表 |
代码审计报告阶段提供给甲方 |
3 |
代码审计正式报告 |
代码审计报告阶段提供给甲方 |
4 |
漏洞复查详细列表 |
代码审计报告阶段提供给甲方 |
5 |
代码审计复查正式报告 |
代码审计报告阶段提供给甲方 |
修复漏洞,就是修复代码中错误。安言咨询的代码安全审计报告中,不仅仅包含常规的漏洞原因及修复方法分析,更是直接提供了代码级的解决方案,真正面向开发人员,既授之以渔,也授之以鱼,大大提高了漏洞修复的效率和专业水准。
为了更好地让工程师能够理解漏洞和修复漏洞,安言咨询还提供以下技术支持:
报告讲解
安言咨询会为客户详细讲解每个安全漏洞,保证问题的原因以及危害得到清晰的理解
解决方案探讨
安言咨询会协助客户的软件工程师理解每个安全漏洞的解决方案,以保证问题能得到及时、全面、正确的修复。
安全开发库
如果客户的工程师缺乏安全专业知识,难以独立完成漏洞修复工作,安言咨询还提供了专家级的安全库,让工程师使用现成的安全API和框架,轻松、高效、专业的完成安全漏洞修复。
相关客户案例:
版权所有©上海安言信息技术有限公司 2014-2015