有了 Amazon GuardDuty,您可以監控您的 AWS 帳戶和工作負載以檢測惡意活動。今天,我們為 GuardDuty 添加了檢測惡意軟體的功能。惡意軟體是會危害工作負載、改變資源用途或獲得未授權數據訪問的惡意軟體。當您啟用 GuardDuty 惡意軟體進行保護後,若 GuardDuty 檢測到您的 EC2 實例或在 EC2 上運行的容器工作負載正在做一些可疑的事情時,就會啟動惡意軟體掃描。例如,當 EC2 實例與已知為惡意的命令和控制服務器通訊,或是對其他 EC2 實例執行拒絕服務 (DoS) 或暴力攻擊時,會觸發惡意軟體掃描。
GuardDuty 支持多種文件系統類型並掃描已知用於傳播或包含惡意軟體的文件格式,包括 Windows 和 Linux 可執行文件、PDF 文件、檔案、二進製文件、腳本、安裝程序、電子郵件數據庫和普通電子郵件。
當識別出潛在的惡意軟體時,會生成可操作的安全調查結果,其中包含威脅和檔案名稱、文件路徑、EC2 實例 ID、資源標籤以及容器 ID 和使用的容器映像等訊息。 GuardDuty 支持在 EC2 上運行的容器工作負載,包括客戶管理的 Kubernetes 集群或單個 Docker 容器。如果容器由 Amazon Elastic Kubernetes Service (EKS) 或 Amazon Elastic Container Service (Amazon ECS) 管理,則調查結果還包括集群名稱和任務或 Pod ID,因此應用程序和安全團隊可以快速找到受影響的容器資源。
與所有其他 GuardDuty 調查結果一樣,惡意軟體檢測被發送到 GuardDuty 控制台,透過 Amazon EventBridge 推送,路由到 AWS Security Hub,並在 Amazon Detective 中透過事件調查可查看。
GuardDuty 惡意軟體保護的工作原理
當您啟用惡意軟體防護時,您會設置一個 AWS Identity and Access Management (IAM) 服務相關角色,該角色授予 GuardDuty 執行惡意軟體掃描的權限。當針對 EC2 實例啟動惡意軟件掃描時,GuardDuty Malware Protection 使用這些權限拍攝附加小於 1 TB 的 Amazon Elastic Block Store (EBS) 卷的快照,然後在 AWS 服務中恢復 EBS 卷 同一個 AWS 區域中的帳戶以掃描它們是否存在惡意軟體。您可以使用標記,從這些權限和掃描中包含或排除 EC2 實例。透過這種方式,您無需部署安全軟體或代理來監控惡意軟體,並且掃描卷不會影響正在運行的工作負載。掃描後,服務帳戶中的 EBS 卷和您帳戶中的快照將被刪除。或者,您可以在檢測到惡意軟體時保留快照。
服務相關角色授予 GuardDuty 對用於加密 EBS 卷的 AWS Key Management Service (AWS KMS) 密鑰的訪問權限。如果附加到可能受損的 EC2 實例的 EBS 卷使用客戶管理的密鑰進行加密,GuardDuty Malware Protection 也會使用相同的密鑰來加密副本 EBS 卷。 GuardDuty 向服務帳戶發出授權的 KMS 密鑰無法從除了 Amazon EBS 服務之外的任何上下文中調用。此外,在掃描完成後,授權將被取消。如果卷未加密,GuardDuty 將使用自己的密鑰加密副本 EBS 卷,以確保 GuardDuty 創建的這些卷始終處於加密狀態。不支持使用 EBS 管理的密鑰加密的卷。
雲端中的安全性是您和 AWS 之間的共同責任。作為護欄,GuardDuty Malware Protection 使用的服務相關角色如果具有 GuardDutyExcluded 標籤,則無法對您的資源(例如 EBS 快照和卷、EC2 實例和 KMS 密鑰)執行任何操作。在將 GuardDutyExcluded 設置為 true 的情況下標記快照後,GuardDuty 服務將無法訪問這些快照。 GuardDutyExcluded標籤取代任何包含標籤。權限還限制 GuardDuty 如何修改您的快照,使它們在與 GuardDuty 服務帳戶共享時無法公開。
為 AWS 帳戶啟用惡意軟體保護
如果您尚未使用 GuardDuty,則在為您的帳戶啟動 GuardDuty 時,默認情況下會啟用惡意軟體防護。 因為我已經在使用 GuardDuty,所以我需要從控制台啟用惡意軟體防護。 如果您使用 AWS Organizations,您的委派管理員帳戶可以為現有成員帳戶啟用此功能,並配置是否應自動註冊組織中的新 AWS 帳戶。
在 GuardDuty 控制台中,我選擇導航窗格中設置下的惡意軟體防護。 在該頁面選擇啟用,就能啟用惡意軟體保護。
掃描後會自動刪除快照。 在常規設置中,我可以選擇在 AWS 帳戶中保留檢測到惡意軟體的快照,並將它們用於進一步分析。
在掃描選項中,我可以配置包含標籤列表,以便僅掃描帶有這些標籤的 EC2 實例,或者配置排除標籤,以便跳過帶有列表中標籤的 EC2 實例。
測試惡意軟體保護 GuardDuty 調查結果
為了生成多個 Amazon GuardDuty 調查結果,包括新的惡意軟體保護調查結果,我複製了 Amazon GuardDuty Tester 存儲庫:
$ git clone https://github.com/awslabs/amazon-guardduty-tester
首先,我使用 guardduty-tester.template 文件創建了一個 AWS CloudFormation 堆棧。 當堆棧準備好後,我按照說明配置我的 SSH 客戶端,以透過堡壘主機登錄到測試實例。 然後,我連接到測試實例:
$ ssh tester
從測試器實例中,我啟動 guardduty_tester.sh 腳本來生成結果:
幾分鐘後,結果將出現在 GuardDuty 控制台中。 在頂部,我看到了新的惡意軟體防護功能發現的惡意文件。 其中一項發現與 EC2 實例有關,另一項與 ECS 集群有關。
首先,我選擇與 EC2 實例相關的結果。 在面板中,我看到了有關實例和惡意檔案的訊息,例如檔案名稱和路徑。 在惡意軟體掃描詳細訊息部分,觸發器結果 ID 指向觸發惡意軟體掃描的原始 GuardDuty 結果。 就此案例而言,最初的發現是這個 EC2 實例正在對另一個 EC2 實例執行 RDP 攻擊。
在這裡,我選擇使用 Detective 進行調查,然後直接到 GuardDuty 控制台,我轉到 Detective 控制台以可視化 EC2 實例、AWS 賬戶和受調查結果影響的 IP 地址的 AWS CloudTrail 和 Amazon Virtual Private Cloud (Amazon VPC) 流數據。 使用 Detective,我可以分析、調查和確定 GuardDuty 發現的可疑活動的根本原因。
當我選擇與 ECS 集群相關的結果時,我會獲得有關受影響資源的更多訊息,例如 ECS 集群的詳細訊息、任務、容器和容器映像。
使用 GuardDuty 測試腳本可以更輕鬆地測試 GuardDuty 與您使用的其他安全框架的整體集成,以便在檢測到真正的威脅時做好準備。
將 GuardDuty 惡意軟體保護與 Amazon Inspector 進行比較
此時,您可能會想問 GuardDuty Malware Protection 與 Amazon Inspector 之間的關係,Amazon Inspector 是一種掃描 AWS 工作負載以查找軟體漏洞和意外網路暴露的服務。 這兩項服務相輔相成,提供不同層次的保護:
- Amazon Inspector 透過識別和修復作為攻擊者入侵資源和安裝惡意軟體的入口點的已知軟體和應用程式漏洞來提供主動保護。
- GuardDuty Malware Protection 檢測發現存在於主動運行的工作負載上的惡意軟體。 此時,系統已經受到攻擊,但 GuardDuty 可以限制感染時間並在系統攻擊導致業務影響事件之前採取行動。
可用性與定價
Amazon GuardDuty Malware Protection 已在提供 GuardDuty 的所有 AWS 區域推出,不包括 AWS 中國(北京)、AWS 中國(寧夏)、AWS GovCloud(美國東部)和 AWS GovCloud(美國西部)區域。
GuardDuty Malware Protection 在發佈時與以下合作夥伴產品集成:
使用 GuardDuty,您無需使用安全軟體或代理來監控惡意軟體。 您只需為在檔案系統中掃描的 GB 量(而不是 EBS 卷的大小)和 EBS 快照在它們保存在您的帳戶中期間付費。 GuardDuty 創建的所有 EBS 快照在掃描後都會自動刪除,除非您在發現惡意軟體時啟用快照保留。 有關更多訊息,請參閱 GuardDuty 定價和 EBS 定價。 請注意,GuardDuty 僅掃描大小小於 1 TB 的 EBS 卷。 為了幫助您控製成本並避免重複警報,相同體積的掃描頻率不會超過每 24 小時一次。