Apache Module mod_rewrite 설정 그리고 이를 이용한 악성 행위들

Apache Module mod_rewrite 설정에서 페이지 자동 이동과 관련된 내용을 적어보고자 한다.
http://httpd.apache.org/docs/2.0/mod/mod_rewrite.html

간단하게 사용할 수 있는 예제는 아래와 같다.

RewriteEngine On
RewriteCond %{REMOTE_ADDR} 61.84.203.81 [OR]
RewriteCond %{REMOTE_ADDR} 112.167.210.121
RewriteRule .* http://en.wikipedia.org/wiki/Fuck_You [L]

접속한 사용자의 IP가 61.84.203.81 또는 112.167.210.121 인 경우 http://en.wikipedia.org/wiki/Fuck_You 페이지로 이동하도록 설정한 경우이다. 여기서 [OR] 은 또는 이며 [L] 은 위 Cond 여기까지만 적용된다는 의미이다.

여기까지는 간략한 설정과 관련된 내용이며 위 설정 방법을 이용하여 악성행위를 어떻게 하는지 알아보자.

악성코드 중 위와 같은 설정값을 변조하는 행위를 하는 것도 있다. 일반적으로 악성코드로 인해 위 설정값이 변조되어 나타나는 증상 중 쉽게 볼 수 있는 케이스를 한번 살펴보자.

특정 A라는 회사의 홈페이지가 있다. 해당 회사의 홈페이지 URL을 입력하여 접속하면 잘 접속이 된다. 하지만 구글이나 기타 검색엔진에서 해당 회사를 검색하여 들어가면 성인사이트나 기타 광고페이지로 자동으로 연결되는 경우가 있다. 이는 아래와 같은 것들을 의심해볼 수 있다.

1) 첫 페이지(index.html, index.php 등) 에서 Referer를 체크하여 google 혹은 기타 검색엔진일 경우 성인사이트로 자동 이동하는 스크립트가 삽입되어 있는 경우, 이는 웹소스가 변조되어 나타나는 증상이며 우리가 살펴볼 케이스는 아니다.

2) Apache 설정상의 문제, 이것이 살펴볼 케이스인데 Apache 웹루트의 .htaccess 파일 혹은 아파치 설정파일에 아래와 같은 설정값이 기록되어 있으면 문제가 발생한다.

RewriteEngine On
RewriteCond %{HTTP_REFERER} .*google.*$ [NC]
RewriteRule .* http://sex.com [L]

위 설정값을 풀어서 설명하자면 Referer가 "[아무문자]google(대소문자 구분없음)[아무문자]" 인 경우 http://sex.com 으로 이동하라는 설정값이다. 즉, 위와같은 설정값이 악성코드로 인해 삽입된다면 google 에서 검색하여 접속할 경우 성인사이트로 접속이 되는 것이다.

댓글 남기기

이메일은 공개되지 않습니다. 필수 입력창은 * 로 표시되어 있습니다