본문 바로가기

web/웹 해킹 및 보안

JavaScript-based DDoS[번역]

 

짧은 번역으로 시작합니다. 

 

https://blog.cloudflare.com/an-introduction-to-javascript-based-ddos/

 

An introduction to JavaScript-based DDoS

CloudFlare protects millions of websites from online threats. One of the oldest and most pervasive attacks launched against websites is the Distributed Denial of Service (DDoS) attack.

blog.cloudflare.com

Javascript DDOS 작동 방식 

대부분의 웹사이트의 상호 작용 방식은 자바스크립트를 사용한다.

 

웹사이트들은 HTML에 직접 자바스크립트를 추가하거나, 원격 장소에 있는 자바스크립트를 로드하여 

<script src="">

상호작용 방식의 요소(interactive elements)들을 포함 시킵니다.

 

브라우저들은 src가 가리키는 소스코드를 가져와 웹사이트의 문맥(context)으로 실행시킵니다.

 

2000년대 중반 웹 2.0 붐을 일으켰던 기본 개념은 사이트들이 자바스크립트를 이용해 비동기적으로 컨테츠를 로딩하는기능이었다.

 

웹 페이지들은 링크로 이동하거나 새로운 페이지들을 로드하지 않고, 새로운 컨테츠들을 로드 할 수 있어 장호작용하게 되었습니다. 

 

자바스크립트의 HTTP(S) 요청을 만드는 기능은 웹사이트를 더 재미있게 만드는데 사용 될 수 있지만,

브라우저를 무기로 바꿀 수도 있습니다. 

 

예를 들어, 아래의 스크립트는 피해자의 웹사이트에 과도한 요청을 보낼 수 있습니다.

function imgflood() {
  var TARGET = 'victim-website.com'
  var URI = '/index.php?'
  var pic = new Image()
  var rand = Math.floor(Math.random() * 1000)
  pic.src = 'http://'+TARGET+URI+rand+'=val'
}
setInterval(imgflood, 10)

이 스크립트는 페이지내에 이미지 태그를 1초에 100번 생성합니다. 

이 이미지테그는 "viction-website.com"을 랜덤값을 매개변수로하여 가리킵니다.

 

이 스크립트가 포함된 웹사이트를 방문한 모든 사용자들은 자신도 모르게 "viction-website.com" DDOS 공격의 참여자가 됩니다. 

 

브라우저를 통해 전송된 메시지들은 유요한 HTTP 요청이며, Layer 7 공격입니다.

 

이러한 공격은 네트워크 기반 공격(NTP/DNS reflection) 보다 더 위험할 수도 있습니다.

 

단순히 많은 데이터를 가진 "clogging up the pipes" 보다는 Layer7 공격이 웹 서버와 백엔드를 작동하게 하여 웹 사이트의 자원을 과부화시키고 웹사이트가 응답을 하지 않게 합니다. 

 

만약 공격자가 웹사이트 페이지안에 이 자바스크립트를 설정해 놓는다면,

사이트 방문자들은 DDOS 공격에 가담 됩니다.

방문자들이 많은 사이트 일 수록, DDOS도 공격도 커집니다.

 

특수 제작된 공격 사이트는 일반적으로 방문자가 많지 않기 때문에 공격의 강도가 낮습니다.

 

이 기술로 대규모 디도스 공격을 수행하는 데에는 많은 창의력이 필요합니다

 

Man-in-the-middle

웹사이트들은  웹서버에서 출발하여 인터넷 네트워크를 거치고 기계에서 기계로 이동함으로써 브라우저에 도착합니다.

브라우저와 서버 사이에 있는 그중 어느 하나의 기계는 어떠한 형식으로든 데이터를 수정할 수 있습니다.

(HTML 혹은 자바스크립트를 변경하는 것을 포함)

 

만약 통신 중간에 있는 컴퓨터가 웹페이지에 악성 자바스크립트를 추가하는 등의 악의적인 행동을 Main-in-the-middle 공격이라고 합니다. 

 

 

전송중인 웹 사이트를 수정하는 것은 흔히 ISP 와 wifi 제공자들의 수익화입니다.

이것은 호텔의 네트워크, 무선 네트워크등등의 광고를 넣거나 쿠키를 추적하는 방법입니다.

자존심 강한 기업들은 전형적으로 사이트에 공격 코드를 주입하지 않습니다.

하지만 인터넷의 일부로서 그들은 그렇게 할 수 있는 능력을 가지고 있습니다.

 

만약 공격자가 ISP와 유사한 권한이 있는 네트워크 위치(network interconnect or peering exchange)

를 얻는다면, 공격자 네트워크를 통과하는 웹사이트에 JavaScript를 주입할 수도 있습니다. 

 

주입한 JavaScript에 DDoS 스크립트가 포함되어 있다면, 모든 웹사이트의 방문자들은 DDoS의 참여자가 됩니다.

이는 악의적인 네트워크를 통과하는 모든 웹사이트 혹은 웹 에셋(asset)에서 발생할 수 있습니다.

 

설상가상으로 인기있는 JavaScript 파일의 경로가 공격자의 네트워크를 통과하는 경우에는 공격에 참여하는 브라우저의 수는 급격히 증가할 수 있습니다. 

 

-번역 끝-

여기까지가 cloude flare 블로그에서 설명하는 js ddos & mitm입니다.

 

cloude flare 블로그 댓글에 github ddos에 대한 언급이 있어서 찾아봤습니다.

 

분석이 잘 되어있어서 따로 추가할 부분도 없고 읽어보시면 좋을 것 같습니다.

https://www.netresec.com/?page=Blog&month=2015-03&post=China%27s-Man-on-the-Side-Attack-on-GitHub

 

China's Man-on-the-Side Attack on GitHub - NETRESEC Blog

On March 27 The following message was posted on the official GitHub blog: We are currently experiencing the largest DDoS (distributed denial of service) attack in github.com's history. The attack began around 2AM UTC on Thursday, March 26, and involves a w

www.netresec.com