登录   |   注册
    准考证打印   论文投票   报考指南   论文辅导   软考培训   郑重申明  
您现在的位置:  首页 > 软考学苑 > 信息安全工程师 > 信安上午综合知识 > 信安考点梳理 >> 正文
正文
信息安全工程师教程:信息系统安全测评方法-代码审计原理
来源: 作者: 时间;2018-02-01 16:54:17 点击数: 尚大软考交流群:376154208
代码审计
在软件开发的过程中,代码审计工具帮助软件开发团队快速查找、定位、修复和管理软件代码安全问题。应用静态源代码安全扫描的主要价值在于能够快速、准确地查找、定
<尚大教育,教育至上,人才为大:sdedu.cc>
代码审计
    在软件开发的过程中,代码审计工具帮助软件开发团队快速查找、定位、修复和管理软件代码安全问题。应用静态源代码安全扫描的主要价值在于能够快速、准确地查找、定位和修复软件代码中存在的安全风险,增加工具投资所带来的最大效益,节约代码安全分析的成本,最终开发安全的软件。
代码审计原理
在软件开发过程中,静态代码分析是软件缺陷检测的重要方法,是指在不执行程序的情况下,以程序源代码、可执行文件序列或高级语言的中间代码等为对象,通过预先定义属性规约,自动地检查目标代码对属性规约的违反情况,进而检测目标代码中的缺陷。与以软件测试为主要手段的动态缺陷检测相比,静态分析不需要构建测试环境、不需要占用测试资源,并且能够在软件测试阶段之前检测缺陷。因此,静态分析在缺陷检测成本上具有优势,且静态分析在检测编码错误造成的缺陷方面具有显著的有效性。
    静态代码分析的应用已经非常普遍,如从微观角度对程序进行安全性分析、软件质量分析、程序效率优化;从宏观角度对程序进行架构分析优化、复杂性分析;提供一个可视化的界面,将程序中的各种关系以图形的方式展现出来,为阅读程序代码提供一个较好的工具等。
    在OWASP 的代码审计指南中,指出安全代码审计是一个为了验证适当的安全控制措施是否存在、是否按照设计的方式进行并被应用在所有正确的地方而审计应用程序源代码的过程。代码审计是一种确保应用程序在特定环境下发展为"自我防御型"的方法。它也能够确保安全应用程序开发人员遵循安全发展技术。一般来说,在应用程序已经开发了一个正确的安全代码审计之后,进行渗透测试不应当再发现任何额外的与成型代码相关的应用程序漏洞。
    静态代码审计技术是实现上述所有应用的基础。从抽象层次的不同,可以将分析技术分为高层次分析技术和低层次分析技术进行研究。高层次分析技术包括组件结构分析和配置文件分析,低层次分析技术包括正则表达式、词法分析、语义分析、数据流分析、控制流分析、结构分析、污染传播分析、别名分析等。
    正则表达式就是定义查找特定字符串的模式,可以通过查找特定的字符串模式从而判断是否有潜在的安全问题。如后门,通常会出现固定E 地址、固定域名、固定手机号码、固定端口等信息。Linux 下的Grep 工具、高级文本处理工具如U1traedit、Java 语言等都支持正则表达式。
    AST (Abstract Syntax Tree) ,抽象语法树是程序的中间表示。源程序的最初表示为字符流。语法分析是静态代码分析的基础,其目的是对源代码文件进行处理,从中抽取出需要的程序结构信息,并将这些结构信息以特定的、统一的形式组织到抽象语法树。
    词法分析工具有ANTLR、GCC 前端等。ANTLR 接受三类语法规范一一语法分析器(parsers) ,词法分析器(1exers) ,和树分析器(tree-parsers ,也叫树遍历器tree-walkers) 。通过编写语法文件,定义词法分析、语法分析、树遍历的规则,从而达到分析源文件的目的。
    数据流分析的基础是控制流图,其目的是计算在程序的不同点对变量的不同赋值信息。到达一定值是数据流分析的重要概念,其含义是到达某语句时所有变量的可能赋值集合。由于控制流具有敏感与非敏感两种情况,数据流也是如此。别名分析和数据流分析是相关的,别名同样有IN 集合、OUT 集合、GEN 集合、KILL 集合,因为别名集合在到达不同的语句时并不一样。
<尚大教育,教育至上,人才为大:sdedu.cc>
 
   各省软考办 
 
来顶一下
返回首页
返回首页
上一篇:信息安全技术知识:SSL告警协议
下一篇:信息安全技术知识:SSL修改密文规约协议
 相关文章
 
 
跟贴共
笔 名 :   验证码:
网友评论仅供其表达个人看法,并不表明尚大教育同意其观点或证实其描述
距离2023年05月27-28日软考考试还有
尚大软考交流群:376154208
软考各地考务机构
历年真题汇总




各省市软考报名简章