태그 보관물: SIEM

Elastic 머신 러닝 활용 이상 탐지(Anomaly Detection)

1. Elastic 머신 러닝 소개

Elastic Stack에 통합된 Elastic Machine Learning (ML) 기능은 대규모 데이터를 기반으로 자동화된 통찰력과 예측을 제공하는 강력한 도구입니다. 복잡한 기계 학습 알고리즘을 사용자가 쉽게 적용할 수 있도록 설계되어, 로그, 메트릭, 보안 이벤트 등 다양한 시계열 데이터에서 이상 징후(Anomaly)를 탐지하고 추세(Trend)를 예측하는 데 탁월한 성능을 발휘합니다.

Elastic ML은 크게 비지도 학습(Unsupervised Learning)과 지도 학습(Supervised Learning) 두 가지 유형의 분석을 지원합니다. 옵저버빌리티(observability)와 보안(security) 목적으로 사용되는 경우 비지도 학습을 통해 이상 행위를 분석 합니다. 비지도 학습은 Elastic ML의 핵심 기능으로, 레이블링된 훈련 데이터 없이 데이터 내의 정상적인 행동 패턴을 스스로 학습하여 비정상적인 이벤트를 식별합니다.

비지도 학습 기반의 탐지 방식은 다음과 같습니다.

시계열 기반 이상 징후 탐지 (Anomaly Detection)

  • 시계열 기반 이상 징후 탐지 (Anomaly Detection) 방식: 로그, 메트릭 등 시간에 따라 변화하는 데이터에서 비정상적인 패턴을 실시간으로 식별합니다.
      • Elasticsearch로 수집된 시계열 데이터에서 정상 상태의 통계적 모델을 자동 생성합니다.새로운 데이터 포인트가 모델에서 예측한 범위를 벗어날 경우, 이를 이상 징후로 플래그하고 **이상 징후 점수(Anomaly Score)**를 부여합니다.
      • 이를 통해 시스템 성능 저하, 보안 위협, 애플리케이션 오류 등의 근본 원인을 신속하게 파악할 수 있습니다.
  • 활용 사례: 서버의 CPU 사용률 급증, 웹 요청 응답 시간 지연, 네트워크 트래픽의 비정상적인 증가 등을 모니터링합니다.

예측 (Forecasting) 방식

  • 예측 (Forecasting) 방식: 과거의 데이터 패턴을 기반으로 미래의 데이터 동작을 예측합니다.
  • 활용 사례: 향후 리소스 요구 사항(예: 스토리지, 서버 부하)을 예측하여 용량 계획(Capacity Planning)에 활용하거나, 이상 징후가 발생하기 전에 선제적으로 대응합니다.

이상값 탐지 (Outlier Detection)

  • 이상값 탐지 (Outlier Detection) 방식: 시계열 데이터가 아닌 정적인 데이터 세트에서 다른 데이터 포인트와 크게 동떨어진 개별 데이터 포인트를 식별합니다.
  • 활용 사례: 사기 거래 탐지, 비정상적인 사용자 행동 분석 등에 사용됩니다.

지도 학습은 레이블링된 훈련 데이터 세트를 사용하여 모델을 구축하고, 이를 통해 새로운 데이터의 범주(분류)나 연속적인 값(회귀)을 예측합니다.

지도 학습 기반의 탐지 방식은 다음과 같습니다.

분류 (Classification)

  • 분류 (Classification) 방식: 데이터 포인트를 이산적인 범주형 값으로 예측합니다 (예: 악성/정상, 스팸/비 스팸).
  • 활용 사례: 보안 분야에서 잠재적인 악성 도메인 요청을 분류하거나, 사용자 피드백을 긍정/부정으로 분류합니다.

회귀 (Regression)

  • 분류 (Classification) 방식: 데이터 포인트를 이산적인 범주형 값으로 예측합니다 (예: 악성/정상, 스팸/비 스팸).
  • 활용 사례: 보안 분야에서 잠재적인 악성 도메인 요청을 분류하거나, 사용자 피드백을 긍정/부정으로 분류합니다.

2. 머신 러닝 유즈케이스: 네트워크 이상 통신 분석

인프라팀과 보안팀에서는 네트워크 기반의 이상 행위 또는 이상 트래픽을 모니터하기 위해 다양한 장비의 로그를 수집해서 분석 합니다. 네트워크 기반의 로그의 경우 TCP/IP 기반의 네트워크 프로토콜 정보를 제공 합니다.

보안 위협을 식별하는 방법은 다양하며, 문자열로 된 공격 특징을 패턴으로 정의하여 공격을 식별하거나 특정 파일명 또는 IP 주소, 시스템 명령이 포함되지 않은 통신에서 관련 명령어 실행 여부 검색 등을 통해 보안 위협을 식별할 수 있습니다. 패턴 기반 식별 방법은 공격을 빠르게 구분하고 식별할 수 있어 가장 많이 사용되지만 공격과 관련된 패턴을 모르는 경우에는 탐지할 수 없거나 위협을 놓칠 수 있는 단점이 있습니다.

이러한 단점을 극복하고, 탐지 패턴을 알 수 없거나 제로데이 공격 위협을 식별하기 위해 이상 행위 분석(Anomaly Detection) 방법이 사용됩니다. 이상 행위 분석은 공격 특징을 가진 정형화된 공격이 아닌 비정형화된 공격을 탐지하기 위해 행위 분석을 통해 보안 위협을 식별하는 방식입니다.

네트워크 TCP/IP 기반의 로그 정보를 이용해 보안 위협 관점에서 이상 행위 분석 과정을 상세히 살펴봅니다. 보안 솔루션의 탐지 로그(CSV 형식, 구분자 쉼표)를 사용하며, 총 8개의 컬럼(탐지 시간, 이벤트 탐지 카운트, 출발지 IP/PORT, 도착지 IP/포트, 오브젝트 타입, 프로토콜 유형)을 가진 로그입니다.

그림. 테스트 로그

Kibana의 Visualize 기능을 사용하여 날짜별 통신 통계 정보를 표(Table)로 작성할 수 있습니다. 간단하게 통신 내역 통계를 확인할 수 있습니다.

그림. 통신 포트별 통신량

하지만 실제 이상 행위에 대한 분석과 이상 행위에 대한 근거를 찾기는 어렵습니다. 수동 분석은 분석가의 역량에 따라 결과의 차이가 발생할 수 있기 때문에 분석 역량 편차를 극복하기 위해 머신러닝을 활용 할 수 있습니다.  앞서 표에 사용했던 포트 통신 정보를 머신 러닝 학습에 사용할 수 있습니다.

분석 과정은 다음과 같습니다. 통신 로그 분석을 통해 이상 행위에 대한 식별이 가능 합니다. 머신러닝을 이용한 이상 행위 분석은 Analytics 메뉴의 Anomaly Detection 기능을 사용하여 수행됩니다.

IDS 로그를 대상으로 도착지 IP, 도착지 포트, 이벤트 탐지 카운트를 선택하여 멀티 메트릭 분석을 진행 합니다.

그림. Multi-metric 머신 러닝

분석 완료 후 결과 보기를 통해 의심 행위를 확인할 수 있으며, 이상 행위가 식별된 타임라인은 빨간색으로 표기됩니다.

그림. Anomaly Explorer

분석 그래프를 보면 3월 18일부터 그래프가 갑자기 증가된 것이 확인되며, 자세한 시간 정보에서는 이상 행위에 대한 스코어와 근거를 확인할 수 있습니다.

그림. Anomaly Explorer

대상 IP 기준으로 분석된 내용을 보면 평소 1회 탐지되던 패턴이 11배로 증가하여 평소와 비정상적인 이상 현상이 발생했으며, 도착지 포트 탐지 횟수도 3월 19일 증가된 것을 확인했습니다. 통신 시간을 상세 분석한 결과, 새벽 05시에 통신이 집중되었으며, 몇 초 간격으로 서로 다른 도착지 IP로 통신이 이루어진 것을 확인했습니다. 이는 시스템 관리자가 SSH 통신을 하는 일반적인 간격(몇 분 이상)과 달리 아주 짧은 간격으로 발생했고3월 19일 하루만 갑자기 발생했다는 점에서 비정상적인 행위로 판단되었습니다.

결과적으로, 머신러닝을 통해 분석가의 편차와 상관없이22번 도착지 포트의 이상 행위와 대상 IP에 대한 이상 현상을 정확하게 식별할 수 있었습니다.

영상: https://youtu.be/EKV1gZjxPkU?si=iyigokW4TafX09ob

3. 머신 러닝 유즈케이스: 이상 ISP 식별

Elastic 머신 러닝 기능을 활용하여 네트워크 로그에서 잠재적인 보안 위협을 탐지하는 기술적 접근 방식은 조직의 보안 운영을 강화하는 핵심 유즈케이스 입니다.

특히 평소 네트워크 활동에서 관찰되지 않던 희귀한 ISP(Internet Service Provider) 정보나 새로운 ASN(Autonomous System Number)을 가진 대상과의 통신 패턴을 탐지하는 것은 무단 액세스나 데이터 유출 시도를 식별하는 매우 중요한 방법 중 하나입니다. 이러한 통신은 일반적인 비즈니스 트래픽이나 내부 사용자 활동에서는 전혀 예상되지 않는 주체와의 연결을 의미하며, 공격자가 숨겨진 인프라를 사용하고 있을 때 나타나는 의심스러운 징후가 됩니다.

이러한 유즈케이스를 탐지하기 위해 우리는 Elastic ML의 비지도 학습 기능(Unsupervised Learning)을 사용하여 네트워크 데이터의 정상적인 패턴을 학습하고 이 패턴에서 벗어나는 행위, 즉 희귀 이벤트(Rare Events)를 자동으로 찾아냅니다. 사용되는 ML Job은 RARE 디텍터를 이용합니다.

그림. 희귀(rare) 디텍터 기반의 머신 러닝 탐지

시간이 지남에 따라 각 대상의 ISP/ASN 정보별로 관찰되는 네트워크 활동의 정상 범위를 모델링하고 이 범위를 벗어나는 희귀한 활동을 이상 징후로 탐지합니다.

이 ML Job은 특정 대상의 ISP 또는 ASN 필드를 분석하고, 네트워크 트래픽 건수(count 함수)를 측정 지표로 사용합니다. 시간에 따른 각 대상 주체별 트래픽 패턴을 개별적으로 분석하여 평소 거의 혹은 전혀 트래픽이 발생하지 않던 ISP와 갑자기 통신이 증가하는 경우에 높은 이상 징후 점수(Anomaly Score)를 부여합니다.

  • 한국 ISP 출발지
  • 도착지 국가 정보가 한국
  • 로그 필터 : source.geo.country_name: “South Korea” and network.transport: “TCP”

탐지된 이상 징후는 Kibana의 Anomaly Explorer에서 시각화되어 보안 담당자가 쉽게 확인하고 영향 요인(Influencers)을 분석할 수 있으며, 이때 대상 ISP 또는 ASN 필드와 트래픽 건수가 주요 영향 요인으로 표시되어 이상 활동의 근본 원인을 빠르게 파악할 수 있습니다.

특히 취약한 보안으로 해킹 중간 경유지로 사용되는 경우 대학/개인공유기/특정기관에서 사용하는 IP 정보와 연관되는 경우가 있습니다.

이를 통해 보안 팀은 공격자가 사용하는 희귀한 C2(Command and Control) 인프라와의 통신을 자동화된 방식으로 식별하고 신속하게 대응함으로써 조직의 민감한 정보를 보호할 수 있습니다.

4. 머신 러닝 유즈케이스: 알려지지 않은 신규 보안 위협 탐지

다수의 보안 장비에서 수집되는 공격 이벤트(알람)에는 고유의 이벤트(알람) 이름을 가지고 있습니다. 다음은 한달 동안 IPS에서 탐지된 이벤트 목록을 테이블로 정리한 예제 입니다.

그림. IPS 탐지 통계 사례

탐지되는 공격 유형은 다양하고 하루에도 똑같은 이벤트가 수천 건 이상 탐지되고 이벤트를 발생 시킵니다. 반복적으로 발생되는 이벤트(알람)은 예외 처리를 통해 최적화 하고 이벤트 탐지 건수를 최적화해야 합니다. 이를 통해 공격과 연관된 이벤트에 집중할 수 있어야 합니다.

하지만 실제 운영 과정에서 모든 보안 이벤트를 최적화하는 작업은 쉽지 않습니다. 새로운 보안 위협을 식별하고 공격자에 의해 새롭게 발생하는 공격 탐지 이벤트(알람)를 식별하는 것은 기업 인프라를 보호하는 데 매우 중요한 유즈케이스 입니다.

머신 러닝을 통해 반복적으로 발생하는 이벤트를 제외하고 특정 기간 동안 탐지 되지 않은 보안 이벤트(알람)가 발생할 경우 보안팀에서 인지할 수 있다면 새로운 공격 위협이나 심각한 공격 행위를 구분하는데 매우 효율적으로 대응할 수 있습니다.

머신 러닝을 이용해 희귀(Rare) 조건의 데이터를 학습하고 자동으로 새로운 위험을 구분 합니다. Elastic Security로 수집된 인덱스에서 목적에 맞는 데이터를 추출하여 별도의 데이터셋을 생성한 후 ML학습을 수행할 수 있으며 운영자는 학습 결과를 스코어링(또는 그래프)와 같이 직관적으로 확인할 수 있도록 기능을 제공하고 있습니다. (※ ML Job 생성 및 확인). 아래는 실제 보안솔루션(IPS / 웹방화벽 / DDoS 대응 솔루션)에서 탐지된 이벤트를 추출하여 Rare 함수 기반 ML학습을 수행한 결과 일부입니다.

Elastic Security는 생성된 ML Job 의 스코어링 값(1~ 99)을 기준으로 ML 룰을 작성할 수 있습니다. 아래는 작성된 ML룰에 의해 탐지된 Alerts입니다. 보안 장비(DDoS/WAF/IPS) 이벤트(알람)를 기준으로 최근 한달 동안 탐지되지 않던 이벤트(알람)이 발생하면 머신 러닝 학습을 통해 경보를 발생 합니다.

5. 머신 러닝 유즈케이스: 네트워크 이상 트래픽 모니터

비정상적으로 크게 급증하는 패턴을 탐지하는 것은 서비스 가용성을 확보하는데 가장 중요한 방법 중 하나입니다. 일반적인 비즈니스 흐름이나 네트워크 운영에서 전혀 예상되지 않는 트래픽이 발생할 때 더욱 의심스러운 징후가 됩니다. 이는 내부 시스템에서 외부의 악의적인 대상으로 대량의 데이터가 전송될 수 있으며, 외부에서 내부로 비정상적인 네트워크 연결 증가나 실패는 서비스 제공에 심각한 문제가 발생한 징후일 수 있습니다.

이러한 유즈케이스를 탐지하기 위해 우리는 Elastic ML의 비지도 학습 기능을 사용하여 네트워크 데이터의 정상적인 패턴을 학습하고 이 패턴에서 벗어나는 행위를 자동으로 찾아냅니다. 사용되는 ML Job high_count와 같은 형태로 정의될 수 있는데, 이는 네트워크 활동의 정상 범위를 모델링하고 이 범위를 벗어나는 활동을 이상 징후로 탐지합니다.

실제 국내 운영 사례로 다음과 같이 프토토콜에 따른 트래픽을 학습하고 이상 징후를 선제적으로 대응에 활용되는 사례를 설명 합니다.

유즈케이스: TCP/UDP/ICMP/TLS 기반 High Count 머신 러닝 룰

Job/Rule 명분석 목적필드 데이터
protocol_pps_rcvdPPS/수신 바이트 급증pps.packets_pps : 수집 트래픽 내 유입량 정보(패킷 수 기반)
protocol_udp_bytesUDP 트래픽 급증수집 트래픽 내 유입량 정보(Inbound 기반)
protocol_tcp_bytesTCP 트래픽 급증procotol.*.bytes : 수집 트래픽 내 각 프로토콜 별 유입량 정보
http_bytes웹 트래픽(HTTP) 급증procotol.*.bytes : 수집 트래픽 내 각 프로토콜 별 유입량 정보
anomaly_outbound아웃바운드 의심 트래픽tx_rx.sent_bytes : 수집 트래픽 내 유입량 정보(Outbound 기반)
표. 네트워크 트래픽 모니터용 머신러닝

유즈케이스: TCP/UDP/ICMP/TLS 기반 High Count 머신 러닝 운영 팁

  • Bucket Span 조정 목표: 단발성 트래픽 스파이크로 인한 오탐(False Positive)을 줄이고, 이상 트래픽이 지속되는 패턴을 더 명확하게 식별하여 탐지 명확도를 높이는 데 중점을 두었으며, 이를 통해 최적화 튜닝을 진행했습니다.
  • 룰의 민감도 및 정확도 개선을 위해 주요 ML 룰의 Bucket Span 설정을 기존 1분에서 10분 단위로 조정하여 탐지 성능 개선
  • 기존 1분 단위로 판단을 진행하고 있으며, 이로 인해 단기간에 1회성으로 발생한 통신에 대해서도 높은 점수로 평가되는 경향을 보여 5~10분 단위로 분석 주기를 늘려 탐지 프로필의 정교함을 증가 시킵니다.
  • 트래픽 유입량(bps) 및 패킷 건수(pps)를 기반으로 분석을 수행해 데이터 값이 평시대비 커지긴 하였으나, 절대적인 수치는 낮은 경우(몇 백 kbits)가 높은 점수로 평가되는 경향을 보여 다수의 탐지 사례가 발생하기 때문에 출발지 IP의 Unique Count를 분석 데이터에 포함하여, 출발지 IP가 함께 상승하는 경우를 탐지(DDoS의 특징을 고려)

유즈케이스 탐지 예제: 머신 러닝을 통해서 아웃바운드 통신 급증 경보 발생

  • @timestamp: Aug 27, 2024 @ 14:53:06.221
  • 출발지 IP: 192.168.221.128
  • 도착지 IP: 185.125.190.36 / Country GB, Continent EU, Network 185.125.190.0/24
  • kibana.alert.rule.type: machine_learning

탐지된 정보를 활용해 대시보드를 구성할 수 있습니다. 보안 유즈케이스와 인프라 모니터 유즈케이스 모두 해당 합니다. 다음은 샘플 화면 사례 입니다.

그림. SOC 대시보드 예제

탐지된 정보를 기반으로 의심 국가나 지리정보를 기반으로 심층 분석 진행으로 이어 집니다.

그림. SOC 대시보드 개별 분석 예제

6. 머신 러닝 유즈케이스: 개인업무 고객정보조회 모니터

개인정보 유출 사고가 발생하면 기업 입장에서 중요한 비지니스 영향을 받습니다. 사고 조사 과정에서 개인정보 유출 시점에 일반적인 업무 절차와 다른 다양한 이상 징후가 확인 됩니다. 대표적인 개인정보 유출 사례를 다음과 같습니다.

  • 권한 오남용: 고객 정보에 접근 권한을 가진 내부자가 권한을 악용하여 비정상적으로 다량의 정보를 조회(예: 비정상적인 조회 패턴)하는 행위를 식별합니다.
  • 보안 사고: 개인정보 유출 사고 발생 시 대량의 정보 유출로 인한 이상 트래픽 발생이나 의심스러운 네트워크 통신을 통해 정보 유출 행위를 식별 합니다.

Elastic 머신 러닝을 활용해 정보 유출 의심 사례를 탐지한 사례를 살펴 보겠습니다. Elastic 머신 러닝은 다양한 조건을 이용해 정보 유출 행위를 탐지 합니다. 평소 정상 활동에 대한 패턴 학습을 통해 비정상적인 활동에 대한 임계치를 자동으로 생성 하고 임계치를 초과할 경우 경보를 통해 자동으로 알람을 발생 시킵니다.

머신러닝(ML) 학습유형설명ML 설정 요소
단일 메트릭 이상 탐지 (Single Metric Anomaly Detection)평소 조회 건수의 시간별/일별 패턴을 학습하여, 갑작스러운 조회 건수의 급증을 탐지합니다.Detector: high_count (조회 건수)
다중 메트릭 이상 탐지 (Multi-Metric Anomaly Detection)전체 조직의 조회 건수 패턴을 학습하는 동시에, 각 사용자(user.id) 별로 메트릭을 분리(Split by)하여 개별 사용자의 비정상적인 행동을 정교하게 탐지합니다.Detector: high_count (조회 건수) Split by: user.id (직원 계정)
모집단 이상 탐지 (Population)조직 내 다수의 직원이 특정 시점에 공통적으로 비정상적인 시간대에 조회하는 경우(예: 주말 새벽) 또는 평소 사용하지 않던 **희귀한 애플리케이션(application.name)**을 통해 조회하는 행위를 탐지합니다.Detector: high_non_zero_count Influencer Field: user.id, application.name
표 머신 러닝(ML) 탐지 유형

개인업무 고객정보조회 건수 모니터 사례

  • 직원정보, 고객 정보 조회 대응

영업점에서 근무하는 직원들의 고객정보화면 조회 건수를 학습하여, 타 직원에 비하여 많은 고객정보조회를 하는 직원 식별 목적의 머신 러닝 적용 사례를 소개 합니다.

그림. 임직원 고객 정보 조회 건수 머신 러닝 분석 결과

권한 없는 사용자가 특정 날짜에 고객정보 조회를 과도하게 조회할 경우 다음과 같이 기존 학습한 개인 정보 조회 건수를 기반으로 이상 행위를 탐지 합니다. 급격히 개인정보 조회건수가 증가하여 개인정보 유출 징후를 식별 할 수 있습니다.

실제 정보 유출에 연관되지 않았지만 가맹점에서 마케팅 목적으로 회원 정보에 대한 조회가 평소 대비 급증하였고, 개인 정보 유출 상황에 대해 적극적으로 탐지/대응이 가능 합니다.

그림.  개인 정보 조회 탐지 내역 분석

퇴직자 또는 퇴직 예정자의 업무 시스템별 이상 행위 모니터

  • 퇴직자 또는 퇴직 예정자의 업무시스템별 사용량 패턴 및 이상행위를 탐지

퇴직자 또는 퇴직 예정자의 평소 업무 시스템별 사용량을 기반으로 퇴직 전후의 이상 사용량 패턴을 분석 합니다.

징후 유형상세 설명머신 러닝 (ML) 학습 방식
비업무 시간 접근직원의 일반적인 근무 시간이 아닌 새벽, 주말, 공휴일에 고객 정보를 조회하는 행위.Time Series Anomaly Detection, time_of_day 함수
특정 기간 급증단기간(예: 1시간, 1일) 동안 조회량이 이전 30일 평균 대비 임계치를 초과하여 폭발적으로 증가하는 경우.high_count Detector, Influencer로 time 필드 사용
희귀한 대상 접근해당 직원이 평소 업무와 무관한 특정 고객군(예: VIP 고객 명단, 파산 고객 명단)의 정보를 조회한 경우.rare Detector, Partition Field로 customer.type 사용
표. 퇴직자 또는 퇴직 예정자 이상 행위 모니터 방식

다양한 개인정보 또는 정보보호 솔루션을 이용해 평소 학습량을 분석 합니다. 아래는 샘플로 복합기/정보보호 프라이버시 솔루션/자료반출승인 관련 시스템의 로그 정보를 학습해 평소 대비 이상 징후와 연관된 사용자를 식별할 수 있습니다.

7. 머신 러닝 유즈케이스: 이상거래탐지

금융 거래 중 보이스 피싱 또는 최근 보이스피싱과 피싱 사기는 갈수록 지능화되고 있으며, 범죄 수익금을 은닉하고 세탁하기 위해 대포통장 활용이 급증하고 있습니다. 금융기관의 기존 FDS(Fraud Detection System)는 주로 단순 임계값이나 미리 정의된 규칙(Rule-based)에 의존하기 때문에, 범죄자들이 이 규칙을 우회하는 새롭고 미묘한 이상 패턴을 실시간으로 포착하는 데 한계가 있습니다.

사기거래 탐지 유즈케이스 한계

  • 정적 규칙 의존: 규칙 기반 시스템은 알려진 공격 패턴에만 효과적이며, 신종 수법이나 변형된 패턴에 취약합니다.
  • 오탐(False Positive) 증가: 민감도를 높이기 위해 규칙을 강화할 경우 정상 거래까지 이상 거래로 분류하여 사용자 불편과 분석가의 피로도를 증가시킵니다.
  • 탐지 지연: 사기 행위가 완료된 후, 데이터를 사후 분석(Post-process)하는 경우가 많아 실시간 대응이 어렵고 피해 확산을 막기 어렵습니다.

Elastic 머신러닝(ML) FDS의 역할

Elastic Machine Learning 기반 FDS는 거래 데이터의 정상적인 행동 패턴을 스스로 학습하고, 정상 범위를 벗어나는 모든 비정상적인 행위(이상 징후, Anomaly)를 실시간으로 식별하여 이러한 한계를 극복합니다. 이는 대포통장을 통한 자금 이동의 특이성과 연속적인 행위를 포착하는 데 필수적입니다.

대포통장이 보이스피싱에 연루될 경우, 범죄자들은 피해금을 신속하게 분산시키거나 인출하기 위해 일련의 비정상적인 거래 시퀀스를 발생시킵니다. Elastic 머신러닝(ML)은 이러한 점검/테스트 행위와 “대량 인출 행위”의 연관성을 탐지하는 데 집중합니다.

사례 1: 미사용 계좌의 갑작스러운 고액 거래 및 시간대 이탈

시나리오: 오랫동안 사용되지 않던 계좌(대포통장)가 평소 거래가 전혀 없던 시간대에 활성화되어 소액(1,000원)을 입금한 후, 30분 뒤 고액(1,200만 원)을 인출하는 행위.

이상 징후:

  • 범인이 4시에 A 통장의 거래 가능 상태 여부를 확인하기 위해 1천원을 입금했다.
  • 30분 뒤 범인 E가 A 통장에서 1,200만원을 인출했다.
그림. 테스트 목적의 이상 거래 샘플 거래 로그(더미로그)

이상 행위 발생 순서

  1. 범인이 4시에 A 통장의 거래 가능 상태 여부를 확인하기 위해 1천원을 입금했다.
    • 한번도 거래 한적이 없던 계좌를 통해 거래 확인
    • 시간대 이탈: 계좌 주인(혹은 피해자)의 평소 입출금 활동 시간대가 아닌 희귀한 시간대에 거래 발생.
  2. 범인이 30분 뒤A 통장에서 1,200만원을 인출했다.
    • 최초 거래 주체: 거래 내역이 없던 **새로운 계좌(범인 계좌)**를 통해 거래 확인
    • 한번도 거래 한적이 없던 계좌를 통해, 평소 입출금이 발생하는 시간이 아닌 시간에 처음 거래 발생

Elastic Machine Learning 적용 방안

대포통장 연관 이상 행위 탐지를 위해 Elastic Stack은 비지도 학습(Unsupervised ML) 기반의 이상 징후 탐지를 사용합니다.

  • 비지도 학습: 희귀 패턴 탐지 (Rare Function): 대포통장 활성화는 전체 거래 모집단에서 매우 드문 이벤트이므로, Rare 함수를 활용하여 새로운 조합의 행위를 탐지합니다.
  • ML Job 유형: Anomaly Detection – Rare (희귀 함수)
  • 탐지 필드: Transaction_time (거래 시간)과 Withdrawal_Account (출금 계좌) 조합.
그림. 이상 거래 탐지 테스트

작동 원리: 평소 특정 시간대에 특정 계좌를 통해 거래가 이루어질 확률을 모델링하고, 새로운 계좌가 비정상적인 시간대에 거래하는 행위를 높은 이상 징후 점수로 식별합니다.

  • 이상 징후 시간: 2023년 3월 26일 04:00 (Severity: Warning)
  • 탐지 이유: rare by Transaction_time (거래 시간 기준 희귀 이벤트)
  • 영향 요인 (Influencers):
    • Transaction_time: 04:00 (접속한 적 없는 비정상적인 시간대)
    • Withdrawal_Account: 5161-3185-197 (한 번도 거래한 적 없던 계좌)

Elastic 머신러닝(ML) 기반 FDS는 실시간으로 진화하는 보이스피싱 및 대포통장 사기 수법에 효과적으로 대응할 수 있는 필수적인 기술입니다. 단순 규칙 기반 탐지에서 벗어나 데이터의 본질적인 특이성과 복합적인 거래 시퀀스를 학습하고 분석함으로써, 금융기관은 사기 피해를 최소화하고 고객의 자산을 보호할 수 있습니다.

8. 머신 러닝 유즈케이스: 악성코드 배포 탐지

도메인 생성 알고리즘(Domain Generation Algorithm, DGA)은 악성코드 제작자가 감염된 클라이언트 컴퓨터와 명령 및 제어(C2) 서버 간의 통신을 숨기기 위해 사용하는 기술입니다.

DGA는 수백 또는 수천 개의 무작위로 생성된 도메인 이름을 동적으로 생성하며, 이 중 하나만이 C2 서버의 IP 주소로 확인됩니다. 이는 방어 시스템이 단순한 도메인 차단 목록(Blocklist)으로 악성 도메인을 차단하는 것을 불가능하게 만들어, 멀웨어의 지속성을 높이는 핵심 요소입니다.

그림. 도메인 생성 알고리즘 앱

DGA 탐지 패키지는 다음 핵심 요소를 포함합니다.

  • 지도 머신러닝 모델 (Trained Model): DGA 패턴을 학습한 분류 모델로, DNS 쿼리 데이터가 악성(DGA)일 확률을 예측합니다.
  • 수집 파이프라인 구성 (Ingest Pipeline): 수집 시점(Ingest Time)에 모델을 적용하여 들어오는 DNS 로그를 즉시 보강하는 프로세스를 정의합니다.
  • 추론 프로세서 (Inference Processor): 수집 파이프라인 내에서 지도 학습 모델(ml_dga_inference_pipeline)을 호출하여 DNS 쿼리 필드에 대해 DGA 확률 점수를 부여합니다.
  • 이상 징후 탐색 Job (Anomaly Detection Jobs): ML 모델의 예측 결과(확률 점수)를 기반으로 비지도 학습을 수행하여 이상 징후를 탐지합니다.
  • 탐지 규칙 (Detection Rules): Kibana의 규칙 엔진에서 이상 징후 Job의 결과를 참조하여 최종 경보를 발생시킵니다.

Elastic Security의 DGA 탐지 통합 패키지는 지도 학습 모델을 Kibana 내에 통합하여, 방어 시스템이 피하기 어려웠던 DGA 기반 C2 통신을 효율적으로 식별할 수 있는 강력한 방어 메커니즘을 제공합니다. 이는 수집 시점의 데이터 보강과 ML 기반의 행동 분석을 결합함으로써, 최신 멀웨어 위협에 대한 선제적 보안 대응 능력을 대폭 강화합니다.

9. Elastic 머신 러닝 기술 자료

엘라스틱서치(Elasticsearch) SIEM 설치

정보보안 통합 솔루션 플랫폼을 이용해 애플리케이션 로그, 시스템 로그, 보안 솔루션 로그 등 다양한 이기종 장비에 대한 통합 분석이 가능하다. 보안 업무 수행 시 가장 많은 리소스를 소모하는 과정은 사고 발생 조사 과정에서 보안 이벤트 분석이다. 단편적으로 남아 있는 보안 로그를 사고 분석가나 관제팀에서 추적하면 연결고리를 찾아 분석하기 때문에 시간이 많이 소요된다. 대규모 사고 발생 시 사고분석에 오랜 시간이 걸리는 원인도 이러한 로그를 찾아 추적하고 분석하는데 시간이 많이 소요되기 때문이다.

SIEM 제품과 같은 통합 보안 솔루션은 다양한 보안로그와 시스템로그를 통합해 이상 탐지 및 사이버 보안 위협 탐지 기능을 제공한다. 대표적인 통합 플랫폼인 Elasticsearch Security 제품의 무료버전을 설치해 보자. 트라이얼 기능을 이용해 임시로 유료 기능도 활용해 볼 수 있다.

Elasticsearch Security 플랫폼은 XDR 플랫폼으로서 엔드포인트 컴포넌트인 EDR 에이전트와 중앙관리 서버(Fleet)를 포함해서 다음과 같이 구성된다. Elasticsearch 엔진과 Kibaba(키바나), 플릿(Fleet) 서버를 통해 XDR 플랫폼으로 실시간 보안 위협 탐지와 예방, 대응 기능을 제공한다.

<그림> Elasticsearch 구성도 (구축형)

https://www.elastic.co/docs/reference/fleet/add-fleet-server-on-prem

플랫폼을 구성을 위해서 가장 먼저 핵심 엔진인 Elasticsearch 패키지를 설치한다. 설치 파일은 웹 사이트에서 다운받아 설치한다.[1]


[1] https://www.elastic.co/docs/deploy-manage/deploy/self-managed/installing-elasticsearch

<그림> Elasticsearch 설치파일 다운로드 및 설치 가이드

윈도우, 리눅스 계열 운영체제에 따라 필요한 설치 파일을 다운받아 설치를 진행한다. 우분투 기반의 운영체제에서 데비안 패키지 파일을 이용해 설치하는 과정을 살펴 본다. 설치 후 30일 동안 트라이얼 라이센스를 적용하면 모든 기능을 활용하거나 테스트할 수 있다. 설치 가이드 설명을 참고해서 데비안 패키지 파일을 다운로드 받는다. 설치 환경에 따라 설치 패키지 파일명이 다르다. 맥운영 체제 기반의 가상 환경에서 설치를 하기 위해 amd64 버전이 아닌 arm64 버전의 설치 파일을 다운로드 받았다. 설치 시 플랫폼에 따라 필요한 설치 파일은 링크[1]에서 직접 확인 후 다운로드 가능하다.


[1] https://www.elastic.co/downloads/elasticsearch

그림 Elasticsearch 설치 파일
그림 Elasticsearch 설치 파일 다운로드

설치 파일 다운로드가 완료되면 패키지 설치 명령을 통해 설치를 진행한다. 명령 실행 시 설치 파일명은 다운받은 파일명에 맞게 적용한다.

sudo dpkg -i elasticsearch-9.0.0-amd64.deb

설치가 완료되면 시스템 데몬은 다시 적용하고 재부팅 이후에도 Elasticsearch 서비스가 동작하도록 등록한다. 명령은 설치 CLI 화면에 내용을 복사해서 실행한다.

그림 Elasticsearch 설정

설치 과정에서 elastic 계정 패스워드를 별도로 메모한다. 키바나(Kibana) 설치 후 시스템 로그인 과정에 인증 정보가 필요하다.

그림 Elasticsearch 설치정보

설치가 완료되면 서비스를 시작하고 정상적으로 실행되었는지 확인한다.

그림 Elasticsearch 서비스 시작

서비스 상태가 실행상태를 확인하면 설치가 완료된다. Elasticsearch 설치가 완료되면 키바나(Kibana)를 설치한다. 키바나는 사용자가 Elasticsearch SIEM 기능을 운영하기 위해 필요한 웹 기반의 사용자 GUI 이다. Kibana GUI의 주요 기능은 다음과 같다.

  • 데이터 시각화: 로그, 대시보드
  • 보안 룰 설정 및 경보 설정
  • 자산 정보 관리 및 RISK 관리
  • 보안 경고 및 사고 조사
  • 클라우드 보안 관리
그림 키바나 대시보드 예제

키바나 설치 파일은 링크[1]를 통해 다운로드 한다. 데비안 패키지 파일을 다운받기 위해 설치 파일 종류를 선택한다.


[1] https://www.elastic.co/docs/deploy-manage/deploy/self-managed/install-kibana

그림 키바나 설치 파일 다운로드

설치 파일을 다운로드 받는 방법과 설치 명령은 링크를 참고해서 설치를 진행한다. 설치 파일은 플랫폼에 필요한 설치 파일을 확인해서 다운로드 받는다. 일반적인 amd 기반의 CPU를 사용하는 플랫폼에서는 amd64 설치 파일을 다운받아 실행한다.

그림 키바나 설치

설치가 정상적으로 완료되면 Elasticsearch와 연동에 필요한 토큰 키를 생성한다. Root 권한으로 토큰키 생성 명령을 실행하면 다음 예제와 같이 키값이 생성 된다.

# /usr/share/elasticsearch/bin/elasticsearch-create-enrollment-token -s kibana eyJ2ZXIiOiI4LjEzLjQiLCJhZHIiOlsiMTkyLjE2OC4yMjEuMTIxOjkyMDAiXSwiZmdyIjoiYjQ2OTc1MTA0YWI2NDA3M2I5MzAzNzYxMzExMzg5ZmQ3MzQ0YjA1N2NhZjM1NTRjYWQzYmI4Y2EzZDAyZjYxMCIsImtleSI6ImY0cE1oWThCUlFPdV82dXRvQkFYOi1ya0FKSHJhVHRPNEt4b1ZhSktUUmcifQ==

생성한 키값은 GUI를 통해 연동하기 위해 복사해 둔다. 키바나 서비스를 자동으로 시작하기 위해 시스템 서비스에 등록한다. 이후 데몬 정보를 업데이트하고 키바나 서비스를 시작해서 정상 구동을 확인한다.

# sudo /bin/systemctl enable kibana.service # sudo /bin/systemctl daemon-reload # sudo systemctl start kibana.service [sudo systemctl stop kibana.service]

정상 구동이 이뤄지면 키바나 설정 파일을 수정한다. 키바나 서버에 원격으로 접근하기 위해서 설정을 변경하다.

# vi /etc/kibana/kibana.yml

설정 파일의 “server.host” 항목을 호스트 IP 또는 0.0.0.0 으로 설정하면 원격에서 접근이 가능하다. 키바나에 원격 접근을 허용하는 경우 권한 없는 사용자의 접근을 제안하기 위해 시스템에 대한 Iptable을 활용하거나 네트워크 기반의 접근 제어를 적용하는 작업이 선행되어야 한다. 기타 설정 항목들은 향후 필요한 경우 개별 수정 할 수 있다.

그림 키바나 원격접근 설정

Elasticsearch와 키바나의 설정이 변경되면 변경된 설정을 적용하기 위해 서비스를 재시작해야 한다.

키바나의 사용시 민감한 데이터를 보호하기 위한 암호화 키를 적용할 수 있다. Root 권한으로 키바나 암호화 키를 생성한다.

#/usr/share/kibana/bin/kibana-encryption-keys generate

명령을 실행하면 암호화에 사용할 키 값이 생성된다.

그림 키바나 암호화 키 생성

생성한 키 값은 kibana.yml 파일에 복사해서 붙여 넣는다. 설정 값은 kibana.yml 파일의 제일 마지막에 새로 입력해서 넣는다.

그림 키바나 암호화 키 적용

변경된 설정을 적용하기 위해 시스템을 재시작한다. 재시작 후 정상 동작이 확인되면 GUI를 통해 접속한다.

그림 키바나 서비스 확인

브라우저를 통해 키바나 서비스에 접속 한다.

http://192.168.221.122:5601/app/home#/
그림 키바나초기 접속화면

Elasticsearch와 연동하기 위해 앞서 복사해둔 Enrollment 키값을 화면에 붙여 넣는다.

그림 키바나 Enrollment 입력

키바나 서버에서 확인 코드를 생성해서 입력한다.

그림 키바나 확인 코드 입력

# root@es02-01:/home/greg/download# /usr/share/kibana/bin/kibana-verification-code

그림 키바나 확인코드 생성
그림 키바나 구성 완료

모든 과정이 완료되면 구성 설정이 완료된다. 설치가 완료되면 브라우저를 새로 고침하고 다시 접속한다. 키바나 서버에 로그인하기 위한 화면이 나오면 앞서 복사해둔 Elastic 계정 정보를 입력한다.

그림 키바나 로그인

처음 로그인 하면 Integration 설정을 선택할 수 있다. 해당 설정은 나중에 진행하고 키바나 서버의 메뉴를 확인하기 위해 “explore on my own”을 선택한다.

그림 integration 설정 옵션

로그인이 완료되면 그림 처럼 메뉴 화면을 선택할 수 있다.

그림 키바나 메뉴

패키지 파일을 이용한 Elasticsearch와 키바나 설치 과정을 살펴 보았다.

Elastic Security EDR(Elastic Defend) 활용한 보안 사고 분석

보안 침해사고 분석

사이버 보안 침해사고가 발생하면 기업은 내부적으로 침해사고분석을 통해 공격자의 흔적을 찾아내고, 공격 당시 사건을 재구성하여 시스템에 발생한 피해를 파악 합니다.

시스템에 침해가 발생하기 까지는 많은 일들이 발생 합니다. 공격자가 시스템을 공격하고 장악하기 위해 정보 수집 과정을 거치게 됩니다. 이 과정에서 공격자는 대상 시스템의 서비스 종류, 시스템 현황, OS종류, IP대역, 포트정보, 취약점 정보 등 많은 정보를 수집하게 됩니다.

외부의 공격자가 정보 수집을 통해 충분히 공략할 대상 시스템의 약점을 파악했으면 취약점을 이용해 공격에 들어가게 됩니다. 보통 이 과정에서 많은 수의 공격이 탐지되고 차단이 됩니다. 공격자는 가능한 모든 방법을 동원해 탐지되지 않기 위해 우회 시도를 하고, 100번의 공격 중 1번의 공격이 성공하게 되면 공격 성공 단계에 이르게 됩니다. 바로 이 단계가 침해가 발생되는 시점 입니다.

시스템 장악에 성공하면 공격자는 자신의 목적에 따라 시스템에 악성코드를 설치하거나 시스템의 정보를 유출하는 행위가 이뤄지고, 많은 경우 침해사고 발생에 대한 인지는 정보 유출 또는 시스템 변조가 발생되고 이뤄지게 됩니다.

보안팀은 공격을 탐지하고 예방하기 위해 다양한 방법을 이용해 침입시도에 대해 모니터 합니다. 주로 네트워크에서 발생되는 정보를 활용하게 됩니다. 가장 많이 사용되는 정보는 침입탐지시스템에서 제공하는 정보 입니다. 시스템에 가해지는 공격시도나 공격행위에 대해 네트워크 레벨에서 사전에 분석해 파악하고, 차단하면 시스템 침해를 예방할 수 있습니다.

최근 보안 사고가 연속적으로 발생하고 이로 인한 개인정보유출과 랜섬웨어로 인한 피해가 발생 하였습니다. 공격자가 공격 대상의 약점을 악용해서 큰 피해로 이어지게 만들었던 사례입니다.

개인정보 유출 사례의 경우 공격자는 제로데이 공격이 아닌 이미 알려진 악성코드를 사용했던 것으로 확인되었고, 공격자가 취약한 시스템을 알려진 악성코드를 이용해 공격이 성공하였습니다.

보안 사고 사례: BPFDoor 유즈케이스

개인정보 유출 시 사용된 공격 프로그램은 BPFDoor라 불리는 리눅스 운영체제 기반의 백도어 프로그램 입니다. 해당 공격에 사용된 악성코드는 Elastic 보안 연구소에서 2022년 보안 블로그를 통해 동작 방식 및 예방 방법에 대해 공유 하였습니다.

Elastic Security Blog: A peek behind the BPFDoor, 13 July 2022 블로그 등록

작성자: Jake King, Colson Wilhoit

  • 위협 그룹: Red Menshen (중국계 APT)
  • 도구명: BPFDoor – 리눅스 대상 백도어
  • 주요 기능: BPF 기반 정찰 및 암호화된 명령 수신
  • 분석 주제: ‘BPFDoor Scanner’ 도구는 감염 의심 호스트의 활성화를 감지하도록 설계됨

BPFDoor 는 Linux용으로 특별히 제작된 백도어 입니다. 이 백도어의 목적은 공격 대상 환경에 반복적으로 재진입하기 위해 장기간 시스템에 숨겨진 백도어 역할을 수행 합니다. 특히 BPF를 비롯한 여러 기술을 활용하여 최대한 은밀하게 작동하도록 설계 되어 있습니다.

패시브 형태로 백도어가 동작하기 때문에 평상시 가동 시간이 높은 서버나 기기, IoT/SCADA, 또는 인터넷에 접속 가능한 클라우드 시스템에 설치되도록 설계되었습니다. 특히 서비스 특성 상 메인터넌스나 재부팅이 어려운 시스템에 지속적으로 상주하여 공격자의 백도어 역할을 수행 합니다. 공격 프로그램에서 사용하는 파일은 임시 폴더에 저장되므로 서버가 재부팅 되거나 종료될 경우 백도어가 손실됩니다.

이 악성코드가 시스템에서 발견될 경우, 초기 접근(1단계) 또는 사후 공격(2단계) 페이로드가 여전히 존재하고 환경의 다른 곳에서 활성화되어 있을 가능성이 높다고 가정해야 합니다. 이 백도어는 은밀하게 침투하여 탐지되지 않을 모든 기회를 포착합니다. 샘플 코드를 통해 확인된 BPFDoor의 동작 과정 입니다.

예외 샘플 분석

주목할 점은 1~4단계가 나타나지 않는 샘플이 하나 있다는 것입니다  . 이 샘플은 초기 이름을 하드코딩된 값으로 변경하지 않고, 배치된 위치에서 실행하며, 그 외에는 동일한 동작을 모델링합니다.

  1. 실행 시 바이너리는 자신을 /dev/shm/에 복사합니다. 임시 파일 시스템인 /dev/shm은 공유 메모리를 의미하며, 프로세스 간 효율적인 통신 수단으로 사용되는 임시 파일 저장 공간입니다.
  2. 프로세스 이름을 하드코딩된 프로세스 이름인 kdmtmpflush로 변경합니다.
  3. -init 플래그로 자신을 초기화하고 자신을 fork합니다. Linux에서 fork는 호출 프로세스를 복제하여 새 프로세스를 생성하는 것을 의미합니다.
  4. 호출된 원본 바이너리를 제거하여 자신을 삭제합니다. 포크된 프로세스는 계속 실행됩니다.
  5. 포크된 프로세스의 생성 및 수정 시간 값을 변경합니다. 이를 타임스톰핑 이라고도 합니다.
  6. 자신을 위한 새로운 프로세스 환경을 생성하고 기존 프로세스를 제거하며, 새 프로세스 이름을 설정(스푸핑)합니다. 마치 마스크를 쓴 것처럼 시스템에 나타나는 방식을 변경합니다. 프로세스는 여전히 kdmtmpflush이지만, ps를 실행하면 설정된 값을 볼 수 있습니다.
  7. /var/run에 프로세스 ID(PID) 파일을 생성합니다. PID 파일은 연관된 프로그램의 프로세스 정보를 담고 있는 텍스트 파일로, 다중 시작을 방지하고, 상주 상태를 표시하며, 프로그램이 스스로를 중지하는 데 사용됩니다. 이 파일은 또 다른 임시 파일 저장 공간인 /var/run에 있습니다.
  8. 원시 네트워크 소켓을 생성합니다. Linux에서 소켓은 네트워크 통신의 엔드포인트로, 패킷의 모든 섹션을 세부적으로 지정할 수 있도록 하여 사용자가 인터넷(IP) 수준에서 자체 전송 계층 프로토콜을 구현할 수 있도록 합니다.
  9. 원시 소켓에 BPF 필터를 설정합니다. BPF를 사용하면 사용자 공간 프로그램이 모든 소켓에 필터를 연결하여 특정 유형의 데이터가 소켓을 통해 들어오도록 허용하거나 거부할 수 있습니다.
  10. 들어오는 패킷을 관찰합니다
  11. BPF 필터와 일치하고 필요한 데이터를 포함하는 패킷이 관찰되면 처리를 위해 백도어로 전달됩니다.
  12. 현재 프로세스를 다시 포크합니다.
  13. 포크된 프로세스의 작업 디렉토리를 /로 변경합니다.
  14. 포크된 프로세스의 이름을 하드코딩된 값으로 변경(스푸핑)합니다.
  15. “매직 패킷”에 전송된 비밀번호 또는 비밀번호의 존재 여부에 따라 백도어는 역방향 셸을 제공하거나 바인드 셸을 설정하거나 ping을 다시 보냅니다.

아래에서 Elastic의 Analyzer View를 활용하여 BPFDoor 프로세스 트리를 시각적으로 확인할 수 있습니다. 첫 번째 이미지는 백도어(즉, 리버스 셸, 바인드 셸 또는 핑백)가 실제로 사용되기 전의 트리를 보여주고, 두 번째 이미지는 리버스 셸이 연결되고 익스플로잇 후 활동을 수행한 후의 트리를 보여줍니다.

그림 BPFDoor 초기 호출 프로세스 트리의 Elastic Analyzer 뷰

그림 Reverse Shell연결 및 공격 성공 후 BPFDoor의 Elastic Analyzer 뷰

<동작 방식 요약>

  • BPFDoor는 단순 트래픽보다 은밀한 스텔스 정찰 기법을 사용합니다:
  • BPF 필터 활용: Berkeley Packet Filter를 통해 커널 레벨에서 ‘매직 패킷’을 감지
  • 원격 스캔 방식: TCP, UDP, ICMP 혼합 방식으로 포트 연결 시도 (예: 68/UDP → 53/UDP)
  • 포트리스닝 없는 역접속 방식: 백도어는 포트를 열지 않고 “매직 패킷” 수신 시명령 실행
  • 은폐 기법: 프로세스 이름 위장, 표준 스트림 닫기, 루트 권한으로 메모리 상 실행

Elastic Security Team은 BPFDoor 맬웨어를 분석하는 데 도움이 되는 몇 가지 도구를 만들었습니다. BPFDoor 스캐너를 사용하면 BPFDoor 맬웨어에 감염된 호스트를 스캔할 수 있으며, BPFDoor 구성 추출기를 사용하면 맬웨어의 구성이나 하드코딩된 값을 추론하여 추가 분석, 추가 시그니처 개발 또는 클라이언트를 활용한 백도어 연결에 사용할 수 있는 추가 관찰 결과를 얻을 수 있습니다.

Elastic Defend (EDR): BPFDoor 악성코드 예방

BPFDoor 백도어가 왜 그렇게 오랫동안 사용되면서 숨겨진 채로 남아 있었는지를 알기 위해 동작 방식을 설명 했습니다. Linux 운영체제의 이상 프로세스 대해 잘 모르거나 자세히 살펴보지 않았다면 쉽게 탐지되지 않을 것입니다. 탐지를 피하기 위해 은밀하게 동작하지만, 행위 기반 탐지 방식과 시그니처 기반 탐지 방식을 통해 충분히 탐지와 차단이 가능 합니다.

Elastic Endpoint 제품인 Elastic Defend에서 대응 과정을 살펴 보겠습니다.

악성코드 초기 실행 시 관찰된 동작에 주목 합니다. 특히 이상행위는 공유 메모리 위치인 /dev/shm 디렉터리에서 발견 되었습니다. 이 디렉터리는 Linux의 기본 임시 파일 시스템 위치로, RAM을 저장 공간으로 사용하며, 이 디렉터리에서 바이너리가 실행되거나 네트워크 연결을 생성하는 것은 실제로 매우 드뭅니다.

Elastic 탐지 Rule #1 Binary Executed from Shared Memory Directory  BPFDoor는 실행 중에 /dev/shm에서 기존 파일을 제거하고 자신을 복사합니다. 디렉터리에 루트 권한으로 바이너리를 실행하는 경우 이를 감지할 수 있습니다 (이 디렉터리에 쓰고 읽으려면 루트 권한이 있어야 합니다). 테스트를 통해 Elastic Defend를 통해 Exploit이 실행되는 과정이 보안 경보를 통해 탐지 되었습니다. 탐지 Rule은 Elastic SIEM Rule 중 ” 공유 메모리 디렉터리에서 실행된 바이너리(Binary Executed from Shared Memory Directory)” 로 공개되어 있습니다 .

Elastic 탐지 Rule #2 Abnormal Process ID or Lock File Created 

두 번째로 /var/run에 특정 PID 파일이 생성을 통해 악성코드 탐지 및 예방 입니다.  Osquery 통합 기능을 통해 /var/run 디렉터리에 드랍된 PID 파일이 완전히 비어있는 것을 발견했습니다. 드랍 파일 자체가 악의적인 것은 아니지만, PID 파일 크기가 0이거나 10바이트 정도인 경우는 드물기 때문에 이러한 비정상적인 동작을 탐지하기 위한 추가 탐지 Rule을 만들었습니다.

비정상 프로세스 ID 또는 잠금 파일 생성(Abnormal Process ID or Lock File Created)” 탐지 Rule은 일반적인 PID 파일을 무시하고 하위 디렉터리 없이 /var/run의 기본 디렉터리에 PID 파일을 생성하는 것을 식별합니다.

Elastic Defend (EDR): Triage(사고대응) 가이드

악의적인 행위에 대한 침입 탐지 및 차단 외에도 보안 대응 과정에도 다양한 EDR 정보가 필요 합니다. 특히 침해사고 발생으로 인한 사고 조사 과정에서 시스템 로그는 중요한 단서가 됩니다. Elastic에서 제공하는 사고대응 메뉴에 대해 살펴 보겠습니다.

Elastic Explore 메뉴 활용해 모든 이벤트 발생 내역 분석 및 조사를 수행할 수 있습니다.

<Elastic 사고 분석 관련 Triage 기능 소개>

  • 메뉴: Security > Explore > Host / Network / Users
  • 기능: Elastic Defend에서 제공하는 엔드포인트 로그 분석 활용

Explore 메뉴를 통해 보안 사고 조사를 진행 합니다. 특정 호스트에서 발생한 모든 행위 분석을 진행 합니다. EDR (Elastic Defend) 를 통해 수집 하는 이벤트 종류는 다음과 같습니다.

  • API (윈도우 계열 운영체제)
  • DLL and Driver Load (윈도우 계열 운영체제)
  • DNS (윈도우 계열 운영체제)
  • File
  • Network
  • Process
  • Registry (윈도우 계열 운영체제)
  • Security (윈도우 계열 운영체제)
그림 Elastic Defend 수집 로그 유형
그림 Explore 메뉴
그림 Explore 메뉴 host 분석

Elastic Defend (EDR): Triage(사고대응) 유즈케이스

악성코드 감염 또는 의심 호스트에 대한 상세 분석 과정을 Explore 메뉴를 통해 분석 합니다. 각 과정을 스크린 캡처와 분석 화면을 통해 설명 합니다.

1) 의심 대상 호스트에 대한 EDR 이벤트 분석을 위해 특정 호스트에 대한 필터를 적용 합니다. 예) “gs-demo”

그림 Explore 메뉴 Hosts 정보 분석

2) 감염 의심 정보 분석을 위해 해당 호스트의 프로세스 정보를 분석 합니다. 분석을 위해 수집된 이벤트 종류 중 process 관련 로그를 제외한 다른 정보를 Filter를 적용 합니다.

그림 EDR 이벤트 데이터셋

의심 행위가 발생한 시간 대역을 적용해 해당 시간의 연관된 프로세스 로그를 분석 합니다

분석 로그 필터 적용

필터 적용 이 완료되면 프로세스 이벤트를 시간순으로 확인해 연관 프로세스 정보를 분석 합니다.

gs-demo 호스트 프로세스 로그

특정 파일 이벤트가 발생한 시간 동안에 네트워크 패킷 로그를 동시에 확인하기 위해 2개 메시지 타입의 로그를 분석 합니다.

gs-demo 호스트 파일 이벤트와 네트워크 로그

Elastic Defend에서 수집하는 로그 필드 정보를 ECS 필드 정보를 참고할 수 있습니다.

https://www.elastic.co/guide/en/integrations/current/endpoint.html

정보 보안 통합 솔루션

실시간 보안 위협을 탐지 하기 위해 다양한 보안 솔루션을 활용 한다. 네트워크 기반의 보안 솔루션에서 부터 엔드포인트, 클라우드 기반의 다양한 보안 솔루션을 통해 보안 위협을 탐지하고 차단한다. 다양한 보안 로그 및 시스템 로그를 분석하기 위해 통합 보안 솔루션, SIEM 플랫폼을 활용한다.

XDR 플랫폼은 다양한 로그 수집을 통해 위협을 분석 한다. 실시간 로그 수집을 통해서 보안 위협을 실시간으로 탐지한다.

<그림> XDR 아키텍처 이해

정보보안 및 통합보안 관점에서 SIEM (Security Information and Event Management) 솔루션은 조직의 보안 체계를 효율적으로 관리하고 강화하기 위한 핵심 시스템이다. SIEM 솔루션의 개념과 역할, 주요 기능, 보안 관점에서의 중요성 등을 살펴보자.

여기서부터 ChatGPT 참조 정보보안 및 통합보안 관점에서 SIEM 솔루션에 대한 역할

로그 수집(Log Collection)

  • 다양한 시스템(방화벽, IDS/IPS, 서버, DB 등)에서 생성된 로그를 실시간 또는 배치 방식으로 수집.
  • 정형/비정형 로그를 수집하고 일관된 포맷으로 표준화.

이벤트 상관 분석(Correlation Analysis)

  • 서로 다른 로그/이벤트 간의 관계를 분석하여 의심스러운 보안 이벤트를 식별.
  • 예: 동일한 IP에서 5분간 여러 시스템에 로그인 실패 → 무차별 공격 가능성.

실시간 경고(Alerting) 대응

  • 사전에 정의된 룰이나 머신러닝 기반 이상행위 탐지를 통해 즉각적인 알림 대응조치 가능.

대시보드 시각화

  • 보안 상태를 실시간으로 가시화하여 운영자에게 인사이트 제공.
  • 위협 인텔리전스, 트렌드 분석 등을 직관적으로 확인 가능.

컴플라이언스 보고(Compliance & Reporting)

  • ISO 27001, GDPR, HIPAA, PCI-DSS 등의 규제 준수를 위한 감사 로그, 리포트 자동 생성.

위협 인텔리전스 연계

  • 외부의 위협 정보(악성 IP, 도메인 등)와 연동하여 분석 정밀도 향상.

SIEM (Security Information and Event Management)은 보안 정보(Security Information)와 보안 이벤트(Security Event)를 수집, 분석, 저장, 모니터링, 대응하는 통합 보안 플랫폼 이다. 주로 로그 수집, 이벤트 상관분석, 이상 행위 탐지, 실시간 경고, 컴플라이언스 지원 등을 통해 보안 가시성과 대응력을 높인다. 정보보안 통합 솔루션 관점에서 주요 활용 영역은 다음과 같다.

항목설명
위협 탐지침해사고(APT, 내부자 위협 등)를 조기에 탐지 가능
포렌식 지원사고 발생 시 원인 분석 및 시간대별 로그 추적에 활용
자동화된 대응SOAR 등과 연계해 탐지 → 분석 → 차단까지 자동화 가능
보안 거버넌스 강화전사 보안 상태를 통합 관제하며 정책 준수 여부 확인 가능
위험 기반 접근자산, 취약점, 위협의 교차 분석을 통해 위험 우선순위 설정
표 SIEM의 보안 관점 중요성

다양한 보안 이벤트 분석에 따른 한계도 명확하다.

한계설명보완 방향
오탐/과탐이벤트 상관 분석의 정확도가 낮으면 과도한 알림 발생머신러닝 기반 분석 기능 강화
운영 복잡성룰 설정 및 유지보수에 많은 자원 소모자동화된 룰 추천, 사용자 기반 정책 도입
저장 공간방대한 로그 저장 시 스토리지 비용 증가클라우드 기반 SIEM으로 전환 고려
위협 탐지 한계알려지지 않은 공격(제로데이) 탐지 어려움UEBA, AI 기반 보안 기능 연동
표 SIEM의 한계점 및 보완

여기까지 ChatGPT 참조