安全设计
“安全设计”包括安全需求所引导的安全设计,以及从攻击者角度出发的安全威胁分析,还有软件层次的整体性架构设计。
安全设计
- 使用安全设计原则
软件系统的架构设计要考虑性能、高可用和扩展性,还有安全性。软件系统架构设计应遵循一些基本的安全设计原则,如攻击面最小化、基本隐私、权限最小化、纵深防御等,提升软件系统的防御能力。
- 安全团队参与系统架构活动
安全团队应参与系统架构活动,包括所需解决问题的分解、模块的划分、组件的选用以及组件协作等内容,也应参与架构的具体方案设计如身份认证、授权及访问控制、密钥管理、敏感信息存储、加密传输、输入校验和日志记录等。
- 开展威胁分析
威胁分析是指从攻击者的视角来识别软件系统可能面临的威胁,例如:身份认证系统是否有可能被绕过,管理员默认密码未修改、授权和访问控制系统是否存在缺陷导致越权以及是否存在独立可审计的操作日志等,然后对已识别的威胁设计缓解方案。通过威胁分析,组织可以识别潜在的威胁并采取相应的措施来强化安全性,同时还可以提高安全意识和培训开发团队,以更好地保护组织的信息和资产。
- 根据安全需求进行安全设计
安全需求由业务需求面临的安全、合规等要求转化而来,与常规需求一样,安全需求需要对应的安全设计,比如为重要的操作(转账、支付等)设计不可猜测的用户ID,为用户输入设计相应的校验规则,或者引入安全开发组件等。为了开发团队能高效地进行安全设计活动,组织还可以建立和维护一套安全设计知识库。安全设计完成后,可以邀请资深开发工程师、架构师或者安全工程师对设计方案进行评审,确保安全设计满足已识别的安全需求。
S-SDLC CMM 模型现已发布,点击立即下载获取最新模型!