AWS

· Cloud/IaC
본격적으로 조금 더 복잡한 내용으로 들어가보도록한다. 많이 사용되는 WEB, WAS, DB 구조인 3-tier 아키텍쳐를 Terraform Code로 구성해보도록한다. 아키텍쳐 구성도 구성할 요소가 상당히 많은 것을 볼 수 있다. 이번 글에서는 네트워킹 요소(VPC)부터 구성하고, 그 다음으로 Application(WEB, WAS, DB)를 구축해보도록 한다. Terraform 코드 작성 전체적인 프로젝트는 module화 시켜 최대한 가독성있게 제작했다. (모듈화를 시킴으로써 각 모듈에서 필요한 요소들을 가져오고 내보내는 과정을 익힐 수 있었다. [output / variables]) ├── main.tf ├── module │ ├── application# EC2, ALB 등의 application 요..
시나리오 개요 Starting as an anonymous outsider with no access or privileges, exploit a misconfigured reverse-proxy server to query the EC2 metadata service and acquire instance profile keys. Then, use those keys to discover, access, and exfiltrate sensitive data from an S3 bucket. 시나리오 목표 S3 버킷 내의 confidential 파일 다운로드(탈취) 시나리오 세팅 ./cloudgoat.py create cloud_breach_s3 solutions 디렉토리 내의 cloud_breach_s3..
· Cloud/AWS
GuardDutyAWS 계정 전반의 위협 탐지 서비스(Threat Detection Service)AWS 계정과 워크로드를 보호하기 위해 악의적인 활동들과 비인가적인 행위들을 지속적으로 모니터링한다.GuardDuty는 위협 인텔리전스 피드를 통해 악성IP / 도메인을 판별하고, 이를 바탕으로 머신러닝을 적용시켜 위협 탐지를 수행한다.  GuardDuty가 모니터링하는 항목으로는 다음과 같다.VPC flow logCloudTrail 이벤트 로그CloudTrail 관리 이벤트DNS 로그GuardDuty는 기본으로 활성화되지 않고 별도로 활성화를 시켜줘야 모니터링과 탐지를 시작한다.GuardDuty 서비스를 나타내는 객체로 감지기라는 개념이 존재한다. 이 감지기는 리전 단위의 객체로, 이 탐지기는 GuardD..
시나리오 개요 Exploit insecure IAM permissions to escalate your access. Start with a role that manages other users credentials and find a weakness in the setup to access the "admin" role. Using the admin role retrieve the flag from secretsmanager. 시나리오 목표 Admin role을 통해 SecretsManager에 있는 flag 탈취 시나리오 세팅 ./cloudgoat.py create iam_privesc_by_key_rotation solutions 디렉토리 내의 iam_privesc_by_key_rotation 시나..
· Cloud/AWS
이전 글에서 Bastion host를 사용하지 않고 내부 Private 서브넷의 인스턴스에 접근하는 수단인 Session Manager에 대해 알아보았다. Session Manager도 IAM을 이용해 키 페어를 관리할 필요 없이 간편하게 인스턴스 접근할 수 있도록 서비스가 제공되나, 아웃바운드 인터넷 라우팅이 없는 폐쇄망에 접근하는 경우에 엔드포인트 세팅 작업이 필요해 조금은 불편했던 점이 있었다. 추가로, Private 인스턴스로의 연결을 위해 생성하는 3개의 엔드포인트들은 각각 시간당 요금이 부과된다는 점도 마냥 간과할 수는 없는 포인트이다. 비교적 최근 AWS에서는 이러한 폐쇄된 서브넷의 인스턴스에 연결할 수 있는 EC2 Instance Connect Endpoint(이하 EIC 엔드포인트)라는 ..
· Cloud/AWS
Internet Gateway가 연결된 Public Subnet에 위치한 인스턴스들은 부여된 Public IP를 통해 SSH Keypair를 가지고 바로 인스턴스에 접속할 수 있다. 하지만 외부와 연결이 없는 폐쇄된 Private Subnet에 위치한 인스턴스들은 이와 같이 접속할 수 없다. 보통 이런 경우에는 Public Subnet에 Bastion host를 두어 이를 거쳐서 내부 Private 인스턴스로 접근하고는 한다. Bastion host를 두고 접속하는 방법에는 다음과 같은 단점들이 존재한다. Bastion host 인스턴스 : Private 인스턴스의 접속을 위한 인스턴스가 별도로 필요하고, 관리도 해줘야 한다. 인바운드 포트 : 접속을 위해 SSH 포트 설정이 필요하다 SSH Key Pa..
· Cloud/AWS
AWS의 다양한 서비스들을 이용하다 보면 리소스를 생성하는 과정을 마주하게 된다. 그 과정 속에서 간간히 KMS라는 단어를 볼 수 있는데, 대부분의 상황에서 이 KMS 설정은 기본값으로 두거나 아예하지 않고 넘어갔었다. 매번 마주했지만 그 기능에 대해 깊게 공부해본 경험은 없었다. 그나마 SAA 공부할 때 잠깐 얕게 공부해본게 전부라 이 참에 내용을 정리하는 겸 KMS를 활용해보도록 한다. KMS Key Management Service, 데이터를 암호화할때 사용되는 암호화 Key에 대한 전체적인 관리를 해주는 서비스 암호화 Key의 클라우드 서비스를 통해 중앙 집중식으로 관리해준다는 목적을 가진다. KMS의 대표적인 특징은 아래와 같다. 특징 내용 중앙집중식 제어 KMS 키의 수명 주기와 권한을 중앙집..
· Cloud/AWS
바로 앞 글에서 Network Firewall의 개념을 알아보고 간단한 아키텍쳐를 구성했다. 실제 방화벽이 VPC에 연결되어 트래픽 차단을 수행도록 하기 위해 VPC 네트워킹 작업이 더 필요하다. Firewall Endpoint가 활성화된 것을 확인 후, 라우팅 테이블 설정을 진행한다. 라우팅 테이블 설정 트래픽이 정상적으로 흐를 수 있도록 각 서브넷들의 라우팅 테이블 설정을 해주어야 한다. 라우팅 테이블을 적용한 아키텍쳐의 구성은 아래와 같다. 먼저, Firewall Endpoint가 위치한 Pub-NFW-a와 Pub-NFW-c의 라우팅테이블을 작성한다. 0.0.0.0/0의 인터넷 게이트웨이로 타고 나갈 수 있도록 구성한다. 다음으로 서비스가 있는 Pub-a와 Pub-c의 라우팅테이블을 작성한다. 여기..
Omoknooni
'AWS' 태그의 글 목록 (3 Page)