아마존에서 제공하는 다양한 클라우드 서비스를 대상으로 침투 테스트를 수행하는 방법을 중점적으로 다룬다. AWS 클라우드 환경의 침투 테스터와 시스템 관리자에게 도움을 줄 수 있도록 실습 위주로 구성했다. 클라우드 기반 실습 환경의 구성, 칼리 리눅스를 활용한 화이트 박스 테스팅 수행 방법부터 서버리스 인프라에서 자동화 배포 파이프라인까지 광범위한 AWS 서비스를 대상으로 하는 침투 테스트 방법을 다룬다. 이 책을 통해 AWS 클라우드 환경에서 발생할 수 있는 취약점을 식별하고 안전한 AWS 클라우드 환경을 구성할 수 있을 것이다.
목차
1부. AWS에서 칼리 리눅스 사용
1장. AWS에 침투 테스트 환경 구성
__기술 요구 사항
__취약한 우분투 인스턴스 구성
____우분투 EC2 인스턴스 프로비저닝
____우분투에 취약한 서비스 설치
__취약한 윈도우 인스턴스 구성
____취약한 윈도우 서버 인스턴스 프로비저닝
____윈도우에 취약한 웹 애플리케이션 구성
__실습 환경 내에서의 보안 그룹 설정
____보안 그룹 설정
__요약
__추가 자료
2장. 클라우드에 칼리 침투 테스트 머신 구성
__기술 요구 사항
__AWS EC2에서의 칼리 리눅스 구성
____칼리 리눅스 AMI
____칼리 리눅스 인스턴스 구성
__원격 SSH 접근을 위한 OpenSSH 설정
____root와 사용자 패스워드 설정
____SSH에서 root 계정의 패스워드 인증 활성화
__원격 접근을 위한 Guacamole 구성
____보안 설정 강화와 필요 도구 설치
____SSH와 RDP 접속을 위한 Guacamole 설정
__요약
__테스트
__추가 자료
3장. 칼리 리눅스를 활용한 클라우드 공격
__기술 요구 사항
__Nessus 구성과 구동
____칼리에 Nessus 설치
____Nessus 설정
____첫 번째 Nessus 스캔 수행
__취약한 리눅스 가상 머신 공격
____리눅스의 Nessus 스캔 결과 분석
____리눅스 공격
__취약한 윈도우 가상머신 공격
____윈도우 Nessus 스캔 결과 분석
____윈도우 공격
__요약
__테스트
__추가 자료
2부. AWS Elastic Compute Cloud 침투 테스팅, 설정, 보안
4장. 첫 EC2 인스턴스 구성
__기술 요구 사항
__AWS EC2 우분투 구성
____우분투 AMI
__VPC 설정 구성
__EC2 인스턴스와 사용할 수 있는 스토리지 타입
__방화벽 설정 구성
__EC2 인스턴스 인증 구성
__요약
__추가 자료
5장. 칼리 리눅스를 활용한 EC2 인스턴스 침투
__기술 요구 사항
__윈도우에 취약한 서비스 설치
____공격 목표 머신을 취약한 Jenkins 머신 뒷단에 구성
____칼리 머신에 Nexpose 취약점 스캐너 설치
__Nmap을 활용한 스캐닝과 정찰
__Nmap을 활용한 열린 포트 식별 및 핑거프린팅
__Nexpose를 사용해 자동화된 취약점 분석 수행
____메타스플로잇을 활용한 자동화 공격
__미터프리터 셸을 활용한 권한 상승, 피벗팅, 지속성
__요약
__추가 자료
6장. 블록 스토리지와 스냅샷 - 삭제된 데이터 복구
__기술 요구 사항
____EBS 볼륨 유형과 암호화
__EC2 인스턴스에 새로운 EBS 볼륨 생성, 연결, 분리
__EBS 볼륨에서 삭제된 데이터 복구
__EBS 볼륨의 전체 디스크 암호화
____암호화된 볼륨 생성
____암호화된 볼륨의 연결 및 마운트
____암호화된 볼륨에서 데이터 복구
__요약
__추가 자료
3부. AWS S3 침투 테스팅, 설정, 보안
7장. 정찰 - 취약한 S3 버킷 탐색
__첫 S3 버킷 구성
__S3 권한과 접근 API
____접근 제어 정책(ACP)/ 접근 제어 리스트(ACL)
____버킷 정책
____IAM 계정 정책
____접근 정책
__취약한 S3 버킷 생성
__요약
__추가 자료
8장. 재미와 수익을 얻을 수 있는 공개된 S3 버킷 공격
__노출된 S3 버킷에서 민감한 정보 추출
__S3 버킷에 악성 코드 삽입
__지속적인 접근을 위한 S3 버킷 백도어
__요약
__추가 자료
4부. AWS의 ID 액세스 관리 구성과 보안
9장. AWS의 ID 액세스 관리
__IAM 사용자, 그룹, 역할과 관련 권한 생성
__IAM 정책으로 API 액션과 접근 가능한 자원 제한
____IAM 정책 구조
____IAM 정책 목적과 사용법
__IAM 액세스 키 사용
__AWS API 요청의 수동 서명
__요약
10장. 탈취한 키, Boto3, Pacu를 활용한 AWS 계정의 권한 상승
__권한 열거의 중요성
__정찰 용도로 Boto3 라이브러리 사용
____첫 Boto3 열거 스크립트
____데이터 저장
____S3 열거 추가
__모든 계정 정보 덤프
____새로운 스크립트 - IAM 열거
____데이터 저장하기(다시 한 번)
__탈취한 AWS 키로 권한 열거
____보유한 접근 권한 판단
____현재 사용자에 적용된 정책 분석
____다른 방법
__Pacu를 활용한 권한 상승과 계정 정보 수집
____Pacu - 오픈소스 AWS 공격 툴킷
____칼리 리눅스 탐지 우회
____Pacu CLI
____열거에서 권한 상승까지
____획득한 관리자 권한 사용
__요약
11장. Boto3와 Pacu를 사용해 AWS 지속성 유지하기
__사용자 백도어 만들기
____다수의 IAM 사용자 액세스 키
____Pacu로 작업하기
__역할 신뢰 관계 백도어 만들기
____IAM 역할 신뢰 정책
____적합한 목표 역할 찾기
____백도어 액세스 추가하기
____액세스 확인하기
____Pacu로 자동화하기
__EC2 보안 그룹 백도어 만들기
____Lambda 함수를 영구 감시기로 사용하기
____Lambda로 자격 증명 추출 자동화
____백도어 배포에 Pacu 사용하기
____다른 Lambda Pacu 모듈
__요약
5부. 기타 AWS 서비스 침투 테스트
12장. AWS Lambda 보안 및 침투 테스팅
__취약한 Lambda 함수 설정하기
__읽기 액세스로 Lambda 함수 공격
__읽기 및 쓰기 액세스로 Lambda 함수 공격하기
____권한 상승
____데이터 유출
____지속성 유지하기
____은밀하게 유지하기
__가상 프라이빗 클라우드로 피벗
__요약
13장. AWS RDS 침투 테스팅과 보안
__기술 요구 사항
__취약한 RDS 인스턴스 설정
__EC2에서 RDS 인스턴스를 워드프레스에 연결
__Nmap을 사용해 노출된 RDS 인스턴스 식별 및 나열하기
__취약한 RDS 인스턴스 공격과 데이터 추출
__요약
__추가 자료
14장. 기타 서비스 공략
__Route 53
____호스팅 영역
____도메인
____리졸브
____SES
____피싱
____기타 공격
__CloudFormation 공격하기
____파라미터
__출력값
____종료 방지
____삭제된 스택
____내보내기
____템플릿
____역할 전달
____추가 내용 - NoEcho 파라미터 값 발견하기
__ECR
__요약
6부. AWS 로깅과 보안 서비스 공격하기
15장. CloudTrail 침투 테스트
__CloudTrail 상세 정보
__설정, 모범 사례와 감사 수행
____설정
____감사 수행
__정찰
__로깅 우회
____공격수와 수비수를 위한 CloudTrail 미지원 서비스
____교차 계정 방법을 통한 로깅 우회
__Cloudtrail 기능 방해하기
____로깅 끄기
____추적/S3 버킷 삭제하기
____추적 최소화하기
____중단과 일부 솔루션 문제
__요약
16장. GuardDuty
__GuardDuty 소개와 결과
__GuardDuty 결과 경보와 대응
__GuardDuty 우회하기
____강제로 우회하기
____IP 화이트리스트로 모두 우회하기
____EC2 인스턴스 자격 증명 유출 경고 우회하기
____운영체제 경보 우회하기
____기타 간단한 우회
__요약
7부. 실제 공격에서 AWS 침투 테스팅 도구 활용
17장. Scout Suite를 활용한 AWS 보안 감사
__기술 요구 사항
__취약한 AWS 인프라 설정하기
____잘못 구성된 EC2 인스턴스
____취약한 S3 인스턴스 생성
__Scout Suite 구성 및 실행
____도구 설정
____Scout Suite 실행하기
__Scout Suite 스캔 결과 파싱하기
__Scout Suite의 규칙 사용
__요약
18장. AWS 침투 테스트에 Pacu 사용하기
__Pacu의 역사
__Pacu 시작하기
__Pacu 명령
____list/ls
____search [ [cat] egory] 〈search term〉
____help
____help 〈모듈 이름〉
____whoami
____data
____services
____data 〈서비스〉| proxy
____regions
____update_regions
____set_regions 〈리전〉
____run/exec 〈모듈 이름〉
____set_keys
____swap_keys
____import_keys 〈프로파일 이름〉| - -all
____exit/quit/Ctrl + C
____aws 〈command〉
____proxy 〈command〉
__새 모듈 만들기
____API
____모듈 구조와 구현
__PacuProxy 소개
__요약
19장. 종합 - 실전 AWS 침투 테스트
__침투 테스트 시작
____범위 정하기
____AWS 침투 테스팅 규칙 및 지침
____자격 증명 및 AWS 침투테스팅 고객 기대 사항
____비인증 정찰
__인증받은 정찰 및 권한 열거
__권한 상승
__지속성
__후속 공격
____EC2 공격하기
____Lambda의 코드 검토 및 분석
____RDS에서 인증 통과
__S3 인증 측면
__규정 준수 및 모범 사례 감사하기
__요약
저자 소개
저자 : 칼길버트,벤자민카우딜
칼 길버트 널리 사용되는 오픈소스 소프트웨어에 참여해온 보안 연구원이다. 취약점 연구, 제로데이, 클라우드 보안, 보안 데브옵스(DevOps), CI/CD 등에 큰 관심을 갖고 있다.
벤자민 카우딜 10년 이상의 공격 보안 분야 경험을 바탕으로 회사 설립 때부터 연구 개발을 이끌어왔으며, 고급 기술의 수요가 있는 고객을 위한 핵심 리소스를 제작했다. AWS 보안 연구에도 많이 기여했다. 공동 연구자인 스펜서 기츤(Spencer Gietzen)과 함께 AWS 공격 프레임워크인 Pacu를 개발하고 클라우드의 새로운 공격 벡터를 다수 찾아냈다. GCP와 Azure 관련 연구도 2019년 중에 이뤄질 것으로 예상된다. 보안업계의 꾸준한 기여자로 CNN, 「와이어드」, 「워싱턴 포스트」 및 기타 주요 언론사에 출연한 바 있다.