基本信息
- 原书名:Software Security Engineering: A Guide for Project Managers
- 原出版社: Addison-Wesley Professional
- 作者: (美)Julia H. Allen Sean Barnum Robert J. Ellison Gary McGraw Nancy R. Mead
- 译者: 郭超年 周之恒
- 丛书名: 华章程序员书库
- 出版社:机械工业出版社
- ISBN:9787111264835
- 上架时间:2009-5-5
- 出版日期:2009 年4月
- 开本:16开
- 页码:222
- 版次:1-1
- 所属分类:计算机 > 安全 > 综合
计算机 > 软件工程及软件方法学 > 软件方法/软件工程

编辑推荐
软件项目经理必备指南.
将软件安全解决方案引入到软件开发生命周期之中...
内容简介
计算机书籍
本书系统阐述了软件安全丁程的知识。具体内容包括:软件安全的构成、安全软件的需求、安全软件的架构和设计、安全编码和测试、系统集成、安全管理,等等。.
本书从软件开发和漏洞攻击两个角度,以对立的观点深刻阐述了构建软件安全的最佳实践。同时,本书不遗余力提高阅读的针对性,对高级经理、项目经理和技术管理人员的适用要点,各有强调论述。..
本书适合作为从事软件开发、软件测试、软件安全及软件丁程管理的技术人员的参考用书。
与其他软件相比,遵循安全理念开发的软件可以更为有效地抵御、容忍攻击并从攻击中恢复。尽管并不存在软件安全的万能解决方案,但是项目经理可以从中获益的实例还是存在的。通过本书,你能找到一些可靠的实例,这些实例有助于提高软件在开发和运行过程中的安全性和可信度。
本书会帮助你理解:
软件安全不仅仅是消灭漏洞和执行入侵检测。
网络安全机制以及IT基础安全服务并不能充分保障应用软件免受安全隐患的威胁。
软件安全的主动行为必须伴随一种危险控制的方法,从而识别优先级以及定义什么才是“足够好的”——对软件安全危险的理解随着软件开发生命周期而不断改变。
项目经理和软件工程师需要学会以攻击者的方式来思考,从而指出软件不能运行的功能范围,以及软件如何更好地抵御、容忍攻击并从攻击中恢复。...
作译者
Julia H.Allen是一位软件工程机构CERT项目的高级技术职员。这个机构隶属于美国宾夕法尼亚州位于匹兹堡的卡耐基·梅隆大学。Allen除了从事软件安全保证工作以外,还从事企业安全和管理方面的行政性工作。在从事技术工作之前,Allen曾做了六个月的SEI临时代理主管,也曾做过三年的操作人员的代理主任。她使SEI正式和工业组织建立了关系,创造了消费者关系团队。
在加入SEI之前,Allen曾是SAIC副主席,负责创建一个新的软件分部,专门负责嵌入式系统软件。Allen领导SAIC的最初成果在于软件进程的发展。Allen也为TRW(Northrop Grumman的前身)工作,处理一系列从系统整合、测试和领域站点支持到管理大多数软件开发项目的工作。
她的学位包括从密歇根大学获得的计算机科学学士学位和从南加利福尼亚大学获得的电子工程硕士学位。Allen的作品有《The CERT Guide to System and Network Security Practices》(Addison-Wesley,2001),《Governing for Enterprise Security》(CMU/SEI-2005-TN-023,2005)和CERT播客系列:“Security for Business Leaders(2006-2008)”。
Sean Barnum
Sean Barnum是Cigital公司的首席顾问,为Cigital的联邦服务提供技术指导。他拥有二十多年的软件行业经验,包括软件发展、软件质量保证、质量管理、程序构建和改进、知识管理和保障等。Barnum为了地方和国家软件安全和软件质量兴起,做了诸多的贡献和演讲。他频繁地活跃在软件安全团队之中,为众多知识标准的制定而努力,包括“公共的弱势列举(CWE)”,“攻击模式列举和分类(CAPEC)”,还有其他一些国土安全局和国防部的软件保证项目。他也是空军应用软件保证中心的首席技术专家。
Robert J.Ellison
作为一名软件工程机构CERT项目可持续系统工程团队成员,Robert J.Ellison在团队里是十分重要的技术和管理角色。他是一个软件工程发展环境和相关开发工具的评估小组的领导成员。他也是一位为SEI提供建议的卡耐基·梅隆大学的小组成员;他于1985年作为参与者参与FFRDC新组织。..
在进入卡耐基·梅隆大学之前,Ellison在布朗大学的威廉斯学院和汉密尔顿学院讲授数学。在汉密尔顿学院任教期间,他指导了计算机科学课程的创新。同时,Ellison也是美国计算机协会(ACM)会员和美国电气与电子工程师协会(IEEE)计算机分会会员。
Ellison经常从安全和可靠性度量方面,参与软件架构的评估。他的研究主要是如何用经验将安全问题集成到整个软件架构和设计中。他现在的工作集中于可论证框架的开发和研究,以帮助构建师挑选和精炼设计方案来应对网络攻击。他将在可持续分析框架的改进方面继续研究。
Gary McGraw
Gary McGraw是总部位于华盛顿地区软件安全和质量咨询公司Cigital的首席技术官。他是一名全球公认的软件安全权威人士,也是六大软件安全畅销书的作者。最新的书是《Exploiting On-line Games》(Addison-Wesley,2008),其他著作包括《Java Security》、《Building Secure Software》、《Exploiting Software》和《Software Security》。他也是Addison-Wesley软件安全系列的编辑。McGraw博士已经撰写了90多篇同行评审的科技出版物,为darkreading.com撰写每月安全专栏,作为软件安全专家频繁地被新闻界引证。
除了作为一名为顶级商业和信启、技术执行机构提供服务的战略顾问,McGraw博土致力于防御软件和RavenWhite咨询平台。他从印第安那大学获得了认知科学和计算机科学双博土学位,在大学里他为信息情报学院的Dean咨询委员会服务。McGraw博士也是IEEE计算机分会董事会的一名成员,每月都为《IEEE Security&Privacy》创作播客:Silver Bullet Security。
Nancy R.Mead
Nancy R.Mead是一名可持续系统工程小组的高级技术职员,这个组是软件工程机构CERT计划的一部分。她也是一名卡耐基·梅隆大学的软件工程硕士和信息系统管理项目硕士。她的研究兴趣涉及信息安全,软件需求工程和软件构建领域。
在参加SEI之前,Mead曾是IBM联邦系统的高级技术职员,在那里,她将其全部精力花在巨大的实时系统开发和管理上。她也在IBM软件工程技术领域和IBM联邦系统软件工程教育局工作过。她已经在许多大学和专业教育课上开展和教授了众多软件工程精品课程。
迄今为止,Mead已经发表了超过100篇的出版物,也被邀演讲。她既是IEEE会员,也是IEEE计算机协会会员,同时也是ACM会员。Mead从纽约大学获得数学学士和硕士,并从纽约工学院获得数学博士学位。...
目录
序
前言
第1章 为什么安全是软件的问题
1.1 概述
1.2 问题
系统复杂性:软件与背景并存
1.3 软件保证和软件安全
工序和条例在软件安全中的作用
1.4 软件安全的威胁
1.5 软件不安全的来源
1.6 早期检测软件安全漏洞的好处
为软件安全设计案例:当前状态
1.7 软件安全开发管理
1.7.1 我该提出哪些安全策略问题
1.7.2 软件安全的风险管理框架
1.7.3 开发周期中的软件安全条例
1.8 小结
第2章 安全软件的构成
2.1 概述
译者序
作者在书中始终坚持他们数十年来的开发经验和最新的研究成果,积极地寻求能够给软件开发者带来最大受益的组织方式,嵌入了大量的开发研究案例,使读者一目了然。该书推荐在软件开发周期的各个阶段都要遵循安全理念,这样开发出来的软件能更有效地抵御、容忍攻击并从攻击中恢复。软件的安全性,应该在企业高层的领导、中层的技术管理人员和低层的开发测试人员心中占有很重的分量。软件安全应该提升到软件开发组织的企业文化高度来推广,并应用管理学的知识了理解和应用。..
在翻译本书的过程中,我们力求做到语言平实无华,期望能给读者带来一个轻松的阅读过程。翻译期间得到了刘胜利和郑东老师的很多帮助,在此深表谢意;另外,也十分感谢实验室的其他老师和同学,感谢一直给我们鼓励的家人。
译者
2009年3月...
前言
软件在生活中无处不在。许多公司使用或提供的产品、服务和加工都很大程度上依赖于软件,这些软件用来处理关系到个人隐私、生计和日常生活中敏感而有价值的数据。例如,国家安全,甚至公民的个人安全依赖于越来越复杂化、互联的、软件集中的信息系统。在很多情况下,这些信息系统使用Internet或与Internet相联的专用网络来进行交互和传输数据。
这种对信息技术无所不在的依赖使得软件安全成为了关系到业务连续性、灾难恢复、紧急事件处理和国家安全的重要因素。软件漏洞会危害到知识产权、消费者的信赖、商业运作和服务,以及一系列关键性的应用和基础设施——从过程控制系统到商业应用产品的几乎所有一切。关键性的数字资产(系统、网络、应用软件和信息)的完整性依赖于那些运用控制这些资产的软件的可信度和安全性。然而,商业巨头和消息灵通的消费者越来越认识到:拥有从事软件安全的必要资历的从业者相当缺乏这一事实[Carey 2006]。软件供应商是否能开发、提供可放心使用而不必担心泄露信息的软件,他们对此尤其怀疑。应用软件是涉及敏感信息的主要途径。根据Deloitte公司对169家全球主要的金融机构的一项调查(名为《2007 Global Security Survey:The Shifting Security Paradigm》[Deloitte 2007]),当前应用软件不再能完全抵御入侵攻击。Gartner公司认为应用软件安全是首席信息官们需要首先解决的问题。
如今,软件开发过程缺乏必要的安全措施,这导致了许多可能被人利用的漏洞。如果要开发出比目前软件更可靠、安全的软件,那么加强安全要素的开发过程和安全条例,以及有丰富经验和技术的开发者就是必须的。
有一种经济学上的反驳论据,或者至少是一种观点:一些商业巨头和项目经理认为,开发安全软件会减缓开发进程并增加看不到实际意义的开销。很多时候,当决策简化为“现在就发送”或“做安全了再发送”时,那些控制着财政却对安全威胁一无所知的人们总是会选择“现在就发送”。本书的第1章(1.6节,尽早检测软件安全缺陷的益处)和第7章(7.5.3目,“知识和专业领域”中讨论微软安全开发周期的经验部分)讨论了与此相反的观点,包括软件安全如何潜在地减少了开发成本和加速开发进程。
软件易被攻击的漏洞
针对软件的威胁的数量正在不断增加,现在大多数的网络系统级别的攻击利用了应用级别软件的漏洞。根据卡耐基·梅隆大学的CERT分析师的说法,绝大多数成功的攻击都是针对和利用已知的、未打补丁的软件漏洞和不安全的软件配置,而这些问题都是在软件设计和开发过程中产生的。
这些条件导致了与软件功能相关的风险的增加,并使攻击的威胁进一步加剧。在这种不确定的氛围之下,众多的利益相关者需要充分的证据来相信那些负责他们的核心事务处理的软件能够可靠地执行。
我们为何编写这本书
软件安全工程的挑战
软件安全工程需要利用安全条例、过程、工具和技术来解决软件开发周期(软件开发周期)中每一阶段的安全问题。遵循安全理念开发的软件能够更好地抵御人为攻击和非人为的故障。对于安全软件的一种看法是,它被设计成“在恶意攻击下能持续地保证正确运行”[McGraw 2006],同时能识别、抵御、容忍那些威胁其可靠性的人为事件,并从中恢复。很多概念可能与软件安全相似(比如,软件保险性、可信赖性和容错能力),包括面对非人为故障和意外事故以及无意的误用和滥用等情况软件的正常运行,以及尽可能地减少软件缺陷和漏洞。本书讨论的是狭义的观点。
软件安全工程的目的是开发出更健壮、无缺陷的软件。软件密集型系统如果更多地使用考虑了安全的软件,就能够在以下方面做得更好:
·抵御利用软件缺陷进行的攻击,或是容忍这些攻击所带来的故障,使得软件能在大多数的攻击之下仍然能正确运行。
·面对攻击引起的错误,软件发生故障,若它无法及时抵御、容错或是从中恢复,它至少必须能够将损失降到最小。
没有哪一个例子可以向软件安全提供万能的解决方案,请不要忘了这句话。与此同时,本书切实地向项目经理提供了很多很好的实例,使他们可以评估并适当地使用这些实例来重构他们自己的项目安全条例。本书的目的是通过这些实践,提高软件在开发和运行过程中的安全性和可靠性。
读者能得到什么
通过阅读本书,读者能提升对软件设计开发过程中安全问题的认识。本书也能帮助读者理解软件开发安全条例既可能促成软件的安全,也可能导致软件不安全。
本书(以及后面会提到的在Build Security In网站上引用的资料)会让读者识别和比较潜在的、新的实例,这些实例能够被扩充到项目现有的软件开发安全条例中去,从而更有可能开发出安全性好的软件并达到特定的安全需求。举个例子,保证案例可以应用于声明和指定具体的安全特性,包括安全条例能满足安全需求的程度。保证案例将在第2章中(2.4节)讨论。
使用本书中所介绍的实例进行开发和集成的软件,其缺陷将显著地减少,并且这些软件能够更好地抵御、容忍攻击以及从中恢复,因而可以更加安全地在操作环境中运行。负责保障软件和系统在软件开发周期中切实落实安全需求的项目经理应该回顾、选择、适当修改本书中以及BSI网站上的指导内容,和本书中引用的众多资源,这应该成为他们日常管理工作的一部分。
给本书读者的五条现成经验:
序言
在这个问题数以万计的答案之中,本书讨论了其中的两种。第一,安全软件的意义。事实上,“安全软件”这个术语是一个误称。安全是一个软件加上环境所组成的产品。一个程序如何使用、在何种情况下使用以及其必须达到的安全需求,决定了这个软件是否安全。术语“安全驱动的软件”关注了满足特定安全需求的软件开发和设计理念,但在其他环境下这些软件基本的假设(以及其他隐含的需求)不再有效的情况下,软件就可能不安全。本书以一种易于理解的方式描述了软件精确而又有意义的安全需求的必要性,以及他们的开发方法。不同于很多有关安全软件的书籍,本书并没有做安全需求已知的假设,而是深入讨论了安全需求的来源和分析,以及同样重要的、关于需求的确认。
第二个答案在于项目的行政主管、管理者以及技术主管。他们必须支持安全性增强在软件中的采用,以及健壮编码的实现(这是一项真正的安全性增强)。此外,他们必须理解整个过程,为其提供进度表、预算和人员配置方面的更多支持。本书出色地向这些人们展示了软件安全的过程,使得他们可以切实地评估其影响。同时,本书也指出了在某些情况下,开发过程中遇到的状况是全新的,或者缺乏足够经验,以至于找不到可被证明有效的方法或是被大家广泛接受的方法。针对这种情况,作者提供了一些思路来帮助开发出有效的方法。这样,行政主管、管理者和技术主管就能明白在他们的环境中哪一种方法才能最为有效。..
另外,最为关键的,从项目开始就针对安全性进行设计和实现,切实保证了软件符合安全需求。这大大减少了给软件打补丁和填补安全漏洞的必要——这些工作本身就会引起很多安全问题,给软件制造商的声誉和财政状况带来不良影响。信用的丧失,尽管是无形的,也会对有形资产产生影响。从一开始就正确地开发软件,为此支付额外成本能减少软件投入使用之后的维护费用,并且会产生一个更好的、更健壮的、更安全的软件。
本书讨论了多种开发软件的方法,在这些方法中对安全性的考虑扮演着重要的角色。本书面向行政主管、每一级的项目经理和技术主管,从这个意义上来说,是非常独到的。本书也面向学生和开发人员,使他们理解以安全的理念进行软件开发的过程并能找到相关资源来帮助他们进行开发。
本书的一个潜在主题是我们使用的软件可以变得更好。本书的内容向行政主管、项目经理和技术主管提供了一个基础,使得他们可以改善他们开发的软件,改善软件的质量和安全性。
Matt Bishop
Davis,California
March 2008 ...
媒体评论
——微软高级安全专家 Steve Riley ..
“有一些书讨论了本书中的某些问题,也有一些书论述了安全系统工程;但却很少像本书一样,通俗易懂地描述和讨论关子整个软件开发周期的最新动态和主题。”
——Harrls高级软件安全专家 Ronda Henning ...