CC Attack 그리고 User-Agent

CC Attack에 대해서 기본적인 내용만 알고 있었고 세부적으로 몰라 오늘 검색을 해보았습니다.
네이버나 구글 등에서 검색을 하니 User-Agent 필드에 Cache-Control 필드를 넣어 공격을 한다고 나오군요.
보통 넣는 옵션값은 no-store, must-revalidate 이라고 하네요.

음. 여기서 의문이 하나 들었는데 왜 User-Agent 필드에 넣는걸까요?
Cache-Control 이라는 필드가 있는데 여기 들어가야 하는게 아닐까요?
User-Agent에 넣었는데 Cache-Control 옵션이 먹혀서 웹서버에 부하를 준다구요?

우선 Cache-Control 과 관련된 규약은 아래와 같습니다.

Cache-Control   = "Cache-Control" ":" 1#cache-directive

cache-directive = cache-request-directive
     | cache-response-directive

cache-request-directive =
       "no-cache"                          ; Section 14.9.1
     | "no-store"                          ; Section 14.9.2
     | "max-age" "=" delta-seconds         ; Section 14.9.3, 14.9.4
     | "max-stale" [ "=" delta-seconds ]   ; Section 14.9.3
     | "min-fresh" "=" delta-seconds       ; Section 14.9.3
     | "no-transform"                      ; Section 14.9.5
     | "only-if-cached"                    ; Section 14.9.4
     | cache-extension                     ; Section 14.9.6

 cache-response-directive =
       "public"                               ; Section 14.9.1
     | "private" [ "=" <"> 1#field-name <"> ] ; Section 14.9.1
     | "no-cache" [ "=" <"> 1#field-name <"> ]; Section 14.9.1
     | "no-store"                             ; Section 14.9.2
     | "no-transform"                         ; Section 14.9.5
     | "must-revalidate"                      ; Section 14.9.4
     | "proxy-revalidate"                     ; Section 14.9.4
     | "max-age" "=" delta-seconds            ; Section 14.9.3
     | "s-maxage" "=" delta-seconds           ; Section 14.9.3
     | cache-extension                        ; Section 14.9.6

cache-extension = token [ "=" ( token | quoted-string ) ]

출처 : http://www.rfc-editor.org/rfc/rfc2616.txt (Page 107)

그리고 좀 더 검색을 해보았죠. 아래와 같은 이미지가 발견이 되었습니다.

확인을 해보니 Cache-Control 문자열 앞에 0x0d 0xda 가 없는 것으로 보아 정말 User-Agent 필드에 해당 옵션값이 들어감을 알 수 있었습니다. 그리고 저 스크린샷은 "NetBot Attacker VIP" 라는 이름으로 알려진 중국산 DDOS 공격툴을 이용하여 발생한 패킷을 찍은 내용임을 알 수 있었습니다.

오호? 그럼 정말 User-Agent에 저 값이 들어가면 웹서버에서 Cache-Control 옵션이 먹힌다는 것일까요?
그럴리가요. 좀 더 검색을 해보았습니다. 검색을 하니 아래와 같은 내용이 나오더군요.

"일반적으로 알려진 중국 DDoS 공격 툴의 HTTP CC Attack 의 경우 ‘Cache-Control: no-store, must-revalidate’로 설정되어 DDoS 공격에 이용되나, 이는 HTTP 1.1 헤더 규약인 ‘Cache-Control’ 헤더 옵션에 지정되는 것이 아니라 클라이언트의 사용 브라우저 정보를 나타내는 ‘User-Agent’ 헤더 옵션에 추가된 잘못 기재된 사항이다."
출처 : http://www.ahnlab.com/kr/site/securityinfo/secunews/secuNewsView.do?curPage=1&menu_dist=2&seq=16316

푸하하하하하. 그렇습니다. "NetBot Attacker VIP" 라는 DDOS 공격툴 제작자가 프로그램을 만들 때 Control-Cache 필드를 추가 하면서 앞에 "\r\n" 문자열을 안넣어준 것으로 보입니다.

그로 인해 국내의 많은 보안 전문가들은 이 툴을 분석한 후 User-Agent에 Cache-Control 필드가 들어가면 CC Attack이 가능하다고 이해한 것으로 보입니다. 네이버나 구글에서 "CC Attack" 으로 검색하면 여전히 User-Agent 필드에 들어가야 한다는 내용이 다수 보이네요.

마지막으로 제대로 구성된 CC Attack 관련 패킷 스크린샷 입니다. 역시 Cache-Control 문자열 앞에 0x0d 0x0a 가 있는 것으로 보아 필드가 제대로 구성되었음을 알 수 있습니다.

출처 : http://snortrules.wordpress.com/2009/07/08/090707-ddos-attack-rule/

아래 블로그는 CC Attack을 검색하다 발견한 내용인데 댓글에서 빵 터졌습니다 XD
http://seculab.blogspot.com/2009/07/cc-attack.html

PS. 잘못된 내용이 있다면 댓글 부탁 드립니다.

답글 남기기

이메일 주소를 발행하지 않을 것입니다. 필수 항목은 *(으)로 표시합니다