Infection Monkey 和第三方軟件的集成
在AWS EC2實例上運行Monkey
何時使用此功能
如果您的網絡部署在Amazon Web Services(帶有EC2實例)上,并且您想運行Infection Monkey進行測試,則此頁面適合您。您可以安全的方式在網絡中的各種實例上輕松運行猴子,而無需向Island提供任何憑據或在要測試的計算機上運行shell命令。
結果也將自動導出到AWS安全中心。
建立
假設您的網絡已經在AWS EC2中建立,請按照以下快速步驟進行操作。
Monkey Island 部署
為了直接從Monkey Island服務器運行Monkey,您需要將Monkey Island服務器部署到要測試的同一網絡中的AWS EC2實例。
設置IAM角色
為了使Island能夠成功查看您的實例,您需要為實例設置適當的IAM角色。
創建自定義IAM角色
轉到 AWS IAM角色儀表板并為EC2創建一個新的IAM角色。該角色將需要具有一些特定的權限,但是您可以使用AmazonEC2RoleforSSM, AWSSecurityHubFullAccess 和 AmazonSSMFullAccess預設權限。最后,它應該像這樣:

將IAM角色應用于實例
對于您要從該Island訪問的每個實例,將剛剛創建的新IAM角色應用于該實例。例如:

應用IAM角色后,您應該看到以下屏幕:

注意:設置IAM角色后,角色可能需要幾分鐘(有時最多需要10分鐘)才能有效啟動。這是AWS的工作方式,與Monkey的實現無關。
設置SSM代理
如果您的EC2實例未安裝SSM代理,則它們將無法執行SSM命令,這意味著您不會在猴子島的AWS機器表中看到它們。一般而言,大多數新的EC2實例都應該預先安裝SSM。默認情況下,SSM代理安裝在日期為2017.09和更高版本的Amazon Linux基本AMI上,以及Amazon Linux 2,Ubuntu Server 16.04和Ubuntu Server 18.04 LTS AMI上。
看到 亞馬遜有關使用SSM代理的文檔 有關如何檢查您是否有SSM代理以及如何在沒有代理時手動安裝代理的更多詳細信息。
用法
運行Monkey
當您在AWS實例上運行Monkey島時,該島會檢測到它正在AWS上運行,并在“ Run Monkey”頁面中顯示以下選項,如下所示:

然后您可以選擇一個可用實例作為“patient zero”,如下所示:
- 點擊“在AWS上運行”
- 選擇相關的網絡接口
- 選擇您要在其上運行Monkey的計算機
- 單擊“Run on Selected Machines”!??

筆記
- 可以使用IAM角色并被列出的計算機必須連接Internet(或者您可以為IAM設置代理)。這是標準的AWS慣例,您可以在AWS IAM文檔中閱讀有關它(以及有關如何設置所需代理計算機的信息)。
- 你可以看到猴子在 AWS市場。
附錄A:所需的特定策略權限
IAM角色將至少需要具有以下特定權限:
用于在其他計算機上執行Monkey-SSM
"ssm:SendCommand""ssm:DescribeInstanceInformation""ssm:GetCommandInvocation"
以下是IAM角色作為JSON對象的策略:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"ssm:SendCommand",
"ssm:DescribeInstanceInformation",
"ssm:GetCommandInvocation"
],
"Resource": "*"
}
]
}
用于將安全檢查結果導出到安全中心-安全中心
注意:這些是僅可在Monkey Island機器上設置的,因為它是唯一將發現導出到AWS安全中心的工具。
"securityhub:UpdateFindings""securityhub:BatchImportFindings"
這是SecurityHub的策略,作為JSON對象:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"securityhub:UpdateFindings",
"securityhub:BatchImportFindings"
],
"Resource": "*"
}
]
}
因此,兩個策略的JSON對象為:
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "VisualEditor0",
"Effect": "Allow",
"Action": [
"ssm:SendCommand",
"ssm:DescribeInstanceInformation",
"securityhub:UpdateFindings",
"securityhub:BatchImportFindings",
"ssm:GetCommandInvocation"
],
"Resource": "*"
}
]
}
AWS SECURITY HUB集成
Infection Monkey與 AWS安全中心 允許任何人驗證和測試其AWS環境的彈性,并將此信息與本機安全解決方案和基準評分相關聯。

集成將在Monkey違規模擬結束時將所有 Infection Monkey發現(通常是幾十個發現)發送到安全中心。
建立
如果在Monkey Island機器的AWS IAM角色上設置了正確的權限,則該Island將自動將其發現結果導出到AWS安全中心。
安全中心所需的特定權限
"securityhub:UpdateFindings""securityhub:BatchImportFindings"
請注意,集成是專門在Monkey Island和安全中心之間進行的。Infection Monkey是一個免費項目,沒有集中式基礎架構。
整合細節
Infection Monkey向AWS安全中心報告以下類型的問題: Software and Configuration Checks/Vulnerabilities/CVE。
具體來說,Island將發現的所有漏洞的發現結果與網絡上的一般發現結果一起發送(例如分段問題)。我們的歸一化嚴重性為100,而我們報告的大多數問題的范圍為1到10。
地區
Infection Monkey 可在所有公共AWS實例上使用。
例
在AWS中設置Monkey環境并將正確的IAM角色附加到Monkey Island計算機之后,報告結果將導出到安全中心。
- 導航
Findings。 - 按下特定的發現以查看更多詳細信息和可能的解決方案。
Infection Monkey中文使用教程
推薦文章: