安全加固:芯片设计环境的防护线
2021-05-25
来源:半导体行业观察
一、术语:
安全加固(Security Hardening)、安全基准、安全控制
可能大家已经留意到,在先进的IT环境部署中,“Hardening-安全加固”这个概念已经被广泛地提到并应用到生产环境中了;特别是它已经作为一种提高IT环境信息安全的一项安全性增强举措而为越来越多的企业青睐;我们通过大量的研究和实践经验,深刻体会到安全加固对保护研发环境安全的诸多好处,特通过此文和读者逐一分享。
一、安全加固(Hardening)的定义:
我们在上篇设计环境安全系列文章---《设计环境的安全体系概述》中阐述了安全域和安全层的概念,提出了“一个中心、三层隔离、五层控制”的安全体系,强调设计环境安全要做到分层控制。
图1.1 推荐的芯片研发环境的安全框架系统
分层控制从技术层面来讲,是一个庞大而复杂的流程,其中用到的一个手段就是本文着重要阐述的--分层安全加固。
安全加固(Hardening)从字面意思讲,就是对安全性的加强,其深层目的是通过尽可能地阻止可疑入侵、及时发现和修复安全漏洞来降低安全风险,从而提升整体研发环境的安全防范水平。
安全加固(Hardening)是通过科学的、系统性的方法,运用安全技术、流程和管理等手段,参考国内外权威的安全配置标准,并结合企业的业务环境特点,对承载关键数据的基础设施、主机、应用程序、操作系统、数据库、数据层等分别进行安全配置加固,从而提升信息系统和环境的安全,为企业建立起弹性的安全保障防护线。
安全加固(Hardening)从配置层面来看,具体的安全配置会根据安全标准建议,并结合芯片行业的最佳实践,与前面所述的“五层控制”相互呼应进行定制。如下图所示,安全加固重点围绕网络层、主机层、系统层、应用层和数据层安全进行。注意:我们这里提到的是数据而不是数据库,是因为在研发环境中,数据库的应用场景相对较少。但数据本身作为企业最关注的保护核心,我们需要单独为其做特别加固。
使用安全加固(Hardening)手段不仅适合于传统的数据中心,也适用于企业将研发环境部署到云上。云提供商和企业会基于“责任共担模型”一起抗衡安全风险,其一般会负责PaaS层的信息安全,而企业自身需要负责业务环境和数据层的信息安全。因此,最佳实践的安全加固对企业来说尤其有重要意义。
图1.2 .分层安全加固
安全加固(Hardening)要分层化的道理不难理解,因为每层可能出现的安全漏洞不同,黑客所用的攻击手段和工具不同,每层采用的安全技术、产品不同,使得我们的安全加固对每层来说也需要采用不同的方法。另外,分层安全加固也是主流安全规范所规定的,比如:PCI DSS、HIPAA、NIST和国家的安全等级规定等,因此分层化也是符合安全证书和审计要求的。
经过分层安全加固处理过的环境会:
1)明显提高研发环境的整体安全性
使得研发环境从粗线条控制—安全域隔离,到更细维度的分层控制,它基于安全概念更深层次、更细粒度地将安全风险控制延展开来;
使得安全措施和防护不再是传统的,通过各种安全产品的单维度实施,物理、逻辑隔离,补丁管理等单一手段,而是层层相连,环环相扣地编织成一张立体的空间安全网
2)符合各类安全规范要求,更容易通过审计
“安全加固”的方法是根据安全规范规定来设计和定制的,比如:国家的安全等级保护提出信息安全要做到网络安全、主机安全、应用安全等,这和上述讲到的“分层化安全加固”是完全对应上的,因此“分层化安全加固”必然符合各类安全规范的要求。
3)提高系统配置效率
“安全加固”在每个重要的保护层都制定了安全基准,几乎涵盖了所有基础架构层、应用层和数据层的系统和服务组件,比如:
操作系统 – 要求统一推送补丁,锁定firmware的访问;
软件标准安装– 要求制定软件安装和配置规则, 比如:制定标准软件清单和特殊软件安装流程;
网络即服务 – 禁用不安全的服务,比如tp,telnet等,而默认启用ssh, sftp等安全网络服务
访问控制 – 统一禁用默认账号或更改默认账号(比如:更名管理员 administrator),实现“最小化权限”管理等
安全加固实际上是一个对信息系统和研发环境标准化部署的过程,如果对这些标准化的部署使用自动化手段,这将会大大简化系统管理开销,防止人为错误,并且使得故障容易得到跟踪,安全事件更易于排查,审计数据也会被更高效地统一收集,这些都将极大程度地提高配置效率。
二、安全加固(Hardening)的框架:
全球公认的几家信息安全行业机构,比如CIS[1]、NIST[2]、SANS[3]等都推出了专业的安全加固标准。
其中,互联网安全中心CIS是一个非盈利组织,该组织致力于为空间网络安全提供“识别、开发、验证、推广和维持”空间安全的最佳实践解决方案。目前,CIS与众多的全球知名专家、IT产品和服务商、安全产品厂商等共同努力,已经制定发布了100多个配置安全基准建议,涵盖25个以上供应商的IT产品系列[1],因此备受政府、企业、学术界、各类网络安全和IT专业人士推崇。
一些芯片公司已经在其数据中心和云上使用了CIS方法来定制系统安全包,云厂商也参考并和CIS合作,在基于CIS的安全基准的基础上推出了各自的安全评估产品和安全指导框架。比如,亚马逊AWS的Inspector[4],微软云的CIS MicrosoftAzure[5]。
以下主要参考CIS的安全加固标准,简要阐述安全基准和安全控制指南。
2.1)安全基准
正如“造房要打地基,垒砖要拉桩子线”,做好安全加固要从“基准”做起。
大家都知道,当一个操作系统安装以后,比如Centos 7, 尽管在安装过程会中有几个选择—最小化、图形桌面等,但从安全角度来说,这些还是非常粗略的,远远不能抗衡各种安全风险;安装后的默认操作系统包含和打开了很多服务和端口,这就可能打开了很多“后门”,非常不安全。
安全基准会将所有可能的“后门”和安全风险都过滤一遍,通过行业经验推荐出符合安全准则和审计的标准配置建议。CIS对基准也会定期更新,从云到传统环境全面覆盖,所以很多企业都会参照使用CIS的基准。
安全基准不能盲目参照“指南”,而是应该根据自身企业的IT环境规模、风险控制目标、具体的研发环境情况而进行“量身定制”裁剪,否则不仅可能造成过度投资,还有可能因配置过度复杂而影响这个系统的性能、管理和使用效率。
那么该如何进行“量身定制”呢?
首先,需要对IT环境进行安全域的分类。比如摩尔精英IT/CAD及EDA云计算事业部推行的三层隔离方法论,就是将芯片设计环境进行安全域的分离定义,如下图所示:低安全的OA办公环境域、中等安全的VDI域和高安全的计算域。
图2.1 三层安全隔离域
其次, 进行级别分类,CIS推荐了L1和L2两级分类
L1基准配置
配置重点主要集中考虑能迅速地降低攻击威胁性,所以实施的是最基本的安全配置,按L1基准加固的IT环境对业务和性能的影响比较小,推荐在OA办公环境区采用此基准配置;
L2基准配置
L2侧重深度防御,实施标准严格,可能会对业务环境产生影响,推荐在安全级别最高的计算域采用此基准配置。
无论是按照L1还是L2标准进行的安全加固,都要进行充分测试验证,才能部署到生产环境中,否则会对业务和性能造成极大影响。
2.2)安全控制
分层安全加固配置和安全控制是相互结合的,CIS根据重要性,建议了20个控制手段,分三个大类[6]来防范最广泛的和最危险的攻击行为,详细措施如下表所示:
表2.2 CIS安全控制手段表
建议企业在规划安全加固时,从如下四个方面来考虑,这样即合规又全面,从而实现 “卓有成效”的最佳实践:
部署适合企业或业务场景的安全架构和框架
运用最适合企业或业务场景的技术手段
选用一种有效的风险评估方案
参考国际或国内安全规范
三、安全加固(Hardening)的实现要点:
我们在上一个章节中简单介绍了安全加固的框架,即根据安全域和安全级别建立安全基准线,再结合最佳实践采取安全控制手段。
根据安全专业机构指南和大量实战经验,我们总结出对各分层必要而有效的加固要点,建议在实施时将这几方面的配置部署考虑在安全加固规划中。
3.1)安全加固基本策略和原则
制定强密码策略
无论是管理员,还是普通用户、各种设备、软件应用等都需要密码,如果没有一个好的安全意识和机制来保护密码,密码会非常容易被窃取或泄露。因此制定强密码策略和定期更新密码是“安全加固”的重要有效手段之一。
我们这里推荐一个好用的密码管理工具:Teampass.net,Teampass是基于团队的密码管理工具,它兼容KeePass,可以按规则随机产生各种类型的强密码,方便不同团队在同一个平台上共同管理各自管辖领域的各种密码。
基于“最小权限”访问原则
系统访问的控制除了密码以外,就是IAM身份认证(Authentication)和授权(Authorization)的控制管理了。
我们看到国内有些大的芯片公司在这方面已经做的非常规范了,IAM管理应用到了关键设施和应用的访问,比如:按“最小原则”分配权限,用户在统一管理平台上申请基于具体访问理由的权限;或者加强超级管理员权限的管理和审计,无论网络设备还是操作系统,禁用root直接访问,而是用用户的唯一IT账号登录,再sudo到授权的功能账号进行操作,这样既安全又有迹可寻。
软件安装标准化
软件安装标准化不仅大大减少了管理开销,对IT环境安全性加强也有极大的帮助。
比如避免员工随意安装客户端软件而带入可疑代码或病毒。因为系统标准化了,所以可以统一推送更新的安全策略到客户端等。
定期软件、固件、系统及其补丁的更新
软件和补丁的定期更新对于信息安全的意义勿用多说了,我们在前文《设计环境的安全体系概述》中的第2节“安全事件引发的思考”中举过台积电因WannaCry入侵而遭受重大损失的例子,事件主要原因就是未能及时更新系统补丁造成的。
需要强调的是,补丁管理不是一次性的安全举措,而是一个有序的严谨的针对不同层的关键基础设施组件而计划、审核、测试,并且实施的一个流程,需要持续地、坚持地进行。
日志集中收集和规划审计策略
现在的系统和设备的日志功能已经发展得越来越丰富了,由于IT组件众多,日志中的信息量极大,如果不合理规划,很难有效收集,及时发现安全问题。
安全加固首先要做好策略计划,比如需要记录哪些类设备的日志,记录哪些内容,必须记录还是可选记录等,记录标志等;然后规划一个集中收集、管理日志的方法,比如配置日志文件定期归档,搭建日志服务器,集中收集关键日志,并集成自动分析和安全报警流程,可以及时发现安全隐患、可疑入侵,比如:系统多次被未授权用户登录,文件被可疑删除等。
系统日志管理已经是安全加固不可缺少的策略之一了。
(访问过程)加密
我们在“加密”前特地加上“访问过程”,旨在强调,这里的安全加固是针对访问过程安全保护的,包括: 远程登录(ssh, rdp, vnc)。通过网页访问的应用程序,数据传输等,一律禁用“明文”而使用加密协议配置等。比如,在系统或网络设备安全配置中默认禁用ftp,telnet,启用TLS/SSL,用ldapsi进行认证连接,默认web访问用https而非http等等。
下面我们对每一层需要特别加固的部分再作进一步阐述。
3.2)安全加固基本策略和原则
网络为企业的关键基础设施之一,因此保护公司整体网络安全尤其重要,其安全控制措施之一就是对网络进行安全加固,以防止对网络层未授权的访问或攻击。
这个层的安全加固侧重针对路由器、交换机、防火墙、无线、VPN等关键网络设备及其相关配置。安全加固要基于“分级隔离”,“关闭不需要的物理网络端口”、“先授权再允许访问”的原则。
除此之外,加固的重点项列举如下:
精细化打磨防火墙策略,梳理和有序控制网络流量
我们从实践中体会到,防火墙策略的制定是门“艺术”细活,制定规则不能太宽泛,特别是在公有云上的环境,安全组和访问控制规则要根据架构、访问人员、来访地点严格控制和审查。关于云上的网络安全加固,建议大家阅读微软的“适应性网络安全固化”[7]一文,值得学习并运用到生产环境中。
但是,防火墙规则也不能一刀切得过度限制,否则会给业务效率带来负面影响。比如:在等级最高的研发环境中,研发团队是跨区协同工作的,如果过度限制了应用程序和数据的访问,会导致项目数据不能同步共享,从而影响项目开发进度。
运用OOB(Out of Band)进行远程访问控制。
网络层的远程访问是经常需要的,比如:管理员需要远程访问数据中心的网络设备安装、更新或排错。传统的做法是管理员打开特定的端口进行远程操作,按时这个开放的端口也给黑客有了可乘之机,他们会利用这个端口入侵系统环境。OOB技术能阻止和预防这类安全风险。
无线访问安全
这里特别强调无线访问的安全,因为无线网络相对有线网络更容易被攻击。
无线安全加固重点在于通过 802.1X协议-安全证书方式来进行认证和授权访问。
CIS有专门对主流品牌,比如Cisco,Checkpoint, Juniper等网络产品的安全基准指南,可以下载做安全评估。
3.3)主机的安全加固
主机安全加固主要是对主机和及其相关的用户终端设备(笔记本、台式机、Pad)的安全管理和加固。
加固侧重对设备硬件和软件的资产(CMDB)的管理配置,防止未经授权和登记的设备连入企业网络;当然除了访问控制,对高安全性区域的进入还可以增加双因素登入方式,提高接入门槛;终端设备还会强化移动设备接入的管理,比如通过安全策略禁止对USB的写入或者读写。
主机安全还应该根据其使用场景,分类放置于数据中心的不同安全域。
3.4)操作系统的安全加固
操作系统安全加固顾名思义就是专门针对各类操作系统的安全配置定制。也许你会想,我们已经做了严格的物理和网络层隔离了,还有必要对操作系统进行安全加固吗?答案是:肯定有必要的。
首先,操作系统是有漏洞,凡是有漏洞,就会有安全隐患;其次,不同操纵系统的用户账号可能没有做集成,比如有的公司的研发环境,工程师可能有AD、NIS、VNC3套以上的账号和密码,为了省事,员工经常使用弱密码,甚至共享账号和密码,重要的项目信息很容易被看到,并以某种方式传出去。
前面已经提到,操作系统的安全加固不仅对安全风险起了“屏蔽”作用,而且安全加固是基于安全基准标准化定制的,因此部署会非常快捷而高效。
最小化安装系统工具、软件和服务,避免不必要的端口和服务打开而留下“后门”隐患;
部署防病毒软件和病毒数据库的定期更新,对于windows环境相信大家已经作为默认实践,不过有的公司还参照CIS的建议,对于Linux的操作系统,安装AIDE[]和防病毒软件,如果在公有云上的场景里,建议在非安全区域里采用;
OS层的防火墙定制
OS层的防火墙建议根据实际环境定制,比如在高安全的计算域里,因为在网络层方面已经定制了严谨的防火墙规则,所以在Linux 操作系统层可以忽略此定制,否则会造成重复或过度加固;另外一种情况,用户如果觉得自己的网络层配置还不够成熟,或者是在多方协同合作的环境中,就可以考虑在OS层启用和配置防火墙规则。
我们建议通过运用Ansible,结合CIS安全基准来自动化地实现Linux系统和网络层的安全加固,这样会大大提高研发环境的安全性和管理效率。
3.5)应用层的安全加固
应用层的安全加固,也称为“应用程序安全屏蔽”。它旨在针对企业重点使用的应用程序,进行强化安全配置,提升应用层的安全防护,防止IP被盗,代码泄露、不合规滥用或恶意篡改等。
应用层的加固也是根据安全域、安全级别先做选择、分类分级,然后制定不同的安全配置策略来进行加固,除了本章3.1节提到的几个基本加固重点以外,还需要考虑增强对应用程序中的代码保护措施,工具包的生命周期管理,更新管理、应用程序配置标准化等。
此外,建议对应用程序做瘦身处理,比如删除sample文件和附带的默认密码,禁用或删除不需要的功能组件,不要将多个功能的应用装在同一台服务器上等。
厂商也在致力于对产品的安全加固,比如像提供配置和生命管理周期产品的达索这样的大厂商,更是将安全要素融入到了产品的开发设计中[8],那么对这类产品我们就可以比较轻松地按照厂商给的建议来做安全加固。
对于芯片研发环境,比较大的应用程序都内嵌数据库,可以考虑对数据库另外再做一层加固,如果数据库涉及高度敏感的数据,更要考虑做加密处理。
3.6)数据层的安全加固
数据层的安全加固无疑需要最“坚实”的安全屏障,因为IP、研发数据和产品资料是芯片行业最为重视的安全保护核心,一旦泄露就可能对企业造成重大损失和影响。其加固重点在于围绕存放数据和IP的存储设备,访问授权、传输路径上的安全措施及其监控和审计,针对芯片行业,建议措施如下:
对最敏感的设计数据和IP做加密保护,在灾备策略中,采用先加密再存放到备份介质上
防止超级管理员访问敏感数据
为Netapp配置NFS4.1 Kerberos加密来提升数据访问安全性
数据加密传输,并增加监控和审计控制措施
四、总结:
系统安全加固是以尽可能地降低企业安全风险和威胁为目标的,本文基于安全行业推荐的最佳实践指导框架,结合芯片研发环境展开做了简要介绍;根据研发环境不同的安全域,分级制定安全基准,根据安全加固几个原则推荐,对主要五个层:网络层、应用层、主机层、操纵系统层和数据层进行特别的安全加固:比如,修补漏洞、严控权限、布控防火墙规则等,希望通过在诸如“一个中心、三层隔离、五层安全控制”的安全体系下,通过对网络、主机、操作系统、应用程序和数据这五个关键层的安全加固和特别控制,建造起有效的阻止入侵和防止数据泄露的安全防线。
最后,我们要强调的是,安全加固不是一个一次性项目,而是一个从计划到评估基准线再到测试最后部署的一个持续而不断更新的流程。“千丈之堤,以蝼蚁之穴溃;百尺之室,以突隙之炽焚” !信息安全的城墙需要细致、全面而长期的努力!