목차

0. 요약

1. 서론

A. 기존의 악성코드 배포지 접속 유도 방법

A-1 대규모 홈페이지 해킹

A-2 ARP spoofing

2. 웹 채팅 위젯을 이용한 유도 방법

B. 웹 채팅 위젯이란?

B-1. 웹 채팅 위젯이 좋은 경로가 될 수 있는 이유

B-2. 공격 설명

3. 공격 시나리오

4. 결론

C-1. 예상되는 피해 범위

C-2. 대응 방안

기술/전략

웹 채팅 어플리케이션을 이용한 악성코드 유포

선린인터넷고등학교

차성호

요  약

이전에 어도비 플래시에는 CVE-2008-4401 취약점이 있었다. 이 취약점의 무서운 점은 사용자의 동의 없이 몰래 파일을 다운받거나 업로드하게 할 수 있다는 점이기 때문일 것이다. 즉 이 취약점이 사용된 악성코드 유포 사이트에 접속하는 것만으로도 바이러스에 감염시킬 수 있다. 위 취약점은 현제 패치 되었지만 유사한 기능을 하는 취약점은 계속 발견되고 있다.

그러나 이런 악성코드를 이용한 유포 사이트에 많은 사람들이 접속하게 만드는 것은  까다로운 일이다.

그러나 웹 채팅 위젯을 해킹해 iframe코드를 삽입시키는 건 상대적으로 손쉬운 방법이며, 이를 이용해서 현제 내가 접속해있는 채팅방에 들어와 있는 모든 사용자들에게 악성코드 유포 사이트로 접속하게 만드는 것이 가능하다.

또한 악성코드에 감염된 PC는 다른 채팅방에 접속했을 때 자신 또한 iframe코드를 삽입하게 만들어 감염자를 만들어낸다.

1. 서론

브라우저의 취약점이나 flash의 취약점 등을 이용해 악성코드 유포지에 접속 하는 것만으로 악성코드를 다운받게 만들어 감염시키는 방법은 이미 악성코드 유포 방법으로 많이 사용되고 있는 방법이다. 여기서 설명하고자 하는 것은 그 악성코드를 사용자 몰래 다운받게 하는 새로운 방법에 관한 것이 아닌, 희생자들을 그 악성코드를 유포하는 사이트로 접속하게 만드는 방법에 대한 이야기이다.

A. 기존의 악성코드 배포지 접속 유도 방법

A-1 대규모 홈페이지 해킹

악성코드 유포 사이트로 한 번에 많은 사람을 접속시킬 수 있는 방법은 바로 대규모의, 많은 사람들이 접속하는 사이트를 해킹하여 메인 화면 등에 악성코드 유포지로의 iframe태그를 삽입하여, 희생자들이 사이트에 접속하는 것과 동시에 눈치 채지 못하게 악성코드 유포지로 같이 접속시키는 것이다. 그러나 일반적으로, 사람들이 많이 이용하는 대규모의 사이트일수록 중소규모의 사이트와 달리 보안을 강하게 적용하기 때문에 단지 악성코드 유포지로 접속시키기 위해서 이런 큰 사이트를 해킹 하는 것은 힘들고 비효율적이다.

A-2 ARP spoofing

다른 방법으로는 ARP spoofing을 이용한 방법이 있다.

ARP spoofing은 공격자가 IP주소를 MAC주소로 변환시킬 때 사용되는 ARP메시지를 이용, 자신이 마치 다른 네트워크상의 다른 컴퓨터인 것처럼 속여서, 그 컴퓨터를 향해 가야되는 패킷을 가로채는 기법이다. 게이트웨이를 속이는 것도 가능한데 이렇게 하면 게이트웨이는 외부에서 온 패킷을 진짜 해당하는 컴퓨터에게 보내주지 않고 이를 속이고 있는 해커PC에게 전달한다. 그럼 해커는 이 패킷에 iframe 태그를 삽입한 뒤 원래 패킷을 받았어야 했던 컴퓨터에게 전달하는 방법으로 악성코드 유포지로 접속 시킬 수 있다.

이를 이용하면 한 네트워크의 한 컴퓨터만을 해킹해서 같은 네트워크에 속해있는 모든 다른 컴퓨터에게 iframe태그를 삽입하는 것이 가능하다. 또한 만약 이 희생자 컴퓨터들 중에 웹서버가 있다면 그 웹서버에 접속하는 모든 사람들에게도 웹서버가 그 사람들에게 보내는 패킷을 가로채 iframe을 삽입시켜서 다시 보내주는 방법으로 유포지로 접속시킬 수 있다. 그러나 2007년부터 이러한 공격은 이미 널리 알려져 방어기법이 계속 연구되고 있기 때문에 이 방법을 이용하는 것은 점점 더 어려워지고 있다.

2. 웹 채팅 위젯을 이용한 유도 방법

B. 웹 채팅 위젯이란?

웹 위젯이란 HTML 기반으로 만들어진 작은 프로그램으로, 서버가 웹에 있기 때문에 따로 동기화시킬 필요 없이 자신의 블로그나 카페 등에 추가할 수 있다. 위젯이 설치된 사이트에 방문하는 사용자들은 자동으로 이 위젯에 노출되게 된다.

채팅 위젯이란 이런 위젯 중 채팅 기능을 가진 위젯들을 말한다.

B-1. 웹 채팅 위젯이 좋은 경로가 될 수 있는 이유

웹 채팅 위젯이 좋은 악성코드 배포지의 유도 경로가 될 수 있는 이유는 다음 4가지 이유 때문이다.

첫 번째는 사용자들끼리 소통한다는 것이다.

보통 일반적인 다른 위젯 같은 경우에는 단순히 날씨를 보여주거나 음악을 재생시키는 등의 기능을 수행하는데 이런 위젯들을 통해서 사용자는 그저 그 위젯이 제공해주고 있는 정보를 받을 뿐 그 위젯을 통해서 다른 사용자들에게 간섭할 수 없다.

그러나 채팅 위젯 같은 경우에는 사용자들끼리의 소통을 목적으로 만들어졌기 때문에 그 위젯에 메시지를 보내고 그 위젯은 다른 사용자들에게 그 메시지를 보내주고 다른 사용자가 보낸 메시지를 받는 소통이 가능하다. 즉 내 브라우저에 보이는 위젯에서 하는 행위가 다른 사람들이 보고 있는 위젯에도 영향을 준다는 것이다.

둘째는 HTML기반이라는 것이다.

웹 채팅 위젯을 해킹할 때 해커는 굳이 시스템을 공격할 필요도 없고 네트워크를 공격할 필요도 없다. 그저 이 어플리케이션의 소스상의 취약점만을 공격하는 것으로 같은 채팅방에 속해있는 모든 유저들을 공격할 수 있다.

세 번째는 많은 사이트에 퍼져있다는 것이다.

이런 위젯들은 ‘퍼가기’가 자유로우며, 따로 설치할 필요 없이 html소스를 자신의 사이트에 붙여넣기 하는 것만으로 쉽고 간편하게 자신의 사이트에 달 수 있다. 그래서 이런 채팅 위젯은 중소형 사이트에 많이 사용되고 있으며, 대형 포털 사이트들도 블로그 등에도 이런 위젯을 달 수 있는 기능을 지원해주고 있다.

네 번째는 이 위젯을 단 사이트의 관리자는 정작 이 위젯의 소스에 관섭할 수 없다는 점이다.

B-2 공격 설명

이런 웹 채팅 프로그램을 이용하여 악성코드 유포 사이트로 접속시키는 것은 마치 일반 웹 게시판을 해킹하여 임의의 html 코드를 삽입 하는 것과 비슷한 방법으로 진행 된다.

닉네임 부분에 임의의 html코드를 삽입 할 수 있는 취약한 부분이 있는 웹 채팅 위젯이라고 가정하고 설명하겠다.

먼저 해커는 자신의 닉네임에 ‘해커<iframe ...>’같은 형식으로 iframe태그를 삽입한다. 그러면 웹 채팅 위젯은 ‘해커<iframe ...>’이라는 문자열을 그 같은 채팅방에 접속한 모든 유저에게 접속자 목록에 동적으로 출력시킬 것이다. 그러면 브라우저는 <iframe ...>부분을 html태그로 인식하고 그 코드를 실행시켜 모든 접속자들은 악성코드 유포지로 자동접속 될 것이다. 그리고 해커는 이 희생자들이 다른 채팅방에 접속하면 닉네임 부분에 자신이 iframe태그를 삽입한 방법과 같은 방법으로 자동으로 태그를 삽입해서 닉네임을 변경하도록 악성코드를 제작하고 이를 강제로 다운받게 되도록 만든다. 그러면 이 희생자는 희생자이면서 동시에 공격자가 되어 또 다른 희생자를 만들어낸다.

실제 취약점이 있는 곳은 닉네임부분이 될 수도 있지만 채팅 로그 부분이 될 수도 있고 시스템 메시지 부분이 될 수도 있으며 아이콘(이미지)을 보여줄 수 있다면 그 부분이 취약한 부분이 될 수 있다. 채팅 위젯에서 제공하는 모든 기능들이 공격 대상이 될 수 있는 것이다.

이 방법이 진정 무서운 이유는 아무리 사이트 자체에 완벽한 보안을 자랑하는 사이트일지라도, 이 취약한 위젯이 설치되어있다면 그 사이트에 접속하는 사람을 악성코드 유포지로 강제 접속시킬 수 있다는 점이다. 해커가 위젯만을 공격하고 그 사이트 자체를 공격하지는 않았을지라도 그 위젯이 사이트 화면에 프레임으로 포함되어있기 때문에 결국 이 위젯이 설치되어 있는 사이트에 접속만 하는 것으로 악성코드 유포지로 이동될 수 있다.

3. 공격 시나리오

먼저 해커가 임의의 html 코드를 삽입을 할 수 있는 취약한 웹 채팅 위젯을 발견한다.

그럼 해커는 희생자들에게 감염시킬 악성코드 제작을 시작한다. 이때 이 악성코드에 반드시 들어가는 내용은 이 악성코드에 감염된 사람 또한 채팅 위젯을 실행시키면 본인은 알지 못하게 자동으로 해커가 쓴 방법과 똑같은 방법으로 html코드를 삽입 하도록 만들어놓는 것이다. 해커가 html코드를 삽입할 때 채팅 위젯 서버를 향해 보내는 패킷을 기록해두었다가 API 후킹을 통해 브라우저의 오고 가는 패킷을 낚아, 채팅 위젯의 서버 IP에서 오는 패킷이 있으면 채팅 위젯이 실행되었다고 가정하고 동일한 패킷을 보내게 만든다.

해커가 iframe태그를 처음 직접 전염시킬 채팅방은 그 채팅방의 개발자 홈페이지에 있는 채팅방, 또는 그 채팅방을 블로그 등에 달 수 있게 지원해주는 위젯 공유 사이트의 기본 채팅방이다. 일반적으로 위젯 사용자들이 그 위젯을 자신의 사이트나 블로그에 올리기 위해서나 이 위젯에 대한 정보를 얻기 위해서 거치게 되는 장소이기 때문이다. 즉 이곳에 접속하는 사람들만 감염시키면 전파는 이 사람들이 위젯을 사용하면서 알아서 전파해줄 것이다.

4. 결론

C-2. 예상되는 피해 범위

감염자가 또 다른 감염자를 만들어 낸다는 점과, 웹을 이용한다는 점에서, 감염 전파 속도는 시간에 지남에 따라 기하급수적으로 늘어날 것이다. 취약점이 있는 채팅 위젯을 이용하는 모든 사람이 감염자가 될 수 있다. 여기에 해커가 이 감염된 PC에서 arp spoofing같은 기법을 함께 사용한다면 그 감염 범위는 상상할 수 없을 정도로 거대할 것이고, 감염시키는 악성코드의 종류에 따라서 그 피해 정도 또한 심각한 수준에 이를 것 이다.

C-3. 대응 방법

이 방법의 완벽한 방어란 사실상 불가능하다. 채팅 위젯에서 언제 어떤 새로운 취약점이 발견될지 알 수 없으며, 이런 위젯 자체가 악의적인 의도로 만들어진 프로그램이 아니기 때문에 미리 차단도 시킬 수 없다. 또한 이런 위젯들은 피하고 싶다고 해도 피할 수 있는 것도 아니다. 어떤 사이트에 어떤 위젯이 설치되어있을지 알 수 없고 그런 사이트에 들어가는 것만으로도 위젯이 같이 실행될 수 있기 때문이다.

결론적으로 이런 공격을 위해서는 위젯 개발자 본인이 보안을 꼼꼼히 점검하고 구멍이 없도록 고쳐 나가야만 한다. 그러나 보통 이런 위젯의 대부분이 개발자 한두 명이서 만들어내는 프로그램이란 것을 생각해볼 때 과연 오랜 기간 해킹을 집중적으로 익혀온 해커들의 공격을 모두 막아낼 수 있을지는 걱정스럽다. 고로 kisa같은 기관에서 먼저 이런 위젯들을 분석해주고 취약할 수 있는 부분을 개발자들에게 알려 해커가 이런 위젯을 이용하여 악성코드 유포지로 접속시키는 행위를 미리 예방해야 될 것이다.

5. 참고자료

[1]Adobe Flash Player 다중 취약점 보안업데이트 권고(KISA)

[2]네이버 사전