MySQL의 SELECT LOAD_FILE() 함수, LOAD DATA는 서버내에 있는 파일을 읽어들이는 명령이다. MySQL 데몬이 파일을 읽을 권한이 있다면, 서버내의 경로와 상관없이 어떠한 파일이라도 읽을 수 있다. 만약 웹페이지가 SQL Injection 공격의 취약점이 있다고 할 때 다음과 같은 형식으로 쉽게 웹에서 서버 내의 파일을 확인할 수 있는 위험성이 존재한다.
이 함수가 편리성, 활용성 측면에서는 좋을 수 있지만, 보안에는 취약한 통로를 제공하는 셈이다.
2009월 말, 루마니아의 Unu 해커는 세계 주요 사이트와 국내 보안 업체 사이트를 SQL Injection공격으로 해킹을 했다. 그리고, MySQL의 load_file() 함수로 서버의 /etc/ 파일까지 캡쳐하여 블로그에 공개한 적이 있다.
MySQL 5.1.17부터는 LOAD_FILE() 함수, LOAD DATA, SELECT ... OUTFILE을 특정 디렉토리내의 파일만 허용하도록 설정할 수 있다. --secure-file-priv 옵션은 동적으로는 설정값을 변경할 수가 없다. my.conf 의 '[mysqld]' 섹션에 다음과 같은 설정을 한다. (경로는 운영 환경에 맞게 할 것)
위처럼 설정하고 MySQL 데몬을 실행하면 load_file()을 사용할 수 있는 경로가 /var/tmp으로 제한이 된다.
자세한 글은 커피닉스의 'MySQL에서 보안위해 load_file() 경로 제한하기' ( 2010.5 )를 읽어보기 바란다.
* 관련글
- 2009/11/30 - [IT이야기] - nProtect 웹사이트, SQL Injection공격 당해
- 2008/12/11 - [시스템이야기] - MySQL 인젝션 공격 방어하는 GreenSQL
- 12.22~23 커피닉스 이야기 (Intel사이트 SQL Injection등) (2009.12.24)
- 대량 SQL Injection 공격 주의 (2009.12.11)
select ...생략... from ...생략... UNION SELECT LOAD_FILE("/etc/passwd");
이 함수가 편리성, 활용성 측면에서는 좋을 수 있지만, 보안에는 취약한 통로를 제공하는 셈이다.
2009월 말, 루마니아의 Unu 해커는 세계 주요 사이트와 국내 보안 업체 사이트를 SQL Injection공격으로 해킹을 했다. 그리고, MySQL의 load_file() 함수로 서버의 /etc/ 파일까지 캡쳐하여 블로그에 공개한 적이 있다.
MySQL 5.1.17부터는 LOAD_FILE() 함수, LOAD DATA, SELECT ... OUTFILE을 특정 디렉토리내의 파일만 허용하도록 설정할 수 있다. --secure-file-priv 옵션은 동적으로는 설정값을 변경할 수가 없다. my.conf 의 '[mysqld]' 섹션에 다음과 같은 설정을 한다. (경로는 운영 환경에 맞게 할 것)
[mysqld]
secure-file-priv=/var/tmp
secure-file-priv=/var/tmp
위처럼 설정하고 MySQL 데몬을 실행하면 load_file()을 사용할 수 있는 경로가 /var/tmp으로 제한이 된다.
자세한 글은 커피닉스의 'MySQL에서 보안위해 load_file() 경로 제한하기' ( 2010.5 )를 읽어보기 바란다.
* 관련글
- 2009/11/30 - [IT이야기] - nProtect 웹사이트, SQL Injection공격 당해
- 2008/12/11 - [시스템이야기] - MySQL 인젝션 공격 방어하는 GreenSQL
- 12.22~23 커피닉스 이야기 (Intel사이트 SQL Injection등) (2009.12.24)
- 대량 SQL Injection 공격 주의 (2009.12.11)
'시스템이야기' 카테고리의 다른 글
rsync에서 특정 퍼미션으로 고정하기 (3) | 2011.03.17 |
---|---|
DNS 요청에 대한 TimeOut시간의 진실은. (0) | 2010.11.11 |
MySQL관련 기술적 동영상 제공하는 percona.tv (4) | 2009.06.24 |
MySQL 성능 튜닝을 쉽게 하자 (4) | 2009.06.08 |
FreeBSD 7에서 ZFS 사용 (유연성은 좋으나, 성능은 불만족) (4) | 2009.02.26 |