设计原则
国际标准化组织(ISO)对计算机系统安全的定义为:确保信息资产(包括硬件、软件、网络、数据等)受到保护,以确保其机密性、完整性和可用性。计算机系统安全的目标是保护信息系统免受未经授权的访问、使用、披露、破坏、修改、中断或不可用的威胁,同时确保信息系统能够持续地提供服务。
系统安全的基本要素包括机密性、完整性、可用性、可审计、不可抵赖性等。其中最基本的三个要素是机密性(Confidentiality)、完整性 (Integrity)、可用性(Availability),简称CIA。
为实现系统安全所定义的基本要素,业界根据大量的实践,提炼出一些共性的安全设计原则:
- 零信任原则(Zero Trust)
- 零信任遵循“永不信任,始终验证”的安全理念,假设任何人或程序都不可信,无论是内部用户、外部用户还是网络设备。系统内的组件进行任何通信之前都将通过显式的验证,减少系统信任带来的攻击面。零信任把现有的基于实体鉴别和默认授权的静态信任模型(非黑即白),变成基于持续风险评估和逐次授权的动态信任模型。
- 零信任不根据网络空间位置决定可信度,其重心在于保护资源,而不是网段。与传统安全理念对比,它将网络防御的重心从静态的、基于网络的边界转移到了用户、设备和资源上。所有的资源(如人/物/终端/应用/网络/数据/供应链)都需要进行持续身份验证和信任评估,从全局视角执行动态安全策略。零信任通过动态、持续性的实体风险评估,缩小受攻击面,保证系统安全。
- 纵深防御原则(Defense In Depth)
- 多点、多重的安全防护机制来分层保护组织的网络、资产和资源。
- 不依赖单层安全防护能力,不因单一安全防护能力失效而完全暴露。
- 假设系统受到攻击,系统有一定的韧性能力保持最小化系统运行,可以提供最小化服务。
- 最小化原则(Least Privilege)
- 最小化身份:尽可能减少非必要的系统管理员,定时清理过期的身份。
- 最小化权限:给予用户或实体最小必要权限来执行其工作,以降低潜在的安全风险。
- 最小化暴露面:对不同的访问区域和访问对象,仅暴露最小的服务端点和最少的服务应用接口。
- 最小化凭证:尽量消除对长期的、静态凭证的依赖。
- 数据安全保护原则(Data Security)
- 数据分类分级,定义不同级别的数据防护措施。
- 确保对数据进行适当的加密、备份和访问控制,以保护数据的机密性、完整性和可用性。
- 维护个人隐私权利,保护隐私数据的机密性和完整性。
- DevSecOps
- DevSecOps的核心理念是将安全性纳入到整个软件开发生命周期中,从需求分析、设计、开发、测试、部署、运维、运营的每个阶段都考虑安全性,以确保系统的安全性和稳定性。
- 通过将安全性与DevOps的自动化流程相结合,DevSecOps可更快地检测和修复安全漏洞,并提高软件开发的效率和质量。