AWS EC2 Instance metadata

閱讀時間約 4 分鐘

EC2 Metadata 是可以從作業系統獲取的 EC2 信息,如 Instance ID、Instance 類型、所屬AZ等。例如,您可以通過將Instance ID 放在作業系統上運行的腳本的數據中來使 Logs 更易於查看。

獲取 Metadata 的方法是Instance Meta Data Service(IMDS) 在 169.254.169.254 使用 link-local IP,可以通過 curl 等命令訪問獲取。

Instance Metadata Service Version 1 (IMDSv1) – a request/response method
Instance Metadata Service Version 2 (IMDSv2) – a session-oriented method

預設情況下,您可以使用 IMDSv1 或 IMDSv2,或同時使用兩者。

IMDSv1 只要用GET方法執行上述命令就可以獲取 metadata,所以如果攻擊者可以將GET方法發送給Instance。(IMDS本身就是安全的)。

但是 IMDSv2,使用 PUT 方法獲取 metadata,需要 PUT 方法頒發的 TOKEN,這使得攻擊更加困難,並允許您配置更強的安全性。


EC2 Instance metadata 版本選擇

創建EC2 控制台 → 啟動 Instance → 在“高級詳細信息”項中,可以 啟用可訪問性 並選擇 metadata 版本

raw-image

預設 Instance metadata 為同時使用兩者

IMDSv1

IMDSv1

IMDSv2

IMDSv2

PUT使用請求創建一個持續六小時(21,600 秒)的 Session TOKEN


IMDSv2 的工作原理

IMDSv2 使用 session 的請求。對於 Session 的請求,您可以創建一個Session TOKEN 來定義Session持續時間,該持續時間最短為一秒,最長為六小時。


使用 EC2 IMDSv2 改進與好處

  • 訪問 v2 需要預先獲取的 Token

1.Token需要通過PUT獲取
2.Token請求時可以設置過期日期(秒)
3.必須在標頭中請求令牌

  • v1 可以禁用(默認可以一起使用)
  • Metadata 服務本身可以被禁用
  • 使用 IAM 權限限制,只能在啟動 EC2 實例時強制您將其設置為 v2
  • 不要向帶有 X-Forwarded-For 標頭的請求發出 Token
  • 可以縮短 Metadata 響應的 TTL 以防止通過多個主機獲取
  • 防止 SSRF 漏洞攻擊


關於 SSRF 漏洞攻擊

SSRF 是 Server-Side Request Forgery 的縮寫,是一種攻擊者偽造服務器發出的請求的攻擊。簡單來說,就是攻擊者利用易受攻擊的服務器向內部服務器發送攻擊請求的攻擊

如果您的創建 Web 服務器是有漏洞的,攻擊者將能夠訪問該 Instance metadata,並且可以使用 IAM 權限以及服務器內部的信息進行攻擊,這是一種危險的攻擊

使用IMDSv1 :

raw-image

易受攻擊的網頁請求

raw-image

範例程式

<?php
$target = isset($_GET['target']) ? $_GET['target'] : null;
if ($target == null){
echo "no result";
exit();
}

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $target);
$output = curl_exec($ch);

curl_close($ch);

print_r($output);
?>


解決方式


方法ㄧ 修改請求方式需要 TOKEN(關閉IMDSv1)

raw-image
raw-image

方法二關閉 metadata

raw-image
raw-image

補充

HttpPutResponseHopLimit (Integers from 1 to 64)

IMDSv2 需要 PUT 來檢索Token。這個參數設置限制了對該 PUT 的response在被網路丟棄之前的跳數,httpPutResponseHopLimit該設置的默認值為 1。

這意味著如果您距離 IMDS 不止一個網路跳點,那麼您將收到錯誤消息。最常見的原因是您在 docker 容器中運行。


avatar-img
16會員
80內容數
留言0
查看全部
avatar-img
發表第一個留言支持創作者!
西尼亞ming的沙龍 的其他內容
以下是限制 S3 bucket 訪問 HTTPS 的方法 測試 S3 存儲桶訪問 S3 bucket 通常允許 HTTP 和 HTTPS 訪問 AWS CLI 預設通常使用 HTTPS 向 AWS 服務發送請求 https://docs.aws.amazon.com/zh_tw/cli/l
1.檢查AWS Health Dashboard 通過檢查 Health Dashboard ,可以得知 AWS 帳戶特定的故障通知 與 AWS 服務和區域故障報告。您可以注意到如 執行了緊急硬件維護 或 與 RDS相關的服務出現故障,導致無法連接到RDS之類的訊息。 2. 檢查 Maint
CloudFront除錯相關 確認問題資訊 我們了解您遇到了網站異常的問題,麻煩您協助我們提供以下資訊,以便我們快速排解您的問題,感謝: 請問您發生異常的 CloudFront Distribution 是哪一個 請問現在還會有此異常狀況嗎 您最初發生異常的時間點大約是何時 請問您這種現
有這一篇原因是工作上,建立 OU 時,會自動新增額外的 FullAWSAccess 規則,但原本就會有預設Root OU繼承的FullAWSAccess,等於會有兩組一樣的規則,故所以詢問了AWS Support。 先謝謝 AWS 技術支援工程師 George 細心說明~ SCP很重要的
可以分析源代碼並檢查在遷移到 AWS Graviton 時需要更改的過時運行library 優化 aws 成本的方法之一是遷移到並採用具有高性價比的AWS Graviton 推薦使用AWS Graviton,從可持續性的角度來看,它有很好的表現 但有需要注意的地方: 不適用於所有操作系統和實
AWS AMI Oracle Linux 7 包成 AMI 後,使用 AMI 啟動新 EC2 會遇到 Instance status checks fail 的問題 查看 system log 看到 EC2 開機時沒有抓到 eth0 ,導致 Instance status checks fai
以下是限制 S3 bucket 訪問 HTTPS 的方法 測試 S3 存儲桶訪問 S3 bucket 通常允許 HTTP 和 HTTPS 訪問 AWS CLI 預設通常使用 HTTPS 向 AWS 服務發送請求 https://docs.aws.amazon.com/zh_tw/cli/l
1.檢查AWS Health Dashboard 通過檢查 Health Dashboard ,可以得知 AWS 帳戶特定的故障通知 與 AWS 服務和區域故障報告。您可以注意到如 執行了緊急硬件維護 或 與 RDS相關的服務出現故障,導致無法連接到RDS之類的訊息。 2. 檢查 Maint
CloudFront除錯相關 確認問題資訊 我們了解您遇到了網站異常的問題,麻煩您協助我們提供以下資訊,以便我們快速排解您的問題,感謝: 請問您發生異常的 CloudFront Distribution 是哪一個 請問現在還會有此異常狀況嗎 您最初發生異常的時間點大約是何時 請問您這種現
有這一篇原因是工作上,建立 OU 時,會自動新增額外的 FullAWSAccess 規則,但原本就會有預設Root OU繼承的FullAWSAccess,等於會有兩組一樣的規則,故所以詢問了AWS Support。 先謝謝 AWS 技術支援工程師 George 細心說明~ SCP很重要的
可以分析源代碼並檢查在遷移到 AWS Graviton 時需要更改的過時運行library 優化 aws 成本的方法之一是遷移到並採用具有高性價比的AWS Graviton 推薦使用AWS Graviton,從可持續性的角度來看,它有很好的表現 但有需要注意的地方: 不適用於所有操作系統和實
AWS AMI Oracle Linux 7 包成 AMI 後,使用 AMI 啟動新 EC2 會遇到 Instance status checks fail 的問題 查看 system log 看到 EC2 開機時沒有抓到 eth0 ,導致 Instance status checks fai
你可能也想看
Google News 追蹤
Thumbnail
徵的就是你 🫵 超ㄅㄧㄤˋ 獎品搭配超瞎趴的四大主題,等你踹共啦!還有機會獲得經典的「偉士牌樂高」喔!馬上來參加本次的活動吧!
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
了解内容寻址存储(IPFS)的工作原理和在加密货币市场中的应用。学习如何使用IPFS保护您的数字资产和隐私。 引言 在当前的加密货币市场中,数据存储和隐私保护变得越来越重要。内容寻址存储(IPFS)是一种革命性的技术,能够改变加密货币市场的游戏规则。IPFS可以保护您的数字资产和隐私,提供去中
Thumbnail
  在開始操作Web Service之前,要先做一些前置作業IIS的安裝,再開始建置Web Service相關內容,最後就是連線測試。   IIS(Internet Information Services)是網際網路資訊服務,可以讓網站使用HTTP/HTTPS、FTP/FTPS、SMTP 等等的
Thumbnail
Cloud Run 允許您指定哪些修訂版應該接收流量,並指定不同版本接收的流量比例。Revisions 也能使您能夠回滾到先前的版本、逐步增加新版本的流量比例,或在多個修訂版之間拆分流量。
Thumbnail
在串接第三方 API時,需要定期刷新 token,那有沒有辦法針對 request 和 response 做配置,在 token 過期時先做刷新、再做請求呢?本文要介紹利用 axios 套件提供的攔截器刷新 token 的作法。
Thumbnail
IaaS 以虛擬化原理運作,企業可從雲端服務商那裡獲得運算、儲存和資料庫等服務,不再需要自己購買設備、管理設備,或託管設備的空間。
Thumbnail
IaaS是一種雲端服務模型,所使用的運算資源託管在公有雲 、私有雲或混合雲中,能將傳統IT硬體設備統整為虛擬的運算資源,而得以針對運算需求彈性地調配資源。
Thumbnail
在企業內部環境中,對服務和API的安全且高效率的存取至關重要。本文探討了GCP提供的 Private GoogleAccess、Private Service Connect、Serverless VPC Access、Private Services Access 的區別,以及它們如何使組織受益。
Thumbnail
在開發前後端分離架構時,使用兩個不同網域所遇到跨域請求問題。特別是在POST請求時行為差異大,揭示了「簡單請求」與「預檢請求」的關鍵差異。簡單請求不需預檢,但application/json會觸發預檢請求,需透過特定設定解決。分享這篇文章希望幫助開發者有效處理跨域問題。
Thumbnail
Service Worker 是用於客戶端的攔截器,可以使用 Cache Storage 和 IndexDB,並有自己的生命週期。Web Worker 用於處理可能會使用到大量運算且不希望影響到使用者體驗的任務。Shared Worker 可以在相同 Domain 的不同頁面上共享訊息。
Thumbnail
授權碼模式連線流程 用戶端請求自己的伺服器。 伺服器發現用戶沒登入,就導向認證伺服器。 認證伺服器顯示授權頁面,等待用戶授權。 用戶確認授權後,授權頁面會向認證伺服器請求授權碼。 用戶獲取授權碼。 用戶將授權碼傳給伺服器。 伺服器拿授權碼向認證伺服器取得token。 應用註冊
Thumbnail
徵的就是你 🫵 超ㄅㄧㄤˋ 獎品搭配超瞎趴的四大主題,等你踹共啦!還有機會獲得經典的「偉士牌樂高」喔!馬上來參加本次的活動吧!
Thumbnail
隨著理財資訊的普及,越來越多台灣人不再將資產侷限於台股,而是將視野拓展到國際市場。特別是美國市場,其豐富的理財選擇,讓不少人開始思考將資金配置於海外市場的可能性。 然而,要參與美國市場並不只是盲目跟隨標的這麼簡單,而是需要策略和方式,尤其對新手而言,除了選股以外還會遇到語言、開戶流程、Ap
了解内容寻址存储(IPFS)的工作原理和在加密货币市场中的应用。学习如何使用IPFS保护您的数字资产和隐私。 引言 在当前的加密货币市场中,数据存储和隐私保护变得越来越重要。内容寻址存储(IPFS)是一种革命性的技术,能够改变加密货币市场的游戏规则。IPFS可以保护您的数字资产和隐私,提供去中
Thumbnail
  在開始操作Web Service之前,要先做一些前置作業IIS的安裝,再開始建置Web Service相關內容,最後就是連線測試。   IIS(Internet Information Services)是網際網路資訊服務,可以讓網站使用HTTP/HTTPS、FTP/FTPS、SMTP 等等的
Thumbnail
Cloud Run 允許您指定哪些修訂版應該接收流量,並指定不同版本接收的流量比例。Revisions 也能使您能夠回滾到先前的版本、逐步增加新版本的流量比例,或在多個修訂版之間拆分流量。
Thumbnail
在串接第三方 API時,需要定期刷新 token,那有沒有辦法針對 request 和 response 做配置,在 token 過期時先做刷新、再做請求呢?本文要介紹利用 axios 套件提供的攔截器刷新 token 的作法。
Thumbnail
IaaS 以虛擬化原理運作,企業可從雲端服務商那裡獲得運算、儲存和資料庫等服務,不再需要自己購買設備、管理設備,或託管設備的空間。
Thumbnail
IaaS是一種雲端服務模型,所使用的運算資源託管在公有雲 、私有雲或混合雲中,能將傳統IT硬體設備統整為虛擬的運算資源,而得以針對運算需求彈性地調配資源。
Thumbnail
在企業內部環境中,對服務和API的安全且高效率的存取至關重要。本文探討了GCP提供的 Private GoogleAccess、Private Service Connect、Serverless VPC Access、Private Services Access 的區別,以及它們如何使組織受益。
Thumbnail
在開發前後端分離架構時,使用兩個不同網域所遇到跨域請求問題。特別是在POST請求時行為差異大,揭示了「簡單請求」與「預檢請求」的關鍵差異。簡單請求不需預檢,但application/json會觸發預檢請求,需透過特定設定解決。分享這篇文章希望幫助開發者有效處理跨域問題。
Thumbnail
Service Worker 是用於客戶端的攔截器,可以使用 Cache Storage 和 IndexDB,並有自己的生命週期。Web Worker 用於處理可能會使用到大量運算且不希望影響到使用者體驗的任務。Shared Worker 可以在相同 Domain 的不同頁面上共享訊息。
Thumbnail
授權碼模式連線流程 用戶端請求自己的伺服器。 伺服器發現用戶沒登入,就導向認證伺服器。 認證伺服器顯示授權頁面,等待用戶授權。 用戶確認授權後,授權頁面會向認證伺服器請求授權碼。 用戶獲取授權碼。 用戶將授權碼傳給伺服器。 伺服器拿授權碼向認證伺服器取得token。 應用註冊