Security/Network

[Splunk] Splunk를 이용한 HTTP 로그 분석 - 1

2er0127 2023. 7. 29. 00:27

Splunk 다운로드 링크

https://www.splunk.com/ko_kr/products/splunk-enterprise.html

 

Splunk 접속 http://127.0.0.1:8000

 

 

 

HTTP 메세지 구조

 

HTTP Request

- 요청라인(Method)

- 요청헤더

- 공백

- Body (Request의 Body 부분은 볼 수 없다.)

 

Method 종류

GET 요청 정보가 URL에 표시되어 보안성이 낮다.
POST 요청 정보가 Body에 들어간다. URL로 전송하지 않기에 다른 사용자가 볼 수 없다.
HEAD 서버 측 데이터(웹 서버 정보, healthy check 등)를 검색하고 요청하는데 사용한다. Body 없이 응답코드와 HEAD로만 응답을 받는다.
OPTIONS Body가 없이 서버에서 지원되는 메소드 종류를 확인할 수 있다.
PUT 보통 파일을 서버로 넘길 때 사용하기 때문에 보안 상의 문제가 있다.
DELETE URL에 서버의 파일을 지정하면 파일을 삭제할 수 있다.

 

 

HTTP Response

- 상태라인(응답코드)

- 응답헤더

- 공백

- Body

 

응답코드

100번대 정보 전송 실험 용도 외에는 100번대 서버 측의 응답은 없다.
200번대 성공 클라이언트의 요청이 성공적으로 수신 및 처리되었음을 의미한다.
300번대 리다이렉션 해당 요청을 처리하기 위해 클라이언트가 수행해야 할 추가 작업이 있음을 의미한다.
400번대 클라이언트 에러 클라이언트측의 오류가 발생했을 때 사용한다.
500번대 서버 에러 서버측에서 발생한 오류나 클라이언트의 요청 사항을 제대로 처리할 수 없을 때 사용한다.

 

 

 

SplunkSIEM(Security Information & Event Management) 중 하나로 대용량의 다양한 형태의 로그를 수집하여 상관 관계를 분석하는 솔루션이다.

경고(alert)를 통해 관리자 알림과 함께 로그 저장이 가능하고, 저장된 로그를 통해 보고서와 대시보드를 생성할 수 있다.

 

 

 

 

 

로그 예제

 

1) HTTP Method

보통 대부분의 요청 메소드는 GETPOST를 사용한다.

클라이언트가 많이 사용하지 않는 메서드는 공격자의 정보 수집 행위이거나, 정상적인 사용 범위가 아닐 수 있다.

(HEADOPTION과 같은 메서드는 서버의 정보를 파악할 수 있는 메서드이다.)

 

index=httplog sourcetype=httplog uri!="-"
| top method limit=10 showperc=f

 

index=httplog sourcetype=httplog uri!="-"

✍🏻 http 로그가 정의되어 있는 인덱스와 소스타입을 검색한다. (사용자 정의로 HTTP 로그를 추가했음)

✍🏻 uri 필드 값이 "-" 가 아닌 로그만 검색을 하는데, "-" 는 없음을 의미한다.

 

| top method limit=10 showperc=f

✍🏻 상위 10개의 메서드를 검색한다. showperc=f 옵션을 주어 각 값이 차지하는 퍼센트를 구하지 않도록 한다. (f는 false를 의미)

 

 

 

 

2) 클라이언트 오류

index=httplog sourcetype=httplog uri!="-" uri!="/" 
(status_code >=400 AND status_code < 500)
| top domain, status_code limit=10 showperc=f

 

(status_code >=400 AND status_code < 500)

✍🏻 클라이언트 오류 상태코드는 400번대이다. status_code 필드 값을 400 이상 500 미만으로 주는 것은 클라이언트 오류를 검색한다는 의미가 된다.

 

| top domain, status_code limit=10 showperc=f

✍🏻 도메인을 기준으로 상위 10개의 값을 검색하고, 퍼센트율을 보여주지 않는다.

 

 

 

 

3) 서버 오류

index=httplog sourcetype=httplog uri!="-" status_code >= 500 
| top domain, status_code limit=10 showperc=f

 

status_code >= 500 

✍🏻 status_code를 500 이상으로 주어 500번대 상태코드인 서버 오류를 검색한다.

 

 

 

 

 

 

 

 

728x90

'Security > Network' 카테고리의 다른 글

2014-11-16 TRAFFIC ANALYSIS EXERCISE ANSWERS  (0) 2023.06.05
Modsecurity 설치 및 차단 테스트  (1) 2023.06.04
OSSEC 설치 및 설정하기(시나리오)  (0) 2023.06.03
Suricata 설치 및 설정  (0) 2023.06.01
Suricata rule 구조  (0) 2023.06.01