SQL 인젝션 (SQL injection) 공격 기법 및 대비책
- 최초 등록일
- 2008.12.14
- 최종 저작일
- 2008.10
- 10페이지/ 한컴오피스
- 가격 2,000원
소개글
정보보호론 과제로 작성한
SQL injection
공격 기법 및 대비책 에 관한 레포트 입니다.
목차
Ⅰ. 서론
SQL injection 취약점
Ⅱ. 현황
SQL 위협사례
(1) 사용자 인증 공격
(2) MS-SQL상에서의 시스템 명령어 실행
Ⅲ. 본론
SQL injection 취약점 대책
(1) 취약성 판단
(2) 일반 대책
(3) 개발 언어별 대책 : ASP, PHP, JSP
Ⅳ. 결론
본문내용
Ⅰ. 서론
· SQL injection 취약점
현재 대부분의 웹사이트들은 사용자로부터 입력받은 값을 이용해 데이터 베이스 접근을 위한 SQL Query를 만들고 있다.
사용자 로그인 과정을 예로 들면, 사용자가 유효한 계정과 패스워드를 입력했는지 확인하기 위해 사용자 계정과 패스워드에 관한 SQL Query문을 만든다.
이때 SQL injection 기법을 통해서 정상적인 SQL query를 변조할 수 있도록 조작된 사용자 이름과 패스워드를 보내 정상적인 동작을 방해할 수 있다.
이러한 비정상적인 SQL Query를 이용해 다음과 같은 공격이 가능하다.
- 사용자 인증을 비정상적으로 통과할 수 있다.
- 데이터베이스에 저장된 데이터를 임의로 열람할 수 있다.
- 데이터베이스의 시스템 명령을 이용하여 시스템 조작이 가능하다.
이러한 취약점을 SQL Injection 취약점이라고 하며, 사용자가 데이터
입력이 가능한 수많은 웹페이지 상에 이러한 취약점이 존재할 수 있다.
Ⅱ. 현황
· SQL 위협사례
(1) 사용자 인증 공격
아래의 그림과 같이 인증을 처리하는 use_search1.jsp가 존재한다고 가정해 보자.
이 JSP 스크립트가 입력 값에 대해 적절히 검사하지 않았을 때 공격자는 비정상적인
SQL Query를 삽입 할 수 있고 이를 이용해 사용중인 데이터베이스에 영향을 줄 수 있다.
(2) MS-SQL상에서의 시스템 명령어 실행
MS-SQL 데이터베이스를 사용하는 경우를 예를 들어 보자. 만약 데이터베이스 접근 권한이 시스템 권한을 사용하고 있다면 MS-SQL 에서 기본적으로 제공하고 있는 xp_cmdshell이라는 Stored Procedure를 이용하여 시스템 명령어를 실행할 수 있다.
예로 위의 인증 페이지에서 신청인명에 test, 접수번호에 ; exec master..xp_cmdshell ping 10.10.1.2`-- 값을 입력했다고 가정하면 SQL Query는 다음과 같이 완성될 것이다.
참고 자료
SQL Server 2005 완벽가이드 손호성저, 2007
참고사이트
한국 정보보호 진흥원(KISA) http://www.kisa.or.kr/
오라클 클럽 http://www.oracleclub.com/