常见的软件安全缺陷有:缓冲区溢出和详细错误信息
缓冲区溢出:指内存中的数据超出了原有的原有的存储空间且该数据流到为其它数据准备的内存区域中。
详细错误信息:指将错误信息显示给用户,这些错误信息可以给攻击者提供程序所在的目录位置,数据库的结构或其他信息
在软件开发的生命周期中怎么降低软件的安全缺陷:
第一种:风险分析--列出该程序有可能遇到威胁,对这些威胁进行分类,并制定相对应的规避策略
威胁一般有哪些:
(1)电子欺骗:利用计算机之间的信任关系来获取计算机不用授权访问的一种方法
eg:伪造他人的源IP地址,让一台计算机来扮演另一台计算机,让入侵者不用输入用户帐号和口令,就可以侵入
(2)随意更改,添加,删除其它人数据
(3)不用授权就能访问其他人信息
(4)让合法用户不能使用系统
(5)修改用户权限
怎么对威胁进行严重性分类:
(1)该威胁的破坏性有多大,有多少用户会受到影响
(2)该威胁能否轻易复制传播
(3)有什么方式能够发动该威胁,这种威胁是不是能轻易就发动
再根据不同的攻击制定不同的安全策略
第二种:攻击树:先确定程序有可能存在什么攻击,使用图对攻击进行分析,用什么方式能发动攻击,该攻击一旦发动会造成什么样的后果,对于不同的攻击制定相应的策略
第三种:防御性编程编程人员根据以往经验判断程序运行时有可能出现哪些错误,并采取相应的处理
(1)源码走查
(2)过滤用户输入
(3)对程序进行认证签名