하루가 다르게 변하고 새로운 기술들이 생겨나는 오늘 날, 악성코드 또한 그에 발 맞추어 함께 발전을 해왔다. 분석에 있어서 혼란을 가져오는 안티 디버깅 기능에 대한 발전과 함께 기존에 없었던 새로운 기능을 추가 하는 등 많은 변화가 있었지만 그 중 가장 큰 발전이라 함은 악성코드의 유입경로에 대한 다양화라고 볼 수 있을 것이다.
초창기 바이러스가 처음 발견된 시점, 수동적으로만 전파되어오던 바이러스와는 다르게 근래에 전파 방법이라 함은 과거로선 상상조차 할 수 없을 정도로 다양해졌다. 메신저, 이동식저장장치, e-mail 등 많은 여러 가지 방법으로 전파가 되었지만 근래에 가장 문제가 되는 방법은 웹 해킹에 따른 악성코드의 유입이라고 할 수 있다. 기존에 해킹은 단순히 자신의 실력을 과시하거나 어떠한 의사 전달 등의 목적을 지니고 있었다면 최근 발생하는 웹 해킹은 금전적인 이익을 노리고 발생한다는 점에서 해킹에 목적이 많이 변모했음을 보여 준다.
IT사회를 살아 가는 오늘 날 개인 사용자들에게 인터넷이 보급화 되면서 이러한 웹 해킹은 전반적으로 큰 우려를 낳고 있으며 단순히 웹사이트에 접속하는 것만으로도 위험한 악성코드에 감염될 수 있어 피해가 큰 상황이다.
1. 전파 방법
웹 해킹에 대한 기법은 여러 가지로 볼 수 있으나 그 중 두각을 나타내고 있는 모습은 중국근원의 자동화 툴에 의한 공격을 꼽을 수 가 있다.
그림 1. 웹 해킹을 위한 중국발 자동화 공격 툴
이러한 자동화 툴로 인한 공격법은 자동화 툴을 이용하여 홈페이지 내의 취약점이 있는 페이지를 탐색한 후 DB 열람 하여 사용자 정보를 탈취 한다. 탈취한 계정을 이용하여 웹 사이트 로그인을 가능하게 한 후 악의적인 파일을 업로드 한 후 webshell을 이용하여 서버를 장악한 후 Iframe를 삽입/ 메인 페이지 소수 수정 등 홈페이지 변조가 가능하게 된다.
개인적으로 사용하는 백신이나 보안에 취약한 사용자는 이러한 변조된 웹사이트에 접속 할 당시 악성 코드에 감염 되는 것이다.
그림.2 자동화 툴에 의한 공격 로그(예)
자동화 툴에 의해 게시물의 인자값에 SQL 구문을 입력한 것으로 보여지는 공격에 의해 나타나는 공격 로그를 작성한 예이다. 이때 자동화 툴에 관한 위와 같은 공격 로그는 단 시간에 굉장히 많이 발견 되곤 한다.
공격자는 관리자 로그인 페이지에 접속을 시도 하여 웹 관리자 페이지를 유추한 후 접근을 시도 하고 관리자 로그인을 우회하여 직접 관리자 권한의 편집 페이지를 찾는다.
그림 3. 관리자 페이지에 대한 공격으로 추청되는 로그(예)
이러한 중국근원의 웹 해킹 사례는 다음과 같은 iframe 기법으로 다른 파일이 삽입되어 있는 상황을 발견 할 수 있다.
그림 4. 웹사이트의 해킹에 의해 다른 코드가 정상적인 홈페이지에
삽입된 상황
공격자가 고의로 보안 취약점이 있는 웹사이트에 악성 스크립트를 넣어두고 이 웹 사이트에 접속하는 PC에서 설정된 주소에 접속하여 악성코드를 다운로드 하거나 혹은 직접적으로 파일이 다운로드 되어 또 다른 악성코드를 Drop하는 방법이다. 또한 height 를 0으로 설정하여 감염여부를 숨기려 하고 있다. 여러 종류의 취약점을 사용하여 삽입 되는 이러한 웹 해킹은 국산 게임에 대한 정보를 유출 하는 것을 목표로 하는 Downloader 혹은 Dropper 가 대부분이다. 대량의 악성코드를 내포하고 있음은 물론이요, 혹은 ARP Spoofing와 같은 종류의 악성코드도 유입 될 수 있다.
ARP Spoofing 의 경우 동일 IP 대역폭에 있는 모든 PC를 감염 시키는 숙주 역할을 하므로 이러한 악성코드에 감염이 되었을 경우 개인 PC 사용자 보다는 기업 입장에서 큰 위협이 아니 될 수 없다.
그림 5. 취약점을 이용해 다운로드 되는 중국산 악성코드
이러한 최근 웹 해킹은 제로데이 취약점을 이용하여 공격 하는 것이 일반화 되었다. 임의의 취약점이 발견되고 그 취약점에 대한 패치 출시 사이에 이러한 공격이 발견 된다.
결국 사용자는 웹사이트에 방문했다는 죄(?)로 악성코드에 노출되는 것이며 과거 보안패치만 제대로 이루어진다면 웹 서핑 시 Download 되는 악성코드는 막을 수 있었지만 현재는 그것만으로는 결코 안전 할 수 없다.
그림 6. 다른 내용을 가진 파일의 다운로드 파일의 내용
위의 그림에서 나온 파일의 내용은 다르다. 단독으로 실행될 수 있는 US-ASCII 로 이루어진 파일이 있는가 하면 2개의 파일로 내용이 이루어져 다운로드 되는 경우가 있다. 이는 단독으로 download에 대한 내용을 실행을 하게 되면 백신에서 탐지를 할 수 있기 때문에 내용을 갈라놓은 경우이다. 내용을 갈라 2개 혹은 여러 개의 파일로 나뉘게 되면 백신에서 탐지를 할 수 없기 때문에 이런 식의 구성은 점점 늘어나고 있는 추세이다. 이러한 보안 업체를 의식해 회피 기술을 사용 하는 것을 스텔스 화 라고 한다.
2. 악성코드의 실행
위의 그림에서 발견 되는 스크립트를 통해 유입되는 악성코드는 역시 중국 근원의 spyware downloader 로 보여진다. .htm 파일로 다른 악성코드를 유입한 후 다단계적으로 또 다른 .htm 파일을 유입한 후 .css 파일과 .swf 파일로 같은 악성코드를 download 하게 된다.
그림 7. .css 파일로
download 되는 파일의 내용
위의 그림은 유입 되는 파일 중 .css 파일을 통해 download 되는 파일에 대한 내용이다. .htm 파일을 통해 얻어진 .css 파일을 UCS2 To Hex로 변환한 후 XOR 값을 찾아 변환 하면 그림과 같은 주소를 확인 할 수 있다.
그림 8. .swf 파일로
download 되는 파일의 내용
플레쉬 취약점을 통해 download 되는 Swf 파일들은 같은 파일명에 number를 붙여 각기 다른 여러 종류의 파일을 download 하게 된다. 이유는 swf 취약점에 대한 버전이 다르기 때문에 어떠한 버전에서도 다운로드가 되어 사용자 PC에 맞는 취약점을 찾아 실행되도록 해놓은 것이다.
.htm, .css, .swf의 각기 다른 파일들로 다운로드 되는 악성코드는 동일한 악성코드임에도 불구하고 이런 여러 가지 방법들을 동원하여 악성코드의 유입을 하는 부분에서 확인할 수 있듯이 공격자에 의해 웹 해킹을 당하여 유입되는 악성코드의 경로는 점점 치밀하고 정교해지고 있음을 확인 할 수 있다.
Download 되는 악성코드는 자신이 설치된 PC에서 자신 외에 다른 파일을 생성하게 되는데 이는 악성코드의 또 다른 유입과 pc의 기본적인 기능 혹은 다른 프로그램에 대한 방해로 이루어 질 수 가 있다.
그림 9. Killdll.dll 파일의 생성 및 실행
악성코드가 실행되면서 생성될 killdll.dll 파일을 정상적인 rundll32.exe 와 같이 작동이 되도록 작업을 수행 한다. 이 생성 되는 killdll.dll 파일은 자신의 실행을 방해할 요소가 되는 프로세스에 대한 정보를 찾아 그 프로그램에 대한 정상적인 실행을 억제한다.
그림 10. 생성되는
killdll.dll 파일의 killav
생성 되는 killdll.dll 파일은 각 백신의 프로세스에 관한 실행을 자신이 실행되는 것으로 바꾸며 이미 실행 되고 있는 프로세스들에 대해서 작업을 종료시켜 정상적인 백신의 활동을 억제 한다. 이러한 기능을 killav 기능이라 하며 killav 기능은 근래 탐지되는 악성코드의 동향에서 빼놓을 수 없는 필수(?)요소가 되어 가고 있다. 특히 근래에 자주 발견되는 keylogger, spyware로 분류 되는 악성코드는 대부분 이러한 killav 기능을 내포 하고 있다.
보안관련 제품들의 방해 외에도 자신을 보호하는 SSDT Hooking 관련 파일과 Droopper 에 대한 파일을 생성하게 되며 모든 작업이 끝나면 자기 자신은 삭제를 하는 작업을 수행한다.
그림 11. SSDT Hooking 관련 파일과 또 다른 Downloader 의 생성
Hooking 관련 파일을 생성하여 자신과 다른 Downloader 의 보호 및 변화에 대한 감시를 하게 되며 Killav 기능과 SSDT Hooking을 통한 모든 작업이 마무리되면 최종적으로 download 할 국산 온라인게임의 계정 관련 정보를 노리는 파일을 download 하게 되며 자기 자신을 삭제 한다.
그림 12. Downloader의 접속 주소
설정된 주소는 downloader가 접근 하는 주소로 각자 다른 내용을 포함하고 있다.
Spyware에 대한 download를 하기 전 설치된 pc의 Mac Address주소와 OS의 Version을 정보를 보내어 감염된 사용자에 대한 정보를 파악 한 후 어떤 사이트를 통해 언제 감염 되었는가에 대한 내용을 알 수 있다.
그림 13. 감염된 PC의 OS version 과 Mac Address 를 보내는 과정
사용자의 감염된 PC의 정보를 훔친 후 본격적으로 download 할 악성코드에 대한 주소에 접근하여 download를 시도 하게 된다.
그림 14. 특정 웹사이트에 접근 하는 downloader
URLDownloadToCacheFailA 함수를 사용하여 임시 파일이 생기며 그 안에 설정된 주소의 파일을 받아 본격적인 악성코드의 download를 실행한다.
주로 .txt 파일로 이루어진 주소에 접근을 해보면 다음과 같은 수 많은 악성코드들에 대한 download 주소를 눈으로 확인 할 수 있다.
그림 15. 접근하는 웹사이트의
.txt 파일에 나타나 있는 악성코드의 download 정보
눈으로 확인 할 수 있듯이 대량의 악성코드에 download를 시도하게 되며 이러한 악성코드는 spyware 외에도 다른 악성코드도 첨부된다.
위 그림에서 확인 할 수 있듯이 영문자 숫자 조합으로 된 .exe 파일들은 모두 국내의 online Games 관련 계정 정보를 탈취 해 가는 것으로 각기 다른 게임의 프로세스를 감지하고 정보를 훔쳐가는 것으로 확인 할 수 있다.
Download 되는 파일들은 설치 시 특정 게임에 대한 프로세스 정보를 찾는다.
그림 16. 게임
프로세스에 대한 정보 검색
현재 실행중인 모듈의 이름을 구해서 explorer.exe(탐색기)인지 특정 게임의 프로세스인지 비교하여 탐색기일 때는 모든 프로세스에 자신을 Injection하고 게임의 프로세스이면 계정 탈취를 시도한다.
그림 17. 특정 온라인게임에 관한 프로세스 탐지
그림 18. 수집된 정보를 전송
게임에서 사용되는 특정 파일에서 사용자 환경이 담긴 내용을 수집한다.
수집된 정보는 http://a**h.o****e.cn으로 전송 된다.
3. 웹 해킹에 대한 대처
웹 해킹으로 인해 유입되는 악성코드에 피해 사례는 점차 늘어만 가고 있다. 이러한 국산 온라인게임에 관한 계정 정보를 노리는 spyware는 결코 한가지 게임만을 노리는 것이 아닌 국내의 모든 게임에 관한 계정 정보가 타겟이 된다고 볼 수 있다. 현재 국내의 온라인 게임시장은 단순히 게임이 아닌 현금 거래가 활발하게 이루어 있으며 이러한 점을 악용하여 금전적 이윤을 챙기고자 중국발 악성코드의 피해율은 날로 증가하고 있는 실정이다.
이러한 웹 해킹은 기업활동에도 직접적 간접적 피해를 끼치고 있다. 우선 웹 해킹에 대한 공격이 일어나면 기업에 대한 이미지 실추 및 고객의 접속자 수 감소로 인한 직접적 피해가 발생되며 서비스에 대한 불신으로 인한 매출이 하락된다. 웹 해킹에 대한 주요 원인은 홈페이지가 보안에 취약하게 개발되었기 때문으로 개발 보안은 안전한 웹 사이트를 만드는 게 기본 대책 일 수 있겠지만 소요비용이 상당하다.
이에 따른 대책으로 웹 방화벽은 비용 효과적으로 홈페이지 해킹을 막을 수는 있다. 하지만 일반적인 홈페이지 해킹 기법을 막아 줄 수는 있지만 모든 해킹을 막아 줄 수는 없으므로 실시간 탐지 및 복구에 대한 적절하고 신속한 대응이 필요하다. 웹 사이트 변조 및 악성코드 배포 현황을 조기에 파악하여 신속한 차단 및 복구를 시도하여 기업 및 기관의 피해를 최소화하고 홈페이지에 대한 다양한 종류의 침해사고 유형을 고려 하여 인공지능 기법을 활용한 다양한 모니터링 서비스에 적극 참여 하는 것이 좋다.
인터넷이라는 환경은 알 수 없는 수많은 위협에 노출되어 있는 상태이다. 사용자들은 항상 보안제품에 대한 인식을 늘리고 인터넷 익스플로러 설정을 변경하는 등 인터넷 이용 시 각별한 주의를 기울여야 한다. 신뢰할 수 없는 웹사이트. 위험 사이트 차단, 액티브 스크립트 관련의 적용 해제 등 여러 대책이 있다. 또한 발표된 보안 패치 관련 정보도 숙지하여 철저히 대비하는 것이 좋다.
자칫하면 제 2의 인터넷 대란이 될 수 있는 웹 해킹 사례는 여전히 현재 진행형이며 국가적인 차원에서 보안조치에 만전을 다해야 할 것으로 보인다.
(용어정리)
Iframe : 하이퍼 텍스트 생성 언어(HTML) 문서에서 글 중의 임의 위치에 또 다른 HTML 문서를 보여주는 내부 프래임(inline frame)태그.
Webshell : 웹 기반에서 동작하는 쉘 프로그램을 의미한다. 일반적으로 PHP, ASP, JSP 등과 같은 웹 스크립트 언어에서는 웹 서버에 콘솔 기반 명령어를 실행할 수 있는 함수나 문법을 지원하고 있는데 이런 기능을 이용하여 마치 웹에서 SSH나 Telnet을 사용하는 것처럼 쉘 프로그램을 만들어사용 할 수 있다.
댓글