译者 | 陈峻
审校 | 孙淑娟
如果我问您什么方面会与IT基础架构、运营管理、以及DevOps都有联系,您可能会脱口而出是“系统加固”。的确,系统加固不但是拥有多样化基础架构的大型IT团队的日常工作之一,而且能够给系统保护带来广泛的安全功能。
下面,我将和您探讨什么是系统加固、加固的重要性、加固的标准、以及Chef如何帮助DevSecOps团队快速、轻松地加固异构化的系统。
什么是系统加固?
系统加固是一种通过减少服务器、应用程序、固件、以及其他面向网络的系统级漏洞,来抵御网络攻击的方法。系统加固往往需要在基础设施和安全管理工具的帮助下来实现。这些工具将有助于审计各种系统、检测潜在的攻击向量、并最小化攻击面。
鉴于网络安全攻击对于企业的各种影响,系统加固可以做出针对攻击者的一种战略性防御,去弥补那些经常被用来攻击系统、以及访问敏感数据的系统级漏洞。下面是一些与系统加固相关的关键性操作:
- 删除或禁用不再使用的系统
- 限制各种权限
- 删除多余的应用程序、端口、功能、以及用户帐户
- 监控各种漏洞
理想情况下,运行漏洞扫描是系统加固的绝好起点。因为它们会发现各种缺失的补丁与安全更新,以及那些可被作为攻击入口的开放端口。系统加固也会要求更改服务与应用程序的默认密码,使用应用防火墙的严格规则来限制或控制流量,启用帐户锁定机制,以及执行持续的合规性审计。由于系统加固是一个持续的动态过程,因此我们需要事先确定好对此负责的团队,以及可长期实施的系统加固策略。
目前,大多数企业都会遵循由CIS(Center for Internet Security,互联网安全中心)、NIST(National Institute of Standards and Technology,美国国家标准与技术研究院)、以及ENISA(欧洲网络与信息安全局)等组织颁布的严格的系统加固准则。不过,此类准则并不能让企业一劳永逸。企业需要持续通过构建多层次的深度安全防御原则,在不减少应用程序和操作系统的特性与功能的基础上,来缩小各种网络攻击面。
从广义上讲,系统加固可被分为如下类型:
- 服务器加固:旨在保护服务器上的端口、功能、数据、以及权限。涉及到的技术包括:对服务器软件予以定期更新、打补丁,以及使用强密码机制。
- 软件加固:通过编辑或更新应用程序代码,来升级所有应用程序的安全措施,以应对各类攻击。
- 操作系统加固:旨在保障所有端点上运行的操作系统的安全。涉及到的技术包括:更新系统级的补丁,以及限制访问操作系统的帐户。
- 数据库加固:旨在保障数据库和DBMS的安全。涉及到的技术包括:限制用户的访问权限,禁用不必要的服务,以及加密数据库里的信息等。
- 网络加固:旨在保障服务器和端点之间的网络中,所有通信通道的安全。
系统加固的重要性
系统加固极大地降低了网络攻击的风险。在系统级的审计中,一种常见的违规原因便是那些导致“合规性漂移(compliance drift)”的配置更改。也就是说,我们每次在添加新的服务器、用户、以及应用程序时,都有可能产生新的漏洞。
一种常见现象是:当企业拥有多种可配置的大量软硬件资产时,安全运维人员都需要花时间以手动或自动的方式,对新、旧资产根据CIS之类的基准予以配置与调整。而在完成的时候,他们却无法保证没有引入新的错误。正是由于此类现象在各种IT生态系统中都普遍存在,因此我们需要特别注意那些不断变化的IT基础架构,确保对其动态的安全配置和持续合规性进行检查。对此,企业往往需要实施自动化的工具,通过持续监控和审计异构的IT资产,来保证能够在出现偏差时,及时补救并协助加固IT系统。
系统加固的优秀实践
既然系统加固是一个必不可少的过程,那么我们综合了NIST和CIS颁布的优秀实践标准,提出如下全面加固系统的策略:
- 遵守CIS、NIST、ENISA等系统加固标准
- 基于企业的特定需求,制定系统加固计划
- 使用基于CIS基准的安全审计工具,来执行持续审计、并识别系统中的漏洞
- 使用自动化的漏洞扫描与修补工具,识别缺失的补丁、错误的配置、安全类更新,进而快速执行漏洞的修复
- 运用强大的用户权限与访问规则,删除整个基础架构中不必要的帐户和权限
- 使用由CIS认证的自动化合规工具,自动产生合规性偏差报告和修复建议
系统加固建议图
系统加固与Chef Compliance
Chef Compliance是一种自动化的解决方案,其中包括CIS和DISA STIG的各项基准,可被用于审计和修复系统中的各种漏洞,以促进IT生态系统的合规与安全。在Chef Compliance中,企业可以同时使用Chef Infra(配置管理)和Chef InSpec(合规性)两个模块,来实现:
- 执行持续审计,评估异构资产的当前配置与状态
- 根据CIS和STIG推荐的基准,纠正错误的配置
- 对特定控制的审计,谨慎使用例外和豁免
- 自定义现有的补救内容,以满足企业的需求
- 如果安全基准受到了破坏,则应回滚到最后一次已知的可信状态
- 从单一的仪表板处,查看所有端点的配置与合规状态
借助Chef Compliance,企业可以保持跨混合云和多云环境的安全性,同时提高DevOps流程的整体效率。同时,IT团队能够在Chef的持续安全审计与修复的帮助下,执行系统加固,从而检测和修复不同IT组件中的漏洞。由于IT管理员获得了完全的可见性,因此他们很容易根据企业的实际要求,去调整基线,以及轻松地维护合规性配置文件。同时,他们也能够针对大规模的分布式混合与边缘基础设施,实施系统级别的加固。
获取、定义、监控、补救和报告
使用Chef进行系统加固的优势
从安全性和合规性的角度来看,使用Chef进行系统加固的优势主要体现在:
- 改进的安全态势:通过CIS和STIG的标准化配置文件,可持续开展审计和修复,确保降低系统的数据泄露、漏洞被利用、恶意软件的安装、未经授权的访问等风险。
- 更好的可审计性:Chef精心规划的配置文件,能够使得复杂的安全审计,变得更容易、更快速、更透明,进而能够交付出适用于主流平台和操作系统的、易于阅读的代码。
- 改进的系统功能:凭借着无差错(error-free)的自动化、针对流程的提速、配置的一致性、以及全面安全的基础设施,Chef提高了系统的整体效率、以及DevOps团队的生产力。
通过Chef InSpec扫描来检查系统加固的态势
如果您正在为系统加固寻找自动化工具,以确保异构IT资产的合规性,请下载免费版的Chef Workstation,并针对Windows或Linux系统,运行公开可用的Chef InSpec配置文件。
无需额外安装,您可以仅在目标节点上使用如下提供的DevSec基线,以分析Linux和Windows的系统态势。由于下面的命令会从GitHub中提取内容,因此您无需克隆存储库。通过提供SSH或WinRM的相关凭据,您可以扫描本地、云端、以及边缘系统中的IT资产:
Linux:
- DevSec的Linux基线
- $ inspec exec
- -t ssh://user@node -i ~/.ssh/id_rsa
Windows:
- $ inspec exec
- -t winrm://user:password@node
无论您的系统最初是如何配置的,这些简单的命令都会立即报告各种已通过的和失败了的测试结果,并且能够突出显示那些易受攻击的地方。同时,Chef Automate(Chef生态系统的仪表板)的用户也可以利用各种默认的、或自定义的系统加固配置文件,使用Chef Compliance去安排定期扫描。
译者介绍
陈峻 (Julian Chen),51CTO社区编辑,具有十多年的IT项目实施经验,善于对内外部资源与风险实施管控,专注传播网络与信息安全知识与经验;持续以博文、专题和译文等形式,分享前沿技术与新知;经常以线上、线下等方式,开展信息安全类培训与授课。
原文标题:System Hardening Standards and Best Practices With Chef,作者:Anugraha Benjamin