← 메인으로
Security Guide

SQL Injection 로그 분석: union select와 or 1=1을 어떻게 볼까?

SQL Injection은 웹 요청 파라미터에 SQL 구문을 삽입하여 데이터베이스 동작을 변조하는 공격이다. 인증 우회, 데이터 조회, DB 구조 파악, 파일 접근 등 다양한 목적을 가지며, 보안관제 환경에서는 가장 빈번하게 확인되는 웹 공격 유형 중 하나이다. 따라서 단순 탐지 문자열이 아닌 요청 흐름과 응답 결과를 함께 분석하는 것이 중요하다.

핵심 요약

union select, information_schema, or 1=1, sleep(), benchmark()는 대표적인 SQL Injection 의심 문자열이다. 특히 공격 페이로드가 포함된 요청에서 200 응답이 반복되면 실제 처리 여부를 반드시 확인해야 한다.

1. 주요 탐지 문자열

SQL Injection 로그에서 가장 많이 확인되는 패턴은 union select이다. 이는 여러 SELECT 결과를 합쳐 DB 데이터를 외부로 노출시키기 위한 시도에서 사용된다.

또한 information_schema는 데이터베이스 내부 구조를 확인하기 위한 키워드로, 테이블 이름, 컬럼 구조 등을 파악하려는 단계에서 자주 등장한다. 이 외에도 or 1=1과 같은 조건문은 인증 우회를 시도하는 기본적인 공격 패턴이다.

2. 응답코드 기반 분석

SQL Injection 로그에서 가장 중요한 판단 기준 중 하나는 HTTP 응답코드이다. 403 또는 406은 차단 가능성, 404는 단순 탐색일 수 있다. 반면 200 응답은 실제 처리 가능성이 있어 우선 분석 대상이다.

3. 반복성 및 패턴 분석

동일 IP에서 다양한 SQL Injection 페이로드가 반복될 경우 자동화 스캐닝 공격으로 판단할 수 있다.

4. 관제 멘트 예시

외부 IP에서 SQL Injection 의심 구문이 포함된 URI 접근이 확인되었습니다. 반복 요청 패턴 기준으로 취약점 탐색 시도로 판단되며, 응답코드 200 확인 시 애플리케이션 처리 여부 점검이 필요합니다.

5. 결론

SQL Injection 분석은 문자열, 응답코드, 반복성, 대상 URL을 종합적으로 판단해야 한다. 단발 요청보다 반복 200 응답이 더 높은 위험도를 가진다.