Lambda에 역할 전달
역할을 새 Lambda 함수에 전달하고 그 역할로 코드를 실행할 수 있습니다.
조합으로만 권한 상승을 허용합니다. 다음이 모두 함께 필요합니다:
iam:PassRolelambda:CreateFunctioniam:PassRole 권한은 새 Lambda 함수에 역할을 전달하고 그 역할로 코드를 실행할 수 있지만, 이는 lambda:CreateFunction 권한을 함께 보유한 경우에만 해당합니다. 함께 보유하면 관리자 접근에 도달합니다.
위험한 이유
주체가 대상 역할에 대한 iam:PassRole과 함께 lambda:CreateFunction를 보유하고 있어, 대상 역할이 연결된 새 Lambda 함수를 생성하고 이를 호출할 수 있으며, 그러면 함수의 코드는 대상 역할의 권한으로 실행됩니다. 대상 역할이 lambda.amazonaws.com를 신뢰하므로 AWS는 전달을 수락합니다. 대상 역할에 권한이 있는 경우, 이는 완전한 권한 상승입니다(단일 생성+호출로 이루어지는 임의의 역할로 실행되는 코드 실행).
MITRE ATT&CK 기준으로 이는 권한 상승 전술의 T1648, Serverless Execution에 해당합니다. AWS는 이를 CloudTrail에 CreateFunction, Invoke로 기록합니다. 이 호출은 CloudTrail에서 뚜렷하게 드러나며 일반적인 활동과 구분됩니다.
탐지
CreateFunctionInvoke전제 조건
대상 역할의 신뢰 정책이 lambda.amazonaws.com 주체를 허용해야 합니다.
MITRE ATT&CK
T1648 · Serverless Execution전술
권한 상승
이를 제거할 수 있는 통제: 이 역할에 대한 iam:PassRole 권한을 제거하거나 iam:PassedToService로 범위를 지정하십시오.
이를 적용할지 여부는 해당 권한이 귀하의 환경에서 어떻게 사용되는지에 따라 달라지므로, 자동으로 적용되는 수정이 아니라 비즈니스 차원의 판단입니다. 같은 권한이 한 계정에서는 핵심적인 역할을 하고 다른 계정에서는 순전히 위험일 수 있습니다.
Pathbreak는 이 경로가 귀하의 계정에서 실제로 성립하는지 확인하고, 얼마나 많은 접근을 열어주는지에 따라 다른 경로와 비교하여 순위를 매기며, 귀하의 위협 모델과 비즈니스 맥락을 활용하여 어떤 경로를 차단할 가치가 있는지 보여줍니다.
질문
iam:PassRole의 허용 범위는 무엇입니까?
역할을 새 Lambda 함수에 전달하고 그 역할로 코드를 실행할 수 있습니다.
iam:PassRole의 위험이 성립하려면 무엇이 더 필요합니까?
lambda:CreateFunction와 함께 보유할 때에만 권한 상승이 됩니다. 그 자체만으로는 충분하지 않으며, 바로 그 점이 이 조합을 놓치기 쉽게 만듭니다.
Lambda에 역할 전달 탐지는 어떻게 이루어집니까?
CloudTrail에서 CreateFunction, Invoke 이벤트를 주시하십시오. 이 호출은 CloudTrail에서 뚜렷하게 드러나며 일반적인 활동과 구분됩니다.
이 경로를 어떻게 차단합니까?
이를 제거할 수 있는 통제는 다음과 같습니다: 이 역할에 대한 iam:PassRole 권한을 제거하거나 iam:PassedToService로 범위를 좁힙니다. 이를 적용할지 여부는 해당 권한이 계정에서 어떻게 사용되는지에 따라 달라지므로, 자동으로 적용되는 수정이 아니라 비즈니스 차원의 판단입니다.
이것은 어떤 MITRE ATT&CK 기법입니까?
권한 상승 전술의 T1648, Serverless Execution.
관련 경로
참고 자료
직접 자신의 계정에서 찾기
저희는 하나의 AWS 계정에 대해 읽기 전용 스캔을 실행하여, 이 경로 중 어떤 것이 존재하는지를 영향 범위 순으로, 각 경로를 끊는 변경과 함께 보여드립니다. 첫 검증된 경로는 한 시간 이내에 제공됩니다.