本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
修復 Lambda 函數的曝光
注意
Security Hub 處於預覽版本,可能會有所變更。
AWS Security Hub 可以產生 AWS Lambda (Lambda) 函數的公開調查結果。
在 Security Hub 主控台上,涉及公開調查結果的 Lambda 函數及其識別資訊會列在調查結果詳細資訊的資源區段中。您可以使用 Security Hub API GetFindingsV2的操作,以程式設計方式擷取資源詳細資訊。
識別暴露調查結果中涉及的資源之後,如果不需要,您可以刪除資源。刪除非必要的資源可以降低您的暴露描述檔和 AWS 成本。如果資源是必要的,請遵循這些建議的修補步驟,以協助降低風險。修復主題會根據特徵類型分割。
單一公開調查結果包含多個修復主題中識別的問題。相反地,您可以透過僅解決一個修補主題來解決暴露問題並降低其嚴重性。您的風險修補方法取決於您的組織需求和工作負載。
注意
本主題提供的修補指引可能需要對其他 AWS 資源進行額外諮詢。
注意
本主題提供的修補指引可能需要對其他 AWS 資源進行額外諮詢。
內容
Lambda 函數的組態錯誤特性
以下是 Lambda 函數的錯誤組態特性和建議的修復步驟。
Lambda 函數正在執行不支援的執行時間
Lambda 可讓開發人員執行程式碼,而無需透過在受管環境中執行程式碼的執行時間佈建或管理伺服器。Lambda 會自動將修補程式和安全性更新套用至受管執行期及其對應的容器基礎映像。當不再支援執行時間版本時,就不會再收到安全性更新、錯誤修正或技術支援。在已棄用執行時間上執行的函數可能會有安全漏洞,最終可能會因憑證過期等問題而停止運作。此外,不支援的執行時間可能容易受到新發現的安全性漏洞的影響,而沒有可用的修補程式。遵循安全最佳實務,我們建議針對 Lambda 函數使用修補、支援的執行時間。
升級函數執行時間
在公開的資源索引標籤中,使用超連結開啟資源。這會開啟 Lambda 函數視窗。若要將函數升級至支援的執行時間,請設定執行時間管理組態。您可以選擇讓函數自動更新至最新的執行時間版本,但在選取此選項之前,請評估自動升級是否會影響您執行中的應用程式。如需詳細資訊,請參閱了解 Lambda 如何管理執行時間版本更新。
Lambda 函數部署在 Amazon VPC 外部
根據預設,Lambda 函數會部署為可存取公有網際網路。此預設組態可讓 Lambda 函數連線到 AWS 服務端點和外部 APIs,但也會讓它們面臨潛在的安全風險。具有網際網路存取的函數可用來滲透資料、與未經授權的伺服器通訊,或在遭到入侵時成為外部演員的進入點。Amazon VPC 透過限制您的 Lambda 函數僅與定義的私有網路中的資源通訊,來提供網路隔離。遵循標準安全原則,我們建議在 VPC 中部署 Lambda 函數,以透過網路隔離提高安全性。
將函數連接至 VPC
在曝光調查結果中,開啟具有超連結的資源。這會開啟 Lambda 函數視窗。若要限制 Lambda 函數的網路存取,請將其連接到具有適當網路控制的 VPC。在將函數連接至 VPC 之前,請規劃其可能需要的任何 AWS 服務存取,因為在沒有 NAT 閘道或 VPC 端點的私有子網路中的函數將無法連線 AWS 服務 APIs。如需如何將 Lambda 函數連接至您帳戶中 Amazon VPC 的資訊,請參閱將 Lambda 函數連接至您帳戶中的 Amazon VPC AWS 帳戶。如果您的 函數需要 AWS 從私有子網路內存取服務,請考慮使用 VPC 端點進行服務連線,而不進行網際網路存取。如果您需要從私有子網路傳出網際網路連線,請設定 NAT Gateway。
Lambda 函數能夠擔任 IAM 角色
Lambda 函數使用 IAM 角色與 AWS 服務互動。這些角色會授予 Lambda 函數在執行期間存取 AWS 資源的許可。雖然 Lambda 函數有時需要這些角色來執行其任務,但這些角色應遵循最低權限原則。遵循標準安全原則, AWS 建議您根據函數的預期功能,檢閱連接至角色的許可是否適當。
-
判斷是否需要連接的 IAM 角色
判斷 Lambda 函數是否需要設定 IAM 執行角色。大多數 Lambda 函數都需要基本許可才能操作,例如將日誌寫入 CloudWatch。檢閱連接至函數執行角色的許可,並判斷函數是否需要 IAM 角色。如需 Lambda 執行角色的資訊,請參閱《 AWS Lambda 開發人員指南》中的使用 執行角色定義 Lambda 函數許可。
-
實作最低權限存取
將過度寬鬆的政策取代為僅授予函數操作所需特定許可的政策。如需 IAM 角色安全最佳實務的相關資訊,請參閱AWS Identity and Access Management 《 使用者指南》中的套用最低權限許可。若要識別不必要的許可,您可以使用 IAM Access Analyzer 了解如何根據存取歷史記錄修改政策。如需詳細資訊,請參閱AWS Identity and Access Management 《 使用者指南》中的外部和未使用存取的調查結果。或者,您可以建立新的 IAM 角色,以避免影響使用現有角色的其他 Lambda 函數。在此案例中,建立新的 IAM 角色,然後將新的 IAM 角色與執行個體建立關聯。如需為函數取代 IAM 角色的說明,請參閱《 AWS Lambda 開發人員指南》中的更新函數的執行角色。
與 Lambda 函數相關聯的 IAM 角色具有管理存取政策
管理存取政策為 Lambda 函數提供對 AWS 服務和資源的廣泛許可。這些政策通常包含功能不需要的許可。在 Lambda 函數上提供具有管理存取政策的 IAM 身分,而不是執行角色所需的最低許可集,可以在函數遭到入侵時增加攻擊範圍。遵循標準安全原則, AWS 建議您授予最低權限,這表示您僅授予執行任務所需的許可。
-
檢閱和識別管理政策
在公開調查結果中,識別角色名稱。前往 IAM 儀表板,並使用先前識別的角色名稱來尋找角色。檢閱連接至 IAM 角色的許可政策。如果政策是 AWS 受管政策,請尋找
AdministratorAccess
或IAMFullAccess
。否則,請在政策文件中尋找具有陳述式"Effect": "Allow", "Action": "*"
和"Resource": "*"
的陳述式。 -
實作最低權限存取
將管理政策取代為僅授予函數操作所需特定許可的政策。如需 IAM 角色安全最佳實務的詳細資訊,請參閱AWS Identity and Access Management 《 使用者指南》中的套用最低權限許可。若要識別不必要的許可,您可以使用 IAM Access Analyzer 了解如何根據存取歷史記錄修改政策。如需詳細資訊,請參閱AWS Identity and Access Management 《 使用者指南》中的外部和未使用存取的調查結果。或者,您可以建立新的 IAM 角色,以避免使用現有角色影響其他 Lambda 函數。在此案例中,建立新的 IAM 角色。然後將新角色與執行個體建立關聯。如需取代函數 IAM 角色的詳細資訊,請參閱《 AWS Lambda 開發人員指南》中的更新函數的執行角色。
-
安全組態考量
如果執行個體需要管理存取許可,請考慮實作這些額外的安全控制來降低風險:
-
多重要素驗證 (MFA) – MFA 需要其他形式的身分驗證來新增額外的安全層。即使登入資料遭到入侵,這也有助於防止未經授權的存取。如需詳細資訊,請參閱AWS Identity and Access Management 《 使用者指南》中的需要多重要素驗證 (MFA)。
-
IAM 條件 – 設定條件元素可讓您根據來源 IP 或 MFA 存留期等因素,限制何時及如何使用管理許可。如需詳細資訊,請參閱《IAM 使用者指南》中的使用 IAM 政策中的條件來進一步限制存取。
-
許可界限 – 許可界限會建立角色可擁有的最大許可,為具有管理存取權的角色提供護欄。如需詳細資訊,請參閱AWS Identity and Access Management 《 使用者指南》中的使用許可界限來委派帳戶中的許可管理。
-
與 Lambda 函數相關聯的 IAM 角色具有管理存取 AWS 服務的政策
服務管理員政策允許 Lambda 函數在特定 AWS 服務內執行所有動作。這些政策通常會授予比函數操作所需的更多許可。如果具有服務管理員政策的 Lambda 函數遭到入侵,攻擊者可能會使用這些許可來存取或修改 AWS 環境中的敏感資料或服務。遵循標準安全原則,我們建議您授予最低權限,這表示您僅授予執行任務所需的許可。
-
檢閱和識別管理政策
在公開調查結果中,識別 ARN 中的角色名稱。前往 IAM 儀表板,並尋找角色名稱。檢閱連接至角色的許可政策。如果政策是 AWS 受管政策,請尋找
AdministratorAccess
或IAMFullAccess
。否則,請在政策文件中尋找具有陳述式"Effect": "Allow", "Action": "*"
和"Resource": "*"
的陳述式。 -
實作最低權限存取
將管理政策取代為僅授予函數操作所需特定許可的政策。如需詳細資訊,請參閱《AWS Identity and Access Management 使用者指南》中的套用最低權限許可。若要識別不必要的許可,您可以使用 IAM Access Analyzer 來了解如何根據存取歷史記錄修改政策。如需詳細資訊,請參閱AWS Identity and Access Management 《 使用者指南》中的外部和未使用存取的調查結果。或者,您可以建立新的 IAM 角色,以避免影響使用現有角色的其他 Lambda 函數。在此案例中,建立新的 IAM 角色,然後將新的 IAM 角色與執行個體建立關聯。如需為函數取代 IAM 角色的說明,請參閱《 AWS Lambda 開發人員指南》中的更新函數的執行角色。
-
安全組態考量
如果執行個體需要服務層級管理許可,請考慮實作這些額外的安全控制來降低風險:
-
多重要素驗證 (MFA) – MFA 需要其他形式的身分驗證來新增額外的安全層。即使登入資料遭到入侵,這也有助於防止未經授權的存取。如需詳細資訊,請參閱AWS Identity and Access Management 《 使用者指南》中的需要多重要素驗證 (MFA)。
-
IAM 條件 – 設定條件元素可讓您根據來源 IP 或 MFA 存留期等因素,限制何時及如何使用管理許可。如需詳細資訊,請參閱AWS Identity and Access Management 《 使用者指南》中的使用 IAM 政策中的條件來進一步限制存取。
-
許可界限 – 許可界限會建立角色可擁有的最大許可,為具有管理存取權的角色提供護欄。如需詳細資訊,請參閱AWS Identity and Access Management 《 使用者指南》中的使用許可界限來委派許可管理。
-
Lambda 函數的可達性特性
以下是 Lambda 函數的可達性特性和建議的修復步驟。
可公開叫用 Lambda 函數
Lambda 資源型政策決定誰可以叫用您的函數。具有包含「*」作為委託人 (或完全沒有委託人) 的資源政策的函數,允許任何已驗證 AWS 的使用者叫用它。這會產生重大風險,特別是處理敏感資料、修改資源或具有更高許可的函數。未經授權的使用者可以利用此組態來執行不需要的操作、可能暴露資料、操縱資源或濫用函數功能。遵循安全最佳實務,我們建議將 Lambda 函數存取限制為僅限授權的主體。
修改函數的資源型政策
在公開的資源索引標籤中,使用超連結開啟資源。這會開啟 Lambda 函數視窗。在資源型政策中僅指定授權 AWS 的帳戶 IDs 或特定 IAM 主體 (使用者、角色或服務),以限制對 Lambda 函數的存取。您只能以程式設計方式修改資源型政策。
Lambda 函數的漏洞特性
以下是 Lambda 函數的漏洞特徵和建議的修復步驟。
Lambda 函數具有網路可攻擊的軟體漏洞
Lambda 函數程式碼中使用的軟體套件可以包含常見漏洞和暴露 (CVEs),這些軟體套件具有很高被利用的機會。關鍵 CVEs對您的 AWS 環境構成重大的安全風險。攻擊者可以利用這些未修補的漏洞來危害資料的機密性、完整性或可用性,或存取其他系統。具有高入侵可能性的關鍵漏洞代表立即的安全威脅,因為攻擊者或自動化掃描工具可能已經公開提供並主動使用入侵程式碼。遵循安全最佳實務,我們建議您修補這些漏洞,以保護函數免於遭受攻擊。
更新受影響的函數
檢閱 特性漏洞索引標籤中的參考區段。廠商文件可能包含特定的修補指引。依照廠商建議的程序,將易受攻擊的程式庫更新為最新的安全版本。一般而言,修補工作流程取決於您是否透過上傳 zip 檔案或使用容器映像建立 Lambda 函數來部署 Lambda 套件。更新程式庫之後,請更新 Lambda 函數程式碼以使用固定版本。之後,請部署更新的版本。
Lambda 函數具有軟體漏洞
Lambda 函數通常使用第三方程式庫和相依性,這些程式庫可能包含與關鍵 CVEs 相比,嚴重性或可利用性較低的安全漏洞。雖然這些非關鍵漏洞可能無法立即被利用,但仍代表安全弱點,這些弱點可能會與其他漏洞串連在一起以入侵您的函數。隨著時間的推移,新的入侵技術也可能出現,進而提高這些漏洞的風險。遵循標準安全原則,我們建議您修補這些漏洞,以維護安全的環境。
檢閱 特性漏洞索引標籤中的參考區段。廠商文件可能包含特定的修補指引。依照廠商建議的程序,將易受攻擊的程式庫更新為最新的安全版本。一般而言,修補工作流程取決於您是否透過上傳 zip 檔案或使用容器映像建立 Lambda 函數來部署 Lambda 套件。更新程式庫之後,請更新 Lambda 函數程式碼以使用固定版本。之後,請部署更新的版本。