源代码安全扫描及服务技术方案.ppt
《源代码安全扫描及服务技术方案.ppt》由会员分享,可在线阅读,更多相关《源代码安全扫描及服务技术方案.ppt(37页珍藏版)》请在三一办公上搜索。
1、源代码安全扫描及审计服务 方案报告2012年08月,汇报提纲,扫描内容,2,定价方案,4,服务介绍,3,背景介绍,1,项目背景源代码安全扫描及服务项目,随着市场竞争的日益激烈,以及通信与计算机技术的不断发展,业务支持系统的软件规模日益庞大,应用环境日益复杂,新业务需求层出不穷,旧业务不断更新优化;对系统源代码的质量要求也越来越高.从提高系统的安全性及稳定性出发;由中国移动广东分公司牵头针对开发商(目前是针对华为,从兴)的源代码进行质量控制,保证源代码的质量;确保系统稳定,高效的运行,行业现况,项目规模越来越庞大,业务复杂度越来越高开发团队庞大,个人开发风格,水平不一致,导致开发出来的代码质量高
2、低不一对行业项目的安全要求越来越高,因此对项目的质量则越高由此上三大因素,故引入代码扫描控制不利因素,提升质量,引入背景,背景介绍,项目优点,优点1,优点2,源代码扫描是基于专利技术分析引擎开发的软件基础上实施综合应用了多种近年来最先进的静态分析技术是出色的软件静态分析软件是唯一集效率与速度为一身的强大而又精确的企业级源代码分析工具,通过该项目开发人员在桌面端快速而准确的定位安全隐患识别错误 和软件架构问题;通过项目分析软件研发经理可以直接看到软件代码和架构的 安全性和可靠性视图,避免软件研发经理往往需要研读软件代码才能发现软件中的问题的弊端软件安全经理可以在软件开发生命周期中发现、评估、纠正
3、和度量软件安全,项目效益,引进代码扫描项目之后当年的项目成本降低50%,引进代码扫描项目之后项目成本缩减200000美金,We had a very tightschedule and withoutKlocwork Insight,we would have haddifficulty meeting ourobjectives on time.,项目引进代码扫描项目之后项目成员减少900h/人的工作成本,“,“,Justin Thomas,Software Team Lead,Johns Hopkins APL C&C,源码扫描在NGBOSS的应用,Klocwork 是一个企业级源代码分析
4、工具,支持对c,c+,java和c#语言的扫描分析;可快速而准确的定位安全隐患、识别错误 和软件架构问题,为各大企业节约大量的成本,降低了整个软件过程中的风险成本在对从兴NGBOSS项目引进klocwork之后,一共扫描了12次,其版本质量明显提升;在以往代码出现的诸如内存溢出,数据越界等较严重错误的数量大幅下降.同时对各种不同类型错误还会生成对应的分析报告,指出其在开发中应注意的问题.,引进Klocwork后,代码错误减少,十大错误报告,汇报提纲,扫描内容,2,定价方案,4,服务介绍,3,背景介绍,1,3.软件架构分析,2.安全漏洞检测,4.软件度量分析,5.可定制代码分析,6.开发人员ID
5、E集成,1.缺陷检测,180类Java错误、241类C/C+错误、40类C#错误,自动生成软件架构图,根据结构和依赖关系给出建议,代码行数、循环数、继承数等度量指标,缓冲区溢出、DNS欺骗、注入缺陷等15类安全漏洞,根据公司特色定制编码标准和扫描策略,和Eclipse、Visual Stdio、Rational等集成,效率最高,源代码安全扫描及审计项目,目前使用的源码扫描工具klocwork是一款基于专利技术引擎开发的强大的静态代码分析软件,具备6大功能,扫描内容,下面介绍下缺陷检测中的一些详细信息,支持不同语言的扫描;其中可以检测出180种Java的错误,241种C+错误,下面列举详细缺陷类
6、型,其中每个缺陷类型下包含各类子错误,下面对在源代码扫描中的缺陷类型选取几例常见的加以说明缺陷类型:内存管理问题子错误代码:MLK.MIGHT-可能存在的内存泄漏可能存在的内存泄漏(类似的代码错误MLK.MUST-已经存在内存泄漏),这个报告并非一定存在内存泄漏,提示在源码中存在此类风险.摘取的代码实例如下:源码:G:c+reportreport3tasksftpfile00128_FixFeeCompoGd.cpp 行 115错误描述:Possible memory leak.Dynamic memory stored in loadInfo allocated through functi
7、on new at line 111 can be lost at line 115分析:为loadInfo分配的内存可能在115行的代码中发生泄漏,需要对调用的代码增加验证条件,扫描内容,缺陷类型:数组越界子错误代码:ABR-数组越界此类错误多发生在堆,栈和数据段中,但报出来的一般都是缺陷。摘取的实例如下:源码:G:c+bizlibcontrolccmCM_COM_MngSubs.cpp,行623接口:Initialize错误描述:Buffer overflow,array index of subsproperty.enum_ may be out of bounds.Array subs
8、property.enum_ of size 21 may use index value(s)0.32分析:Array subsproperty.enum_ size is 21 定义的长度是21,但在实际调用的过程有可能会访问到32的数据,这就超出了定义的长度范围了.,扫描内容,缺陷类型:空指针引用子错误代码:NPD.CHECK.MIGHT-空指针引用指针在NULL检查后可能被取消引用,同类型的错误代码还有NPD.CHECK.MUST摘取的代码实例如下:源码:G:c+reportprvcodelazydevhppFileOperator.hpp 行 510错误描述:Pointer dest
9、fname checked for NULL at line 503 may be dereferenced at line 510.分析:指针destfname将会在NULL值检查后被解引用.,扫描内容,扫描内容,在源代码扫描项目中可以提供对缺陷的跟踪,并提供相关的错误信息开发人员可以专注于高优先级的缺陷,深入到源代码浏览器,检查缺陷和分配状况源代码扫描项目使用的唯一的缺陷跟踪技术构建整个释放建立缺陷状态和状态跟踪,安全漏洞检测:确信软件安全性是软件质量中一个重要的、并越来越受重视的方面。同样的,所有的安全漏洞分析是基于市场领先的缺陷检测能力。从原来的缺陷检测分离出来单独的安全漏洞检测和违反
10、推荐的安全代码最佳实践的缺陷检测。能够检测到的安全漏洞类型举例(详细参见下表),扫描内容,安全漏洞类型,安全漏洞错误代码:下面将列出安全漏洞中的错误代码及描述以供参考,扫描内容,安全漏洞检测-错误代码,安全漏洞错误代码:下面将列出安全漏洞中的错误代码及描述以供参考,扫描内容,安全漏洞检测-错误代码,下面对在源代码扫描中的安全漏洞选取几例常见的错误进行说明安全漏洞类型:缓冲区溢出子错误代码:ABV.TAINTED-缓冲区溢出缓冲区溢出中的一个子类报错信息-未经验证的输入缓冲区溢出,即形参超出了本身定义的范围上限摘取的实例如下:源码:G:c+bizlibviewHServer.cpp,行 71错误
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 源代码 安全 扫描 服务 技术 方案

链接地址:https://www.31ppt.com/p-2233771.html