짧은 번역으로 시작합니다.
https://blog.cloudflare.com/an-introduction-to-javascript-based-ddos/
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
'web > 웹 해킹 및 보안' 카테고리의 다른 글
NEW? XSS Error bypass using '{}' (js block statement) (0) | 2020.02.25 |
---|---|
Dom Clobbering (with XSS) (19) | 2019.11.30 |
SSG CTF 2017[noitcejni] payload 및 후기 (3) | 2017.05.30 |
OWASP 취약점 정리(4/10) 취약점 직접 객체 참조 (0) | 2017.05.25 |
OWASP 취약점 정리(3/10) XSS (0) | 2017.05.25 |
댓글