Klocwork_Insight_产品介绍3_第1页
Klocwork_Insight_产品介绍3_第2页
Klocwork_Insight_产品介绍3_第3页
Klocwork_Insight_产品介绍3_第4页
Klocwork_Insight_产品介绍3_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

14 016 北京智诚创想科技有限公司 2 内容提要 司简介 自动化源代码分析技术简介 绍 产品演示 14 016 司简介 4 总部位于美国麻省伯灵顿和加拿大渥太华 分支机构: 亚特兰大 芝加哥 达拉斯 特区华盛顿 圣何塞 全球市场采用合作伙伴策略 北京智诚创想科技有限公司是中国的唯一合作伙伴 起源: 始于 1996年 度静态分析的重大项目, 14年的技术经验 2001年成立 本: 入到下一阶段的缺陷个数减少 75% 0% 直接与缺陷相关的成本减少 30% o o et 超过 600家成功客户 7 国内客户 北京德信无线 /杭州德信软件 天碁科技( 上海毅仁科技( 中国软件信息安全评测中心 中船 705所 中船 709所 中船 715所 中船 716所 金美通信 航天 12所 4所 14 016 动化源代码分析技术简介 9 源代码分析 ( 基础 源代码分析技术用于识别源代码中的缺陷 逻辑错误和编码缺陷 (如:内存管理问题,空指针的解引用,未初始化变量,数组越界等 ) 安全漏洞 并发违反和边界条件 架构的正确性 软件度量的计算和管理 编码规则检查 与传统的动态分析技术(单元测试或渗透测试)不同 基于静态分析技术 分析工作是在构建阶段进行,并且只分析程序或模块的源代码 完全分析每条可达路径,而不限于能够观测到的动态行为 源代码分析工具的应用 : 构建阶段 开发人员桌面 10 自动化源代码分析技术简介 抽象语法树 (- 以一种无歧义的方式覆盖代码结构中的所有分支,主要用来验证基本语法以及代码结构 路径分析 ( 基于理解程序执行路径中的任一特定时刻数据对象的状态来进行更为全面的分析 源代码分析工具的能力: 代码质量度量:以代码的可维护性、可测性为目标进行代码优化 代码行数、注释率 复杂度(圈复杂度) 编码规则检查 代码架构分析(架构关系、流程图) 1 自动化源代码分析技术简介 目前的源代码分析 过程改进的基本原则之一: “同步”进行缺陷的限制 通过在系统构建过程中应用源代码分析,在系统测试 (前发现更多的代码缺陷 下一代源代码分析 将缺陷监测进一步提前到代码检入之前 12 自动化源代码分析技术简介 第三代源代码分析产品 一代的源代码分析产品 13 自动化源代码分析技术简介 桌面分析与系统分析 优势 由于“全系统”可见,因而对于良好的分析准确性而言是必要的 对管理非常重要,能够分析基于每次构建的质量趋势报告 局限性 无法实现 “ 开发人员不得不检入含有缺陷的代码,才能发现缺陷 开发人员仍然陷入 “ 优势 在对其他人造成影响之前,能够立刻修复缺陷 使得 “ 缺陷限制成为可能 局限性 缺乏全系统上下文,准确性成问题 开发人员无法及时交流对缺陷状态的修改 14 自动化源代码分析技术简介 桌面分析与系统分析相关联 动与系统分析上下文进行关联 最佳性能、最佳准确性、全系统上下文传递到本地 在解决缺陷时,创建 同 缺陷 “ 运行缺陷 发人员不会对同一缺陷进行重复工作 与 者通过简单的命令行调用 唯一一个能够将桌面源代码分析的高效性与系统范围分析的强大、准确完美结合在一起的源代码分析工具 15 自动化源代码分析技术简介 使用源代码分析工具的效果 在发布代码之前将代码里面存在的问题报告出来,避免将致命的漏洞或缺陷流转到不受控制的状态 通过自动化的技术提高现有代码检查进程的效率 通过 100%覆盖所有的边界条件来增强现有的 在新产品推向市场时,保护企业品牌形象 14 016 17 件架构 装目录 务器 录 R/O) 用工具 (8 分析的缺陷全面、准确 综合准确率统计 80以上 分析性能出色 代码规模 代码复杂度 计算机环境 强大的适应性 能够分析上千万行代码 分布式并行分析(支持多核、多 服务器分布式计算) 自动提取源程序构建信息 避免手工输入的繁琐和不准确 知识库技术 适应不同的编译环境和集成第三方的库函数 具备扩展机制,支持二次开发 客户端与服务器的有机连接 实现分析代码时机和准确性的完美结合 19 通过自动化构建发现技术 提取源代码构建信息 代码分析阶段经过 译生成带有缺陷信息的中 间文件 结合知识库文件进行缺陷 分析,同时生成函数行为 知识库 分析结果存入数据库,用 户通过客户端进行访问 20 软件缺陷与安全漏洞检测 软件质量趋势分析 软件质量度量分析 软件体系架构分析 定制软件开发策略 21 缺陷和安全漏洞检测 可以检测 200多种 C/C+缺陷和安全漏洞 C/C+软件缺陷样例: 空指针引用 内存管理问题(如内存泄漏、释放未分配的内存) 数组越界、堆栈溢出 未初始化数据使用 编码风格类问题 (如:条件赋值 ) C/C+安全漏洞样例: 访问控制问题 数组越界 缓冲区溢出(潜在的缓冲区溢出) 注入缺陷 未经验证的用户输入 22 缺陷和安全漏洞检测 可以检测近 200种 效率问题 (如:空的 可维护性问题 (如:空的 可靠性问题 (如:资源泄漏 对象 ) 访问控制缺陷 数组越界 拒绝服务 出错处理不当 移植代码安全 注入缺陷 ( 跨站点攻击 未经验证的输入 23 缺陷和安全漏洞检测 通过浏览器查看分析结果( 24 缺陷和安全漏洞检测 25 缺陷和安全漏洞检测 在线帮助 问题的详细描述 追踪条件 追踪事件 跨模块调用 26 缺陷和安全漏洞检测 追踪条件 追踪事件 函数 /方法调用层次嵌套 27 缺陷和安全漏洞检测 28 缺陷和安全漏洞检测 + , 002, 003, 2005 所有平台上支持简便的命令行方式 专业服务 支持为更多的其他开发环境的集成 29 缺陷和安全漏洞检测 30 缺陷和安全漏洞检测 一般情况下,基于本地文件的分析速度较快,但是准确性可能会较低 考虑如下例子 : p) *p = 32; 显然存在 错误 31 缺陷和安全漏洞检测 - 个人桌面级分析 而 系统级分析提供了跨模块的分析能力 考虑例子 : m1.c * 32; m2.c 如果 参加了编译,发现这个错误就很容易 如果开发人员只编写其中一个文件, 只分析其中一个文件,就会得到不准确的结果 32 缺陷和安全漏洞检测 - 个人桌面级分析 连接服务器 33 缺陷和安全漏洞检测 - 个人桌面级分析 连接服务器 系 统级 分析 使用完整的代码基进行服务器端分析 项目范围的依赖图和知识库在分析过程中被创建 项目范围的问题列表也被创建并提交到项目库 户 端分析 34 缺陷和安全漏洞检测 - 个人桌面级分析 连接服务器 DE 户 端分析 在桌面上打开一个项目时,最新的配置和问题列表将自动从服务器同步到用户的本地环境 . 分析结果被传送到开发人员那里,无需进行本地的分析 另外,一个完整的最新的依赖图使得本地分析更加准确 35 缺陷和安全漏洞检测 - 个人桌面级分析 连接服务器 如果开发人员在分析自己文件的时候,存在如上例一样的“盲区”,那么本地的分析能力就是不可预测的,或者说不准确的 将完整的依赖图和行为知识库从服务器同步到桌面环境,就解决了这个问题 使用整个系统的大背景分析本地文件的修改 这样,就能让 从前面的例子中,负责 开发人员在他的本地桌面环境中进行分析,就能够得到准确的分析结果,发现那个 用系统知识库进行本地分析,系统知识库中体现了这样的信息: 在不进行空指针检查的情况下 参数 36 缺陷和安全漏洞检测 自定义检查器 /p:| 控制流检查器; 定义 定义 37 质量趋势分析 展示开发过程中代码问题的分布和发展趋势 趋势分析可以按照下面的几种基本类别来进行统计: 软件模块( 存在状态( 问题类别( 处理状态( 严重等级( 处理人员( 趋势分析还可以根据按照时间 /构建版本进行统计 38 趋势分析报告 按照软件模块进行统计 质量趋势分析 39 趋势分析报告 按照问题类别进行统计 质量趋势分析 40 趋势分析报告 按照严重等级进行统计 质量趋势分析 41 趋势分析报告 按照存在状态进行统计 质量趋势分析 42 趋势分析报告 按照处理状态进行统计 质量趋势分析 43 趋势分析报告 按照处理人员进行统计 质量趋势分析 44 趋势分析报告 多次构建对比分析 质量趋势分析 45 是否做到了 收集关于桌面上发现并修复了哪些问题(没有进入代码控制流) . 理解检入之前做了哪些修改 质量趋势分析 46 代码度量分析 代码质量度量分析 从 及代码行数、继承数和循环数等一百多种基本度量。 基本度量举例:圈复杂度 0;20 复合度量举例:可维护性 100-(0;20 用户自定义的复合度量 47 架构分析 理解架构 以图形化的方式来展示代码实体之间的关联关系 几十种代码关系: 函数调用

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论