고급 분석
머신러닝 기반의 고급 이상 탐지기법을 사용합니다. Isolation Forest, 엔트로피, 시간대별 행동 분석으로 단순 통계로 잡기 어려운 정교한 조작 패턴을 찾아냅니다.
- 가중치
- 30%compositeScore 의 1/3
- 알고리즘
- 3ref impl + 1 deprecated
- 탐지 타입
- 3종고립 / 엔트로피 / 시간대
고급 분석의 핵심
봇 트래픽은 점점 정교해져 단순 통계로는 잡기 어렵습니다. 고급 분석은 다음과 같은 머신러닝/정보이론 기반 방법을 사용합니다:
- 고립 기반 — Isolation Forest 가 이상치를 빠르게 분리
- 정보량 기반 — Shannon 엔트로피가 데이터 무작위성 측정
- 시간대 기반 — KST 일주기 곡선과 비교해 봇 발화 시간 탐지
Isolation Forest 실 구현advanced.iforest
이상한 값은 쉽게 고립됩니다. 숲 속에서 혼자 떨어져 있는 나무처럼, 비정상적인 데이터 포인트는 다른 데이터와 쉽게 분리됩니다.
동작 원리 (시각화)
수식
변수
- — 이상 점수 (0~1, 1에 가까울수록 이상)
- — 평균 경로 길이 (분할 횟수)
- — 정규화 상수 (샘플 크기 기준)
파라미터
numTrees = 50— 생성할 Isolation Tree 수sampleSize = 256— 각 트리 구축 시 샘플링 크기
판정 기준
| 조건 | 의미 |
|---|---|
score ≥ 0.6 | 이상치 |
score < 0.6 | 정상 |
전문가용 기술 설명
도메인 구현은 일반 IF 와 달리 per-hour MAD 버킷팅 을 적용 — 시간대별 로 데이터를 분리한 뒤 robust z-score (median + MAD) 로 이상치를 추정. 일주기 패턴이 강한 블로그 트래픽에 일반 IF 보다 정밀.
엔트로피 분석 실 구현advanced.entropy
정보의 무질서도를 측정합니다. 자연스러운 방문자 데이터는 다양하고 예측하기 어렵지만, 조작된 봇 트래픽은 너무 깔끔하고 규칙적이어서 엔트로피가 낮습니다.
동작 원리 (시각화)
수식
변수
- — Shannon 엔트로피 (높을수록 무작위)
- — i 번째 상태가 발생할 확률
- — 가능한 상태의 총 개수
파라미터
numBins = 10— 히스토그램 구간 수
판정 기준
| 조건 | 의미 |
|---|---|
normalized entropy < 0.3 | 비정상적으로 규칙적 — 봇 |
normalized entropy ≥ 0.3 | 자연스러운 무작위성 |
전문가용 기술 설명
delta 시퀀스를 10개의 동일 폭 bucket 으로 히스토그램화한 뒤 Shannon 엔트로피를 정규화 ( 으로 나눔). 모든 sample 이 한 bucket 에 몰리면 0, 균등 분포면 1.
시간대별 행동 분석 실 구현advanced.hourly
심야 시간대 (00시~05시) 에 비정상적으로 많은 활동이 있는지 확인합 니다. 한국 사용자의 일반적 활동 패턴은 낮 시간에 집중되며, 새벽에 지속적으로 방문자가 늘어나는 패턴은 자동화된 봇 트래픽일 가능성이 높습니다.
동작 원리 (시각화)
수식
변수
- — 전체 방문자 중 심야 비율
- — h 시의 방문자 수
파라미터
- 심야 시간대: 00~05 시 (KST 기준)
판정 기준
| 조건 | 의미 |
|---|---|
nightRatio > 0.3 | 심야 이상 — 봇 의심 |
nightRatio ≤ 0.3 | 정상 패턴 |
전문가용 기술 설명
도메인 구현은 hour-of-day binning + KST 보정 (Asia/Seoul UTC+9) 으로 한국 사용자 일주기 곡선과 비교. 시즌성 (주말/평일) 은 별도 모델링 하지 않고 hour-of-day 만 사용 — 단순함이 장점.
분포 분석 (KS 검정) 비활성advanced.ks
방문자 패턴이 어떤 "모양" 인지 확인합니다. 봇 트래픽은 균일하게 분포되는 경향이 있어, 과거 본 알고리즘이 이를 탐지했습니다.
수식
변수
- — KS 통계량 (경험적 ↔ 이론적 분포의 최대 차이)
- — 관측 데이터의 누적 분포 함수
- — 비교 대상 분포 (균일/지수/정규)
판정 기준 (과거)
| 조건 | 의미 |
|---|---|
uniformScore > 0.7 | 균일 분포 의심 |
왜 비활성화 되었나요?
KS 검정은 분포 가정에 민감해, 실제 한국 블로그 트래픽처럼 일주기 + viral 변동이 섞인 데이터에서 false positive 가 잦았습니다. 동일 신호를 advanced.entropy + pattern.cv 가 더 안정적으로 잡고 있어 de-list.