序言
一直以來,公有雲安全是橫亘在廣大用戶面前的一道鴻溝。雲安全(Cloud Security)是指用於控制雲計算的安全性、合規性和其他使用風險的過程、機制和服務。公有雲提供商們都強調安全是其最高優先級工作,動輒就發布上百頁的雲上安全最佳實踐白皮書,舉辦幾百幾千人安全大會,發布幾十甚至上百個安全服務。但與此同時,用戶們對雲上安全的擔心一直揮之不去。在福布斯(Forbes)2019年的一份報告中,66%的IT從業人員認為安全是他們使用公有雲服務最大的擔心。Gartner預測到2020年,至少50%的企業用戶會在不知情或誤操作地將一些IAAS存儲服務、網絡、應用或API直接暴露到互聯網上,而到2023年,至少99%的雲上安全問題都是用戶的錯誤引起的。
正文
那到底是什么造成了這條鴻溝呢?筆者認為原因主要有三:一是用戶不知道自己該為雲中安全承擔什么責任,二是用戶不知道雲中安全服務的用途和用法,三是用戶不知道要為自己的應用選擇哪些安全服務。只有對症下葯,從明確自己的責任開始,在了解雲中的安全服務后,再選擇合適的安全服務,才能跨越鴻溝,開啟雲中安全之旅。
第一步:明晰職責 – 搞清楚你要為雲中安全承擔的責任
要實施成功的雲安全,第一要務是分清雲提供商和作為用戶的你的責任。公有雲中的安全性和本地數據中心中的安全性有所不同。在傳統數據中心安全模型中,你要為全部的安全性負責,包括機房、物理網絡、物理服務器、虛擬機、應用等等。當負載被遷移到了公有雲上后,一部分安全責任由公有雲提供商承擔了,但企業安全團隊依然需要承擔部分安全責任。此時,安全模型變成了安全責任共擔模型,也就是說你和公有雲提供商一起來為你在他們雲中的應用的安全負責。
Amazon Web Service(AWS)是全球最大公有雲提供商。其安全責任共擔模型(Shared Responsibility Model)明確指出,AWS負責提供安全的基礎設施和服務,而客戶負責保護操作系統、平台和數據。
圖1:AWS安全責任共擔模型(基礎設施服務)
在AWS安全共擔模型中,AWS負責保障雲“的”安全性,這是AWS的第一責任。以可用區(Availability Zone,AZ)為例,這是AWS雲基礎設施的一部分,AWS負責為數百萬活躍客戶提供安全的可用區。AWS雲的每個可用區由兩個或以上的互相隔離的數據中心構成,數據中心之間有足夠的隔離距離,每個數據中心有獨立的電力供應,數據中心采用冗余高速網絡互連等等。
圖2:AWS可用區設計
AWS有一整套安全制度來保障每個數據中心的安全平穩運行。比如每個數據中心內部都采用視頻監控,結合AWS的Kinesis Video Stream、S3以及人工智能等服務,來對視頻做實時傳輸、存儲和分析,實時發現可能存在的問題。
圖3:AWS對其機房實時視頻監控
而你,作為AWS 雲的一用戶,則需為雲“中”的安全性負責,這包括以下五個部分:
-
身份和訪問控制:負責雲中的身份和訪問管理,包括身份認證和授權機制、單點登錄(SSO)、多因子認證(MFA)、訪問密鑰、證書、密碼等。
-
基礎設施保護:負責對網絡、虛擬機實例和容器實例等基礎設施進行安全保護。在網絡方面,比如使用VPC來創建一個私有的、安全的和可擴展的網絡環境,創建網絡分層,在每一層上進行安全控制,自動地進行網絡檢測和防護,開啟網絡訪問日志等;在主機方面,比如使用主機安全工具來掃描虛擬機和應用的安全狀態,使用代碼掃描工具來發現代碼中的安全漏洞,對操作系統進行自動補丁升級和加固,使用安全通道訪問虛擬機,使用安全的配置工具對虛擬機進行配置等。
-
數據保護:負責你數據的安全,包括數據分類、加密、訪問控制等,因為數據是雲用戶的資產,雲供應商對其沒有訪問權限。
-
安全檢測:負責采用各種安全服務和工具,不管是雲供應商提供的還是第三方的抑或是自己開發的,檢測潛在的安全風險和安全問題。
-
事件響應:負責在出現安全問題后做出響應,消除安全風險,恢復數據和業務。
第二步:了解工具 – 搞清楚雲服務商提供了哪些安全服務
AWS首席信息安全官史蒂芬·施密特曾經說過:“客戶常常跟我們說,幫他們保持安全最好的方式,就是交給他們更智能的工具,讓他們可以更容易地搞定安全。”為了幫助用戶實現上述五大安全責任,到目前為止,AWS提供超過200種身份認證、安全及合規服務。下表中列出了AWS主要安全服務。
類別 |
描述 |
場景 |
安全服務 |
身份和訪問管理 |
針對不同AWS服務、操作和資源來定義、執行和審核用戶權限 |
安全地控制對AWS服務和資源的訪問 |
AWS Identity & Access Management (IAM) |
雲單點登錄服務 |
AWS Single Sign-On |
||
App身份管理 |
Amazon Cognito |
||
托管的Microsoft Active Directory服務 |
AWS Directory Service |
||
用於共享AWS資源的簡單而安全的服務 |
AWS Resource Access Manager |
||
基礎策略管理多個AWS賬戶 |
AWS Organizations |
||
輪換、管理以及檢索數據庫憑證、API密鑰和其它密鑰 |
AWS Secrets Manager |
||
檢測性控制 |
在問題影響業務之前識別和應用問題、改進安全狀況並降低環境中的風險 |
統一安全與合規中心 |
AWS Security Hub |
智能威脅檢測和持續監控 |
Amazon GuardDuty |
||
分析應用程序安全性 |
Amazon Inspector |
||
記錄和評估AWS資源的配置 |
AWS Config |
||
跟蹤用戶活動和API使用情況 |
AWS CloudTrail |
||
物聯網設備的安全管理服務 |
AWS IoT Device Defender |
||
利用機器學習自動發現、分類和保護敏感數據 |
Amazon Macie
|
||
生成進出VPC的IP流量的日志信息 |
VPC Flow Logs |
||
基礎設施保護 |
管理和提高基礎設施的整體安全性 |
分布式拒絕服務攻擊防護 |
AWS Shield |
過濾惡意網絡流量 |
AWS Web Application Firewall (WAF) |
||
跨賬號管理AWS WAF規則 |
AWS Firewall Manager |
||
安全地配置和管理EC2 |
AWS Systems Manager |
||
數據保護 |
通過數據的自動加密和管理服務,增強數據安全性 |
創建用於數據加密的加密密鑰 |
AWS Key Management Service (KMS) |
AWS雲中托管的硬件安全模塊 |
AWS CloudHSM |
||
創建、管理和部署公共和私有的SSL/TLS證書 |
AWS Certificate Manager |
||
回滾、管理以及回收密鑰 |
AWS Secrets Manager |
||
通過多種密鑰對S3中的數據進行服務器端加密 |
AWS S3 Server-side Encryption |
||
事件響應 |
幫助快速響應時間並返回到已知的良好狀態 |
調查潛在安全問題 |
Amazon Detective |
快速、自動、經濟高效地災難恢復 |
CloudEndure Disaster Recovery |
表1:AWS主要安全服務
AWS所有這些安全服務,構成了一個多層次的完整保護機制,為你在AWS雲中的應用保駕護航。
圖4:AWS分層安全保護機制
除了安全服務外,AWS還在AWS Architecture Center(AWS架構中心)網站上提供了最佳參考架構方案、工具、培訓和實驗,涵蓋敏捷性、安全性、可靠性、高性能和成本等多個方面。而且,在AWS Marketplace中,還有幾百家安全合作伙伴,在應用安全、數據保護、合規、主機安全、身份和訪問控制、日志和威脅檢測等提供眾多工具和方案。
了解每種安全服務的用途、使用場景、工作流程乃至計費方式等非常重要。下面就深入介紹下Security Hub和GuardDuty這兩種安全服務。
(一)Amazon GuardDuty 服務
在AWS環境中,對網絡活動和賬戶行為進行持續監控非常重要。啟用CloudTrail后,AWS賬戶內幾乎所有API調用活動都會記錄下來,但從海量日志中發現可疑活動會非常困難。VPC流日志服務負責記錄的VPC內的網絡活動也是如此。為了解決這些困難,AWS發布了Amazon GuardDuty服務,它通過分析多個日志數據源(包括VPC流日志、AWS CloudTrail事件日志和DNS查詢日志),持續監測AWS賬號、VPC網絡和負載的運行情況,使用威脅情報源和機器學習來標識AWS 環境中可疑的和未經授權的惡意活動,而且還可利用Amazon CloudWatch事件和AWS Lambda來執行自動化的通知和修復操作。
圖5:Amazon GuardDuty產品架構
Amazon GuardDuty會使用由AWS安全團隊負責維護和不斷改進的算法來進行日志檢測。主要檢測類別包括非法探測、實例盜用和賬號盜用等,而且還在持續增加中。
圖6:不斷增加中的GuardDuty能發現的安全風險類型數
然后,它將分析結果按照三個級別 (低、中和高) 之一呈現出來,並附有詳細的證據和修復建議。
圖7:Amazon GuardDuty截圖
這些結果可作為事件輸入到 Amazon CloudWatch之中,再使用AWS Lambda 函數來自動通知甚至修復特定類型的問題。在下圖所示的例子中,GuardDuty收集日志里的數據進行分析並將結果存放在S3中,同時通過CloudWatch Events采集特定的安全事件或風險等級事件。對於中等風險,通過AWS SNS服務郵件通知管理員,對於高風險則通過AWS Connect結合AWS Lambda電話通知管理員。
圖8:基於 Amazon GuardDuty 威脅級別的自動化通知
(二)AWS Security Hub
實現雲上安全的一大挑戰是可視性(Visibility)。你可能會用到多種安全工具,每種工具都會提供安全保護並產生大量數據,這使得你得每天在這些工具之間來回切換,處理數百甚至數千個安全警報。
為了解決此問題,AWS發布了Security Hub服務,它可讓你在一個可視化平台上就能查看AWS賬戶中的所有安全警報與合規性狀態。它對來自多個AWS服務(如Amazon GuardDuty、Amazon Inspector 和 Amazon Macie),以及AWS合作伙伴(比如Splunk, Qualys, Crowdstrike, Alert Logic等)的解決方案的安全警報或檢測結果進行聚合、組織和設置優先級,然后在具有可操作圖形和表格的集成控制面板上對所有檢測結果進行直觀匯總。
圖9:AWS Security Hub產品架構
GuardDuty從VPC流日志、AWS CloudTrail事件日志和DNS日志中發現AWS賬戶、VPC網絡和負載中的安全問題,Macie則利用人工智能算法從被監控的S3存儲桶中發現安全問題,Inspector從EC2實例中發現操作系統和應用的安全問題。所有安全問題都匯總到Security Hub后,它處理數據並進行關聯性分析,以確定最終檢測結果的優先級,然后在集成的控制面板上將所有安全檢測結果匯總起來,展示出當前的安全性與合規性狀態。
圖10:AWS Security Hub產品界面截圖
類似GuardDuty,Security Hub也支持通過CloudWatch Events與Lambda以及Step Functions集成。首先你在Security Hub配置數據來源以及響應方式,然后安全檢測結果條目會被以事件(Event)形式發送到CloudWatch中,CloudWatch中的規則(Rule)被觸發,然后事件信息會被推送到各種通知和事件管理或處理系統中。
圖11:AWS Security Hub自動響應示例
第三步:合理選擇 – 搞清楚要選擇哪些安全服務為你所用
要搞清楚需為你在AWS上的應用選擇哪些安全服務,還是得從你所選擇的雲功能服務入手。下圖顯示了針對一個典型三層Web應用部署架構所選擇的主要安全服務。
圖12:一典型Web應用部署架構中用到的安全服務
-
默認啟用AWS IAM、CloudTrail、Config、VPC Flow Logs、VPC DNS Logs 等服務或功能。IAM負責創建子賬戶以及分配對賬戶和資源的訪問權限;CloudTrail會記錄你AWS賬號內幾乎所有API調用;Config會記錄你賬戶內所有的配置變化;VPC Flow Logs則會記錄VPC內的所有網絡流日志;VPC DNS Logs會記錄VPC內所有DNS查詢日志。所有這些日志都是進行后續安全檢測的主要數據來源。
-
Amazon EC2是一基礎設施類服務,提供虛擬機服務。你需將EC2實例創建在VPC中以實現網絡隔離,利用安全組控制網絡訪問,使用IAM控制用戶、應用或服務對它的訪問權限,使用SSH或AWS Systems Manager Session Manager安全地遠程訪問它,使用AWS Systems Manager Run Command對EC2實例進行配置,使用AWS Inspector對EC2實例和應用進行安全檢查,手工或使用AWS Systems Manager Patch Manager自動地進行補丁升級和更新,使用EBS雲盤加密功能來保護其靜態數據安全等,使用Amazon EC2 Auto Scaling 來提升其高可用性等。
-
Amazon S3是一托管類服務,提供對象存儲服務。AWS負責保證其11個9的數據可靠性和4個9的服務可用性,以及操作系統及軟件補丁升級、防火牆配置及災難恢復等。你可使用SSL/TLS訪問它,采用客戶端數據加密,啟用服務器端數據加密,按需配置訪問權限,啟用MFA Delete功能以防止存儲桶誤刪,開啟訪問日志和監控,啟用對象版本,對特定對象加鎖以防止對象誤刪,使用CCR(跨區域訪問)來滿足某些合規要求;還可啟用AWS Macie服務,它會使用人工智能算法對S3存儲桶中的數據進行分析,發現潛在的安全風險,保護敏感數據。
-
Amazon RDS是一托管類服務,提供關系數據庫服務。它向用戶提供多個安全功能,包括支持在VPC中創建實例、DB安全組、權限控制、SSL連接、實例和快照加密、自動備份和快照、多可用區部署、操作系統和數據庫軟件自動補丁升級、日志、監控及事件通知等,可根據需要使用這些功能。
-
Amazon ElastiCache是一托管服務,提供內存型緩存服務。它也提供了一系列安全功能,包括支持在VPC中創建實例、支持通過Cache安全組控制網絡訪問權限、IAM策略、SSL連接、數據加密、多可用區部署、操作系統和軟件自動補丁升級、故障探測和恢復、支持多實例、備份和恢復、自動快照、日志、監控及事件通知等。
-
AWS Elastic Load Balancing是一基礎設施類型服務,負責接收客戶端請求並將其分發給后端EC2實例。它需被創建在VPC中,建議將其分布在多個可用區中以保障可靠性,使用安全(HTTPS/TLS)監聽器以保障客戶端和其之間的通信安全,配置安全組以只接收特定客戶端的請求,使用AWS Certificate Manager來管理其服務器證書,選擇合適的負載均衡器安全策略和監聽器安全策略等。
-
在網絡邊界,AWS Shield基礎版或高級版可以為ELB、CloudFront發布、Route 53托管區域等提供基礎性和高級DDoS防護;啟用AWS WAF,用於監控和控制對Web應用的非法訪問;需要的話還可以啟用AWS Firewall Manager服務,用於跨賬戶統一管理AWS WAF訪問規則、AWS Shield Advanced防護規則和VPC安全組等安全規則。
-
啟用GuardDuty,將數據源配置為Macie、VPC Flow Logs和DNS Logs,它會負責對VPC內的網絡活動和賬戶行為進行持續監控;再啟用Security Hub來作為你的AWS雲上統一安全與合規中心,將其數據源配置為GuardDuty、Macie和Inspector,它會讓你在一個控制面板上就能查看你AWS賬戶中的所有安全警報與合規性狀態。
-
還可以啟用Trusted Advisor服務,它可根據AWS部署架構最佳實踐,分析你的應用部署架構,從成本、性能、安全、容錯、容量等方面給出評估結果和改進建議,指導你進一步完善這個部署架構。
小結
需要指出的是,完整的雲上安全管理流程包括識別(Identity)、保護(Protect)、檢測(Detect)、響應(Respond)、恢復(Recover)等五大環節。因此,文中介紹的這三步 - 明晰責任、了解工具、合理選擇,只是雲上安全旅程的前幾步而已,但走好這幾步,你就能順利開啟你的雲上安全之旅了。
圖13:AWS完整安全管理流程
現在就出發,開啟你的雲上安全之旅吧!
感謝您的閱讀,歡迎關注我的微信公眾號: