EC2 user-data 탈취
인스턴스의 user-data를 다시 작성하여 그 인스턴스 프로파일 역할로 코드를 실행할 수 있습니다.
조합으로만 권한 상승을 허용합니다. 다음이 모두 함께 필요합니다:
ec2:ModifyInstanceAttributeec2:StartInstancesec2:StopInstancesec2:ModifyInstanceAttribute 권한은 인스턴스의 사용자 데이터를 다시 작성하고 그 인스턴스 프로파일 역할로 코드를 실행할 수 있지만, 이는 ec2:StartInstances, ec2:StopInstances 권한을 함께 보유한 경우에만 해당합니다. 함께 보유하면 관리자 접근에 도달합니다.
위험한 이유
주체는 인스턴스를 중지하고, ec2:ModifyInstanceAttribute로 user-data를 다시 쓴 다음, 다시 시작할 수 있습니다. 부팅 시 인스턴스는 공격자의 user-data 스크립트를 이미 연결된 인스턴스 프로파일 역할로 실행하며 iam:PassRole이 필요하지 않습니다. 권한이 있는 인스턴스 프로파일은 그 역할로의 임의 코드 실행을 의미합니다. 즉 이미 신뢰된 머신에 대한 완전한 권한 상승입니다.
MITRE ATT&CK 기준으로 이는 권한 상승 전술의 T1578, Modify Cloud Compute Infrastructure에 해당합니다. AWS는 이를 CloudTrail에 ModifyInstanceAttribute, StopInstances, StartInstances로 기록합니다. 이 호출은 CloudTrail에서 뚜렷하게 드러나며 일반적인 활동과 구분됩니다.
탐지
ModifyInstanceAttributeStopInstancesStartInstances전제 조건
인스턴스 프로파일을 가진 기존 인스턴스와, 이를 중지/수정/시작할 권한.
MITRE ATT&CK
T1578 · Modify Cloud Compute Infrastructure전술
권한 상승
이를 제거할 수 있는 통제: 인스턴스 프로파일이 연결된 인스턴스에서 ec2:ModifyInstanceAttribute 권한을 제한하십시오.
이를 적용할지 여부는 해당 권한이 귀하의 환경에서 어떻게 사용되는지에 따라 달라지므로, 자동으로 적용되는 수정이 아니라 비즈니스 차원의 판단입니다. 같은 권한이 한 계정에서는 핵심적인 역할을 하고 다른 계정에서는 순전히 위험일 수 있습니다.
Pathbreak는 이 경로가 귀하의 계정에서 실제로 성립하는지 확인하고, 얼마나 많은 접근을 열어주는지에 따라 다른 경로와 비교하여 순위를 매기며, 귀하의 위협 모델과 비즈니스 맥락을 활용하여 어떤 경로를 차단할 가치가 있는지 보여줍니다.
질문
ec2:ModifyInstanceAttribute의 허용 범위는 무엇입니까?
인스턴스의 user-data를 다시 작성하여 그 인스턴스 프로파일 역할로 코드를 실행할 수 있습니다.
ec2:ModifyInstanceAttribute의 위험이 성립하려면 무엇이 더 필요합니까?
ec2:StartInstances, ec2:StopInstances와 함께 보유할 때에만 권한 상승이 됩니다. 그 자체만으로는 충분하지 않으며, 바로 그 점이 이 조합을 놓치기 쉽게 만듭니다.
EC2 user-data 탈취 탐지는 어떻게 이루어집니까?
CloudTrail에서 ModifyInstanceAttribute, StopInstances, StartInstances 이벤트를 주시하십시오. 이 호출은 CloudTrail에서 뚜렷하게 드러나며 일반적인 활동과 구분됩니다.
이 경로를 어떻게 차단합니까?
이를 제거할 수 있는 통제는 다음과 같습니다: 인스턴스 프로파일이 연결된 인스턴스에서 ec2:ModifyInstanceAttribute를 제한합니다. 이를 적용할지 여부는 해당 권한이 계정에서 어떻게 사용되는지에 따라 달라지므로, 자동으로 적용되는 수정이 아니라 비즈니스 차원의 판단입니다.
이것은 어떤 MITRE ATT&CK 기법입니까?
권한 상승 전술의 T1578, Modify Cloud Compute Infrastructure.
관련 경로
참고 자료
직접 자신의 계정에서 찾기
저희는 하나의 AWS 계정에 대해 읽기 전용 스캔을 실행하여, 이 경로 중 어떤 것이 존재하는지를 영향 범위 순으로, 각 경로를 끊는 변경과 함께 보여드립니다. 첫 검증된 경로는 한 시간 이내에 제공됩니다.