[SQL Injection] 대응방안에 대하여

 대응방안 개요

웹 서비스 제공 환경을 고려하면 다음과 같이 다양한 단계에서 대응이 가능합니다 . 


















각 단계 별로 대응이 가능하지만 가장 효율적인 방법은 원인 제거가 가능한 코드레벨의 시큐어 코딩이라고 할 수 있습니다 . 
각 대응방안 별 차이점을 요약하면 다음과 같습니다 . 

 

구분

설명

미들웨어

현재 사용하고 있는 미들웨어는 PHP 이며 PHP의 보안기능을 이용하면 SQL 인젝션 대응에 부분적인 효과가 있습니다.

코드레벨

소스코드를 수정하여 대응하는 시큐어 코딩 방법으로 취약점의 원인이 되는 보안 약점의 근본적인 조치 및 제거가 가능합니다.

DBMS

데이터 베이스에서 제공하는 기능을 이용하여 취약점을 대응하는 방법입니다.

주로 저장 프로시저를 이용하며, 검증된 안전한 함수를 생성하여 DB 질의에 활용합니다.

보안장비

보안장비를 활용하여 대응하는 방법이며 가장 신속하게 대응이 가능하지만 근본적인 원인이 되는 에플리케이션의 취약점은 그대로 존재하기 때문에 공격 징후 탐지 등의 보안관제와 시큐어 코딩 전 긴급대응에 유용한 방식입니다.





각 대응 방안 별로 다음과 같은 해결 방안이 있습니다 .  

구분

설명

미들웨어

1. Apache 서버의 Custom Error Response 활성화

2. PHP의 magic_quotes_gpc 설정 활성화

코드레벨

1. 화이트리스트 키워드 필터링

2. 데이터 유형 검사 3. 프리페어드 스테이트먼트 적용

DBMS

1. 저장 프로시저 사용

2. 스키마 객체 접근권한 제거

3. DB 유저의 권한 통제

보안장비

공격 키워드 필터링



댓글