SIEM 구축
SIEM은 다음과 같은 과정을 거쳐 보안 로그 수집 및 탐지를 한다.
1. SIEM에 여러 종류의 로그를 수집
2. OpenSearch Dashboards / Kibana 를 활용한 보안 로그를 조사한다.
3. OpenSearch Dashboards / Kibana 대시보드로 데이터를 시각화한다.
4. Amazon OpenSearch Service의 경고를 설정한다.
어떻게 SIEM 환경 구축을 하는가?
- SIEM 환경 구축을 위해서 이미 설정되어 있는 OpenSearch Service가 포함된 CloudFormation을 배포한다.
SIEM이란?
Security Information & Event Management로 말 그대로 잠재적인 보안 위협을 사전에 탐지하고 대응하는 보안 솔루션이다.
AWS Cloud Formation이란?
AWS CloudFormation을 사용하면 인프라를 코드로 처리하여 효율적으로 관리가 가능하다.
그래서 밑의 사진도 보면 output 전에 AWS CloudFormation을 거치는 것을 확인할 수 있다.
AWS OpenSearch Service란?
쉽게 얘기하면 로그들을 모니터링하고 분석을 하여 이상을 조기에 감지함해주는 역할을 지원하는 관리형 서비스이다.
2. 보안 로그를 조사한다.
- AWS Cloud Trail, Amazon Flow Logs 및 Amazon GuardDuty 로그를 캡처한다.
3. 로그 캡처 및 정규화를 진행한다.
- Fluentd를 사용하여 Apache httpd 서버의 로그를 정규화하여 SIEM on OpenSearch Service로 가져온다.
-> 여기서 Fluentd란 전달된 로그 데이터를 원하는 형태로 가공하는 역할을 말한다. ( 정규화하는 느낌 )
4. 경고 설정을 한다.
5. 대시보드를 만든다.
-> 대시보드를 만들어 CloudTrail 로그를 시작한다.
로그분석 기본편
로그 수집 및 인스턴드 생성
AWS 서비스 로그를 캡처하도록 설정
1. 로그 수집 S3 버킷에 로그를 출력하고 로그를 Lambda 함수로 전달한 후 정규화한 후 OpenSearch Service에 로드한다.
로그 수집에는 총 3가지가 있다.
- GuardDuty
- Cloud Trail
- VPC Flow Logs
1. GuardDuty를 활성화한다.
-> GuardDuty는 악성 및 불법적인 동작을 지속적으로 모니터링하는 위협 탐지 서비스이다.
GuaryDuty를 통해 S3 버킷에 감지 결과를 출력을 한다.
과정은 다음과 같다.
1. s3 버킷에 위협 목록 파일을 만들어 업로드를 한다. ( .txt 파일 형태든 뭐든 )
2. Guary Duty에 들어가서 목록을 등록을 한다. 위치는 다음과 같다.
- 위치: s3://aes-siem-111111111111-geo/ioc.txt
3. 그리고 활성화 버튼을 누른다.
2. AWS CloudTrail를 활성화한다.
1. S3 버킷에 AWS CloudTrail을 통해 추적한 로그들이 저장이 된다.
3. Amazon VPC Flow Logs
VPC Flow Logs 같은 경우 VPC의 네트워크 인터페이스에서 전송되고 수신되는 IP 트래픽에 대한 정보를 수집할 수 있는 기능을 말한다.
1. EC2 인스턴스 생성
EC2 인스턴스를 만들면 자동으로 로그들이 생성이 된다.
2. 이전에 만든 EC2 인스턴스가 포함된 VPC 를 선택을 한다.
-> 그리고 로그를 저장할 S3 버킷을 선택을 한다.
3. VPC Flow Logs가 생성이 된다.
요약
Guard Duty 같은 경우 S3 버킷에 저장된 위협 목록 파일을 기반으로 탐지를 하는 것이고
CloudTrail은 자동으로 추적하여 S3 버킷에 로그들이 남고
VPC Flow Logs 같은 경우 EC2 인스턴스를 통해 발생한 로그들이 S3 버킷에 남게 된다.
로그 분석
수집된 로그들은 OpenSearch Dashboards에서 볼 수 있다.
로그 캡처 및 정규화
웹 서버에 SSH로 로그인하여 웹 서버가 정상적으로 작동하는 지 확인한다.
Fluentd란 로그 수집기 도구이다.
https://jonnung.dev/system/2018/04/06/fluentd-log-collector-part1/#gsc.tab=0
1. Fluentd를 사용하여 Apache Httpd 서버 로그를 처리하지 않고 바로 S3 버킷으로 전송한다.
2. S3 버킷으로 저장된 로그를 확인한다.
3. Lambda Function을 활용하여 S3 저장 위치와 정규화한 코드를 작성한 파일을 돌려 정규화된 로그가 OpenSearch Service에 나타나게 한다.
경고 생성
OpenSearch Service에 감지한 경고는 여러가지 방법으로 통지할 수 있다.
1. Amazon SNS
2. Amazon Chime
3.Slack
4. Cusom webhook