一、術語:
安全加固(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加密來提升數據訪問安全性
數據加密傳輸,并增加監控和審計控制措施
四、總結:
系統安全加固是以盡可能地降低企業安全風險和威脅為目標的,本文基于安全行業推薦的最佳實踐指導框架,結合芯片研發環境展開做了簡要介紹;根據研發環境不同的安全域,分級制定安全基準,根據安全加固幾個原則推薦,對主要五個層:網絡層、應用層、主機層、操縱系統層和數據層進行特別的安全加固:比如,修補漏洞、嚴控權限、布控防火墻規則等,希望通過在諸如“一個中心、三層隔離、五層安全控制”的安全體系下,通過對網絡、主機、操作系統、應用程序和數據這五個關鍵層的安全加固和特別控制,建造起有效的阻止入侵和防止數據泄露的安全防線。
最后,我們要強調的是,安全加固不是一個一次性項目,而是一個從計劃到評估基準線再到測試最后部署的一個持續而不斷更新的流程。“千丈之堤,以螻蟻之穴潰;百尺之室,以突隙之熾焚” !信息安全的城墻需要細致、全面而長期的努力!