TIL | DBD(Drive By Download) 공격 개요

unihit·2021년 4월 10일
0

정리

목록 보기
9/9
post-thumbnail

드라이브-바이 다운로드란?

'Drive-By'는 '~쪽으로 자동차를 운전하다'라는 의미이다. 여기서는 '드라이브-바이 다운로드'는 '(컴퓨터에) 지나가듯 다운로드 행위가 발생한다'고 해석할 수 있다.

온라인 광고 업체는 사용자가 아무런 의심 없이 동의 버튼을 누르는 버릇을 악용해 광고 콘텐츠를 설치하도록 유도했고, 이를 '드라이브-바이 인스톨(Drive-By install)라고 표현했다. 그리고 일부 광고 업체는 사이트 방문과 동시에 사용자의 컴퓨터에 광고 콘텐츠를 설치하도록 구성했고, 이 과정에서 아무런 메시지를 표시하지 않는 형태로 진화했다.

일부 성인 사이트는 방문자를 자동으로 다른 곳으로 보내어 악성코드에 감염되도록 공격했다.

현재는 드라이브-바이 다운로드를 '스크립트 등을 매개로 웹 사이트 방문 시 사용자의 인식(동의) 없이 자동으로 악성코드를 다운로드하고 실행하는 현상으로 정의한다.

파밍이란?
악성코드 또는 다른 공격에 의해 DNS가 변경되어 피싱 사이트로 유도하는 공격 방식을 ‘파밍
Pharming’이라 한다. 흔히 윈도우 시스템에서는 ‘C:\Windows\System32\drivers\etc’에 존재하
는 Hosts 파일 또는 새롭게 생성한 Hosts.ics 파일을 변조해 공격자가 구성한 피싱 사이트로 유도
한다. 최근에는 레지스트리를 변조해 로컬 프락시를 설정하고, 악성코드 자체가 로컬 DNS가 되는
방식도 있다. 이 경우 악성코드의 메모리에 설정된 주소(흔히 은행 사이트들)에 접속하면 공격자가 구성한 피싱 사이트로 유도하는 형태를 가지고 있다. 또한, 공유기의 취약점을 이용해 공유기에서 설정 가능한 DNS를 피싱 사이트로 유도하게 구성하기도 한다. 사용자를 피싱 사이트로 유도하는 대부분의 국내 파밍 공격은 사용자의 금융 정보를 훔치는 것이 목적이다.

드라이브-바이 다운로드의 대표적인 특징

웹 서핑만 해도 사용자는 악성코드에 감염되고 감염된 사실을 인지하기 어려우며, 보통 여러 사이트를 방문하므로 어떤 사이트가 원인이 되어 악성코드에 감염됐는지 알아내기 힘들다. 드라이브-바이 다운로드 공격의 핵심적인 흐름을 한번 살펴보자

먼저 공격자는 사용자가 방문하는 웹 사이트를 해킹한다. 공격자가 웹 사이트를 직접 구축해 운영할 수 있지만, 사용자가 방문하지 않는다면 공격에 의미가 없다.

많은 사용자가 방문해야 공격의 효율성을 높일 수 있기 때문에 사용자들이 자주 방문하는 웹 사이트를 해킹한다. 그래서 공격자는 사용자들이 자주 방문하는 사이트를 미리 조사하고 잘 이해한다. 예를 들어, 입학 시기에는 대학 사이트, 휴가 시기에는 여행사 사이트나 펜션 사이트가 해킹당해 드라이브-바이 다운로드로 악성코드를 유포한다.

공격자가 웹 사이트를 해킹하면 소스 코드에 'iframe, script, meta, embed'와 같은 리디렉션 코드(Redirection Code)를 삽입한다. 이 코드를 사용하면 사용자가 웹 서비스를 이용할 때 브라우저 내부에서는 다른 서버의 다른 파일을 호출할 수 있기 때문이다.

Redirections in HTTP

공격자가 삽입한 리디렉션 코드는 다른 자바스크립트 파일이나 HTML 페이지를 호출하고, 호출된 페이지에 의해 다시 한 번 다른 페이지를 요청할 수도 있으며 바로 악성 코드를 유포하는 페이지를 불러올 수 있다.

호출한 페이지는

악성코드를 유포하는 페이지가 될 수 있고

악성코드를 유포하는 페이지로 전달하는 징검다리 역할을 하는 페이지 일 수 있다.

경유 페이지에 방문하게 되면 충분한 징검다리를 건너 최종으로 악성코드를 유포하는 페이지에 도착하는 것이 일반적이다.

악성코드를 유포하는 페이지는 하나의 소프트웨어 취약점을 쓰기도 하고 여러 개의 소프트웨어 취약점을 사용하기도 한다. 취약점은 악성코드를 다운로드하고 실행하도록 구성되는데, 이 과정에서 당연히 다운로드하는 악성코드 주소가 포함된다. 이때 사용하는 취약점 정보와 함께 악성코드의 주소가 노출되기 때문에 이 페이지의 소스 코드를 보호하기 위해 높은 난이도의 자바스크립트 난독화를 사용한다. 고난이도의 난독화는 대부분 익스플로잇 도구(Exploit Kit)로 분류되는 공격 도구에 의존해 제작된다.

악성코드를 저장한 웹 서버는 공격자들이 침해한 곳이거나 직접 구축한 형태로 운영하고, 악성코드를 저장하는 곳은 공격자가 쉽게 조작할 수 있는 곳을 선택한다. 그 이유는 이미 드라이브-바이 다운로드 구조도가 완성됐다면 악성코드를 저장한 웹 서버에 똑같은 파일 이름을 가진 다른 형태의 악성코드를 덮어써서 실시간으로 다른 악성코드를 유포할 수 있기 때문이다.

과거에는 기업 서버를 직접 공격했지만, 드라이브-바이 다운로드 공격은 철저하게 개인 사용자를 대상으로 진행하는 공격이다.

0개의 댓글