본문 바로가기

Education/[AWS] Cloud Hacking

[AWS] Chapter4. 서버&서버리스 진단 - 1

1. AWS 침투 테스트 정책

01. 침투 테스트 허용/금지 서비스

침투 테스트 허용 서비스 
- EC2, NAT Gateway 및 Elastic Load Balancer
- RDS
- CloudFront
- Aurora
- API Gateway
- Lambda 및 Lambda Edge 기능
- Lightsail 리소스
- Elastic Beanstalk 환경

침투 테스트 금지 서비스
- Route 53 Hosted Zones를 통한 DNS zone walking
- 서비스 거부(Dos), 분산 서비스 거부(DDoS) 
- 포트 플러딩
- 프로토콜 플러딩
- 요청 플러딩(로그인 요청, API 요청)

 

02. AWS 침투 테스트 도구 정책

 침투 테스트 도구
-> AWS는 다양한 침투 테스트 도구의 존재 및 사용 가능성을 인정
-> 보안 평가를 위한 도구 또는 서비스선택에 제약은 없음
-> 알려진 취약점 버전을 찾기 위한 배너그래빙 및 쿼리 주입은 허용
-> 그러나, 서비스 거부(DoS) 공격 또는 플러딩 공격은 제한

의무
 -> 침투 테스트를 위한 도구가 DoS 등 제한을 두는 공격을 수행하지 않는 지 명확하게 확인
 -> 진단자 또는 사용하는 도구가 정책 위반 시 AWS 또는 고객에게 책임을 져야함

 

2. SSRF

 01. EC2 SSRF 개요 및 사례

 SSRF(Server-Side Request Forgery)
- Server Side에서 이루어지는 요청을 변조해 공격자가 의도한 대로 서버로 요청을 가게 하는 것

공격 사례
-> 2019년, 미국 은행 Capital One(캐피탈 원)에서 1억 600만 명의 고객 개인정보가 해킹
-> AWS EC2 SSRF 공격 사례 - 이름, 주소, 사회보장번호, 생년월일, 연간 소득 등 유출
-> EC2의 metadata에 SSRF 취약점을 이용하여 S3의 권한 획득 및 데이터 유출

대응
-> AWS는 설계된 대로 기능을 했으며, 해킹은 클라우드 서비스 자체 취약점이 아니라 
    WAF 설정을 잘못했기 때문에 발생한 것으로 결론
-> 추후 AWS는 토큰을 포함하여 metadata를 요청할 수 있도록 옵션 추가

 

02. EC2 SSRF 시나리오

SSRF를 이용한 AWS EC2 메다테이터 탈취

  1. 원격 사용자 대신 서버가 명령어를 실행하도록 하여 자신의 요청에 대한 프록시로 취급하도록 함
  2. 내부망에 위치한 비공개 엔드포인트에 접근 가능
  3. AWS EC2 VM 만의 메타데이터 서비스(http://169.254.169.254)에 액세스 가능
  4. 메타데이터 URL은 VM IP주소, AWS 네트워크 내 배치, 호스트명을 HTTP API로 제공하여 클라우드 개발자에게 유용

 

03. EC2 SSRF 진단방법

SSRF를 이용한 AWS 자격증명 접근
- SSRF와 EC2 metadata 엔드포인트의 액세스 권한을 결합하여 서버가 다음 URL을 요청

  • http://169.254.169.254/iam/security-credentials

  • http://169.254.169.254/latest/meta-data/iam/security-credentials/ISRM-WAF-Role

-> 인증 정보와 토큰이 응답에 포함
-> AWS CLI에 인증정보 등록  후 계정권한 획득
-> 선언된 IAM 정책만큼 AWS 권한 사용 가능

 

04. Lambda SSRF 개요 및 시나리오

Lambda Runtime SSRF
-> Lambda 함수가 동작할 때 런타임으로 가상환경에서 컨테이너 구성 후 동작
-> 환경 변수로 IAM 자격 증명과 설정 값이 적용됨

 

05. Lambda SSRF 진단방법

 - file:// 스키마를 통해 접근 시 파일 내용 유출 여부 확인

구 분 내 용
설 명 Lambda에 자원 요청을 보내 메타데이터를 읽을 수 있는 취약점
판단 기준 [취약] 내부 자원 접근 시도 시 파일의 내용이 출력
[양호] 내부 자원 접근 시도 시 에러가 반환
영 향 취약점을 통해 획득한 인증 정보의 권한으로 접근이 불가능한 클라우드 서비스의 악용 가능

 

06. 보안대책

1) EC2 인스턴스 메타데이터 보안 설정
비공개 VPC에서 동작 중인 EC2 인스턴스에 대해 공개 IP를 설정하지 않도록 함
인스턴스 메타데이터에 접근하는 옵션 비활성화
   ->"aws ec2 modify-instance-metadata-options -instance-id [id] -http-endpoint disabled"
-인스턴스 메타데이터 서비스 액세스 제한 설정
  -> Iptabels를 이용한 제한(169.254.169.254 ip에 대한 접근 제어 설정)
  -> PF 또는 IPFW를 사용하여 액세스 제한 Black List 검증

2) 사용자 입력 값 검증
Whitelist 방식의 Filtering
  -> 입력한 데이터에 대해 허용할 List(URL, Scheme)에 속하는 경우에만 처리
  -> 지정된 목록에 속하지 않는 경우 에러페이지 응답                       
Blacklist 방식의 Filtering
  -> 지정된 목록에 속하는 입력값 요청 시 에러페이지 응답
      ex) Private IP, Lookback 주소, 불필요한 schema(sftp://, file://), 불필요 특수문자(%0a