035013软件确保
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
软件确保
方滨兴
北京邮电大学
历史演变
过去,信息安全关注信息的机密性(Confidentiality)、完整性(Integrity)、可用性(availability),但是这只给出了所要达到的目标属性,至于如何做到这几点,没有给出准确的答案。
美国军方在20世纪90年代末提出一个新的概念,叫做信息确保(Information Assurance),并提出采用5种服务来实现:靠密码实现机密性;
靠摘要算法实现完整性;
靠网络安全手段实现可用性;
通过认证实现可鉴别性(A u t h e n t i-cation);
通过数字签名实现不可抵赖性(N o n-Repudiation)。
但是,如果从信息使用的源头——软件开发角度来看,软件开发本身会给信息安全造成多方面的威胁:
软件本身存在脆弱性,为他人的攻击敞开了大门,就造成安全性(Security)问题;
软件的安全性不够,使得在软件运行中可能因为自保护能力的任何缺失而对用户产生破坏性影响,例如导致数据库不可恢复的崩溃,对用户造成伤害,产生保险性(Safety)问题;
软件的生存性不好,缺少紧急状态下自保护、自恢复的能力。
软件自身很容易崩溃,甚至崩溃后无法恢复,产生可生存性(Survivability)问题。
没有或无法对软件运行的极限情况进行充分测试,因而存在隐患。
例如,一条指令在一百万条指令执行之后引发的“挂起”造成系统崩溃,产生可靠性(Reliability)问题;
这些问题都是在软件生命周期过程中应该解决的。
软件确保的概念是藤井(Marilyn S. Fujii)在1978年软件质量保障会议上首次提出的。
藤井认为所有用于提高软件质量的方法都可称为软件确保方法,更广泛地说,软件确保方法是用于提高软件质量的任何实践、技术和工具。
当时的软件确保实质上仅仅局限于软件质量保障。
在世纪之交,软件确保的概念开始被用来表示软件的可确保的安全性。
目前软件确保的主要理念是:软件确保需要提供一种合理的确信级别,也就是确信根据软件需求,软件执行了正确的、可预期的功能;同时,软件功能不能被直接攻击或植入恶意代码所破坏。
美国国土安全部给出软件确保描述是指:
可信性(Trustworthiness):不存在可被利用的漏洞,不管是恶意的还是有意插入的;
可预见性(Predictable Execution):有理由确信软件在执行时功能是所预期的;
可符合性(Conformance):通过有计划的、系统的、多学科的有效方法能够使得软件加工和产品符合相应的要求、标准和过程。
关键词软件确保
1313
美国国家标准与技术研究所(N a t i o n a l Institute of Standards and Technology ,N I S T)、美国国防部(U.S. D e p a r t m e n t o f D e f e n s e ,D O D)、美国国家宇航局(T h e N a t i o n a l A e r o n a u t i c s a n d S p a c e Administration ,NASA)和美国国家安全系统委员会(Committee on National Security Systems ,CNSS)等机构也给出过相应的定义,可见其重要性。
所有的定义都是围绕“可预期”的软件行为和不能有“漏洞”这两个方面展开的。
我们关注的软件系统安全性在各方面都可以归结到软件确保之上。
传统的软件采购、软件工程、软件项目管理和信息安全等都离不开软件确保。
软件确保模型
软件确保模型需要解决上文提及的4方面问题,即安全性、保险性、可生存型、可靠性(Security,Safety,Survivability,Reliability,S3R)。
为此,应从以下12个方面入手:
S3R 软件开发过程
S3R 需求与策略
软件风险管理
S3R 结构与设计
代码分析
S3R 测试
软件组装(Assembly)与集成
认证(Certification)与鉴定(Accreditation)
建模
S3R 测量与分析
S3R的程序设计语言与分析
确保案例
S3R软件开发在软件生命周期的各个过程都加入了对风险的分析和测试等控制措施。
S3R需求和策略与传统需求有所差别。
需求工程本身是一个重要的领域,安全需求工程则是其重要的分支,需要解决功能和非功能两方面的需求,以及框架描述和分析等。
软件风险管理可分为风险分析和风险控制。
风险分析所关心的主要因素有:资产、风险、威胁、弱点、攻击模式、对策和发生的可能性等。
风险分析的作用点主要是在需求、设计和测试等方面。
可以从攻击者角度、软件角度和资产所有者角度三个方面进行攻击建模、威胁建模和分析。
S3R结构与设计软件系统容错。
常规手段是代码分析,包括密码分析、动态分析、故障注入、度量分析、随机数生成分析、源代码检查、静态代码分析和编码规则的判定等。
S3R测试围绕体系结构、设计和开发风险,基于不同测试类型进行,同时还关注测试覆盖广度和测试深度;软件组装和集成;认证和鉴定判定是否符合目标要求。
建模强调基于模型的安全问题。
安全软件设计模型的一个趋势是致力于由设计描述来生成软件,包括:模型驱动结构(Model Driven Architecture,M D A)、模型驱动开发(M o d e l D r i v e n Development,MDD)、模型驱动工程(Model Driven Engineering,MDE),还包括基于组件的开发(Component Based Development,C B D),以及We b s e r v i c e s和复杂巨系统(System of Systems,SoS)等。
需要建模的环节有:需求分析、威胁分析、弱点分析、脆弱性分析、安全策略分析、事务处理与规则分析、性能分析、数据管理分析、隐蔽通道分析、危险事件分析、因果与风险分析和软件安
图1 软件确保模型
1414
全确保案例分析。
基本方法包括:数理逻辑、趋势线回归分析、静态模型、流、队列、文法、状态机和模型检测。
基本功能有:语法与类型检测、耦合度与内聚度测量、异常识别、信息流分析、可达性分析、预处理计算、基本理论证明、源代码逆向工程和仿真结果分析。
S3R测量与分析方面,重点关注4个属性:
安全性度量和分析:主要是基于各种安全规范进行安全测试,以及针对具体的漏洞、攻击等进行分析。
保险性度量和分析:包括概率模型、随机模型、事件树分析(Event Tree Analysis,ETA)、故障树分析(Fault Tree Analysis,F T A)、模型检测、危险与可操作分析(HAZard and OPerability,HAZOP)、模型检测、自动机、自动Petri网1、时序逻辑。
可靠性度量和分析:包括黑盒可靠性分析,泊松分布模型、二项式分布模型、基于软件度量的可靠性分析(分类与聚类方法、贝叶斯信任网等)。
可生存性度量和分析:主要是基于结构的生存性分析,有基于状态(马尔科夫模型)和基于路径两种模型。
S3R的程序设计语言与分析包括:面向安全的程序设计语言技术、软件中安全属性的验证、安全增强机制的自动导入与验证、发掘安全脆弱性的程序分析技术、基于编译的安全技术、增强信息流与访问控制安全策略、模型驱动安全方法等。
S3R案例也有专门标准。
美国政府对软件确保的关注
美国政府是推行软件确保的主力军。
美国国防部国防科技委员会的报告指出国防部必须在这方面积极采取行动。
为此建议国防部应该负责确保关键软件系统的完整性,并且应该发展和公布一项关键系统软件保障计划。
国防部应该加强安全和反情报计划,以处理对采购软件的依赖所带来的新挑战。
2005年2月14日,美国总统信息化咨询委员会向布什总统提交了名为《网络空间安全:迫在眉睫的危机》的紧急报告,指出软件是美国网络和计算系统漏洞的一个主要来源。
为改变无穷无尽打补丁的封堵防御策略,从整体体系上解决问题,报告提出了十个优先研究项目,其中第三个即是软件确保。
2006年4月提出了网络安全与信息确保研究与开发联邦计划报告,报告提出了49个研究方向,并突出了其中的13个需要优先资助。
美国国土安全部把软件确保计划作为降低风险计划的一部分,通过软件确保计划寻求减少软件脆弱性、最小化漏洞可被利用性的途径,并且研究增强软件可信赖性的方法和工具以分析系统中隐藏的漏洞。
软件确保计划为软件生命周期(Systems Development Life Cycle,SDLC)中如何解决人员(people)、过程(process)、技术(technology)和获取(acquisition)问题提供了框架。
该框架鼓励生产、评估和获取高质量的安全软件。
美国还于2003年6月在国土安全部下设立了国家网络安全处(National Cybersecurity Division),主要任务是与政府部门、私营机构、国际实体协作,确保网络空间及相应资产的安全,并协助实施国家数字空间安全战略(National Strategy to Secure Cyberspace)。
战略目标是保护网络空间基础设施。
国防部软件确保计划2004年12月成立了老虎队(Tiger Team),目的是研究减少联邦政府遭受商业软件风险的整体战略。
国防部软件确保老虎队正在发展软件确保运维框架(Software Assurance Concept of Operations,CONOPS),目的是解决如何把低保障的商业成品(Commercial Off-the-Shelf,COTS)组件集成到国防部系统中,以最大限度地降低国防部自行研发高保障软件的数量。
国家安全局高可靠软件中心成立于2005年11月。
它的目标是:与消费者、政府、私营企业和学术界协作,研究软件确保的问题与解决
1 Petri网是对离散并行系统的数学表示,1960年代由卡尔·A·佩特里发明,适合于描述异步的、并发
的计算机系统模型。
1515
16
16
方法;开发并利用工具与方法来分析软件的
可信性;对关键部件进行评估;建立和认证软件标准。
(本文依照2008年中国计算机大会报告录音整理而成,未经报告人审阅)
方滨兴
中国计算机学会副理事长,北京邮电大学校长,中国工程院院士。
主要研究方向:网络安全与信息内容安全。
bxfang@。