文档详情

软件安全教学课件(鲁宏伟)第一讲 软件安全概述.ppt

发布:2017-07-07约9.27千字共48页下载文档
文本预览下载声明
第1讲 软件安全概述 考试安排 综合评分 考试70%(开卷) 平时30%(课堂10%+实验20%) 实验报告考试当天提交 A4单面打印,小4号字体,1.25倍行距 封面包含:实验题目,实验人,班级,学号,日期 课程要求 遵守课堂纪律 按时到课 关闭手机 保持安静 认真完成实验 验证类试验 综合类试验 开发类试验 提交实验报告 主要参考资料 郭克华、王伟平,软件安全实现——安全编程技术.北京:清华大学出版社,2010 Hacking: The Art of Exploitation, 2nd Edition,Jon Erickson,No Starch Press,January 15, 2008,美国 Oday安全:软件漏洞分析技术, 王清, 电子工业出版社 2008.4.1 简介 软件,是组成计算机应用的一个重要部分,当软件由于不安全而遭受攻击,或者运行期间出现错误时,会给用户带来巨大的损失。如犯罪分子利用软件漏洞来获取有价值的信息,用于牟取利益;又如软件因为开发时没有考虑运行时的具体情况,而造成运行的突然崩溃;等等。 面对越来越频繁的软件安全隐患带来的损失,对软件的开发者——软件工程师,提出了更高的要求,要求程序员能够编写出错误更加少的程序,并且能够及时修复软件出现的突发问题,切实为软件使用者服务。 本课程主要就是针对这些问题进行介绍。 了解软件安全的基本概念,是软件质量的重要保证,在软件开发和程序设计中具有重要地位。 软件的安全问题 任何软件都是不安全的 软件不安全性的几种表现 软件不安全的原因 任何软件都是不安全的 安全问题的典型表现: 使用某些交易软件的过程中,某些敏感信息,如个人身份信息、个人卡号密码等信息被敌方获取并用于牟利; 访问某些网站时,服务器响应很慢,或者服务器由于访问量造成负载过大,造成突然瘫痪; 自己的系统中安装了具有漏洞的软件,漏洞没有解决,敌方找到漏洞并对本机进行攻击,造成系统瘫痪 自己花费精力完成了一幅漂亮的风景画,放到网上去,没有考虑版权,被他人随意使用却无法问责; ………… 任何软件都是不安全的 因此,对软件的开发提出了两个新的要求: 软件复杂性加强 可扩展性要求的提高 任何软件都是不安全的 软件安全的挑战性 一方面,软件复杂了,安全问题也表现得很复杂,无法得到全面的考虑,而工程进度又迫使开发者不得不在一定时间内交付产品,代码越多漏洞和缺陷也就越来越多; 另一方面,软件的可扩展性要求也越来越高,系统升级和性能扩展成为很多软件必备的功能;可扩展好的系统,由于其能够用较少的成本实现功能扩充,受到开发者和用户的欢迎;但是由于针对可扩展性必须具备相应的设计,软件结构变复杂了,另外,添加新的功能,也引入了新的风险。 任何软件都是不安全的 怎样解决这些安全问题? 大多数人首先可以想到的方法是软件测试,通过测试来减少软件中的缺陷。 但是,由于软件系统规模越来越大,软件开发的进度要求越来越高,不可能在有限的时间内考虑所有安全方面的问题,即使进行了全方位的测试,也只能对所有的测试案例进行很小范围的覆盖。 任何软件都是不安全的 任何软件都是不安全的 因此,软件测试无法完全保证软件的安全性。 一方面是想要实现全面的测试,找出全部的错误,另一方面又要保证工程的进度,早日解决用户的问题,往往无法两全,只能在其中找到平衡点。 任何软件都是不安全的 关于测试,另一个问题是,全面的测试,一般情况下是针对所有可能出现的隐患进行测试,但是这需要对软件的隐患具有全方位的预见性。而在有些情况下,很多隐患是在运行期间才显露出来的,软件的开发者很难在开发阶段预见到所有可能出现的隐患,容易让测试陷入盲目。 因此,测试只能减少软件安全问题的发生,但是不能完全解决安全问题。 业界大都公认一个事实:几乎所有的软件都是带着安全隐患投入运行。 任何软件都是不安全的 任何软件都是不安全的 另一个解决安全问题的方法可能就是在测试前就尽量多地解决安全隐患。 在设计、编码阶段,熟练的软件设计人员和软件工程师完全可以尽可能多地将安全问题进行考虑并加以解决。如果在程序设计的时候就能够尽量地考虑安全问题,对软件的安全性也就会有更好的保证,可以大大减小测试的负担。 近年来,不管是在应用方面还是在研究方面,安全编程技术越来越受到了重视,本课程将针对这些内容中的若干方面进行介绍。 软件不安全性的几种表现 软件的不安全性,一般情况下的受害者就是其直接用户。 从用户的角度来看,软件的不安全性主要体现在两个方面。 软件不安全性的几种表现 软件在运行过程中不稳定,出现异常现象、得不到正常结果、或者在特殊情况下由于一些原因造成系统崩溃。比如: 由于异常处理不当,软件运行期间遇到突发问题,处理异常之后无法释放资源,导致这些资源被锁定无法使用; 由于线程
显示全部
相似文档