본문 바로가기

Education/[AWS] Cloud Hacking

(14)
[AWS] Chapter7. 클라우드 취약점 진단 심화 1. 클라우드 인증 정보01. AWS 자격증명IAM- AWS 리소스에 대한 액세스를 제어할 수 있는 서비스- 인증 및 권한 부여된 대상을 제어액세스 키(Access Key)- IAM 사용자, Root 사용자에 대한 자격 증명- CLI 또는 API에 대한 요청 및 서명- 액세스 키 ID(AWS_ACCESS_KEY)와 보안 액세스 키(AWS_SECRET_KEY)로 구성IAM 임시 보안 자격 증명(SESSION TOKEN)- STS(Security Token Service)- 리소스에 대한 액세스를 제어할 수 있는 임시 보안 자격 증명- 지정 기간 후에 만료됨IAM - Access Key- Access key는 사용자 별 최대 2개- 발급 시에만 Secret 키 쌍 제공- 사용하지 않는 key는 비활성화, 삭..
[AWS] Chapter6. 인증 및 API 진단 1. 인증 및 인가 서비스 Cognito01 개요AWS Cognito - 웹 및 모바일 앱에 대해 인증, 권한 부여 및 사용자 관리 제공- 사용자는 로그인하기 위해 아이디/비밀번호 또는 Google, Facebook 등의 권한 부여자를 통해 로그인02. 취약점 발생 원리비밀번호 오류횟수 제한- 비밀번호 오류횟수 제한 로직이 존재하지 않아 무작위대입 공격을 통해 타 사용자 비밀번호 획득 가능한 취약점- 금융위원고시 전자금융감독규정 - 비밀번호 5회 실패 시 계정을 잠그고 비밀번호 재부여 또는 초기화 지시- Cognito는 임시 잠금 기능을 통해 일부 대응참 고로그인 시도의 실패는 5회까지 허용되며 그 후의 각 실패에 대해서는 1초부터 시작하여 약 15분까지 두 배씩 기하급수적으로 증가한 시간만큼 임시 잠금..
[AWS] Chapter5. S3 및 불필요 리소스 진단 1. 불필요한 Public 설정01 개요공개 설정을 하는 이유- S3 정적 웹 호스팅- 민감도가 낮은 데이터- 공유가 필요한 데이터S3에 포함도리 수 있는 정보- AWS CloudTrail 로그- 코드 형상관리 ( CodeCommit ) - 코드 배포 (Pipeline, Elastic Beanstalk)- S3 백업 파일 (S3 Versioning)02. 시나리오공개 설정된 S3- S3는 REST 웹 서비스 인터페이스를 통해 파일 전송- 공격자는 S3 버킷 주소를 통해 접속하여 파일 목록 읽기, 파일 다운로드 가능발생할 수 있는 위협- 리소스에 대한 권한 나열    -> 계정에 따른 AWS 리소스 사용 권한 획득   -> 최소 권한 부여 원칙이 적용되지 않은 경우 획득한 권한을 이용하여 인스턴스 제어 가..
[AWS] Chapter4. 서버&서버리스 진단 - 5 6. XXE01. XXE 개요 - XML 타입의 데이터를 웹 요청을 통해 전송, 서버에서 XML 외부 엔티티 처리가 가능할 때 발생 - 사용자가 웹 애플리케이션으로 전달되는 XML 데이터를 직접 업로드/수정 가능   -> 파일과 같은 서버 내부의 정보 탈취/SSRF 등 공격 수행 - XML 외부 엔티티 선언 형태- 사용자가 브라우저를 통해 XML 데이터를 입력 후 서버(lambda)로 전송 - 서버의 함수는 XML 데이터를 파싱하며, XXE 공격 발생 - XML 구문 분석기의 입력 값 검증 누락으로 발생02. 시나리오진단방안 - 전제 조건   -> 서버 요청 시 DTD(Document Type Definiton)를 선언할 수 있어야 함03. 진단방법XXE 파서 취약성 - XML 구문 분석에 사용되는 py..
[AWS] Chapter4. 서버&서버리스 진단 - 4 5. Command Injection01. 개요Command Injection- 취약한 애플리케이션을 통해 호스트 운영 체제에서 임의 명령을 실행    -> 양식, 쿠키, HTTP 헤더 등의 인자를 조작하여 시스템 쉘에 전달- 실행되었을 때 명령은 애플리케이션 권한으로 동작- 불충분한 입력 유효성 검사가 원인02. 취약점 발생 원리Faas 환경에서 사용자 관리 범위와 서비스 제공자 관리 범위의 차이 존대- FaaS 환경에서 사용자는 호스트 운영 체제에 관여할 수 없음   -> AWS에서 가상 환경을 구성하며 Amazon Linux, Amazon Liunx 2 사용- 사용자가 지정한 런타임 가상환경에서 임의 명령을 실행   -> Node, Python, Ruby, Java, Go 등 런타임 가상환경 사용 ..
[AWS] Chapter4. 서버&서버리스 진단 - 3 4. NoSQL Injection 01. 개요 NoSQL 개요 - 유연한 수평확장(Scale-Out) - 빠른 레이턴시 - 유연한 스키마 - 조인(join)이 불가하여 복잡한 로직 수행 시 성능 감소 DynamDB 개요 - AWS 클라우드 기반 NoSQL 솔루션 - INSERT, UPDATES, DELETES, QUERY 및 SCAN 작업 포함 CRUD 지원 - 데이터 검색을 위해 쿼리 및 스캔 사용 - 스캔 함수는 전체 테이블 스캔 후 ScanFilters를 기반으로 결과 리턴 02. 시나리오DynamoDB 구성 -> 테이블 -> 기본키(Partition Key) - 무결성 보장 -> 데이터 타입 - S(String), N(Number), B(Binary), SET, Bool, Null, L(List)..
[AWS] Chapter4. 서버&서버리스 진단 - 2 3. SQL Injection01. 개요SQL Injection - 임의의 SQL 구문을 주입하고 실행되게 하여 데이터베이스가 비정상적인 동작을 하도록 유도 - OWASP TOP10 중 첫 번째 공격, 위험도가 높음SQL Injection 공격 목적 및 영향 - 인증 우회 - DB 데이터 조작 및 유출 - 시스템 명령 실행SQL Injecion 종류 - Error Based SQL Injection - Blind SQL Injection - Union SQL Injection 02. AWS 데이터베이스 서비스AWS에서 제공하는 데이터베이스 서비스 종류RDS(Relational Database Service) - 관계형 데이터베이스를 설정, 운영 확장 - 6개의 데이터베이스 엔진 중에서 선택 가능 - 기존..
[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는 다양한 침투 테스트 도구의 존재 및 사용 가능성을 인정..
[AWS] Chapter3. 클라우드 아키텍처(Cloud Architecture) 1. 정적 웹 호스팅 01. AWS Well-ArchitectedAWS Well-Architected  - 보안, 안정성, 성능 효율성, 비용 최적화, 운영 우수성보안 기반 아키텍처 프레임워크ID 및 액세스 관리 - 허가, 인증된 사용자에 한해 리소스에 액세스 / 키관리탐지 제어 - 로그, 이벤트 및 모니터링 처리인프라 보호 - VPC를 이용한 환경 구성, 퍼블릭 또는 프라이빗 서브넷 구성데이터 보호 - 암호화(서버측 암호화, SSL 통신) 인시던트 대응 - 상세 로그 제공 02. 정적 웹 호스팅 AWS 정적 웹 구축S3 + CloudFront정적 컨텐츠는 S3 사용, 가상서버를 사용하지 않고 배포CloudFront - CDN(Contents Delivery Network) 서비스, 전 세계에 배치된 캐..
[AWS] Chapter2. 사용자 관리 - 2 2. 인증 정보01. IAM 인증 정보IAM 인증 정보(Credential)- API Key, SSH Pubkey, AWS CLI & SDK 등 서비스 키를 포함 - 개발 실수, 환경 설정 미흡 등으로 인해 공개된 저장소에 저장되지 않도록 유의 - IAM 사용자는 고유한 액세스 키를 자신의 권한에 한하여 교체 가능    => 하지만, root 사용자는 모든 IAM 사용자의 키 관리에 관여 가능 - 환경변수, ~/.aws/credentials 에 저장하여 프로파일 등록 후 사용 IAM 인증 정보 유출 경로 - 스크린샷, 코드 형상관리 파일(.git, .env) 관리 미흡, 불필요한 공개 설정 등 다양 IAM 인증 정보 유출 경로 (예시)IAM 인정 정보 유출 시 위협 - 공격자는 키 획득 이후 추가 공격 ..
[AWS] Chapter2. 사용자 관리 - 1 1. Cloud 사용자 관리01. root 사용자root 사용자? -> AWS 계정을 처음 생성할 때 해당 계정의 모든 AWS 리소스에 액세스 권한이 있는 ID  -> 이메일 주소와 암호를 이용하여 인증  -> 일상적인 작업 및 관리 작업에도 루트 사용자의 사용을 권장하지 않음  -> 오직 계정 및 과금 관리 작업 수행 시에만 root 사용자 사용 권장 02. IAM  IAM (Identity and Access Management)AWS 서비스와 리소스에 대한 액세스 통제AWS 사용자 및 그룹을 만들고 관리하며 리소스에 대한 액세스 허용 및 거부 가능AWS 관리를 위한 그룹, 사용자 및 역할(Role) 생성 가능  IAM 사용자(User)개체, 서비스 및 리소스와 상호작용하기 위해 개체를 사용하는 사람..
[AWS] Chapter1. 클라우드 모의해킹 기초 - 2 2. AWS 주요 서비스 01. 온프레미스와 클라우드  온프레미스 VS 클라우드 - 애플리케이션의 클라우드 이전 시 다양한 전략 존재    -> 기존 환경의 마이그레이션, 관리형 서비스 이용, 서비스형으로 전환 (예시) 웹 애플리케이션을 서비스 단위로 분해하여 재설계 및 배포 02. AWS 주요 서비스 03. 클라우드 용어  AWS 글로벌 인프라  -> 리전(Region) : 국가 단위 -> 가용 영역(Availability Zone) : 데이터 센터(IDC), 하나의 리전에 여러 개의 가용 영역으로 구성 -> 엣지 로케이션(Edge Location) : CDN(Content Delivery Network) - 빠른 배포를 위한 캐시서버25개 지리적 리전에 걸쳐 80개의 가용 영역을 보유( 2020년 기..
[AWS] Chapter1. 클라우드 모의해킹 기초 - 1 1. Cloud의 이해 01. Cloud Computing?  - Cloud Computing  -> IT 리소스를 인터넷을 통해 온디맨드로 제공하고 사용한 만큼만 비용 지불  -> 물리적 데이터 센터와 서버를 구입, 소유 및 유지 관리하는 대신 공급자로부터 기술 서비스에 액세스누가 사용하나요?  -> 모든 유형, 규모의 산업 및 조직에 적용 가능  -> 데이터 백업, 이메일, 가상 데스크톱, 소프트웨어 개발 및 테스트, 빅테이터 분석...왜 사용하나요?  -> 민첩성 - 서버 구매하여 인프라 설치 및 구성에 걸리는 시간 단축  -> 탄력성 - 사용량을 미리 계산하여 오버 프로비저닝할 필요가 없음  -> 경제성 - 데이터센터 유지 관리비가 들지 않음, 사용한 만큼만 비용 지불 02. 클라우드 서비스 공급..
[AWS] Chapter0. 클라우드 모의해킹(Cloud Hacking) 교육 소개 1. 교육과정 목적 - 클라우드 해킹 각 단계를 이해하고 단계마다 필요한 기법을 숙지 및 활용 - 클라우드 구성 인스턴스의 이해 및 모의 해킹 방법 학습 2. 교육 구성- 이론    => 클라우드 인프라 소개, 발생할 수 있는 취약성 - 실습   => 도구 사용 실습 및 시나리오 기반 실습 3. 교육 과정1) 클라우드 기초 2) 클라우드 사용자 관리 3) 클라우드 아키텍처 4) 클라우드 취약성 항목 5) 클라우드 진단 방법론 Cloud Hacking 교육 과정 중, 실습 부분을 제외한 내용들을 소개하려고 합니다.이론위주이기는 하나, 관심있으신 분들은 천천히 읽어보시면모의해킹 과정이 어떤 식으로 풀어나가는지, 또 진단 방법이 무엇인지 확인하실 수 있습니다.