软件开发生命周期过程中,必须考虑的安全问题
概念 | 描述 |
---|---|
保密 | 防止未经授权的信息泄露 |
完整性 | 防止未经授权的,无意的或不正确的修改软件或数据 |
可用性 | 确保系统和信息的可用性 |
认证 | 建立用户或信息系统的身份的信任的系统 |
授权 | 建立资源的访问权限 |
审计/记录 | 建立用户操作和关键系统过程的历史记录 |
会话管理 | 确保会话保持系统和经过验证的用户之间交换的信息的机密性和完整性 |
错误和异常管理 | 确保意外和不可靠的系统行为被安全处理,换句话说,不要把错误详情暴露给用户 |
最小特权 | 授予所需要的最小权限 |
深度防御 | 进行多层安全防御,以减少成功攻击的机会 |
访问检查 | 每次请求访问对象的对象的访问检查,尤其是对安全关键对象 |
共享机制 | 避免有多个对象共享权限 |
易用性 | 确保安全性的功能是易于使用和对用户透明 |
利用现有的组件 | 多复用现有的成熟的组件,因为现有的组件已进行验证 |
薄弱环节 | 识别和保护系统的最薄弱的组件 |
单点故障 | 消除任何单点导致的不可用 |