ThinkChat2.0新版上线,更智能更精彩,支持会话、画图、阅读、搜索等,送10W Token,即刻开启你的AI之旅 广告
序言 当前随着社会经济的发展和科学技术的进步,计算机的应用日益广泛,人们不但直接使用了从微型计算机、平板电脑、智能手机直到超级计算机的不同信息与计算工具,而且在生产装备、运输工具甚至家庭生活用具中也嵌入了各式各样的计算装置。互联网的日益普及主要得益于计算机的应用,在现代生活和工作中人们享受着计算机带来的巨大效益和便利,与此同时对计算机安全工作的依赖性也日益增加。计算机在安全方面的问题不但会影响到生产和生活的正常运行,有时候甚至造成人身伤亡、装备损毁等重大事故,因此近年来人们对日益严重的计算机系统的安全问题开始密切重视。 在计算机系统的硬件和软件两个方面,人们历来重视的是硬件方面的安全性和可靠性,而对比较隐蔽的软件安全性却关注得不够。但是许多安全事故却是出在软件方面,发生在20世纪90年代的Ariane 5运载火箭、SOHO太空飞船等五起航天器事故的罪魁祸首就是软件,而通过软件安全事件每年给全球造成的经济损失已经高达4500亿美元。因此近年来人们开始以很大的注意力关注软件的安全性问题,因为这不仅影响到个人或者企业自身,而且已经上升到国家安全的高度。 软件的安全性可以理解为软件在系统中运行不至于在工作中造成不可接受的风险(如人身伤亡、设备损坏、财产重大损失、严重污染环境等)的能力。为构建这种能力,人们采取了一系列的方法和技术,逐步形成了计算机软件安全的理论。 为了提高软件的安全性,在软件的开发过程中就应该对安全问题加以认真考虑,由此近年来逐步形成了软件安全开发的概念和方法。由于这是一个新的领域,有关的方法和技术还局限于某些具体应用,尚缺少比较系统介绍的著作,本书正是为了填补这一空白而撰写的。 本书作者在书中一开始先介绍了软件安全的基本概念,对软件安全的基本属性进行了深入细致的描绘,分析了软件安全实现的基本方法,对属性驱动的软件安全开发方法的基本思想进行了阐述。然后利用系统工程思想将安全属性嵌入软件开发的整个生命周期。在回顾软件开发方法的演化过程和对各种方法进行对比的基础上,提出了属性驱动的软件安全开发的基本方法和过程。在总揽全局的基础上,依次详尽地探讨了软件安全需求分析、软件安全保障设计、软件安全编码、软件安全性测试问题。全书贯穿了系统工程整体性和有序性的理念和方法而又不失对技术细节的阐述,形成了本书的特点。 由于软件安全开发方法涉及的学科比较多,涵盖了多方面的技术细节,因此建立系统的开发理论和方法体系是一项艰苦的工作。深切希望本书作者能在这本著作的基础上进一步深入探索,以满足日益增长的软件安全开发的要求。