본문 바로가기
AI, IT 이야기

Elasticsearch Lucene Query 사용 사례 - 2편

by xpassage 2025. 6. 10.
반응형

보안 위협 이벤트는 하루에도 수천 건씩 발생중인데요. 우리가 잘 알아고 있는 SQL Injection이나 XSS, Brute Force 공격등 종류도 매우 다양합니다. 이번 시간에는 코인 채굴 통신 로그를 찾기 위한 효과적인 쿼리와 악의적 서버와의 통신(C&C 서버) 탐지 방법에 대한 사례를 중심으로 살펴보도록 하겠습니다. 이와 같은 실제 Elasticsearch Query를 응용하고 활용하면 실무에서 보안 로그를 분석하는데 도움이 될 것입니다.

 

 

코인 채굴(mining) 관련 통신 로그 필터링 예제

 

코인 채굴 악성 활동은 네트워크 트래픽에서 매우 특이한 패턴을 보입니다. 이를 탐지하기 위한 쿼리 구조는 다음과 같은 형태를 가집니다.

 

조건 1: 특정 포트를 대상으로 하는 트래픽 탐지

 

코인 채굴은 일반적으로 특정 포트를 사용합니다. 대표적인 포트 번호는 18080, 18081, 28080, 28081, 7777, 그리고 3333 등이 있습니다.

 

Elastic Query 예제
Elasticsearch Lucene Query 예시

 

destinationPort:(18080 || 18081 || 28080 || 28081 || 7777 || 3333) && deviceAction:(Permit || accept) && !destination.country_code2:KR && _exists_:destination.country_code2

 

이 쿼리는 다음 조건을 탐지합니다.

 

- 허가된 트래픽(Permit, Accept)

- 국내(KR) 외의 국가에서 발신된 통신

- 목적 국가 코드 정보가 존재하는 로그

 

이를 통해, 국내외 채굴 활동과 관련된 비정상적 발신을 빠르게 파악할 수 있습니다.

 

조건 2: 추적해야 할 특정 IP 지정

 

지정된 source IP에서 채굴 관련 트래픽을 보다 정교하게 확인하고 싶을 때 사용하는 조건입니다.

 

sourceAddress:1.x.x.x && !destinationPort:(8080 || 53 || 443)

 

일반적인 웹과 DNS 트래픽(포트 80, 53, 443)을 제외하고 특정 소스에서 유입되는 의심스러운 트래픽을 선별할 수 있습니다.

 

조건 3: 목적지 국가에 따른 필터링

 

다른 소스 IP에 대해 목적지 국가를 KR로 제한하지 않고 탐지하고 싶을 경우:

 

sourceAddress:x.x.x.13 && !destination.country_code2:KR

 

조건 4: 특정 포트를 활용한 의심스러운 접근 탐지

 

추가적으로, 특정 포트(7777)에서 목적지 국가가 국내가 아닌 경우를 필터링 가능:

 

destinationPort:7777 && !destination.country_code2:KR && !sourceAddress:10.4.2.3

 

C&C 서버 통신 로그 분석 사례

 

C&C(Command and Control) 서버는 악성 코드와 그 조정자를 연결하는 핵심 역할을 합니다. 이를 탐지하려면, 상용 평판 DB 및 내부 정제 데이터를 효과적으로 활용하여 다음처럼 설정합니다.

 

C&C 서버 로그 탐지 쿼리 예시

 

destinationAddress:(x.x.x.x || x.x.x.1 || x.x.x.2 || x.x.x.3 || x.x.x.4) && !sourceAddress:x.x.x.x

 

- C&C 서버로 의심되는 목적지를 명확하게 정의합니다.

- 네트워크 소스 IP를 제외하거나 특정 범위(IP 블록)를 중심으로 분석합니다.

- 평판 DB와 상호 연동성을 높여 실시간 탐지가 이루어질 수 있도록 구성합니다.

 

APT 공격 탐지 장비 Elasticsearch 쿼리 예시

 

deviceHostName:APT && _exists_:source.country_code2 && !source.country_code2:KR && !applicationProtocol:(SMTP || IMAP || POP3)

 

Elastic search 쿼리 예시
Elasticsearch Lucene Query 검색 예시

 

- 출발지 IP가 한국(KR)이 아닌 경우를 필터링하며, 메일 관련 프로토콜(SMTP, IMAP, POP3)은 제외

 

deviceHostName:DDI AND name:(SQL* OR MINER*) AND NOT destinationAddress:(x.x.17.162 OR x.x2.18.180)

 

- SQL 인젝션 혹은 Miner 관련 통신만 탐지하며 특정 목적지 IP(x.x.17.162, x.x2.18.180)는 제외

 

NAT(Network Address Translation) IP 검색 방법

 

NAT IP와 연관된 소스 IP 간 연결을 분석하려면, 아래와 같은 쿼리를 사용합니다. 이는 네트워크 번역 과정에서 발생하는 혼선을 줄이고, 문제 지점을 빠르게 찾기 위한 유용한 기법입니다.

 

NAT IP -> 소스 IP 매핑 쿼리 예시

transip:208.xxx.x.x && destinationAddress:8.8.8.8

 

여기서, NAT IP의 흐름 및 관련 로그를 추적하며 주요 트래픽 특성을 보다 정확히 파악할 수 있습니다.

 

이와 같이 Elasticsearch Query를 조합하여 수 많은 보안 위협에 대한 정밀 분석을 진행 할 수 있으며, 또한 기존 Legacy 방식의 SIEM 사용의 불편함에서 벗어나 좀더 효율적이고 빠른 대처를 할 수 있다는것이 매우 큰 장점이라고 할 수 있습니다.

 

 

반응형