샘플 분석 결과
실제 공격 시나리오를 기반으로 생성한 샘플 로그 분석 결과입니다. LogTrace가 어떤 정보를 탐지하고 정리하는지 미리 확인할 수 있습니다.
샘플 1 — Nginx 브루트포스 공격 탐지
시나리오: 외부 공격자가 /wp-login.php에 반복 접근하여 WordPress 관리자 계정 탈취 시도
로그 환경: Nginx access.log, Combined Format, 약 12만 라인
보안 이벤트 요약
| 항목 | 값 |
|---|
| ------ | ----- |
| 총 요청 수 | 121,430 |
| 의심 이벤트 | 4,812건 |
| 탐지 유형 | 브루트포스, WordPress 공격, 경로 스캐너 |
| 차단률 (4xx+5xx) | 91.3% |
| 주요 공격 IP | 203.0.113.42, 198.51.100.7 |
탐지된 공격 패턴
브루트포스 (Brute Force)
`` 203.0.113.42 - - [10/May/2024:03:21:05 +0000] "POST /wp-login.php HTTP/1.1" 401 152 203.0.113.42 - - [10/May/2024:03:21:06 +0000] "POST /wp-login.php HTTP/1.1" 401 152 203.0.113.42 - - [10/May/2024:03:21:07 +0000] "POST /wp-login.php HTTP/1.1" 401 152 ... (1분 내 3,241회 반복) `
MITRE ATT&CK 매핑: T1110.001 — Brute Force: Password Guessing
경로 탐색 (Path Traversal)
` 198.51.100.7 - - [10/May/2024:04:15:33 +0000] "GET /wp-content/plugins/../../etc/passwd HTTP/1.1" 400 150 `
MITRE ATT&CK 매핑: T1083 — File and Directory Discovery
트래픽 분석
시간대별 요청 추이
| 시간대 | 요청 수 | 에러 비율 |
| -------- | --------- | ----------- |
| 03:00–04:00 | 41,230 | 94.1% |
| 04:00–05:00 | 38,910 | 92.7% |
| 05:00–06:00 | 12,440 | 87.2% |
| 06:00–07:00 | 2,100 | 31.4% (정상 회복) |
공격은 03:00~05:00(UTC) 사이 집중 발생. 한국 시간 기준 오전 12시~2시 대에 해당하며, 자동화 봇 공격의 전형적인 패턴입니다.
상태 코드 분포
| 코드 | 비율 | 의미 |
| ------ | ------ | ------ |
| 200 OK | 5.4% | 정상 응답 |
| 301/302 | 3.3% | 리다이렉트 |
| 401 Unauthorized | 78.6% | 인증 실패 |
| 403 Forbidden | 9.1% | 접근 차단 |
| 404 Not Found | 3.0% | 경로 탐색 오류 |
| 5xx | 0.6% | 서버 오류 |
User-Agent 분석
| 분류 | 건수 | 비율 |
| ------ | ------ | ------ |
| 알 수 없는 UA / 봇 | 4,611 | 95.8% |
| python-requests | 3,241 | 67.4% |
| Nikto | 892 | 18.5% |
| curl | 478 | 9.9% |
| 정상 브라우저 | 201 | 4.2% |
대응 권고
- 즉시 조치: 203.0.113.42, 198.51.100.7 IP를 Nginx deny 또는 방화벽 차단
- wp-login.php 보호: IP 허용 목록 기반 접근 제한 또는 reCAPTCHA 적용
- xmlrpc.php 비활성화: WordPress 설정에서 XML-RPC 완전 비활성화
- Fail2Ban 설정: 단시간 반복 실패 IP 자동 차단 규칙 추가
샘플 2 — AWS ALB SQL Injection 탐지
시나리오: 웹 애플리케이션 API 엔드포인트에 대한 SQL Injection 공격 시도
로그 환경: AWS ALB 액세스 로그, 약 5만 라인
보안 이벤트 요약
| 항목 | 값 |
| ------ | ----- |
| 총 요청 수 | 52,817 |
| SQL Injection 의심 | 312건 |
| XSS 의심 | 47건 |
| 경로 순회 시도 | 23건 |
| 주요 공격 IP | 192.0.2.100 |
탐지된 SQL Injection 패턴
` GET /api/users?id=1+UNION+SELECT+table_name+FROM+information_schema.tables-- GET /api/search?q='+OR+1=1+-- GET /api/product?sku=1;+DROP+TABLE+products;-- `
MITRE ATT&CK 매핑: T1190 — Exploit Public-Facing Application
성능 지표
ALB 처리 시간(request_processing_time) 기반 분석:
| 지표 | 값 |
| ------ | ----- |
| 평균 응답시간 | 0.042초 |
| P95 응답시간 | 0.381초 |
| P99 응답시간 | 1.203초 |
| 최대 응답시간 | 8.441초 |
공격 트래픽이 집중된 시간대에 P99 응답시간이 1.2초를 초과했으며, 백엔드 서버의 쿼리 부하가 증가한 것으로 추정됩니다.
샘플 3 — Linux auth.log SSH 브루트포스
시나리오: 외부에서 SSH 서버에 대한 무차별 대입 공격
로그 환경: Ubuntu /var/log/auth.log, 약 8,000 라인
탐지 요약
| 항목 | 값 |
| ------ | ----- |
| 총 인증 실패 | 7,234건 |
| 공격 시도 IP | 14개 |
| 시도된 사용자명 | 231종 |
| MaxAuthTries 초과 | 89건 |
주요 공격 패턴
` May 10 03:22:11 web01 sshd[23451]: Failed password for invalid user admin from 203.0.113.42 port 52341 ssh2 May 10 03:22:12 web01 sshd[23452]: Failed password for invalid user root from 203.0.113.42 port 52342 ssh2 May 10 03:22:13 web01 sshd[23453]: Invalid user test from 203.0.113.42 May 10 03:22:14 web01 sshd[23454]: error: maximum authentication attempts exceeded for invalid user admin ``
대응 권고
- SSH 포트 변경: 기본 22번 포트 대신 높은 포트로 변경
- 공개키 인증 전용: 패스워드 인증 비활성화 (PasswordAuthentication no)
- Fail2Ban 적용: 실패 5회 이상 IP 자동 차단
- SSH 접근 IP 제한: 허용 IP 외 모두 차단
위 샘플은 실제 로그 패턴을 기반으로 재구성한 예시입니다. 실제 IP, 도메인, 사용자명은 RFC 5737 (문서용 예약 대역) 주소를 사용했습니다.