1. AWS Secure Token Service (STS) [1]
- 임시 자격 증명
- AWS 자격 증명을 생성할 필요 없이 AWS 리소스에 액세스할 수 있도록 권한이 제한된 임시 자격 증명을 요청할 수 있는 웹 서비스
- 최소 15분에서 최도 36시간까지 유효
2. STS 악용 [2]
① 공격자는 IAM 토큰 또는 자격 증명 탈취
- 악성 코드 감염, 공개적으로 노출된 자격 증명, 피싱 이메일 등으로 IAM 토큰 탈취
② 탈취한 인증 정보의 유효성 확인
- API 호출을 통해 탈취한 인증 정보의 유효성 확인
> API 호출이 실패할 경우 토큰의 비활성 가능성이 높음
> 토큰이 유효할 경우 여러 API를 활용해 권한과 역할을 결정
※ API: GetCallerIdentity, GetUser, ListUserPolicies, ListAttachedUserPolicies, GetPolicy, GetPolicyVersion 등
③ 토큰의 권한 수준에 따라 사용자 추가 생성
- AKIA 토큰이 있는 추가 IAM 사용자 생성 후 API 호출을 통해 MFA 코드 및 장치 세부 정보 추출
> 단기 ASIA 토큰 생성을 위한 AKIA 토큰, 예비용 AKIA 토큰 생성
※ AKIA : AWS IAM 사용자와 연결된 장기 액세스 토큰 [3]
aws:MultiFactorAuthPresent | 사용자가 MFA를 통해 자신을 인증했는지 여부 확인 |
aws:MultiFactorAuthAuthAge | 키가 활성화된 기간을 확인 |
④ 추가한 IAM 사용자를 활용해 ASIA 토큰 생성
- API(sts:GetSessionToken) 호출 등으로 여러 ASIA 토큰 생성
※ ASIA : STS를 통한 요청에 대한 응답으로 생성된 단기 액세스 토큰 [3]
⑤ 데이터 탈취
- ASIA 토큰을 악용한 데이터 탈취
3. 대응방안
- AKIA 토큰 삭제 또는 교체
- 공격으로 의심스러운 또는 확인된 사용자에게 "모두 거부" 정책 적용 및 악용 리소스 삭제
- CloudTrail 로그 기록 및 모니터링 [4]
4. 참고
[1] https://docs.aws.amazon.com/STS/latest/APIReference/welcome.html
[2] https://redcanary.com/blog/aws-sts/
[3] https://docs.aws.amazon.com/ko_kr/IAM/latest/UserGuide/id_credentials_access-keys.html#Using_access-keys-audit
[4] https://docs.aws.amazon.com/awscloudtrail/latest/userguide/cloudtrail-concepts.html
[5] https://thehackernews.com/2023/12/alert-threat-actors-can-leverage-aws.html
[6] https://www.boannews.com/media/view.asp?idx=124541&page=1&kind=1