AWS - EMR Privesc
EMR
EMR에 대한 자세한 정보는 다음에서 확인할 수 있습니다:
AWS - EMR Enumiam:PassRole
, elasticmapreduce:RunJobFlow
iam:PassRole
, elasticmapreduce:RunJobFlow
이 권한을 가진 공격자는 새 EMR 클러스터를 실행하고 EC2 역할을 연결하여 자격 증명을 탈취할 수 있습니다.
이를 수행하려면 계정에 가져온 일부 ssh 개인 키를 알고 있거나 가져와야 하며, 마스터 노드에서 포트 22을 열 수 있어야 합니다 (--ec2-attributes
내부의 EmrManagedMasterSecurityGroup
및/또는 ServiceAccessSecurityGroup
속성을 사용하여 수행할 수 있을 수 있습니다).
참고로 EMR 역할은 --service-role
에서 지정되고 ec2 역할은 InstanceProfile
내부의 --ec2-attributes
에서 지정됩니다. 그러나 이 기술은 EC2 역할 자격 증명을 도용할 수 있지만 (SSH를 통해 연결할 수 있음) EMR IAM 역할은 도용할 수 없습니다.
잠재적인 영향: 지정된 EC2 서비스 역할로의 권한 상승.
elasticmapreduce:CreateEditor
, iam:ListRoles
, elasticmapreduce:ListClusters
, iam:PassRole
, elasticmapreduce:DescribeEditor
, elasticmapreduce:OpenEditorInConsole
elasticmapreduce:CreateEditor
, iam:ListRoles
, elasticmapreduce:ListClusters
, iam:PassRole
, elasticmapreduce:DescribeEditor
, elasticmapreduce:OpenEditorInConsole
이러한 권한을 가진 공격자는 AWS 콘솔로 이동하여 노트북을 생성하고 해당 노트북에 액세스하여 IAM 역할을 도용할 수 있습니다.
노트북 인스턴스에 IAM 역할을 부여해도 제 테스트에서 AWS 관리 자격 증명을 도용할 수 있었지만 IAM 역할 관련 자격 증명을 도용할 수 없었습니다.
잠재적인 영향: arn:aws:iam::420254708011:instance-profile/prod-EditorInstanceProfile로의 AWS 관리 역할 권한 상승
elasticmapreduce:OpenEditorInConsole
elasticmapreduce:OpenEditorInConsole
이 권한만으로도 공격자는 Jupyter Notebook에 액세스하여 연결된 IAM 역할을 도용할 수 있습니다.
노트북의 URL은 https://<notebook-id>.emrnotebooks-prod.eu-west-1.amazonaws.com/<notebook-id>/lab/
입니다.
노트북 인스턴스에 IAM 역할을 부여해도 제 테스트에서 AWS 관리 자격 증명을 도용할 수 있었지만 IAM 역할 관련 자격 증명을 도용할 수 없었습니다.
잠재적인 영향: arn:aws:iam::420254708011:instance-profile/prod-EditorInstanceProfile로의 AWS 관리 역할 권한 상승
Last updated