SQL INJECTION 이란?
SQL INJECTION은 , 웹 애플리케이션이 데이터베이스와 연동하는 모델에서 발생 가능합니다 .
이용자의 입력값이 SQL구문의 일부로 사용될 경우, 해커에 의해 조작죈 SQL 구문이 DB에 그대로 전달되어 비정상적인 DB명령을 실행시키는 공격 기법입니다.
SQL INJECTION의 공격 조건
조건1 ) 웹 애플리케이션이 DB와 연동하고 있다.
조건2 ) 외부 입력값이 DB 쿼리문으로 사용된다.
위 두 조건 중, 하나라도 충족되지 않는다면 SQL INJECTION 공격은 통하지 않는다. (대부분 웹 애플리케이션 위 두 조건 충분)
SQL INJECTION 대응 방안
웹 방화벽(Web Application Firewall) 도입
→ HTTP/HTTPS 응용 계층의 패킷 내용을 기준으로 패킷의 보안성을 평가하고 룰에 따라 제어한다.
시큐어 코딩
→ 외부 입력값은 프록시 툴을 이용하여 중간에 값을 변조할 수 있기에 입력값의 유효성을 검사한다.
취약점 점검과 모니터링
→ 모의해킹을 시도하거나 웹 취약점 점검 툴을 이용해 주기적인 취약점 점검을 해야한다.
→ 로깅과 모니터링: SQL INJECTION은 오류를 유발시키거나 동일한 페이지나 기능을 반복적 으로 호출하는 형태로 이루어지기에 500오류가 많이 발생하거나 동일한 IP에서 반복적으로 호출하는것을 주의깊게 살펴본다.
SQL INJECTION 해킹 사례
2015년, 해커그룹 어나미머스가 WTO 웹사이트를 SQL 인젝션으로 공격해 각 나라의 직원 개인정보를 탈취한 사건이 있었다. 어나니머스는 간단한 SQL 인젝션 기법으로 각 나라에서 접속한 개인정보를 획득했다고 밝혀졌다. 비록 WTO는 공격징후를 발견했지만 그들이 사용한 보안조치는 아무런 효과를 발휘하지 못했다.
내