해킹 악성코드 X-File 시리즈 3탄 –WebDAV 및 SQL 인젝션 취약점
이번 시간에는 WebDAV 1.1의 취약점을 이용하여 원격에서 공격자가 PUT 요청을 통해 서버에 WebShell를 업로드하여 해킹한 사례를 분석하고자 한다. WebDAV에서는 다음과 같은 명령어를 사용하고 있다는 것을 미리 알고 해킹분석에 참고하면 좋다.
<WebDAV 명령어>
웹호스팅 업체에서 A기관의 웹서버를 용역관리하고 있는데 어느날 갑자기 홈페이지가 변조되는 사고가 발생하였다. 따라서 피해 사이트에서 수집된 웹서버에 남겨진 IIS 로그 파일들을 사고 전후 시간대를 기점으로 수집하여 분석하였다. 1. 수집된 로그파일 <IIS 로그 파일>
2. 로그분석 IIS 로그에서 클라이언트 IP 를 추출하여 IP가 부여된 국가이름으로 변환하였으며 해당로그는 다양한 국가의 IP가 기록되어 있는 특징을 보이고 있다. 해당 국가 IP들의 URL 접근은 보통 login.asp, guestbook.asp 로 구성되어 있으며 login.asp를 통해 부당한 로그인 및 SQL 인젝션 공격으로 시도할 경우 해당 서버에서는 경고 메시지창과 함께 guestbook.asp 페이지로 넘어가도록 되어 있었다. <IP에 해당하는 국가 목록> <IIS 로그 변환> 로그패턴의 특징을 위하여 빈도수에 따른 분류를 시도하였으며 빈도수별로 분류된 URL에서 특정 패턴을 찾을 수 있었다. <URL 빈도수 분석> <특정한 패턴을 가지는 URL> <free.asp의 사용 로그> 다음은 위와 동일한 웹호스팅업체에서 서비스를 받고 있는 B기관에서 IIS 로그를 수집한 후 SQL 인젝션에 취약한 IIS 로그 분석 관련 URL 빈도수 분석을 해보았다. 로그패턴의 특징을 파악하기 위해 빈도수 별로 분류된 URL에서 특정 패턴을 찾아 볼 수 있었다. 그중 id_check.js 와 같은 URL을 통해 사이트를 분석하면 id_find.asp, id_check.asp 등의 URL이 있음을 확인할 수 있다 . <URL 빈도수 분석> <id_check.js> 그중 id_find.asp를 확인해 보면 SQL 인젝션 공격에 취약함을 알 수 있으나 로그기록에 해당 id_find.asp URL 이 없으면 사용되지 않았음을 알 수 있다. <id_find.asp> URL에 변조 홈페이지 파일인 free.htm을 통해 2007.11.26 17:55:19에 IP 85.102.185.169에 접속하였으며 WebDAV 1.1 취약점 공격을 통하여 A기관과 동일한 웹호스팅 서비스를 받고 있는 B기관의 홈페이지 파일을 업로드 하였거나 직접 작성한 것으로 추측할 수 있다. <free.htm> WebDAV : Web-based Distributed Authoring and Versioning의 약어로 HTTP(Hypertext Transfer Protocol)에 대한 확장 프로토콜이며, 이를 사용하여 서로 다른 컴퓨터에서 사용자들이 공동으로 원격으로 웹에서 파일을 편집, 게시, 저장, 관리할 수 있다. 데이터 통합기능을 통해 문서관리, 버전관리, 형상관리, 전자메일 저장, 파일서버로 사용되고 있다. WebDAV 취약점 : ntdll.dll 내부의 RtlDosPathTONTPathName_U 함수에서 경계 검사를 하지 않아서 생기는 이 취약점은 영어권 국가, 한글 사용하는 국가등 언어 코드가 같은 국가를 대상으로 공격 코드를 만들 수 있기 때문에 웹 서버 관리자들이 패치를 해서 사전에 대비해야 한다. SQL 인젝션 : 관계형 데이터베이스 관리 시스템에서 자료의 검색과 관리, 데이터베이스 스키마 생성과 수정, 데이터베이스 객체 접근 조정 관리를 위해 고안된 컴퓨터 언어인 SQL은 데이터베이스로부터 정보를 얻거나 갱신하기 위한 표준 대화식 프로그래밍 언어이다. 데이터베이스 관련 프로그램들이 SQL을 표준으로 채택하고 있는데, 웹 응용 프로그램에 강제로 SQL 구문을 삽입하여 내부 데이터베이스 서버의 데이터를 유출 및 변조하고 관리자 인증을 우회할 수 있다. SQL 인젝션 취약점 : 입력문에 SQL문에 대한 필터링이 없을 경우 해커가 SQL문으로 해석될 수 있는 입력을 시도하여 데이터베이스에 접근할 수 있는 취약점이 있다. URL 또는 사용자 ID 및 패스워드 입력 화면 등에서 데이터베이스 SQL문에 사용되는 문자 기호(‘ 및 “)의 입력을 적절히 필터링하지 않은 경우에 해커가 SQL문으로 해석될 수 있도록 조작한 입력으로 데이터베이스를 인증 절차없이 접근, 자료를 무단 유출하거나 변조할 수 있다. 예를 들어 관리자 ID와 패스워드에 ID : ’or 1=1 ; -- 패스워드 : ’or 1=1 ; -- 문자열을 입력했을 때 로그인되는 경우를 말한다. 웹로그 분석에서 로그파일을 분석해서 알 수 있는 내용은 로그파일 자동화 분석도구의 기능에 의존하며, 웹서버 분석자는 결과보고서의 내용을 현재 분석하고 있는 웹서버의 상황에 맞추어 재 해석할 필요가 있다. 또한 피해자의 웹서버에서는 공격자의 URL빈도수 분석, 특정패턴분석, 국가별 IP에 중점을 두어야 한다. 웹서버의 로그파일을 분석하여 알아낼 수 있는 내용을 몇 가지로 분류해 보면 다음과 같다. 1 국가별 IP 분석 2. URL 빈도수 분석 3. 특정패턴 분석 4. 기간별 분석 6. 없는 페이지 / 메뉴링크가 되지 않은 페이지 분석 




해당 패턴을 가지는 URL 을 분석한 결과 xx 국가에 부여된 IP xxx.xxx.xxx.160에서 공격이 있었으며 공격 형태는 WebDAV 1.1의 취약점을 사용하여 PUT 명령어로 WebShell 인 free.asp 파일을 업로드 한 후 free.asp를 통한 POST명령으로 홈페이지 파일을 변조했음을 분석하였다.




웹서버는 사용자 중 등록 여부에 따라 일반사용자, 등록/ 비등록사용자(공격자)로 구분하거나, 또는 접속방법에 따라 모뎀사용자와 전용선사용자로 구분하여 분석할 수 있다. 따라서, 일반사용자는 있는 그대로 분석하며 비등록사용자는 공격자로 의심하고 일반사용자와는 다른 분석을 해야 한다. 일반 및 비등록 사용자의 경우 그 지역에 따른 국가별 IP와 국내 지역별 IP를 통해 웹서버의 취약점을 이용한 공격지점을 추적하는데 중요한 데이터가 될 것이다. 모뎀접속 서비스를 제공하는 국내의 ISP가 가지고 있는 IP를 참조하면 모뎀사용자를 찾을 수 있으며 전용선 사용자가 국내 ISP 가입자인 경우 소속 ISP를 확인 가능하다.
웹서버의 페이지들에 대한 분석은 웹서버 분석시 필수적인 사항으로 이러한 페이지의 취약성등을 점검해야 한다. 페이지분석은 페이지별로 또는 디렉토리별로 하는 것이 효율적이다. 페이지분석은 가장 많이 찾는 페이지, 가장 오래 읽는 페이지, 가장 최근에 방문한 페이지등에 대한 내용을 포함해야 한다.
로그파일 중, Referrer 로그파일은 현재 분석되고 있는 웹서버에 접속하기 전의 사용자의 위치를 저장하고 있다. 공격자의 접속지점에 대한 정보를 알 수 있으며, 사용자의 웹브라우저와 사용하는 OS에 대한 정보를 제공해 준다. 특정 명령어로 동일한 패턴이 연속적으로 진행 중이라면 해당 페이지 링크에 대한 상세분석을 통하여 적합한 데이터를 찾는데 도움이 될 것이다.
공격자의 웹서버에 대한 접속, 방문 및 에러발생횟수 등을 기간별로 분석하며 일별 평균과 최대 접속, 접근 및 에러발생횟수 등도 웹서버 분석에 도움을 줄수 있다. 이는 월별, 요일별, 일별 및 시간대별로 분류한 후 접속이 많은 월, 요일, 일 및 시간대를 쉽게 파악할 수 있다.
5. 에러분석
웹서버에서 발생하는 사고 시점 전후로 에러의 월별, 요일별 및 시간대별 분석을 통해 에러발생이 잦은 시간대를 파악하고 빈도수별로 정리된 에러의 현황 및 사용자 현황을 통해 에러가 취약점을 이용한 공격에 대한 에러여부를 판단하게 된다. 만약 특정 시간대에 에러가 집중되는 경우 , 웹서버의 상태를 점검하거나 컴퓨터의 과부하도 점검해 봐야 할 것이다.
웹서버에는 실제로 존재하지 않는 페이지 또는 디렉토리가 로그파일에 기록되는 수가 있다. 첫째, 사용자가 현재 없어진 페이지를 이전에 북마크해 놓았거나 또는 사용자의 캐시에서 오래되어 다시 접속을 시도하는 경우이다. 둘째, 사용자의 실수로 URL을 입력하는 과정에서 오타를 입력한 경우이다. 셋째, 공격자가 단순한 실수가 아닌 의도적으로 관리자 페이지, 보안설정 페이지등을 임의로 입력하여 중요 데이터에 접근하는 경우가 될 수도 있다. 웹서버 관리자의 부주의로 인해 노출된 페이지를 실제 공격자가 원하는 데이터로서 획득 할 수 있기에 취약한 페이지에 대한 분석을 해야한다. 다음시간에는 해킹 악성코드 X-File 시리즈 4탄 –봇넷 에 감염된 컴퓨터 분석에 대해서 알아보도록 한다.
- 안철수연구소보안전문가 Dr.UK