Skip to main content

보안공격 탐지

HTTP 트래픽의 보안 공격 패턴을 실시간으로 탐지하고 분석하는 화면입니다.

개요

보안공격 탐지는 Kubernetes 클러스터로 유입되는 모든 HTTP 트래픽의 URI를 eBPF 기반으로 실시간 분석하여, 알려진 보안 공격 패턴을 탐지하는 기능입니다. SQL Injection, XSS, 원격 코드 실행(RCE) 등 OWASP Top 10에 해당하는 주요 웹 공격을 별도의 WAF 장비 없이도 모니터링할 수 있습니다.

좌측 사이드바에서 보안공격 탐지 메뉴를 클릭하면 진입할 수 있습니다.

탐지 원리

  1. 각 노드의 에이전트가 eBPF를 통해 HTTP 요청의 URI와 User-Agent를 커널 레벨에서 캡처합니다.
  2. URI에 대해 URL 디코딩 및 이중 디코딩(double decoding)을 수행하여 인코딩 우회 공격도 탐지합니다.
  3. OWASP ModSecurity CRS 기반의 정규식 패턴과 실시간 매칭합니다. Go RE2 엔진을 사용하여 ReDoS(정규식 서비스 거부) 공격에 안전합니다.
  4. 탐지된 이벤트는 유형별로 분류되어 VictoriaMetrics 메트릭으로 서버에 전송됩니다.
  5. 서버는 이벤트를 집계하고, GeoIP 정보를 활용하여 공격 출처의 지리적 분포를 분석합니다.
  6. DB에 이벤트를 저장하고(90일 보관), WebSocket을 통해 10초 간격으로 대시보드에 실시간 반영됩니다.

eBPF 기반 접근의 특징

특징설명
무계측(Agentless)애플리케이션 코드 수정 없이 커널 레벨에서 동작합니다. 어떤 프로그래밍 언어, 프레임워크에서도 동작합니다.
성능 영향 최소커널 레벨에서 패턴 매칭을 수행하므로 서비스 성능에 거의 영향을 주지 않습니다.
탐지 전용트래픽을 차단하지 않고 탐지만 수행합니다. 오탐이 발생해도 서비스에 영향이 없습니다.

참고: 이 기능은 공격 패턴을 탐지하여 알려주는 모니터링 도구입니다. 트래픽을 차단하는 WAF(Web Application Firewall)와는 다르게, 공격 시도를 가시화하여 보안 상황을 인식하고 대응할 수 있도록 돕습니다.

중요: X-Forwarded-For 헤더 설정 필요 공격 출처 IP 식별 및 지역 분포 기능은 클라이언트의 실제 IP를 기반으로 동작합니다. Ingress Controller, 로드밸런서, CDN 등 리버스 프록시를 사용하는 환경에서는 반드시 X-Forwarded-For 헤더가 전달되도록 설정해야 합니다. 이 헤더가 없으면 모든 공격 이벤트의 출처 IP가 프록시의 내부 IP로 표시되어, IP 기반 탐지와 GeoIP 지역 분포가 정상 동작하지 않습니다. 설정 방법은 사용 중인 Ingress Controller의 문서를 참고하세요(예: Nginx Ingress의 use-forwarded-headers, compute-full-forwarded-for 옵션).

두 가지 탐지 소스

보안 이벤트는 두 가지 경로를 통해 탐지됩니다.

소스표시설명
메트릭 기반 (metric)"metric" 뱃지에이전트가 HTTP URI 패턴 매칭으로 탐지한 이벤트. 유형별(SQLi, XSS 등) 초당 발생률로 집계되며, 최근 4시간의 시계열 데이터로 보관됩니다. KPI 카드, 이벤트 추이 차트, 알림의 기준 데이터입니다.
IP 기반 (ip)IP 주소 표시HyperLogLog 기반으로 추적한 공격 IP 정보. 진행 중인 공격을 빠르게 인지할 수 있도록 최근 10분 이내의 데이터만 사용하며, 요청률 상위 최대 50개 IP만 이벤트 테이블에 표시됩니다. 공격이 중단되면 10분 후 자동으로 목록에서 사라집니다.

메트릭 기반 탐지와 IP 기반 탐지는 별개의 경로가 아닙니다. 에이전트가 공격 패턴을 탐지하면 메트릭(유형별 발생률)과 IP 정보(어떤 IP에서 왔는지)가 동시에 수집됩니다. 메트릭 기반 이벤트가 공격의 종류와 규모를 보여주는 핵심 데이터이고, IP 기반 이벤트는 같은 공격에 대해 "어떤 IP에서 오는지"를 빠르게 파악할 수 있도록 보조하는 역할입니다. IP 기반 이벤트에도 해당 IP가 시도한 공격 유형(SQLi, XSS 등)이 함께 표시됩니다.

탐지 가능한 공격 유형

공격 유형 상세

eBPF 기반으로 모든 HTTP 트래픽의 URI와 User-Agent를 실시간 분석하여 알려진 공격 패턴을 탐지합니다. OWASP ModSecurity CRS Paranoia Level 1 기반 63개 패턴(10개 카테고리)으로 오탐을 최소화합니다.

참고: 공격 탐지 카드 우측 상단의 정보 아이콘(ⓘ)을 클릭하면 아래 정보를 화면에서 바로 확인할 수 있습니다.

SQL Injection HIGH

SQL 쿼리에 악의적 코드를 삽입하여 데이터베이스를 조작하는 공격. OWASP Top 10 중 가장 위험한 공격 유형입니다. tautology, UNION SELECT, 시간 지연(SLEEP/BENCHMARK), 시스템 테이블 접근 등 10개 패턴을 탐지합니다.

예시: ' OR 1=1-- UNION SELECT SLEEP(5) xp_cmdshell

XSS (Cross-Site Scripting) HIGH

웹 페이지에 악성 스크립트를 삽입하여 사용자 세션을 탈취하거나 악성 코드를 실행하는 공격입니다. script 태그, javascript: 프로토콜, 이벤트 핸들러, data: URI, DOM 조작 등 8개 패턴을 탐지합니다.

예시: <script>alert(1) javascript: onerror=

RCE (Remote Code Execution) CRITICAL

서버에서 임의의 명령어를 실행하는 공격. Shellshock(CVE-2014-6271), Log4j JNDI(CVE-2021-44228) 등 치명적 취약점을 이용합니다. 셸 명령 구분자, command substitution 등 4개 패턴을 탐지합니다.

예시: ;cat /etc/passwd ${jndi:ldap://} powershell -

Path Traversal HIGH

디렉토리 경로를 조작하여 서버의 민감한 파일(/etc/passwd, /proc/self 등)에 접근하는 공격. URL 인코딩(%2e%2e), 더블 인코딩(%252e%252e) 우회도 탐지합니다.

예시: ../../etc/passwd %2e%2e/ %00

Scanner MEDIUM

Acunetix, Nessus, Netsparker 등 알려진 취약점 스캐너의 시그니처를 탐지합니다. 공격 전 정찰(Reconnaissance) 단계를 의미하며, 본격적인 공격이 이어질 수 있습니다.

예시: acunetix-wvs-test sqlmap UA nikto UA

Path Probing MEDIUM

관리자 페이지, 설정 파일, 백업 파일 등 민감한 경로를 탐색하는 행위를 탐지합니다.

예시: /phpmyadmin/ /.env /.git/config /wp-login.php

SSRF (Server-Side Request Forgery) HIGH

서버가 내부 시스템이나 클라우드 메타데이터에 접근하도록 유도하는 공격을 탐지합니다.

예시: ?url=http://169.254.169.254 gopher:// dict://

CRLF Injection HIGH

HTTP 헤더에 개행 문자를 삽입하여 응답을 조작하는 공격을 탐지합니다.

예시: %0d%0aSet-Cookie: %0d%0aHTTP/

RFI (Remote File Inclusion) HIGH

외부 URL의 악성 파일을 서버에 포함시키려는 시도를 탐지합니다.

예시: include=http://evil.com/ php://filter phar://

CVE Exploit CRITICAL

Spring4Shell, Log4Shell 등 알려진 CVE 취약점 경로를 탐지합니다.

예시: class.module.classLoader /server-info.action ?-s

심각도 등급

위의 심각도 뱃지는 화면(공격 탐지 정보 다이얼로그)에 표시되는 기준입니다. 실제 이벤트 분류 시 백엔드에서는 다음 3단계로 매핑됩니다.

등급색상대상 유형
HIGH빨간색RCE, CVE Exploit
MEDIUM주황색SQL Injection, XSS, Path Traversal, SSRF, CRLF, RFI
LOW회색Scanner, Path Probing

화면 구성

보안공격 탐지 화면은 다음과 같은 영역으로 구성됩니다.

영역설명
상단 헤더실시간 연결 상태, 보안위협 보고서 버튼, 탐지 제외 규칙 표시
KPI 카드 (ROW 1 좌측)실시간 위협, 공격 탐지, 활성 알림 3개 카드
이벤트 추이 차트 (ROW 1 우측)최근 4시간의 보안 이벤트 추이 (공격 유형별 스택 영역 차트)
세계 지도 (ROW 2 좌측)공격 출처의 세계 분포 (빨간색 버블)
한국 지도 (ROW 2 우측)한국 시/도 단위 공격 출처 분포
국가별 TOP (ROW 3 좌측)공격 건수 상위 국가 바 차트
최근 보안 이벤트 (ROW 3 우측)개별 보안 이벤트 테이블 (최대 1,000건)

주요 기능

실시간 연결 상태 확인

보안공격 탐지 화면은 WebSocket을 통해 서버와 실시간으로 연결됩니다.

상태표시설명
Live초록색 점이 깜빡이며 "Live" 표시정상 연결 상태. 10초마다 데이터가 자동 갱신됩니다.
연결 끊김빨간색 점과 "연결 끊김" 표시서버 연결이 끊어졌습니다. 카운트다운(초)이 표시되며 자동 재연결을 시도합니다.

연결이 끊어지면 화면 상단에 경고 바가 나타나며, 재연결 버튼을 클릭하여 수동으로 재연결할 수 있습니다. 자동 재연결은 지수적 백오프(1초에서 최대 60초)로 시도됩니다.

전체 화면

상단 헤더의 전체 화면 아이콘을 클릭하면 보안 대시보드를 브라우저 전체 화면으로 확대할 수 있습니다. 보안 관제 모니터에 띄워놓을 때 유용합니다.

KPI 카드

화면 첫 번째 행 좌측에 3개의 KPI 카드가 표시됩니다.

실시간 위협

최근 4시간 평균 기준으로 분당 보안 이벤트 발생 빈도를 표시합니다.

색상기준의미
초록색0 이벤트/분위협 없음
주황색0 초과 ~ 10 이하 이벤트/분주의 필요
빨간색10 초과 이벤트/분높은 위협 수준

전 기간 대비 증감률이 함께 표시됩니다. 증가는 빨간색(+%), 감소는 초록색(-%)으로 표시됩니다.

공격 탐지

최근 4시간 동안 탐지된 공격 유형별 건수를 표시합니다.

  • 탐지된 공격이 있으면 총 건수와 유형별 태그(SQLi, XSS, RCE 등)가 색상과 함께 표시됩니다.
  • 탐지된 공격이 없으면 초록색 방패 아이콘과 "정상" 메시지가 표시됩니다.

활성 알림

현재 활성 상태인 보안 알림 수와 최근 4시간 동안의 전체 알림 수를 함께 표시합니다.

  • 형식: 활성 수 / 전체 수 (예: 3 / 12)
  • 활성 알림이 있으면 빨간색, 없으면 초록색으로 표시됩니다.
  • 카드를 클릭하면 보안 카테고리로 필터링된 알림 목록 페이지로 이동합니다.

이벤트 추이 차트

최근 4시간의 보안 이벤트 발생 추이를 공격 유형별 색상으로 구분한 스택 영역(area) 차트로 표시합니다.

  • 각 공격 유형은 고유한 색상으로 표시됩니다.
  • 차트 위에 마우스를 올리면 해당 시점의 총 이벤트 수와 세로 가이드 선이 표시됩니다.
  • 피크(최고점) 시점에는 자동으로 수치가 레이블로 표시됩니다.
  • 하단에 시간 축이 표시됩니다.

공격 출처 세계 분포

세계 지도 위에 공격 출처 국가가 빨간색 버블로 표시됩니다. 버블의 크기는 해당 국가에서 발생한 공격 건수에 비례합니다.

한국 지역 분포

한국 시/도 단위 지도에 국내 공격 출처의 분포가 표시됩니다.

국가별 TOP

최근 4시간 동안 공격 건수가 가장 많은 상위 10개 국가를 수평 바 차트로 표시합니다.

표시 항목설명
국기 + 국가명공격 출처 국가 식별
바 차트최다 공격 국가 대비 비율 시각화
건수해당 국가에서 탐지된 공격 건수
비율(%)전체 대비 퍼센트

최근 보안 이벤트

최근 4시간 동안 탐지된 개별 보안 이벤트가 테이블 형태로 표시됩니다. 최대 1,000건까지 표시되며, 최신 이벤트가 상단에 나타납니다.

테이블 컬럼

컬럼설명
시간이벤트 발생 시각
소스탐지 출처. IP 기반이면 IP 주소가, 메트릭 기반이면 "metric" 뱃지가 표시됩니다.
유형공격 유형 (색상 점 + 유형명)
심각도HIGH(빨간색), MEDIUM(주황색), LOW(회색) 중 하나의 뱃지
대상공격 대상 애플리케이션 이름. 클릭하면 해당 애플리케이션 상세 화면으로 이동합니다.
네임스페이스대상 애플리케이션의 Kubernetes 네임스페이스. 클릭하면 해당 네임스페이스로 필터링된 애플리케이션 목록으로 이동합니다.
요청률해당 이벤트의 초당 요청 수

이벤트 상세 다이얼로그

테이블의 이벤트 행을 클릭하면 상세 정보 다이얼로그가 열립니다.

IP 기반 이벤트의 경우:

항목설명
공격자 IP공격 출처 IP 주소. 복사 버튼과 GeoIP 조회 버튼이 제공됩니다.
국가/도시GeoIP 기반 공격 출처 위치 (국기 + 국가명 + 도시명)
탐지 유형공격 유형 (색상 점 + 유형명)
요청률초당 요청 수
대상공격 대상 애플리케이션
네임스페이스대상의 Kubernetes 네임스페이스

메트릭 기반 이벤트의 경우:

항목설명
탐지 방식"메트릭 기반 탐지" 표시
탐지 유형공격 유형
요청률초당 요청 수
대상공격 대상 애플리케이션

보안 이벤트가 없으면 초록색 방패 아이콘과 함께 "보안 이벤트가 감지되지 않았습니다. 시스템이 정상 운영 중입니다." 메시지가 표시됩니다.

보안위협 보고서

상단 헤더의 보안위협 보고서 버튼을 클릭하면 상세 분석 다이얼로그가 열립니다.

기간 선택

보고서 상단에서 분석 기간을 선택할 수 있습니다.

기간설명
1주최근 7일간의 데이터
1개월최근 30일간의 데이터
3개월최근 90일간의 데이터
6개월최근 180일간의 데이터
사용자 지정시작일과 종료일을 직접 입력

KPI 카드

보고서 상단에 네 가지 핵심 지표가 카드로 표시됩니다.

KPI설명
총 이벤트선택 기간 동안 탐지된 전체 보안 이벤트 수. 전 기간 대비 증감률 표시.
고유 IP공격에 사용된 고유 IP 주소 수. 전 기간 대비 증감률 표시.
최다 유형가장 많이 탐지된 공격 유형과 건수
신규 IP이전 기간에는 없었으나 이번 기간에 새로 탐지된 IP 수

핵심 발견 사항

시스템이 자동으로 분석하여 도출한 주요 인사이트가 목록으로 표시됩니다. 예를 들어 특정 공격 유형의 급증, 피크 시간대, 주요 공격 출처 국가 등의 정보가 포함됩니다.

유형별 분류

선택 기간 동안 각 공격 유형(SQLi, XSS, RCE, Path Traversal, Scanner 등)별로 탐지된 건수가 표시됩니다. 어떤 유형의 공격이 가장 빈번한지 한눈에 파악할 수 있습니다.

추이 차트

선택 기간의 보안 이벤트 추이를 일별(daily) 또는 시간별(hourly) 단위로 전환하여 확인할 수 있습니다. 데이터 밀도에 따라 바 차트 또는 영역 차트가 자동으로 선택됩니다.

상위 공격 IP

공격 건수가 가장 많은 상위 50개 IP 주소 목록이 표시됩니다. 각 IP에 대해 다음 정보를 확인할 수 있습니다.

항목설명
IP 주소공격에 사용된 IP
국가/지역GeoIP 기반 위치
총 건수해당 IP에서 발생한 전체 이벤트 수
공격 유형해당 IP가 시도한 공격 유형 분포
최초 탐지해당 IP가 처음 탐지된 시각
최종 탐지해당 IP가 마지막으로 탐지된 시각

신규 IP 목록

이전 분석 기간에는 없었으나 현재 기간에 새롭게 나타난 IP 목록입니다. 새로운 공격 소스를 빠르게 식별하는 데 유용합니다.

국가별 분포

공격이 발생한 국가별 건수와 비율이 표시됩니다.

보고서 내보내기

보고서는 다음 형식으로 내보낼 수 있습니다.

형식설명
PDF차트가 포함된 보고서 문서. 관리자에게 보고하거나 보관할 때 유용합니다.
Excel상세 데이터가 포함된 스프레드시트. 추가 분석에 활용할 수 있습니다.

탐지 제외 규칙

특정 공격 유형이 오탐(false positive)으로 판단될 경우, 해당 유형의 탐지를 애플리케이션 단위로 제외할 수 있습니다.

대시보드에서 확인

활성화된 탐지 제외 규칙이 있으면 상단 헤더 우측에 탐지 제외: N건 버튼이 표시됩니다. 이 버튼을 클릭하면 현재 적용 중인 제외 규칙 목록을 확인할 수 있습니다.

표시 항목설명
유형제외된 공격 유형 (색상 점 + 유형명)
대상제외가 적용된 애플리케이션 이름
네임스페이스대상 애플리케이션의 네임스페이스
사유제외 사유
생성자제외 규칙을 생성한 사용자

각 항목을 클릭하면 해당 애플리케이션의 상세 화면으로 이동합니다.

애플리케이션에서 설정

각 애플리케이션의 상세 화면에서 보안 탐지 제외 규칙 패널을 통해 제외 규칙을 관리할 수 있습니다.

기능설명
제외특정 공격 유형의 알림을 제외합니다. 제외 사유를 입력할 수 있습니다.
재활성화제외했던 공격 유형의 알림을 다시 활성화합니다.

제외 규칙의 주요 특성:

  • 차트에는 계속 표시: 제외 후에도 해당 유형의 이벤트는 차트와 이벤트 테이블에 표시됩니다.
  • 알림만 제외: 해당 유형에 대한 알림(인시던트)이 발생하지 않습니다.
  • 언제든 재활성화 가능: 필요할 때 바로 재활성화할 수 있습니다.

보안 감사(Auditor) 알림

시스템은 보안 이벤트 외에도 다음과 같은 이상 징후를 자동으로 감지하여 알림을 생성합니다. 알림은 기본 제공(builtin) 규칙으로 자동 등록되며, 설정 화면에서 임계값과 알림 조건을 조정할 수 있습니다.

알림 규칙기본 심각도지속 조건유지 시간
DDoS / Traffic spike detectedWARNING2분 이상5분
Brute force attack detectedWARNING1분 이상5분
5xx error rate spikeWARNING2분 이상5분
Security attack pattern detectedWARNING1분 이상5분

지속 조건(For): 조건이 이 시간 동안 연속으로 충족되어야 알림이 발생합니다. 일시적인 스파이크에 의한 오탐을 방지합니다. 유지 시간(KeepFiringFor): 조건이 해소된 후에도 이 시간 동안 알림을 유지합니다. 간헐적 공격의 알림이 너무 빨리 사라지는 것을 방지합니다.

트래픽 급증 탐지 (DDoS 유사 패턴)

요청 트래픽이 기준치를 크게 초과할 경우 알림이 발생합니다. 업무시간 시작 등 정상적인 트래픽 증가에 의한 오탐을 방지하기 위해 3단계 검증을 수행합니다.

단계검증 내용
1단계: 최소 절대 임계값초당 0.5 요청 이상일 때만 트래픽 급증으로 판단합니다. 평소 트래픽이 거의 없는 서비스에서의 오탐을 방지합니다.
2단계: 복합 신호 분석트래픽 증가와 함께 에러율(5xx) 상승이 동반되는지 확인합니다. 정상적인 트래픽 증가(업무시간 시작 등)는 에러율이 함께 오르지 않으므로 걸러집니다.
3단계: 7일 EWMA 재검증1~2단계를 통과한 경우에만 실행됩니다. 최근 7일간의 트래픽 데이터로 EWMA(지수가중이동평균) 기준선을 계산하여 재검증합니다. 주간 패턴(평일/주말)과 시간대별 트래픽 변동을 반영하여 야간 저트래픽 직후 업무시간 시작 시의 오탐을 방지합니다.

기본 알림 조건: 최근 15분 평균이 기준선의 8배를 초과하고, 2분 이상 지속될 경우 알림이 발생합니다.

무차별 대입 공격 탐지

401/403 응답 비율이 비정상적으로 높을 경우 알림이 발생합니다. 저트래픽 서비스에서의 오탐을 방지하기 위해 3단계 검증을 수행합니다.

단계검증 내용
1단계: 최소 절대 임계값초당 1.0 요청 이상일 때만 비율을 판단합니다. 요청이 극히 적은 서비스에서 인증 실패 1~2건으로 비율이 과도하게 높아지는 오탐을 방지합니다.
2단계: 윈도우 평균 비율마지막 순간값이 아닌 최근 15분 평균으로 인증 실패 비율을 계산합니다. 일시적 변동에 의한 오탐을 방지합니다.
3단계: 7일 EWMA 재검증1~2단계를 통과한 경우에만 실행됩니다. 최근 7일간의 인증 실패 비율 EWMA와 비교하여, 원래 인증 실패가 높은 서비스(예: 공개 API)의 오탐을 방지합니다.

기본 알림 조건: 최근 15분 평균에서 인증 실패(401+403) 응답이 전체 요청의 **50%**를 초과하고, 1분 이상 지속될 경우 알림이 발생합니다.

5xx 에러 급증 탐지

서버 에러(5xx)가 기준치를 크게 초과할 경우 알림이 발생합니다. 에러가 거의 없던 서비스에서 에러 1~2건 발생 시 오탐이 되는 것을 방지하기 위해 3단계 검증을 수행합니다.

단계검증 내용
1단계: 최소 절대 임계값1시간 평균 에러율이 초당 0.1건(분당 약 6건) 이상일 때만 급증으로 판단합니다. 에러가 거의 없는 서비스에서 에러 1건 발생 시 비율이 과도하게 높아지는 오탐을 방지합니다.
2단계: 비율 검사최근 15분 에러율이 1시간 기준선의 10배를 초과하는지 검사합니다. 순간 에러 1~2건에 의한 오탐을 방지합니다.
3단계: 7일 EWMA 재검증1~2단계를 통과한 경우에만 실행됩니다. 최근 7일간의 에러율 데이터로 EWMA 기준선을 계산하여 재검증합니다. 주간 패턴을 반영하여 1시간 평균이 일시적으로 낮았던 경우의 오탐을 방지합니다.

기본 알림 조건: 최근 15분 평균이 기준선의 10배를 초과하고, 2분 이상 지속될 경우 알림이 발생합니다.

공격 패턴 탐지

HTTP URI에서 위에 설명한 공격 유형(SQLi, XSS, RCE 등)의 패턴이 탐지될 경우 알림이 발생합니다.

  • 유형별 건수: 알림 메시지에 유형별 탐지 건수가 포함됩니다.
  • 제외 적용: 탐지 제외 규칙이 설정된 유형은 알림에서 제외됩니다.

데이터 보관 기간

데이터보관 기간
보안 이벤트 (security_events)90일
IP 요약 정보 (security_ip_summary)365일

보관 기간이 지난 데이터는 매일 자동으로 정리됩니다.

자주 묻는 질문

공격이 탐지되었는데 실제로 차단되나요?

아닙니다. 이 기능은 공격 시도를 탐지하고 알려주는 모니터링 도구입니다. 트래픽을 차단하려면 별도의 WAF(Web Application Firewall)를 구성해야 합니다. 탐지된 공격 정보를 활용하여 WAF 규칙을 설정하거나, 방화벽에서 특정 IP를 차단하는 등의 대응 조치를 취할 수 있습니다.

오탐(False Positive)이 너무 많습니다

특정 애플리케이션에서 정상적인 요청이 공격으로 오탐되는 경우, 해당 애플리케이션의 상세 화면에서 탐지 제외 규칙을 설정하세요.

OWASP 원본 패턴에서 오탐 유발 요소를 제외:

OWASP ModSecurity CRS 원본 패턴에는 일반적인 웹 트래픽에서 오탐이 빈번하게 발생하는 요소가 포함되어 있어, 다음 항목을 탐지 대상에서 제외하였습니다.

  • RCE (Shell Command): OWASP 원본은 URL 쿼리 구분자 &를 셸 연산자로 포함하여 &id=123 같은 일반적인 파라미터가 RCE로 오탐됩니다. &를 탐지 대상에서 제외하고 ;|만 검사합니다.
  • RCE (Shellshock): OWASP 원본은 () { 패턴만으로 탐지하여 JSONP 콜백이나 JavaScript 함수 표현식에서 오탐이 발생합니다. 중괄호 뒤에 콜론 또는 세미콜론(:, ;)이 있는 경우만 탐지하도록 범위를 축소하였습니다.
  • SSRF (OAuth/OIDC): redirect_uri, post_logout_redirect_uri 등 OAuth/OIDC 표준 파라미터에 내부 URL이 포함되는 것은 정상적인 SSO 흐름입니다. Keycloak, Okta, Auth0 등의 SSO 연동에서 오탐이 발생하지 않도록 9개 OAuth 표준 파라미터를 자동 제외합니다.

여전히 오탐이 발생할 수 있는 유형:

공격 패턴 탐지는 HTTP 요청의 URI(URL 경로 및 쿼리 파라미터) 에서만 수행됩니다. 요청 본문(body)이나 응답 내용은 검사하지 않습니다. 따라서 아래 오탐은 URI에 해당 패턴 문자열이 포함되는 경우에만 발생하며, 해당 애플리케이션에서 탐지 제외 규칙을 설정하여 관리할 수 있습니다.

유형주요 오탐 시나리오권장 조치
XSS (script tag)리치텍스트 에디터(TinyMCE, CKEditor), SVG/XML 콘텐츠, 코드 공유 플랫폼CMS/에디터 앱에서 XSS 제외
XSS (event handler)HTML 템플릿의 onclick, onload 속성, Vue/Angular 이벤트 바인딩SPA 프레임워크 앱에서 XSS 제외
XSS (iframe/embed)YouTube/지도 임베드, CMS 폼 빌더, 미디어 플레이어임베드 기능 앱에서 XSS 제외
XSS (DOM 조작)JavaScript 프레임워크 API 문서, 코드 리뷰 도구개발 도구 앱에서 XSS 제외
SQL Injection (tautology)아포스트로피 포함 이름("O'Brien"), 불리언 검색 파라미터모니터링 후 필요 시 제외
SQL Injection (hex)CSS 16진수 색상 코드(0x1a2b3c), 해시값모니터링 후 필요 시 제외
SQL Injection (시스템 테이블)DB 관리 도구, 분석 대시보드DB 관리 앱에서 SQLi 제외
Path Traversal (../)상대 경로 URL(../assets/style.css), 브레드크럼 네비게이션정적 파일 서빙 앱에서 Path 제외

제외 후에도 차트에는 계속 표시되므로 데이터 손실 없이 불필요한 알림만 줄일 수 있습니다.

공격 출처 국가 정보가 부정확합니다

  • 공격 출처 위치는 GeoIP 데이터베이스에 의존하므로 오차가 있을 수 있습니다.
  • VPN이나 프록시를 경유하는 공격은 실제 공격자의 위치와 다르게 표시됩니다.
  • 봇넷 등 분산 공격은 여러 국가에 걸쳐 나타날 수 있습니다.

보안 이벤트는 있는데 KPI 카드에는 0으로 표시됩니다

KPI 카드의 "실시간 위협" 수치는 최근 4시간 평균입니다. 매우 드문 간헐적 이벤트는 평균값이 0에 가깝게 표시될 수 있습니다. 이벤트 테이블에서 개별 이벤트를 확인하세요.

특정 IP를 차단하고 싶습니다

이벤트 상세 다이얼로그에서 공격자 IP를 확인한 후, 해당 IP를 방화벽이나 WAF에서 차단 규칙으로 등록하세요. IP 복사 버튼을 사용하면 편리하게 IP를 클립보드에 복사할 수 있습니다. GeoIP 조회 버튼으로 해당 IP의 상세 지리 정보도 확인할 수 있습니다.