中国测控网首页 | 您好,CK365欢迎您加入!
 
微门户

陀螺仪 Labview

品牌

西门子 安捷伦 阿科美 ABB 阿尔法 ALTECH 亚德客 艾雷斯 艾威图 艾得森 北京雷特 贝壳电气 百思得 奥博通信 波仕电子 博耳电力 朝阳电源

当前位置:CK365电子测量网 > 论文 > 应用技术 >

软件静态安全检测技术研究

2014-05-22 09:02:54

[导读]  安全性是软件质量的一个重要属性。软件安全性是软件在受到恶意攻击时仍提供所需功能的能力。多数软件的安全性问题主要源自于本身,其自身的漏洞往往被攻击者利用,从而成为软件安全的隐患。软件安全检测技术的主要作用就是检测软件中存在的安全问题,从而指导软件进行安全性能的改善。

   安全性是软件质量的一个重要属性。软件安全性是软件在受到恶意攻击时仍提供所需功能的能力。多数软件的安全性问题主要源自于本身,其自身的漏洞往往被攻击者利用,从而成为软件安全的隐患。软件安全检测技术的主要作用就是检测软件中存在的安全问题,从而指导软件进行安全性能的改善。

  安全性相关缺陷不同于一般的软件缺陷。一个很难发现的软件安全漏洞可能导致大量用户受到影响。安全性测试不同于传统测试类型最大的区别是它强调软件不应当做什么,而不是软件要做什么,例如未授权用户不能访问数据。

  软件安全性测试刻不容缓

  软件安全性测试可分为安全功能测试和安全漏洞测试两个方面。

  安全功能测试基于软件的安全功能需求说明,测试软件的安全功能实现是否与安全需求一致,包括数据机密性、完整性、可用性、不可否认性、身份认证、授权、访问控制、审计跟踪、委托、隐私保护、安全管理等。

  安全漏洞测试从攻击者的角度,以发现软件的安全漏洞为目的。安全漏洞是指系统在设计、实现、操作、管理上存在的可被利用的缺陷或弱点。漏洞被利用可能造成软件受到攻击,使软件进入不安全的状态,安全漏洞测试就是识别软件的安全漏洞。

  目前测评中心的安全测试工作就是要发现中国移动业务支撑系统存在的安全漏洞,对于软件安全的检测,通常可以按照检测过程中是否需要执行程序的标准分为动态测试和静态测试两种,本文针对软件静态安全检测技术进行深入研究。

  静态检测从分析开始

  静态代码安全分析的第一步,是根据分析需求把程序源代码变换成易于分析处理的程序模型,这个过程用到了编译原理中的成熟技术。

  ● 词法分析:使用正则表达式匹配将源代码转换为等价的符号流。

  ● 语法分析:使用上下文无关语法将符号流规整为语法树,作为源代码逻辑结构的最直接的表现。

  ● 抽象语法分析:通过简化语法将语法树转换为包含更少节点和分支的抽象语法树,以方便后续处理。

  ● 语义分析:从抽象语法树建立符号表,为每个标识符关联类型信息。至此,已经具备了足够的信息来进行所谓的结构化分析。编译器通常将抽象语法树和符号表转化成易于优化的中间形式,然后送给后端生成平台相关的目标代码。安全分析工具可以建立更高阶的中间形式,或者直接在抽象语法树和符号表上进行后续步骤。

  在分析模型建立后,就可以开始进行静态检测了。从早期的缓冲区溢出检测开始,十几年来出现了各种检测技术,早期静态检测主要指静态分析,随着形式化验证方法的引入,静态检测引入了程序抽象验证方法。

  静态分析直接分析被测程序特征,寻找可能导致错误的异常。

  规则检查 程序本身的安全性可由安全规则描述。程序本身存在一些编程规则,即一些通用的安全规则,也称之为漏洞模式,比如程序在root权限下要避免exec调用。规则检查方法将这些规则以特定语法描述,由规则处理器接收,并将其转换为分析器能够接受的内部表示,然后再将程序行为进行比对、检测。

  类型推导 自动推导程序中变量和函数的类型,来判断变量和函数的访问是否符合类型规则。静态漏洞检测的类型推导由定型断言、推导规则和检查规则3个部分组成。定型断言定义变量的初始类型,推导规则提供了推论系统的规则集合,检查规则用于判定推论结果是否为“良行为”。

[整理编辑:中国测控网]
标签:安全性[9]  检测软件[1]  安全性能[0]
 
[ 论文搜索 ]  [ ]  [ 好友分享 ]  [ 打印本文 ]  [ 关闭窗口 ]  [ 返回顶部 ]

版权与免责声明:

①凡本网注明"来源:中国测控网"的所有作品,版权均属于中国测控网,转载请必须注明中国测控网 www.ck365.cn。违反者本网将追究相关法律责任。
②本网转载并注明自其它来源的作品,目的在于传递更多信息,并不代表本网赞同其观点或证实其内容的真实性,不承担此类作品侵权行为的直接责任及连带责任。如其他媒体、网站或个人从本网下载使用,必须保留本网注明的"稿件来源",并自负版权等法律责任。
③如涉及作品内容、版权等问题,请在作品发表之日起一周内与本网联系,否则视为放弃相关权利。