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