SIEM
[이전 포스팅 참고]
[시스템 보안 및 실무/시스템 운영·구축 실무] - Management Solution : NMS, SMS, ESM, SIEM + TAP
- ESM의 확장버전
- 다양한 이기종 장비에서 발생하는 로그를 통합 수집하고 분석
- 보고서 생성
**IDS랑 뭐가 다를까? => IDS는 탐지룰을 만들어 룰에 맞는 것들만 탐지, SIEM은 로그를 수집
**dns.log, http.log 등 프로토콜 특성이 다르면 로그 형태도 다름
★SIEM 개략적 처리 프로세스 2단계에서 상관관계분석을 통해 수집한 로그들의 연관성을 분석해서 우리 시스템에 어떤 변화가 있는지 어떤 위험도가 있는지 이상징후를 파악!!
Splunk 설치
Splunk Cloud랑 Enterprise의 차이는 하루 분석할 최대 용량 차이가 있습니다.(Cloud는 5GB, Enterpise는 500MB)
하드웨어 용량, RAM, CPU 용량 차이도 있음. 요즘 컴퓨터는 무난하게 Splunk 사용 가능. 다만, 웹브라우저는 윈도우의 경우 Chrome을, 리눅스의 경우 Firefox를 권장
Splunk 설치환경
정규화 -> 상관관계 분석(splunk 명령어를 알고 있어야함)
splunk Forwarder는 Agent라고 보면 되고, Forwarder를 설치한 경우 그곳에서 발생하는 로그를 자동으로 splunk로 보내줌
=> VMware에서 할 수도 있고, Windows에서 할 수도 있음
=> 아래 실습에서는 Windows에서 진행
splunk 설치 시작
1) http://www.splunk.com에서 계정 만들기
splunk 홈페이지 : https://www.splunk.com/
2) splunk 소프트웨어 평가판 Download
로그인 후 오른쪽 상단 Free Splunk 클릭하여 운영체제에 맞는 패키지 설치(Splunk Enterprise)
3) Tutorial 데이터 파일 다운로드
다운로드 : https://docs.splunk.com/Documentation/SplunkCloud/8.2.2203/SearchTutorial/Systemrequirements
4) splunk Enterprise 설치
=> deb는 우분투에 설치하는 것, rpm은 cent os에 설치하는 것, x66-release는 윈도우에 설치하는 Forwarder입니다.
5) splunk Web 실행
설치 완료 후 Chrome에서 http://localhost:8000 또는 http://127.0.0.1:8000으로 이동
=> Splunk / 12345678 로그인
=> Search & Reposrting와 설정 메뉴 사용 예정
=> Splunk사에서 로그분석을 위해 만들어놓은 테스트 파일 사용(3번에서 다운로드한 tutorialdata를 가지고 분석)
Splunk 사용하기
1) Search & Reposrting으로 이동
2) 설정-데이터 추가-내 컴퓨터의 파일 업로드
=> ZeekIDS, WebServer가 준 것은 Splunk에 데이터 수집했음을 관리자가 업로드 해줘야함
=> Splunk agent가 준 것은 자동으로 인식
2-1) 원본선택
2-2) Source type은 자동, 호스트(어느 컴퓨터에서 가져왔는가?), 인덱스(저장소) 설정
2-3) 검토 및 제출
3) 검색시작 클릭하여 화면 구성 확인
시나리오 : 온라인게임을 판매하는 회사에서 캐릭터에 관한 판매사업을 진행, 그 회사에서 일정시간 동안 수집한 로그들을 압축해서 splunk에게 보내줌
=> 날짜별로 각 날에 몇 개의 event가 발생했는지 확인 가능(초록줄)
=> 왼쪽 필드 확인! 로그 안에는 필드값, 필드명 등이 있음. 그것들을 분석하여 왼쪽에 필드로 만든 것
tutorialdata.zip을 보면
=> mailsv 폴더 내 secure 로그 : 인증 관련 로그
=> vendor_sales 폴더 내 vendor_sales 로그:
=> www1,2,3 폴더 내 access, secure 로그 : GET, POST 웹 트래픽
4) 원시, 리스트, 테이블 형태로 로그 확인 가능
마지막에 수집만 로그가 제일 위에 올라옴
=> AcctID, Code, VendorID가 로그의 네임필드라고 볼 수 있음
=> 시간도 중요
=> host는 TestHost로부터 가져왔어 라는 의미
=> Source는 어느 로그파일에서 읽어왔는지 출력
5) 상단 검색 클릭-검색방법(데이터 요약) 클릭
=> 업로드한 로그의 전체적인 정보를 확인할 수 있음
=> Source를 클릭하면 압축을 풀었을 때 폴더 안 로그의 개수를 확인할 수 있음(각 파일의 로그 개수도 확인 가능)
=> 원하는 로그파일만 선택해서 볼 수 있음
6) Source-www/access.log 클릭
[1번째 로그]
182.236.164.11 - - [01/Jul/2022:18:20:56] "GET /cart.do?action=addtocart&itemId=EST-15&productId=BS-AG-G09&JSESSIONID=SD6SL8FF10ADFF53101
=> Request
=> GET 뒤에 부분은 요청한 URI (/cart.do?~)
HTTP 1.1" 200 2252 "http://www.buttercupgames.com/oldlink?itemId=EST-15" "Mozilla/5.0 (Macintosh; Intel Mac OS X 10_7_4) AppleWebKit/536.5 (KHTML, like Gecko) Chrome/19.0.1084.46 Safari/536.5" 506
=> Response
=> 요청에 대한 응답 성공
=> 2252는 응답 바디 길이
=> "Mozilla/5 ~ Safari/536.5" 506 부분은 agent 정보
7) 필드에서 method 클릭
내가 선택한 로그에는 method는 2개, GET과 POST가 있음
GET과 POST의 비율 확인 가능
8) 필드에서 status클릭
내가 선택한 로그에는 status가 8개 있음
각 상태코드에 따른 비율 확인 가능
8-1) 필드에서 status 중 500 클릭
=> 500 중에서도 해당 날짜에 몇 건의 500 오류가 발생했는지 확인 가능
Splunk가 로그 필드들을 전체 분석하고, 분류하는 작업을 함
=> 이를 가지고 연관성이나 이상징후를 파악
9) 검색 내역은 이전에 검색한 명령어들의 history를 확인할 수 있음
=> 검색명령어에서 blank(공백)은 &&연산을 의미. 즉, 두 개의 조건을 모두 만족해야 함
10) 선택한 필드를 제거할 땐 아니오 클릭, 관심필드에서 보고 싶은 필드는 예 클릭