软件安全性测试设计的基本原则

2015年3月2日

百度了下网上已有的同类话题,讲的有些笼统。这里将我日常工作中涉及到的细化一下,以备忘。


博客里的表格太难用了...直接上图:

软件安全性测试设计的基本原则_第1张图片


下面这张图可以帮忙加深上面表格的理解:

软件安全性测试设计的基本原则_第2张图片


1. 最小授权

只授予每个用户/程序在执行操作时所必须的最小特权。这样可以限制事故、错误、攻击带来的危害,减小特权程序之间潜在的相互影响。


2. 发生故障优先保证安全:

当系统发生故障时,对任何请求默认应加以拒绝。


3. 深入防御原则:

采用多层安全机制,这个概念范围比较大。比如在表单中的字段校验不光要在页面校验,还要在后台有相应的校验机制;比如在信任区、飞信任区之间二次部署防火墙。


4. 权限分离:

比如禁止root用户远程登录、多重身份校验登陆等;


5. 系统架构设计和代码尽可能简洁,越复杂的系统,bug越多...


6. 共享事务的数量和使用尽可能少,毕竟单独控制一个操作比并行控制两个过程更容易一些;


7. 安全保护机制不能依赖于攻击者对系统实现过程的无知、而只依赖于像口令/密钥这样较容易改变的东西。


8. 不信任原则:

要严格限制用户、外部部件的信任度,要假设他们都是不安全的。


9. 对受保护的对象的每一个访问都要经过检查。


10. 心理接受程度:

不能通过限制、甚至组织用户访问系统资源来阻止攻击,但可以考虑引入少量可接受的使用障碍。


11. 不要等开发人员编码完成才开始进行安全测试,可以负责任的将,65%以上的安全漏洞都是发生在架构设计阶段,因此要积极参与到架构设计评审活动中,将一些低中级别的隐患扼杀在摇篮中。


(完善中...)

你可能感兴趣的:(软件应用安全)