태그 보관물: #웹로그분석

엘라스틱서치(Elasticsearch)를 활용한 웹 로그 분석

SIEM 솔루션 또는 XDR 솔루션은 다양한 로그 수집을 통해 위협을 분석 한다. 실시간 로그 수집을 통해서 보안 위협을 실시간으로 탐지한다. 통합로그분석 솔루션이라고 부르는 해당 제품은 다양한 보안 솔루션 이벤트를 수집하고 단편적으로 식별하기 어려운 보안 위협을 분석 할 수 있다.

많은 기업에서 다양한 보안 제품을 사용한다. 실시간으로 수집되는 보안 이벤트를 사람이 직접 분석하는 것은 불가능에 가까운 일이다. 대규모 IT 인프라 환경에서 보안운영을 위해 XDR 솔루션은 필수로 사용되는 솔루션 이다.

실시간 위협 분석과 함께 침해사고가 발생할 경우 또는 Threat Hunting 활동을 수행하기 위해서 XDR 솔루션을 이용한다. 수많은 보안 제품의 개별 시스템 로그를 분석해 사고 원인을 조사하거나 침입의 흔적을 찾는 것은 많은 리소스가 필요한 작업이다. 효율적인 분석 업무를 위해 XDR 솔루션을 이용해 통합분석을 수행한다.

가트너 정의를 참고 해보면 다양한 상업용 솔루션이 있다는 것을 알 수 있다.

XDR을 활용한 보안 위협 분석 – 웹 로그 분석

보안사고 조사를 수행하고 사고 대응을 수행하는 분석가 입장에서는 단일 인터페이스를 통해 여러 솔루션 로그를 검색하고 상관 관계를 분석할 수 있기 때문에 효율적인 사고조사를 수행할 수 있다. XDR 솔루션의 경우 대용량의 로그를 보관하고 있기 때문에 사고분석에 필요한 로그 분석에 많이 사용 된다. 시스템 정보를 수집하고 보관하여 침해사고 조사 시 시스템 유실로 인한 사고 조사 영향을 최소화할 수 있다.

사고 분석을 위해 오픈소스 제품을 이용 공격 경로를 분석하는 방법을 살펴 본다. 사용할 제품 설치 과정을 엘라스틱 공식 웹 사이트를 통해서 확인 할 수 있다. 

https://www.elastic.co/kr/downloads/elasticsearch

lastic을 이용해 로그 수집과 분석을 위해서 가장 많이 구성하는 방식은 엘라스틱 엔진과 로그 분석을 위한 로그스태쉬, 시각화를 위해 사용하는 키바나 조합 이다. 흔히 ELK (Elastic /Logstash/Kibana)라고 부른다.

https://www.elastic.co/guide/en/logstash/current/deploying-and-scaling.html

그림 ELK 구성

설치 방법은 공식 사이트에서 운영 체제에 맞춰 설치 파일을 다운로드하고 설치 가이드에 따라 설치할 수 있다. 엘라스틱과 키바나 설치를 완료하고 로그인에 성공하면 로그 분석을 수행 할 수 있다. 로그를 연동하고 상관 분석 룰을 이용해 보안 위협을 탐지하는 기능은 무료로 사용할 수 있다. 수집된 로그를 머신 러닝을 이용하거나 대용량으로 클러스터 구성을 하는 경우에는 유료 기능을 이용해야 한다.

그림 로그인 화면

설치를 완료하면 간단한 로그 분석 실습을 수행한다. 최근 ChatGPT를 보안 업무에 활용하는 시도가 많이 이뤄진다. 로그를 재현하는 과정을 예를 들어 본다. 취약한 로그를 재현하기 위해서 가상 머신에 시스템을 구축해서 관련 로그를 추출해야 했다. 이 작업을 ChartGPT를 이용해서 엘라스틱에서 분석에 사용할 공격 로그 샘플을 확보해 보자.

그림 ChatGPT 샘플로그 활용

ChatGPT 질의 ‘엘라스틱서치 분석용 웹로그 샘플 IIS 해킹 로그 샘플’

아래는 IIS (인터넷 정보 서비스) 서버에서 발생한 해킹 시도에 대한 웹 로그 샘플입니다. 이 샘플은 일반적인 해킹 시도 패턴을 보여주기 위한 예시입니다.2023-06-24 10:15:32 192.168.0.100 GET /wp-admin/ – 80 – 203.0.113.1 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/90.0.4430.212+Safari/537.36 – 404 404 0 152023-06-24 10:17:21 192.168.0.100 GET /login.php – 80 – 203.0.113.1 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/90.0.4430.212+Safari/537.36 – 404 404 0 212023-06-24 10:18:09 192.168.0.100 GET /administrator/ – 80 – 203.0.113.1 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/90.0.4430.212+Safari/537.36 – 404 404 0 142023-06-24 10:19:45 192.168.0.100 GET /phpMyAdmin/ – 80 – 203.0.113.1 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/90.0.4430.212+Safari/537.36 – 404 404 0 192023-06-24 10:21:10 192.168.0.100 GET /wp-login.php – 80 – 203.0.113.1 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/90.0.4430.212+Safari/537.36 – 404 404 0 162023-06-24 10:22:37 192.168.0.100 GET /dbadmin/ – 80 – 203.0.113.1 Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/90.0.4430.212+Safari/537.36 – 404 404 0 15위 로그 샘플에서 다음 정보를 확인할 수 있습니다:2023-06-24 10:15:32: 로그가 기록된 날짜와 시간.192.168.0.100: 로그가 발생한 서버의 IP 주소.GET: HTTP 요청 메서드./wp-admin/, /login.php, /administrator/, /phpMyAdmin/, /wp-login.php, /dbadmin/: 해커가 접근을 시도한 경로.80: 사용된 포트 번호.203.0.113.1: 해커의 IP 주소.Mozilla/5.0+(Windows+NT+10.0;+Win64;+x64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/90.0.4430.212+Safari/537.36: 해커의 사용자 에이전트(User-Agent).404: 응답 상태 코드 (파일을 찾을 수 없음).404 404 0 15: 응답 크기 및 응답 시간 등의 추가 정보.이 로그에서는 해커가 일반적인 관리자 경로(/wp-admin/, /administrator/)와 데이터베이스 관리 도구(/phpMyAdmin/, /dbadmin/) 등에 접근을 시도한 것을 확인할 수 있습니다. HTTP 응답 상태 코드가 404인 경우, 서버는 해당 경로에 대한 리소스를 찾을 수 없음을 나타냅니다.

다운받은 샘플 로그를 엘라스틱서치에 추가해서 분석가가 사고 원인 분석을 위해 확인하는 항목을 살펴 볼수 있다. 자세한 과정은 영상을 참고할 수 있다.

분석가가 사용하는 도구 – XDR (엘라스틱)

샘플로 다운받은 공격 로그는 웹 사이트의 관리 페이지에 대한 접근 시도 공격 이다. 무작위 스캔성 공격 시도 시 접근 경로가 로그에 남기 때문에 공격자가 접근한 URL과 공격 성공 여부를 분석해야 한다. 이 경우 분석가는 공격 시 접근한 경로가 저장되는 필드를 선택해서 분석 한다.

로그를 분석하는 사례를 매우 많다. 공격 유형에 따라 수집할 로그 종류가 다르고 분석가가 주목해야할 필드 정보도 다르다. 엘라스틱을 이용해서 사고 대응 시 로그 분석 과정을 간단하게 살펴 보았다.