1. 개요
1) SQL 인젝션
- SQL 인젝션에 들어가기 앞서 SQL은 데이터베이스 관리 시스템의 데이터를 관리하기 위해 설계된 특수 목적의 프로그래밍 언어이다.
- OWASP TOP 10은 해킹 공격의 종류 중 세계에서 가장 많이 일어나는 10개의 해킹 공격 방식과 정보보안 대책을 매년 발표하고 있다. 여기서 2007년부터 2020년까지도 SQL인젝션을 포함한 인젝션 기법이 보안 위협 1순위로 분류되었다.
- 이런 SQL 인젝션은 사용자의 입력값을 조작하여 서버의 데이터베이스를 공격할 수 있는 공격방식을 말한다. 주로 입력된 데이터를 제대로 인식하지 못했을 경우에 발생한다. 공격의 난이도는 쉬운 편이지만 파괴력이 크다. 보안회사인 'Imperva'가 2012년에 발표한 보고서에 따르면 월평균 4회가량의 SQL 인젝션 공격이 일어난다고 한다.
2) SQL 인젝션의 사례
- 이러한 SQL 인젝션의 사례로는 숙박어플인 '여기어때'에서는 SQL인젝션 공격으로 웹페이지 관리자 아이디가 노출되어 당시 '여기어때’의 이용자 수였던 200만명에 달하는 사람들 가운데 거의 절반인 99만명의 개인정보 341만 건이 유출됐었다고한다.
[출처: 중앙일보] "모텔서 즐거우셨나요?" 여기어때 해킹사건의 전말
https://news.joins.com/article/21628794
"모텔서 즐거우셨나요?" 여기어때 해킹사건의 전말
https://news.joins.com/article/21628794
소니, SQL인젝션 공격에 속수무책 당하고 있다!
3) SQL 인젝션의 종류와 목적
1.인증우회 - AB(Auth Bypass)
- 인증우회란 인증이 필요한 페이지(주로 로그인 페이지)의 인증 과정을 거치지 않고 접속할 수 있는 취약점이다. 이 취약점에 노출될 경우 ****해커가 관리자 권한을 획득, 웹 사이트의 모든 기능을 마음대로 조작할 수 있게 된다.
2.데이터 유출, 노출 - DD(Data Disclosure)
- 데이터 유출은 기밀 정보, 개인 정보 또는 기타 민감한 정보가 공개되는 것이다. 데이터 유출은 고의적인 공격으로 발생할 수 있고, 의도하지 않은 공격으로 발생하는 경우 또한 있다.
- 데이터 유출의 방식
- Error based, Blind based, Time based, Union based이 있다.