DevOps 文字培训
如何保障 DevOps 信息安全?
在大多数组织中,信息安全方面的顾虑是反对采用 DevOps 的最常见理由之一。然而,DevOps 是交付全球最安全系统的最佳方法之一。
在许多组织中,你所在的组织也可能如此,信息安全专家与整个软件工程团队的人数比例为 1/100。也就是说,100 人的软件工程团队中通常只有一名信息安全专家。这会拉长解决软件安全问题所需的前置时间,延误交付,更糟的是,让客户无法获得应有的信息安全保障。
如果你从软件交付经历中只学到一件事,那一定是:项目最后遇到阻碍已经很糟,遇到安全问题造成的阻碍更糟。因此,每位 DevOps 团队成员都应将信息安全纳入日常工程工作,避免把它当成项目结束时才勾选或不勾选的复选框。
让信息安全专家参与软件工程流程的早期阶段
为确保信息安全问题不会在软件即将部署时成为重大障碍和瓶颈,请让信息安全专家参与软件工程流程的早期阶段。邀请他们参加演示、早期规划和评审会,让他们了解软件所服务的业务。这样,他们能更好地判断潜在的信息安全风险与问题,帮助 DevOps 团队制定在软件工程流程中必须处理的信息安全与合规目标。
将信息安全纳入日常工作
你和 DevOps 团队需要用常规的任务规划和事件管理工具跟踪安全功能和安全事件,避免将它们丢进团队并不关注的合规管理工具中。每当软件架构、设计或正在运行的系统出现信息安全问题,都要向团队讲解这些问题,帮助他们理解根本原因,以及今后面对类似情况时应该怎样思考和处理,以免重蹈覆辙。
在信息安全方面,DevOps 团队的具体做法包括:
- 防止安全错误反复出现。
- 将安全目标纳入项目目标、规划和跟踪工具。
- 将安全测试纳入部署流水线中的自动化测试。
- 从各个角度对产品和服务的特定功能进行全面的信息安全分析,再定义可复用的自助工具和软件库,将组织的信息安全最佳实践融入其中。
- 培训并信任 DevOps 开发人员与运维工程师,即使信息安全并不一定是他们的核心专长。
为软件构建安全的库、规程、蓝图、架构和设计
构建这类可复用资产后,DevOps 团队应在各个关键方面将软件的信息安全做法标准化,例如:
- 客户端与软件之间的通信和数据传输。
- 数据存储。
- 安全的环境。
- 操作系统、数据库以及第三方工具、组件和其他接口的配置,以防出现漏洞。
- 密码存储。
- 忘记密码的处理。
- 处理敏感客户信息的日志记录。
- 防止跨站脚本(XSS)。
- SQL 注入。
- 与业务及其所处法规环境有关的其他信息安全漏洞。
DevOps 方法推荐的信息安全做法
- 静态分析: 分析代码,识别后门和安全漏洞。
- 动态分析: 在系统运行时分析后门和漏洞。在非生产环境和生产环境中持续监控与分析 CPU、RAM、网络 I/O 和磁盘 I/O 操作。
- 依赖项分析: 对包含你无法控制的源代码的外部工具和依赖项进行静态和动态分析。组织使用第三方工具、库或服务时,也会继承它们的信息安全问题。请记得查阅第三方组件尚未解决的安全事件,以及供应商处理这些问题的速度记录。
- 源代码访问安全: DevOps 团队应使用公钥基础设施,每个人持有一个公钥和一个私钥。这样,代码存储库的所有签入、签出和读取操作都经过授权并受到监控,所有变更也由各自的执行者签名。
- 在各环境中集成安全监控(遥测): 检查系统使用详情,以识别安全违规事件。这类事件通常表现为某些由用户触发的关键事件过多,例如登录失败、密码找回请求,以及同一用户使用多张不同信用卡进行购买交易等。
总结
本章介绍了 DevOps 在信息安全方面的一些建议。信息安全本身既是技术也是实践,涉及广泛的知识。本章的方法旨在说明 DevOps 软件开发和交付方法如何处理信息安全。
DevOps 让信息安全成为组织中每个人的职责,从而将组织的信息安全与合规目标切实融入 DevOps 工程师的日常工作。全球最具活力的企业已经证明,这是一种能安全服务客户的方法。
