软件安全总结
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
一.软件安全的基本概念
安全的基本概念:
1.计算环境内的软件安全
2.安全是相对的,安全是一种平衡
【软件的概念
与一系统(尤指计算机系统)有关的程序、步骤和有关文件编制的完整集合。特指特定类型的计算机所使用的程序的总称,连同与计算机或程序相关的资料,例如手册、图表和操作指令。
【什么是信息
所谓信息,就是客观世界中各种事物的变化和特征的最新反映,是客观事物之间联系的表征,也是客观事物状态经过传递后的再现。
【什么是信息安全
●一类是指具体的信息技术系统的安全。
●而另一类则是指某一特定信息体系的安全。
●但是有人认为这两种定义失之于过窄,而应定义为:一个国家的社会信息化状态不
受外来的威胁与侵害,一个国家的信息技术体系不受外来的威胁与侵害。
【信息安全的5个基本属性
安全性可用性保密性可控性可靠性
【软件的安全性
•软件安全性是指软件不被恶意使用或者攻击进而造成用户信息资产损失的属性。
•软件安全:软件在恶意攻击下能够正确地完成其功能。
【软件安全的属性3个
•软件的可信性,软件的完整性,软件的可用性,
【软件安全研究范畴
•软件安全研究:如何设计、构造、验证和维护软件以保证其是安全的。
•包括:改进和实现软件安全的架构或结构
改进和实现软件安全的工具
改进或实现软件安全的方法
【漏洞和脆弱性
安全漏洞:计算机系统具有的某种可能被入侵者恶意利用的属性;
有时安全漏洞也成为脆弱性;漏洞是软件的属性
【漏洞的本质
漏洞是系统的一组特性,恶意的主体(攻击者或者攻击程序)能够利用这组特性,通过已授权的手段和方式获取对资源的未经授权访问,或者对系统造成损害。
【安全的的代码vs 安全性的代码
安全的代码:能够抵抗恶意攻击的代码;安全的代码同时也是健壮的代码;
安全性代码:实现安全功能的代码;
二.典型的安全问题及分析
【安全问题来源
安全问题的根本来源:1漏洞(漏洞是软件的属性);2攻击者;3软件存在的攻击路径-攻击面问题;
【产生漏洞的原因
(1)软件或协议设计时的瑕疵(2)软件或协议实现中的弱点
(3)软件本身的瑕疵(4)系统和网络的错误配置
【意外行为和缺陷
•意外行为(Unexpected Behavior):也称程序安全缺陷,是由于程序脆弱性引起的不适当的程序行为。
•缺陷(Flaw):缺陷可以是故障(Fault),或者失效(Failure)
•程序安全缺陷可能来源于任何种类的软件错误:无意或疏忽的,故意或有意【缺陷类型
有意的缺陷(1)恶意的(Malicious)(2)非恶意的(Nonmalicious
无意中的缺陷(1)确认错误(2)域的错误(3)顺序化和混淆现象(4)不完全的身份识别和认证(5)边界条件违反(6)其它可利用的逻辑错误
【漏洞的两种类型
•设计漏洞:设计错误,往往发现于软件的安全功能特性中。
•实现漏洞:来源于软件实际编码中的安全缺陷。
【常见安全设计问题
1缓冲区溢出2未校验输入3资源竞争4访问控制问题5认证、授权、加密缺陷
【Owasp top 10
1注入2失效的身份认证3跨站脚本4不安全的直接对象引用5安全配置错误6敏感信息泄露7功能级访问控制缺失8跨站请求伪造9使用含有已知漏洞的组件10未验证的重定向和转发
三.安全工程
【Sse-cmm 5级
能力级别1――非正式执行
公共特征:执行基本实施
能力级别2――计划与跟踪
公共特征:1计划执行2规范化执行3验证执行4跟踪执行
能力级别3――充分定义
公共特征:1定义标准过程2执行已定义的过程3协调安全实施能力级别4――定量控制
公共特征:1建立可测的质量目标2客观地管理过程的执行
能力级别5――连续改进
公共特征:1改进组织能力2改进过程的有效性
【安全工程的三个基本过程
安全工程分三个基本过程:风险、工程和保证
–风险过程是要确定产品或者系统的危险性,并对这些危险性进行优先级排序
–工程过程是针对面临的危险性,安全工程过程与相关工程过程一起来确定并实施解决方案
–保证过程是建立起对解决方案的信任,并把这种信任传达给顾客
【受攻击面分析
•受攻击面分析:枚举所有接口、协议以及可执行代码的过程。
•软件的受攻击面:代码接口服务协议其他
【隐私影响分级3级
•隐私分级1:满足以下任何一项,具有最高隐私分级
–该软件储存PII或传输PII
–该软件目标是针对儿童或对儿童产生吸引力,或包含任何可以了解年龄的用户体验(按美国法案要求,收集PII需要成人权限,必须保护13岁以
下儿童)
–该软件不间断监控用户行为
–该软件安装新的软件或改变用户文件类型的关联(如改变JPEG解码程序)
•隐私分级2:该软件传输匿名数据给开发人员或第三方
•隐私分级3:如果软件不包含隐私分级1、2中任何一种行为,则被划分为隐私分级3
四.测试
【安全漏洞分级
DREAD模型:进行威胁程度级别分析的有效技术。
•DREAD:1潜在的破坏2再现性3可利用性4受影响用户5可发现性TRAP模型:
•基于可利用性提出。
•TRAP包括因素:1时间2可靠性/再现性3访问4定位
【安全的常规测试方法
1.基于风险的安全测试3个步骤:1信息搜集2威胁(风险)建模3可用性分析
在一个威胁路径上的9个高风险活动:
1数据解析2文件访问3数据库访问4生成子进程5身份鉴别6授权
7同步或会话管理8处理私密数据9网络访问
2.白盒,黑盒,灰盒测试
白盒测试:也称明盒测试、开盒测试或信息充分测试。白盒测试可以看作是内部的攻击。测试人员可以访问源代码和设计文档,可以进行威胁建模或逐行的代码检查。白盒测试是找出漏洞最为有效的方法。
黑盒测试:以局外人的身份对系统进行攻击,使用工具检查系统的攻击面,并探查系统的内部信息。黑盒测试是白盒测试的补充。方向工程团队利用黑盒测试验证隐蔽式安全方法的强度。
灰盒测试:组合使用白盒测和黑盒测试。白盒测试用于发现在设计和开发中详细说明的功能中的缺陷;黑盒测试在无法了解程序内部信息的时候找出缺陷。程序开发中的调试运行是典型的灰盒测试方法。
五 SDL的3原则
安全的设计缺省安全安全提交
六信息系统的主要特征:
1一定是依赖于计算机的;
2涉及了计算机的软件和硬件;
3实现数据的采集、传递、加工、处理功能。