1. 개요
Watering Hole은 같은 말로 Waterhole로써 "(열대 지방에서 야생 동물들이 물을 마시러 가는) 물 웅덩이" 라는 뜻을 가지고 있다. Watering Hole은 다른 비속어 의미로 "술집, 바"를 의미하긴 하지만 공식적인 단어를 사용하기에는 "물 웅덩이"로 해석하는 것이 맞는 것 같다.
왜 (열대 지방에서...)라는 의미가 함축된 Watering Hole을 사용하였는지 고민해보면, 간단하다. 열대지방에서의 동물들은 물을 구하기가 어렵기 때문에 물 웅덩이의 위치를 잘 파악하고 있어야 하고, 맹수들 입장에서는 물 웅덩이에 잠복해 있는 것이 쉽게 먹이를 구할 수단이 된다. 이러한 요소를 이용하여 Watering Hole Attack이라는 단어를 만든 것으로 추측된다. (National Geographic를 보다가 떠오른게 아닐까?)
워터링 홀 공격은 시만텍에서 2009년 부터 연구한 주제인데, 최근 이슈화 된 이유로 중요 인사들이 회원으로 가입해있는 美 외교 협회 홈페이지를 대상으로 당시의 MS 제로데이 취약점(CVE-2012-4792)을 이용한 공격이 탐지되고 난 후에 심각한 보안위협으로 부상했다.
2. 워터링 홀 공격 (Watering Hole Attack)
시만텍에서는 워터링 홀 공격을 다음과 같이 정의하고 있다.
What is a watering hole attack?
A watering hole attack is a method of targeting sites which are likely to be visited by targets of interest. The attacker will compromise the site and inject JavaScript or HTML to redirect victims to additional malicious code. The compromised site is then left “waiting” to exploit users who visit through drive-by downloads.
Figure 1. Watering hole attacks
Symantec has published research surrounding watering hole attacks (The Elderwood Project) which details targets, growing trends, and attack platforms seen since 2009.
[자료] Symantec, Internet Explorer Zero-Day Used in Watering Hole Attack: Q&A
워터링 홀 공격은 타겟이 된 관심 대상이 방문 할 가능성이 높은 사이트를 대상으로 한다. 공격자가 사이트를 침해하여 피해자를 악성코드로 리디렉터(redirect)하기 위해 자바스크립트와 HTML을 삽입한다. 위험 사이트는 방문하는 사용자의 취약한 컴퓨터로 악성코드가 다운로드하고 실행되길 기다리는 의미로 "waiting" 상태로 대기한다.
공격자는 피해자을 프로파일하고, 이들이 자주 가는 웹사이트의 종류를 파악한다.
그런 다음 공격자는 취약점들을 이용하여 웹사이트를 테스트한다.
이 후 공격자는 손상 시킬 수 있는 웹 사이트를 발견했을 때, 공격자는 선택된 취약점 공격 코드로 호스팅하는 다른 사이트로 피해자를 리다이렉팅하기 위해 자바스크립트 또는 HTML을 삽입한다.
손상된 웹 사이트는 지금 단지 우물에서 기다리고 있는 사자처럼, 제로 데이 공격을 통해 프로파일한 피해자를 감염시키기 위해 "대기"하고 있다.
마지막으로 시만텍은 2009년부터 이 "Watering Hole Attack"에 대해 연구를 하고 있었다고 합니다.
간단하게 요약하자면, 사용자들이 자주 들어가는 웹사이트를 악성코드 유포지로 전달하기 위해 자바스크립트 또는 HTML 코드를 삽입한다. 시만텍에서는 프로파일한 피해자를 공격하기 위해 이 기법을 사용한다. 다음과 같은 시나리오를 생각해보자.
Q : 대형 의료기기 판매 사이트에서 악성코드를 유포한다면?
A : 일반 사용자들이 대형 의료기기 판매 사이트를 방문할 이유가 없다. 대부분 대형 병원이나 대학 병원 같은 곳에서 해당 사이트에 방문하기 때문에 특정 대상을 노린 공격으로 분류할 수 있다. 이 경우 워터링 홀 공격이라 할 수 있다.
즉, 불특정 다수를 대상으로 악성코드를 유포하는 드라이브-바이 다운로드 공격에 대상을 최대한 명확히 한 경우를 워터링 홀 공격이라 할 수 있다. 다시 말해서 드라이브-바이 다운로드 공격을 이해하고 이 공격이 발생한 공격자의 숨은 의도를 파악해야 워터링 홀 공격이라 말 할 수 있다.
다음은 웹 서비스에서 드라이브-바이 다운로드 공격이 발생했는데, 해당 서비스는 일반 사용자들이 접근하는 웹 서비스가 아니며, 트래픽 발생 빈도가 낮아 워터링 홀 공격으로 분류한 사례이다.
[그림1. 실제 Watering Hole Attack 흐름도]
[그림2. http://cos***.co.kr/pop/lg.js의 소스코드]
[그림3. http://cos**.co.kr/pop/lg.html의 소스코드]
[그림4. http://cos***.co.kr/pop/index.html의 소스코드]
3. 정리
워터링 홀 공격의 국내와 국외의 성향이 명백히 다르다. 국내의 경우 대부분 1-Day 취약점을 이용하고, 국외의 경우 0-Day 취약점을 사용한다. 또한 국내에서는 대략적인 공격 주체를 선정하는 반면, 국외에서는 APT 공격과 같이 대상에 대한 모든 정보를 활용하여 운영한다. 하지만, "대략적인 공격 주체"라고 언급했지만, 국내의 APT 공격에 대한 정보교류가 원활하지 하지 않기 때문에 필자가 인지하지 못한 경우가 많다고 생각한다.
4. 참조
[1] : Symantac, Internet Explorer Zero-Day Used in Watering Hole Attack: Q&A
[2] : 보안뉴스, 제로데이 취약점 악용 '워터링홀' 공격이 뭐길래?
'Information Security > Security Information' 카테고리의 다른 글
PRES. Obama Meets with the CEOs for cyber attack threat (0) | 2013.03.15 |
---|---|
악성코드? Malware? (0) | 2013.03.01 |
CVE(Common Vulnerabilities and Exposures) (0) | 2013.03.01 |
Backtrack -> Kali Linux (2) | 2013.02.06 |
멋진 한국의 해커 (2) | 2012.11.04 |