Security Engineer · SQL Injection 대응

SQL Injection 대응 우선순위 결정 트리

취약한 동적 쿼리를 발견했을 때 코드를 고치는 조치와 운영 보호 조치를 어떤 순서로 적용할지 판단한다.

01

취약 쿼리 확인

외부 입력이 SQL 문자열 생성에 쓰이는 코드 위치를 찾는다.

identify
02

바인딩 전환

값 파라미터는 Prepared Statement로 바꾸고 동적 식별자는 분리한다.

fix
03

서버 검증

허용 가능한 형식, 범위, 목록을 서버 기준으로 제한한다.

validate
04

운영 방어

DB 권한, 오류 메시지, WAF 룰, 탐지 로그를 함께 조정한다.

operate
Prepared
값 주입에는 강함 컬럼명이나 ORDER BY 방향 같은 구조 요소는 별도 허용목록이 필요하다.
코드 수정
WAF
탐지와 완화에 도움 우회 가능성이 있으므로 애플리케이션 수정의 대체가 아니다.
운영 장치
Escape
보조 수단 문맥과 문자셋에 민감해서 단독 방어로 두기 어렵다.
SQL Injection 대응 점검

실기 답안 구성

원인 입력값을 SQL 명령과 분리하지 못한 점을 쓴다.
대책 Prepared Statement, 검증, 최소권한을 함께 제시한다.
사후 로그 분석, 영향 범위 확인, 패치 검증까지 적는다.