CodeBuild 프로젝트 역할 탈취 (batch)
서비스 역할로 재정의 명령을 지정해 프로젝트에서 배치 빌드를 시작할 수 있습니다.
그 자체만으로 권한 상승을 허용합니다.
codebuild:StartBuildBatchcodebuild:StartBuildBatch만으로도 재정의 명령으로 프로젝트에서 배치 빌드를 서비스 역할로 시작할 수 있습니다. 넓은 리소스 범위에서는 이것만으로 관리자 접근 권한에 도달합니다.
위험한 이유
주체가 이미 서비스 역할을 가진 기존 CodeBuild 프로젝트에서 codebuild:StartBuildBatch를 호출하면서, 셸 명령이 공격자가 통제하는 buildspecOverride를 제공할 수 있습니다. CodeBuild는 해당 명령을 자체 관리형 인프라에서 대상 역할로 실행합니다. 대상 역할이 이미 프로젝트에 바인딩되어 있으므로 iam:PassRole이나 codebuild:CreateProject이 필요하지 않습니다. 이 명령은 대상 역할의 실시간 자격 증명을 빌드 환경에서 읽거나 AWS를 직접 호출합니다. 대상 역할에 권한이 있는 경우, 이는 이미 신뢰된 프로젝트에 대한 완전한 권한 상승입니다.
MITRE ATT&CK 기준으로 이는 권한 상승 전술의 T1578, Modify Cloud Compute Infrastructure에 해당합니다. AWS는 이를 CloudTrail에 StartBuildBatch로 기록합니다. 이 호출은 CloudTrail에서 뚜렷하게 드러나며 일반적인 활동과 구분됩니다.
탐지
StartBuildBatch전제 조건
서비스 역할이 연결된 기존 CodeBuild 프로젝트와, 여기에서 배치 빌드를 시작할 권한. Buildspec/명령 재정의가 허용되어야 합니다 (기본값).
MITRE ATT&CK
T1578 · Modify Cloud Compute Infrastructure전술
권한 상승
이를 제거할 수 있는 통제: 권한이 있는 서비스 역할을 가진 프로젝트에서 codebuild:StartBuildBatch 권한을 제한하고, buildspec 재정의를 허용하지 마십시오.
이를 적용할지 여부는 해당 권한이 귀하의 환경에서 어떻게 사용되는지에 따라 달라지므로, 자동으로 적용되는 수정이 아니라 비즈니스 차원의 판단입니다. 같은 권한이 한 계정에서는 핵심적인 역할을 하고 다른 계정에서는 순전히 위험일 수 있습니다.
Pathbreak는 이 경로가 귀하의 계정에서 실제로 성립하는지 확인하고, 얼마나 많은 접근을 열어주는지에 따라 다른 경로와 비교하여 순위를 매기며, 귀하의 위협 모델과 비즈니스 맥락을 활용하여 어떤 경로를 차단할 가치가 있는지 보여줍니다.
질문
codebuild:StartBuildBatch의 허용 범위는 무엇입니까?
서비스 역할로 재정의 명령을 지정해 프로젝트에서 배치 빌드를 시작할 수 있습니다.
codebuild:StartBuildBatch만으로 권한을 상승시킬 수 있습니까?
예. 충분히 넓은 리소스에 대해 보유하면 다른 권한 없이도 관리자 접근에 도달합니다.
CodeBuild 프로젝트 역할 탈취 (batch) 탐지는 어떻게 이루어집니까?
CloudTrail에서 StartBuildBatch 이벤트를 주시하십시오. 이 호출은 CloudTrail에서 뚜렷하게 드러나며 일반적인 활동과 구분됩니다.
이 경로를 어떻게 차단합니까?
이를 제거할 수 있는 통제는 다음과 같습니다: 권한이 있는 서비스 역할을 가진 프로젝트에서 codebuild:StartBuildBatch를 제한하고, buildspec 재정의를 허용하지 않습니다. 이를 적용할지 여부는 해당 권한이 계정에서 어떻게 사용되는지에 따라 달라지므로, 자동으로 적용되는 수정이 아니라 비즈니스 차원의 판단입니다.
이것은 어떤 MITRE ATT&CK 기법입니까?
권한 상승 전술의 T1578, Modify Cloud Compute Infrastructure.
관련 경로
참고 자료
직접 자신의 계정에서 찾기
저희는 하나의 AWS 계정에 대해 읽기 전용 스캔을 실행하여, 이 경로 중 어떤 것이 존재하는지를 영향 범위 순으로, 각 경로를 끊는 변경과 함께 보여드립니다. 첫 검증된 경로는 한 시간 이내에 제공됩니다.