SageMaker Vulnerability Let Attackers Escalate Privileges
간단한 내용 요약/정리
- AWS SageMaker 사용할 때 IAM 실행 role을 사용함. 이 role은 데이터, 모델, 그리고 다른 AWS 서비스에 접근하는 강력한 권한을 갖는 경우가 많음.
- SageMaker notebook 인스턴스를 중지, 시작, 업데이트할 수 있는 권한을 갖게된다면 notebook의 실행 권한/role로 그들의 코드를 실행시킬 수 있을 것.
- 주요 권한들:
sagemaker:StopNotebookInstance
sagemaker:StartNotebookInstance
sagemaker:UpdateNotebookInstance
- plus the ability to create or manage notebook lifecycle configurations
- SageMaker 구성 라이프사이클은 shell script의 set임.. (이거 SageMaker 특징에 대해 더 자세히 알아봐야할 듯) 그래서 이 공격에서 이게 exec path가 된다.
공격 방법:
- 공격자가 malicious lifecycle configuration을 생성한다..
aws sts get-caller-identity 이 권한을 통해 사용하고 있는 role을 파악하고 그 데이터를 curl을 통해 외부 서버에 전송
참고)

- notebook 인스턴스를 중지하고 새로운 lifecycle config를 붙여서 재시작
- 이때 공격자는 notebook 인스턴스의 role으로
sts:AssumeRole이나 PassRole로 권한을 부여받는 단계/행위 없이 실행이 가능
방어시 이런 패턴을 눈여겨 봐야 한다:
StopNotebookInstance → UpdateNotebookInstance → StartNotebookInstance
- 특히 노트북 인스턴스를 관리하는 아이덴티티가 아닐 경우에는 더더욱.