LogTrace 사용 가이드

Nginx, Apache, AWS CloudFront, AWS ALB 로그를 브라우저에서 바로 분석하는 도구입니다. 파일이 외부 서버로 전송되지 않으며, 모든 처리는 브라우저 내에서 완료됩니다.

빠른 시작

  1. 파일 업로드 — 우측 상단 업로드 버튼으로 로그 파일(.log, .txt 등)을 선택하거나, 사이드바의 Sample 버튼으로 예시 로그를 바로 불러올 수 있습니다.
  2. 분석 실행 — 파일 로드 후 자동으로 분석이 시작됩니다. 포맷은 자동으로 감지되며, 대용량 파일은 Web Worker를 통해 스트리밍 방식으로 처리되어 UI가 멈추지 않습니다.
  3. 탭 전환 — 분석 완료 후 사이드바에서 Dashboard, Security, Traffic, Performance, Timeline 탭을 탐색하세요.

지원 로그 포맷

로그 포맷은 자동으로 감지됩니다. 별도 설정 없이 아래 포맷을 바로 분석할 수 있습니다.

Nginx / Apache Combined (기본)

`` $remote_addr - $remote_user [$time_local] "$request" $status $body_bytes_sent "$http_referer" "$http_user_agent" `

WordPress, Laravel 등 Apache/Nginx 위에서 동작하는 서비스의 access log가 이 포맷에 해당합니다.

AWS CloudFront

` #Version: 1.0 #Fields: date time x-edge-location sc-bytes c-ip cs-method cs(Host) cs-uri-stem sc-status ... 2024-01-15 12:00:00 LAX1 1234 1.2.3.4 GET d111.cloudfront.net /index.html 200 ... `

CloudFront 배포 로그를 S3에서 다운로드한 파일을 그대로 업로드하면 자동 인식합니다. time-taken 필드가 있으면 성능 분석도 활성화됩니다.

AWS ALB (Application Load Balancer)

` https 2024-01-15T12:00:00.000000Z app/my-alb/abc123 1.2.3.4:12345 10.0.0.1:80 0.001 0.002 0.001 200 200 123 456 "GET https://example.com/path HTTP/1.1" "Mozilla/5.0..." ... `

ALB Access Logs를 S3에서 다운로드한 파일을 그대로 업로드하면 자동 인식합니다.

커스텀 포맷

표준 포맷이 아닌 경우, Setup 탭의 입력란에 Nginx log_format 변수 형식으로 직접 지정할 수 있습니다. $request_time 변수가 포함되면 성능 지표도 함께 분석됩니다.

예시: ` $remote_addr - [$time_local] "$request" $status $body_bytes_sent $request_time `

분석 탭 설명

Dashboard

전체 요청 수, 총 전송 바이트, 고유 IP 수, 상태 코드 분포를 한눈에 확인합니다. 상위 IP와 상위 요청 경로 목록도 제공됩니다.

Security

보안 위협을 자동으로 분류합니다:
  • 브루트 포스 — 동일 IP의 401/403 반복 응답을 감지합니다.
  • 익스플로잇 시도 — 아래 패턴을 URL 및 User-Agent에서 탐지합니다:
- 민감 파일 접근 (
.env, .git, .htpasswd, .sql 등) - 관리자 패널 탐색 (wp-admin, phpmyadmin, xmlrpc 등) - SQL/코드 인젝션 (UNION SELECT, eval(), base64_decode 등) - LFI/경로 탐색 (../, /etc/passwd, win.ini 등) - 웹쉘 탐색 (c99, r57, shell.php, backdoor 등) - XSS 시도 (<script>, javascript:, onerror= 등)
  • 의심스러운 봇 — curl, python, wget, nmap, nikto, sqlmap 등 자동화 도구 User-Agent를 식별합니다.
  • URL 이중 인코딩 우회 탐지 — URL 디코딩을 두 단계 적용하여 인코딩으로 우회하려는 공격도 탐지합니다.

Traffic

시간대별 트래픽 분포, HTTP 메소드 통계, User-Agent 통계를 제공합니다. 트래픽 급증 구간을 시각적으로 파악할 수 있습니다.

Performance

$request_time 데이터가 있는 로그에서 응답시간 통계를 계산합니다:
  • P95 / P99 — 상위 5%, 1% 사용자가 경험하는 응답시간
  • 느린 URL 목록 — 응답시간 1초 이상의 경로와 최대 응답시간

Timeline

분석 중 감지된 주요 이벤트(익스플로잇 시도 등)를 시간 순서로 보여줍니다. 이상 징후가 없으면 "No significant anomalies detected" 메시지가 표시됩니다.

서버 로그의 일반적인 공격 패턴

브루트 포스 로그인 시도

동일 IP에서 401/403이 반복되는 경우:

` 192.168.1.100 - - [10/Oct/2023:14:00:01 +0000] "POST /login HTTP/1.1" 401 23 192.168.1.100 - - [10/Oct/2023:14:00:02 +0000] "POST /login HTTP/1.1" 401 23 192.168.1.100 - - [10/Oct/2023:14:00:03 +0000] "POST /login HTTP/1.1" 401 23 `

취약점 스캐닝

공통 취약 경로에 대한 404 요청이 연속되는 경우:

` 192.168.1.50 - - [10/Oct/2023:16:00:00 +0000] "GET /wp-admin HTTP/1.1" 404 0 192.168.1.50 - - [10/Oct/2023:16:00:01 +0000] "GET /admin.php HTTP/1.1" 404 0 `

SQL 인젝션 시도

의심스러운 쿼리 파라미터가 있는 요청:

` 192.168.1.75 - - [10/Oct/2023:17:00:00 +0000] "GET /search?q=' OR '1'='1 HTTP/1.1" 500 0 ``

로그 보안 모범 사례

  1. 정기 모니터링 — 매일 또는 주간 로그를 검토하세요. 문제가 발생하기 전에 이상 패턴을 발견할 수 있습니다.
  2. 4xx 오류 무시 금지 — 5xx는 서버 장애를 나타내지만, 4xx 반복은 공격 시도의 신호일 수 있습니다.
  3. 볼륨뿐 아니라 패턴 분석 — 느리고 표적화된 공격은 트래픽이 적어 쉽게 놓칩니다.
  4. 로그 보존 정책 수립 — 분석에 충분한 기간(최소 90일) 보관하되, 민감 정보는 암호화하여 저장하세요.

결론

로그 분석은 웹사이트 보안의 첫 번째 방어선입니다. LogTrace를 통해 설치나 서버 전송 없이 브라우저에서 즉시 위협을 파악하세요.