1. 程式人生 > >走好這三步,不再掉進雲上安全的溝裡!

走好這三步,不再掉進雲上安全的溝裡!

序言

一直以來,公有云安全是橫亙在廣大使用者面前的一道鴻溝。雲安全(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應用部署架構中用到的安全服務

 

  1. 預設啟用AWS IAM、CloudTrail、Config、VPC Flow Logs、VPC DNS Logs 等服務或功能。IAM負責建立子賬戶以及分配對賬戶和資源的訪問許可權;CloudTrail會記錄你AWS賬號內幾乎所有API呼叫;Config會記錄你賬戶內所有的配置變化;VPC Flow Logs則會記錄VPC內的所有網路流日誌;VPC DNS Logs會記錄VPC內所有DNS查詢日誌。所有這些日誌都是進行後續安全檢測的主要資料來源。

  2. 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 來提升其高可用性等。

  3. Amazon S3是一託管類服務,提供物件儲存服務。AWS負責保證其11個9的資料可靠性和4個9的服務可用性,以及作業系統及軟體補丁升級、防火牆配置及災難恢復等。你可使用SSL/TLS訪問它,採用客戶端資料加密,啟用伺服器端資料加密,按需配置訪問許可權,啟用MFA Delete功能以防止儲存桶誤刪,開啟訪問日誌和監控,啟用物件版本,對特定物件加鎖以防止物件誤刪,使用CCR(跨區域訪問)來滿足某些合規要求;還可啟用AWS Macie服務,它會使用人工智慧演算法對S3儲存桶中的資料進行分析,發現潛在的安全風險,保護敏感資料。

  4. Amazon RDS是一託管類服務,提供關係資料庫服務。它向用戶提供多個安全功能,包括支援在VPC中建立例項、DB安全組、許可權控制、SSL連線、例項和快照加密、自動備份和快照、多可用區部署、作業系統和資料庫軟體自動補丁升級、日誌、監控及事件通知等,可根據需要使用這些功能。

  5. Amazon ElastiCache是一託管服務,提供記憶體型快取服務。它也提供了一系列安全功能,包括支援在VPC中建立例項、支援通過Cache安全組控制網路訪問許可權、IAM策略、SSL連線、資料加密、多可用區部署、作業系統和軟體自動補丁升級、故障探測和恢復、支援多例項、備份和恢復、自動快照、日誌、監控及事件通知等。

  6. AWS Elastic Load Balancing是一基礎設施型別服務,負責接收客戶端請求並將其分發給後端EC2例項。它需被建立在VPC中,建議將其分佈在多個可用區中以保障可靠性,使用安全(HTTPS/TLS)監聽器以保障客戶端和其之間的通訊安全,配置安全組以只接收特定客戶端的請求,使用AWS Certificate Manager來管理其伺服器證書,選擇合適的負載均衡器安全策略和監聽器安全策略等。

  7. 在網路邊界,AWS Shield基礎版或高階版可以為ELB、CloudFront釋出、Route 53託管區域等提供基礎性和高階DDoS防護;啟用AWS WAF,用於監控和控制對Web應用的非法訪問;需要的話還可以啟用AWS Firewall Manager服務,用於跨賬戶統一管理AWS WAF訪問規則、AWS Shield Advanced防護規則和VPC安全組等安全規則。

  8. 啟用GuardDuty,將資料來源配置為Macie、VPC Flow Logs和DNS Logs,它會負責對VPC內的網路活動和賬戶行為進行持續監控;再啟用Security Hub來作為你的AWS雲上統一安全與合規中心,將其資料來源配置為GuardDuty、Macie和Inspector,它會讓你在一個控制面板上就能檢視你AWS賬戶中的所有安全警報與合規性狀態。

  9. 還可以啟用Trusted Advisor服務,它可根據AWS部署架構最佳實踐,分析你的應用部署架構,從成本、效能、安全、容錯、容量等方面給出評估結果和改進建議,指導你進一步完善這個部署架構。

 

小結

 

需要指出的是,完整的雲上安全管理流程包括識別(Identity)、保護(Protect)、檢測(Detect)、響應(Respond)、恢復(Recover)等五大環節。因此,文中介紹的這三步 - 明晰責任、瞭解工具、合理選擇,只是雲上安全旅程的前幾步而已,但走好這幾步,你就能順利開啟你的雲上安全之旅了。 

 

 圖13:AWS完整安全管理流程

 

現在就出發,開啟你的雲上安全之旅吧!

 

感謝您的閱讀,歡迎關注我的微信公眾號:

&n