将安全性向左拉:在编写代码之前如何考虑安全性
图片:Gorodenkoff/Adobe Stock
技术已经改变了一切,从我们经营业务的方式到我们的生活方式。但伴随着便利而来的是新的威胁。Target、Facebook 和 Equifax 等公司的高调安全漏洞提醒人们,没有人能幸免。作为技术领导者,我们有责任创造一种文化,在这种文化中,保护数字应用程序和生态系统是每个人的责任。
一种新方法:设计安全
编写、构建和部署安全应用程序的一种方法称为设计安全性或 SbD。在 2015 年发布Amazon 白皮书后,SbD 风靡云计算,如今 SbD 仍然是 Amazon 推荐的框架,用于从一开始就系统地处理安全问题。SbD 是一种安全保证方法,可将安全设计形式化、自动化安全控制并简化审计。该框架将保护应用程序分为四个步骤。
了解您的要求
概述您的政策并记录控制措施。确定要执行的安全规则。了解您从生态系统中的任何外部服务提供商那里继承了哪些安全控制,以及您自己拥有哪些安全控制。
建立一个安全的环境来满足您的书面要求
当您开始定义将支持您的应用程序的基础架构时,请将您的安全要求称为配置变量并在每个组件中记录它们。
例如,如果您的应用程序需要对静态数据进行加密,请使用“encrypted = true”标签标记任何数据存储。如果您需要记录所有身份验证活动,请使用“log = true”标记您的身份验证组件。这些标签将把安全放在首位,然后通知您要模板化的内容。
通过策略、自动化和模板执行
一旦您知道您的安全控制是什么以及应该在哪里应用它们,您就不想留下任何人为错误。这就是您的模板的用武之地。通过将基础架构作为代码自动化,您可以高枕无忧,因为系统本身可以防止任何人创建不符合您定义的安全规则的环境。无论配置看起来多么微不足道,您都不希望管理员在云端或本地手动配置机器。编写脚本来进行这些更改将为自己付出一千倍的代价。
执行定期验证活动
安全设计框架的最后一步是定义、安排和定期验证您的安全控制。在大多数情况下,这也可以自动化,不仅是定期的,而且是连续的。要记住的关键是您需要一个始终合规的系统,因此该系统始终准备好进行审核。
SbD 的投资回报率是多少?
如果执行得当,SbD 方法会提供许多切实的好处。
- 强制未经授权的用户无法覆盖的功能
- 控制装置的可靠运行
- 持续和实时的审计
- 治理策略的技术脚本
此外,无论是在本地还是在云端,请确保您的安全策略解决以下问题:
- 网络安全
- 库存和配置控制
- 数据加密
- 访问控制
- 监控和记录
保持对主要威胁的认识
当涉及到实际的应用程序开发时,请注意OWASP Top 10。这是针对开发人员和 Web 应用程序安全性的标准意识文档。它代表了对 Web 应用程序最关键的安全风险的广泛共识。它会随着时间而变化,但下面我们汇总了 2022 年的顶级威胁列表。
- 访问控制损坏
- 密码失败
- 注射
- 不安全的设计
- 安全配置错误
- 易受攻击和过时的组件
- 标识和身份验证失败
- 软件和数据完整性故障
- 安全日志记录和监控故障
- 服务器端请求伪造
虽然您的开发人员了解这些威胁(SbD 流程的第一步)很重要,以便他们能够识别适当的控制并相应地实施(第二步和第三步),但同样重要的是验证活动(第四步)在和在开发过程之后。有许多商业和开源工具可以帮助进行此验证。
OWASP 项目保留了这些工具的更新列表,甚至直接维护了其中一些开源项目。您会发现这些工具主要针对特定技术及其特有的攻击。
帐户级最佳实践
如果不减轻最大的安全风险:用户,任何组织都无法真正安全。这就是帐户最佳实践的用武之地。通过实施帐户最佳实践,组织可以确保其用户不会无意中危及系统的整体安全性。确保作为一个组织,您在帐户管理方面遵循最佳安全实践:
- 对所有资源强制使用强密码
- 在帐户级别使用群组电子邮件别名
- 启用 MFA
- 切勿使用 root 进行日常访问
- 删除帐户级访问密钥
- 启用日志记录
记住合规性和监管要求
在某些行业或地区,您需要遵守额外的安全控制。常见的包括用于支付的 PCI 和用于医疗记录的 HIPAA。做好功课至关重要,如果您发现自己受到任何这些额外安全要求的约束,则可能值得联系专门从事所需特定控制的安全顾问,因为违规行为通常会面临高额罚款。
重要的是要记住,虽然组织是网络攻击的目标,但受害者是个人:他们是您的客户;他们是您的员工;他们是真正信任您和您的技术的人。这就是为什么组织从一开始就致力于保护应用程序的重要性。
在当今快节奏的数字环境中,被动的安全措施不会成功。精明的 CIO 正在采取积极主动的方法,将安全对话拉到左侧,涉及整个业务,并将最佳实践嵌入软件开发生命周期的每一步。
