如何使用IMDShift提升AWS工作負載的安全性
關于IMDShift
IMDShift是一款功能強大的AWS工作負載安全增強工具,該工具基于純Python開發,可以幫助廣大研究人員更好地提升AWS工作負載的安全。
很多研究人員和開發人員在實踐中會發現,依賴于元數據節點的AWS工作負載很容易會受到服務器端請求偽造(SSRF)攻擊的影響,而IMDShift可以通過自動化的形式將所有的工作負載進程遷移到IMDSv2,在除了增加了額外功能的情況下,IMDSv2還實施了增強型的安全保護措施來幫助AWS工作負載抵御相關安全威脅,并大幅度提升安全性。
功能介紹
1、在各種服務中檢測依賴元數據節點的AWS工作負載,包括EC2、ECS、EKS、Lightsail、AutoScaling Groups、Sagemaker Notebooks、Beanstalk(正在開發中);
2、提供了簡單直觀的命令行界面,易于使用;
3、支持將所有工作負載自動遷移到IMDSv2;
4、為兼容資源設置了獨立的跳點限制更新;
5、為兼容資源啟用獨立元數據節點操作;
6、提供了遷移過程的詳細日志記錄;
7、使用了MetadataNoToken識別使用了IMDSv1的資源;
8、內置服務控制策略(SCP)建議;
工具安裝
由于該工具基于純Python 3開發,因此我們首先需要在本地設備上安裝并配置好Python 3環境。接下來,廣大研究人員可以根據實際需求,選擇下列兩種工具安裝方式。
生產環境安裝
git clone https://github.com/ayushpriya10/imdshift.git
cd imdshift/
python3 -m pip install .
開發環境安裝
git clone https://github.com/ayushpriya10/imdshift.git
cd imdshift/
python3 -m pip install -e .
工具參數選項
--services TEXT:該參數可以從下列環境中掃描出使用了IMDSv1的工作負載實例:EC2, Sagemaker、ASG、Lightsail、ECS、EKS、Beanstalk;命令格式: "--services EC2,Sagemaker,ASG";
--include-regions TEXT:該案數明確指定要掃描IMDSv1使用情況的區域范圍;命令格式: "--include-regions ap-south-1,ap-southeast-1";
--exclude-regions TEXT:該參數明確指定要從掃描中排除的區域;命令格式: "--exclude-regions ap-south-1,ap-southeast-1";
--migrate:這個布爾參數可以控制IMDShift是否要執行遷移任務,默認為“False”;命令格式: "--migrate"
--update-hop-limit INTEGER:該參數指定是否應更新躍點限制以及更新值。建議將躍點限制設置為“2”,以使容器能夠使用IMDS節點。如果未傳遞此參數,則遷移期間不會更新躍點限制;命令格式: "--update-hop-limit 3";
--enable-imds:這個布爾參數可以讓IMDShift啟用資源元數據節點查看,并執行遷移操作; 命令格式: "--enable-imds";
--profile TEXT:該參數允許我們使用任意配置文件,路徑為 ~/.aws/credentials file;命令格式: "--profile prod-env";
--role-arn TEXT:這個參數可以通過AWS STS聲明一個用戶角色;命令格式: "--role-arn arn:aws:sts::111111111:role/John";
--print-scps:這個布爾參數用于控制打印可以控制IMDS使用的SCP,默認為“False”;命令格式: "--print-scps";
--check-imds-usage:這個布爾參數可以啟動一次掃描以識別過去30天內在指定區域中有多少個實例使用了IMDSv1,默認為“False”;命令格式: "--check-imds-usage";
--help:顯示工具幫助信息和退出;
工具運行截圖
許可證協議
本項目的開發與發布遵循GPL-3.0開源許可證協議。
項目地址
IMDShift:【GitHub傳送門】
參考資料
https://github.com/salesforce/metabadger
本文作者:Alpha_h4ck, 轉載請注明來自FreeBuf.COM