I.sly()/10기 심화 - 클라우드 보안

AWS 클라우드 서비스 인프라 구축 이해와 해킹, 보안 - 섹션 6

mameul 2024. 11. 9. 11:29
728x90

[섹션 6] AWS 서비스 로그 통합 모니터링

AWS 클라우드 서비스 로그 이해

클라우드 자원별 로그

- EC2 생성/삭제, S3 스토리지 로그, 데이터베이스 로그, 서버리스 자원 로그, 컨테이너 로그 등

- 각 자원별로 Cloud Watch를 이용하여 확인 및 통합 가능

- Cloud Watch 에이전트를 이용하여 EC2의 로그를 확장해서 통합 분석 가능

 

네트워크 트래픽 로그

- 가상 네트워크 VPC Flow 로그

- 각 VPC 별로 플로우 로그를 생성하여 관리

 

자원 이벤트 로그 

- AWS SDK, CLI를 이용한 API 로그 관리

- API를 호출한 IP 주소와 호출한 사용자 계정 추적 가능

 

비용 이벤트 로그

- 클라우드 서비스를 이용할 때 각 자원별/태그별 비용 확인

- 정해진 예상 금액 이상으로 사용할 때 경고 메시지(메일) 기능

 

AWS Cloud Watch에서 비용 경보 설정

Cloud Watch : AWS 리소스와 애플리케이션의 모니터링 및 로그 관리 서비스를 제공하여 성능 및 운영 상태를 실시간으로 추적하고 알림을 설정할 수 있게 해주는 도구

 

'경보 > 결제 > 경보 생성' 을 통해 정해진 조건을 벗어나면 알림이 발생하도록 할 수 있음

 

AWS CloudTrail을 이용한 로그 관리

CloudTrail 의 개요

- AWS 계정 관리, 규정 준수, 운영 및 위험 감사를 지원하는 서비스

- 기록된 정보를 참고하여 사용자, 역할, 서비스에 수행한 작업에 대한 정보를 검토할 수 있음

- AWS에서 서비스하고 있는 모든 행위의 이벤트를 모아서 분석, 리소스 변경 추적 등 가능

* Cloud Watch는 통합로그 분석의 관점, Cloud Trail은 로그 수집은 동일하나 사용자 행위에 대해 중점적으로 관리

 

CloudTrail 이벤트 종류 

- 관리 이벤트 : 계정 리소스에서 수행되는 관리 작업에 대한 정보 제공

- 데이터 이벤트 : 리소스에서 수행되는 리소스 작업의 정보 제공 (요금 발생)

- Insights 이벤트 : 계정에서 발생된 비정상적인 활동 기록 (요금 발생)

 

* 로그들은 S3에 저장이 되며, S3 사용량에 따라 요금이 부과됨

 

'CloudTrail > 추적생성' 에서 설정 가능 

제대로 확인하려면 관리 이벤트+데이터 이벤트까지 로깅하는 것이 좋음

'CloudTrail > 이벤트 기록'에서 로그를 간편하게 확인 가능

 

VPC Flow 로그

VPC Flow 로그

- VPC와의 IP 트래픽을 캡처하는데 도움

- VPC 흐름 로그의 데이터는 CloudWatch 로그 또는 S3 버킷에 게시할 수 있음

- 허용된 트래픽만 기록하거나 거부된 트래픽 또는 둘 다를 기록하도록 선택 가능

- VPC 수준, 서브넷 수준, 네트워크 인터페이스 수준 등 다양한 수준에서 생성

- VPC와의 모든 IP  트래픽을 기록할 수 있지만, Accept/Reject, ALL 등을 선택 가능

 

VPC 로그 이벤트 수집 실습

앞선 실습에서 만들었던 VPC 퍼블릭 대역에 실습

1. 인스턴스 생성

2. cloudwatch에 로그 그룹(로그가 쌓이는 공간) 생성

3. IAM 정책 생성 -> 역할 생성 -> 신뢰관계 설정 (뭔소리지..뭐가 무슨 기능인지 모르겠)

4. vpc flow log 생성

*로그 데이터 게시 대상 : S3 버킷 (장기적 보관, ELK로 통합로그할거면), CloudWatch Logs 

 

AWS CloudWatch 통합 로그 분석

CloudWatch

- AWS에서 제공하는 AWS의 자원과 애플리케이션을 모니터링할 수 있는 관리 서비스

- 모니터링하는 모든 자원의 로그와 지표 정보들을 수집하여 시각화할 수 있음

 

기본 대시보드 구성

EC2 인스턴스 정보에서 '대시보드 추가' > 대시보드 생성 또는 기존 대시보드 추가

위젯 유형 선택 가능

 

Agent 로그 정보 수집

IAM > 역할 > 역할 생성 > 2단계 권한 추가 단계에서 'cloudwatchagent' 검색하여 ~serverPolicy 선택  > 인스턴스의 IAM 역할 수정 

 

서버에 CloudWatch 에이전트 설치

sudo dpkg -i amazon-cloudwatch-agent.deb

sudo /opt/aws/amazon-cloudwatch-agent/bin/amazon-cloudwatch-agent-config-wizard

위 명령어를 통해 에이전트 설치, 이후 세부 설정하고 설치 완료

sudo su-

cd /opt/aws/amazon-cloudwatch-agent/bin

./amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -c file:/opt/aws/amazon-cloudwatch-agent/bin/config.json -s

위 명령어로 실행

./amazon-cloudwatch-agent-ctl -m ec2 -a status : 정보 확인

 

cloudwatch > 모든 지표 > CWAgent  에서 쌓인 로그 확인 가능

 

Agent 웹 로그 수집

sudo apt install apache2 : 아파치 설치

sudo service apache2 start : 아파치 시작

sudo nikto -h [아파치 페이지 주소] : 웹공격 로그 남기기 (칼리)

 

config.json 파일을 웹 로그도 수집하도록 수정

 

./amazon-cloudwatch-agent-ctl -m ec2 -a stop : agent 정지

./amazon-cloudwatch-agent-ctl -a fetch-config -m ec2 -c file:/opt/aws/amazon-cloudwatch-agent/bin/config.json -s : 수정된 config 파일을 가져와서 다시 실행

 

CloudWatch > 로그 > 로그 그룹 > agent_apache 에서 로그 이벤트 확인 가능

 

 

수집된 로그 통합해보기

VPC 로그, apache 로그 등을 통합해서 대시보드에 표시

apache 로그 > Logs Insights에서 보기 > 대시보드에 추가

대시보드에서 위젯 추가를 통해 여러 지표를 대시보드에 불러옴