嵌入式C代码审核系统设计与实现

嵌入式C代码审核系统设计与实现

论文摘要

嵌入式应用软件广泛使用的C语言并不是一种安全编程语言,一个重要原因是其标准中存在大量未定义行为和不安全的用法,而对于未定义行为,不同编译器给出不同的解释,从而产生大量安全隐患。当前,避免这些安全隐患的通常做法是制定针对嵌入式C语言的安全子集以及支持安全子集的代码审核系统,在编写代码阶段加以限制和规范,从而很大程度上预防和去除大量的软件缺陷。本文针对《GJB 5369-2005》进行了深入研究,参考编译系统的设计理念,提出了一个基于XML中间模型以及缺陷模式匹配的软件静态检测模型和代码审核系统设计方法。通过对源代码进行语法制导的解析,提取源代码文件中所有安全属性信息,利用XML(extensible Markup Language)在数据存储和数据交换中的优势,将提取出的源代码安全属性信息存储在XML中间模型中。为实现基于安全编程规范的检测,提出了将安全子集的每一条规则抽象为缺陷模式的检测方法,并使用Xquery查询语言将缺陷模式转换成Xquery表达式,利用Xquery表达式查询和定位XML中间模型中与缺陷模式匹配的节点。通过在系统外围建立独立的安全知识库,并提供对安全编程规范的配置接口,支持代码检测人员根据软件型号或应用背景调节安全知识库中规则的安全等级和启动条件,实现了对规则的灵活配置。随后,通过缺陷重定向机制完成缺陷从XML中间模型到源文件中的精确定位。最后利用Visual Studio2008开发工具实现一个运行于Windows环境下的代码自动审核系统C Detector。该系统在对代码安全性审核完全自动的基础上,也为检测人员提供了对安全编程规则的灵活配置。通过对系统的测试分析,验证了系统在检测软件安全隐患和提高软件安全等级上的实用价值。

论文目录

  • 摘要
  • Abstract
  • 1 绪论
  • 1.1 课题研究背景
  • 1.1.1 嵌入式系统
  • 1.1.2 嵌入式软件的安全可靠性
  • 1.2 研究目的和意义
  • 1.3 论文的研究内容
  • 1.4 论文的组织结构
  • 2 软件代码静态检测研究综述
  • 2.1 静态分析与动态测试
  • 2.2 静态分析方法
  • 2.3 静态检测工具
  • 2.4 安全编程规范
  • 2.5 本章小结
  • 3 系统的设计方法研究
  • 3.1 代码审核系统设计思想
  • 3.2 XML中间模型
  • 3.2.1 XML介绍
  • 3.2.2 源代码结构模型
  • 3.2.3 词法单元信息模型
  • 3.2.4 类型模型线性化表示
  • 3.3 缺陷模式
  • 3.3.1 软件缺陷
  • 3.3.2 缺陷模式的定义
  • 3.3.3 缺陷模式的形式化表示
  • 3.4 安全知识库
  • 3.4.1 XML查询语言XQUERY
  • 3.4.2 安全知识库的设计
  • 3.5 本章小结
  • 4 代码审核系统的实现
  • 4.1 系统总体结构设计
  • 4.2 系统前端解析模块
  • 4.2.1 预处理模块
  • 4.2.2 源代码解析模块
  • 4.3 系统后端检测模块
  • 4.3.1 规则配置模块
  • 4.3.2 多文件处理模块
  • 4.3.3 检测驱动模块
  • 4.3.4 缺陷反向重映射模块
  • 4.3.5 缺陷报告模块
  • 4.4 本章小结
  • 5 系统验证
  • 5.1 系统执行流程验证
  • 5.1.1 系统执行环境
  • 5.1.2 系统执行流程
  • 5.1.3 系统流程验证分析
  • 5.2 安全编程规范实现验证
  • 5.2.1 测试用例的设计和选择
  • 5.2.2 测试过程与结果分析
  • 5.3 本章小结
  • 结论
  • 参考文献
  • 攻读硕士学位期间发表学术论文情况
  • 致谢
  • 相关论文文献

    • [1].利用代码重构改善软件设计[J]. 信息记录材料 2020(09)
    • [2].代码对比与动态规划[J]. 电脑编程技巧与维护 2017(03)
    • [3].什么样的代码才是好代码[J]. 计算机与网络 2017(06)
    • [4].安全通论(14)——病毒式恶意代码的宏观行为分析[J]. 成都信息工程大学学报 2017(01)
    • [5].恶意代码同源判定技术综述[J]. 通信技术 2017(07)
    • [6].基于方法的克隆代码检测[J]. 信息与电脑(理论版) 2017(13)
    • [7].市代码[J]. 山西教育(招考) 2020(03)
    • [8].有关信息代码[J]. 山西教育(招考) 2019(02)
    • [9].关于机场的冷知识[J]. 意林 2019(22)
    • [10].市代码[J]. 山西教育(招考) 2016(08)
    • [11].代码自动生成及代码上下文分析研究综述[J]. 数据通信 2020(02)
    • [12].智能代码补全研究综述[J]. 软件学报 2020(05)
    • [13].基于文本分类技术的恶意代码检测工具应用[J]. 科技经济导刊 2020(27)
    • [14].克隆代码映射的方法与应用[J]. 计算机工程与应用 2017(06)
    • [15].基于增强描述的代码搜索方法[J]. 软件学报 2017(06)
    • [16].银行代码安全审计工作探索与实践[J]. 网络安全技术与应用 2017(08)
    • [17].重视统一信用代码的应用[J]. 浙江经济 2017(19)
    • [18].代码依恋检测与重构研究[J]. 电子科技 2016(11)
    • [19].基于相识度的恶意代码检测[J]. 计算机科学 2015(01)
    • [20].有关信息代码[J]. 山西教育(招考) 2018(03)
    • [21].有关信息代码[J]. 山西教育(招考) 2016(Z1)
    • [22].有关信息代码[J]. 山西教育(招考) 2011(08)
    • [23].基于模糊识别恶意代码检测技术的研究[J]. 微电子学与计算机 2014(06)
    • [24].恶意代码加壳脱壳技术[J]. 辽宁警专学报 2014(05)
    • [25].代码复查的要点探讨[J]. 技术与市场 2013(06)
    • [26].代码规制:构建安全文明网络的必由之路[J]. 保密科学技术 2013(07)
    • [27].消除隔阂,提升效率——MATHWORKS推出基于MATLAB生成HDL代码的产品[J]. 世界电子元器件 2012(05)
    • [28].C~#托管代码调用非托管代码参数传递的实现方法[J]. 软件导刊 2011(01)
    • [29].恶意代码与信息安全[J]. 硅谷 2011(18)
    • [30].代码证书遗失声明[J]. 大众标准化 2010(12)

    标签:;  ;  ;  

    嵌入式C代码审核系统设计与实现
    下载Doc文档

    猜你喜欢