网络安全的 10 个步骤之架构和配置
安全地设计、构建、维护和管理系统。
技术和网络安全格局在不断发展。为了解决这个问题,组织需要确保从一开始就将良好的网络安全融入到他们的系统和服务中,并且这些系统和服务可以得到维护和更新,以有效地适应新出现的威胁和风险。
有什么好处?
在任何开发开始时确保安全性有助于创建更易于保持安全的系统,并可以减少未来任何昂贵的返工需求
良好架构和配置的系统或服务将帮助您确信安全控制正在减轻组织关心的风险
能够安全地管理系统,并随着时间的推移保持其安全性
该怎么办?
了解正在构建的内容以及原因
在设计系统之前了解上下文,包括组织愿意和不愿意接受的风险,以及系统的威胁模型。确定与组织目标相关的最关键的系统和组件将帮助您将精力集中在正确的地方。根据识别的风险选择安全控制措施,以及它们在减轻您预期的攻击类型方面的有效性,基于该威胁模型
考虑系统的预期寿命,以及它们如何适应不断变化的环境。网络安全形势瞬息万变,因此系统需要适应新出现的威胁以保持安全。确保系统开发和交付方法可以帮助您改进安全控制以跟上步伐。
使系统易于维护和更新
在设计系统之前,请考虑是否可以使用现有的、设计安全的产品或服务(而不是投资于自己实施所需的资源和专业知识)。例如,考虑如何从云服务的责任共担模型中受益。使用平台即服务 (PaaS) 和软件即服务 (SaaS) 等概念,可以将管理底层技术及其安全性的部分责任转移给服务提供商,从而能够集中更多精力量身定制的应用程序和服务。还将受益于供应商在安全方面的投资和专业知识。仍然应该确保云提供商提供的服务满足需求。
设计系统,以便在安全更新可用时立即应用,以最大限度地减少暴露于漏洞的风险,而不会对系统的可用性产生不利影响。
使用移动设备管理系统等配置管理技术并使用基础设施即代码来规范系统部署,以便随着时间的推移更容易跟踪、更新和重新部署系统。
使妥协和破坏变得困难
通过采用分层的安全方法,使攻击更加困难,以便攻击者必须通过多个控制才能成功。考虑使用MITRE ATT&CK等框架来帮助识别在攻击的不同阶段干扰攻击者的可能方式。
通过保护外部接口并删除或禁用不需要的配置和功能(例如账户、软件和演示功能)来减少攻击面。这应该包括:
· 将安全配置应用于服务器和最终用户设备以限制攻击者可用的选项
· 不信任来自外部来源的数据;在需要时,转换、验证或安全地呈现来自外部或不太受信任的来源的数据(这样它就不能用于对您的系统进行攻击)
· 通过采用反欺骗控制(包括DMARC、SPF 和 DKIM),使来自您域的电子邮件更难被欺骗以制作令人信服的网络钓鱼电子邮件
选择默认设计为安全的产品和服务。这减少了以安全方式部署产品所需的工作量,并让人们更加相信它们会随着时间的推移保持安全。
让用户更容易做正确的事情。安全漏洞经常发生,因为用户已经针对系统不足制定了解决方法。请务必考虑这种可能性,并确定用户在规避安全功能时可能采用的任何方法。
了解系统的局限性并考虑将如何处理拒绝服务攻击,无论它们是否是恶意的。这可能包括通过服务提供商进行的上游防御、扩展系统的选项以及响应计划和测试应涵盖的内容。确保考虑成本保护(例如,在启用自动扩展云资源时限制支出)。
首选久经考验的安全方法,并确保在构建定制解决方案时拥有正确的专业知识。避免使用会降低系统安全性的常用架构反模式。
确信所选择的安全控制在降低风险方面是真实有效的,并为最关键的控制寻求独立验证。
减少妥协的影响
通过防止横向移动并使其更容易恢复来减少妥协的影响。在最初的妥协之后,攻击者通常会尝试访问其他系统和数据。通过保护数据和通信,并确保使用隔离网络或采用零信任架构更加隔离关键组件,使攻击者在进入网络后更难到达他们的目标。
防止恶意软件在设备上运行(如果它确实到达您那里)。使用可根据已知特征和行为分析检测威胁的防病毒应用程序,以增加发现新威胁的机会。将应用程序控件配置为仅允许授权的可执行文件在不需要时为用户和应用程序运行和禁用宏。
计划备份和恢复。确保计划包括数据和服务,例如相关配置和帐户,并且您已经测试了计划,以便能够在发生重大事件(例如勒索软件攻击)时做出有效响应。应该拥有保持受保护的备份,并且可以在发生重大事件时访问。
使检测和调查妥协变得容易
设计通信流程,以便更容易检测到妥协。在组件之间使用明确定义和严格约束的通信方法,并使用允许和拒绝列表限制流,以便恶意行为更有可能从正常操作中脱颖而出。
收集日志并监控系统,以帮助检测和调查可能的危害。确保日志记录和监控系统充分分离,这样攻击者就很难通过删除或更改日志来隐藏他们的踪迹。
安全地开发和管理系统
控制和管理对系统和服务进行更改的方式。结合使用技术和策略控制来确保所有更改都经过授权并经过适当的检查,以确保它们不会对实时服务产生不利影响。设计这些控件可以轻松快速地应用安全更新和修复漏洞,从而最大限度地减少对已知漏洞的暴露。
保护开发和部署过程。通过保护代码存储库和用于构建和部署的管道,使意外或恶意更改难以影响系统。应该包括基于人工和机器的检查(例如代码审查和自动代码分析),以检测未经授权的更改并帮助防止引入漏洞。确保凭据和机密受到保护并与源代码分开。
获得对用于管理系统的设备的信任。如果攻击者破坏了这些设备之一(例如通过网络钓鱼攻击),他们可以继承相同级别的访问权限。使用特权访问工作站来管理认为对组织至关重要的任何系统。
保护管理接口,使攻击者更难访问关键功能。将对管理界面(包括 SSH、RDP 和 Web 控制台)的访问限制在受信任的位置或设备,并确保为管理帐户启用多重身份验证。通过在系统或设备发生故障时采取“打破玻璃”程序,确保在紧急情况下仍然可以进入。
参考来源:英国国家网络安全中心官网