분산 반사 서비스 거부 공격

덤프버전 :

파일:다른 뜻 아이콘.svg
DRDos은(는) 여기로 연결됩니다.
운영체제에 대한 내용은 DR-DOS 문서
DR-DOS번 문단을
DR-DOS# 부분을
, {{{#!html }}}에 대한 내용은 문서
#s-번 문단을
#s-번 문단을
# 부분을
# 부분을
, {{{#!html }}}에 대한 내용은 문서
#s-번 문단을
#s-번 문단을
# 부분을
# 부분을
, {{{#!html }}}에 대한 내용은 문서
#s-번 문단을
#s-번 문단을
# 부분을
# 부분을
, {{{#!html }}}에 대한 내용은 문서
#s-번 문단을
#s-번 문단을
# 부분을
# 부분을
, {{{#!html }}}에 대한 내용은 문서
#s-번 문단을
#s-번 문단을
# 부분을
# 부분을
, {{{#!html }}}에 대한 내용은 문서
#s-번 문단을
#s-번 문단을
# 부분을
# 부분을
, {{{#!html }}}에 대한 내용은 문서
#s-번 문단을
#s-번 문단을
# 부분을
# 부분을
, {{{#!html }}}에 대한 내용은 문서
#s-번 문단을
#s-번 문단을
# 부분을
# 부분을
, {{{#!html }}}에 대한 내용은 문서
#s-번 문단을
#s-번 문단을
# 부분을
# 부분을
참고하십시오.





1. 개요
2. 설명
3. 특징
3.1. 더 향상된 은닉
3.2. 증폭 공격의 구현
4. 현황


1. 개요[편집]


DRDoS (Distributed Reflection Denial of Service Attack, 분산 반사 서비스 거부 공격)

IP Spoofing을 이용한 서비스 거부 공격 중의 하나이다. Internet Protocol의 약점과 서버들의 응답성을 악용한 공격이다. 간단히 말하자면 보낸 이의 주소를 바꿔치기한 요청을 보내서 원래 보낸 주소가 아닌 바꿔치기한 주소로 응답이 가도록 하는 것이다.


2. 설명[편집]



IP 헤더에 들어가는 송신자 IP 주소를 피해자의 IP로 조작하여, 정상적인 서비스를 하는 서버들에게 서비스를 요청한다.[1] 그렇게 하면 일반적으로 서버들은 패킷의 송신자 IP를 보고 그 IP로 응답을 하는데 이로 인해 서비스를 요구하지도 않은 피해자에게 이에 대한 모든 응답이 되돌아가게 된다. 이를 고속으로 반복하여 피해자에게 대량의 트래픽을 유발, DDoS 공격의 형태로 만든 것이 바로 DRDoS이다. 여기서 IP가 위조된 패킷을 받아 피해자에게 의도치 않게 공격을 가하게 되는 서버들을 반사체나 반사자(Reflector), 또는 반사 서버(Reflection Server) 라고 하며, 인터넷 상에 연결 되어 외부의 요청에 대한 응답을 하는 어떠한 컴퓨터라도 반사체로 악용 될 가능성이 있다. 물론 여러분의 PC도 반사체가 될 수 있다.

일반적으로 UDP, 그중에서도 특히 NTP와 DNS 포트를 이용하는 경우가 많다. NTP와 DNS서버가 인터넷 상에 공개되어 있는 경우가 많기 때문. TCP의 ACK 응답을 악용하는 형태로도 공격할 수 있다. 2018년에는 Memcached UDP 취약점을 이용한 대규모 DRDoS 공격이 보고되었다.


3. 특징[편집]


DRDoS가 일반적인 DDoS와 차별되는 특징은 크게 두가지가 있다.


3.1. 더 향상된 은닉[편집]


IP Spoofing만 되어 있어도 귀찮아지는데 중간자 역할을 하는 반사체까지 끼어 있어서 DDoS에 비해 공격 근원지를 찾아내기가 훨씬 까다롭다. 실제로도 직접적인 공격을 가하는 시스템은 반사체인데 이들은 공격자에 대한 정보를 전혀 가지고 있지 않을 뿐더러, 공격자가 발생시키는 공격 트래픽이 피해자에게 직접 전달 되지도 않기 때문에 공격이 끝나고 피해 서버에 남아있는 로그로 추적해보려고 해도 공격자에 대한 정보를 찾을 방법이 없다. 그러다보니 어떻게든 공격이 끝나도 추적이니 뭐니 하면서 후처리가 가능한 DDoS와는 달리 DRDoS는 일단 공격이 끊기면 단기적인 공격은 사후처리가 사실상 불가능하다는 특징이 있다.

당연히 공격자가 무조건 안전한 것은 아니다. 다른 이유로 인해 공격자가 노출될 수도 있고 어차피 트래픽은 ISP 업체의 라우터를 통해 흘러다닐 수 밖에 없기 때문에 공격 트래픽이 모니터링 될 가능성도 있다. DDoS에 비해서 더 많은 대비와 신속한 대응을 필요로 하지만 어찌됐든 공권력으로 쥐잡듯이 뒤져보면 다 찾을 수는 있기 때문에 장기적인 공격을 계획하는 공격자 입장에서는 이 특징이 크게 의미가 없다.


3.2. 증폭 공격의 구현[편집]


반사체의 응답 트래픽이 방어자에게 돌아간다는 원리를 응용하여 실제 공격시에 반사체로부터 가능한한 큰 응답을 끌어내 공격 규모를 극적으로 향상시킬 수 있다. 즉, 공격자가 시도한 공격 규모에 비해서 피해자가 실제로 받는 공격 규모가 커진다. 문제는 이게 단순히 2배 3배 수준이 아니라 적어도 수십배, 많으면 수백배씩 말도 안되게 상상도 못할 수준으로 공격 규모가 커질 수 있으며,[2] PPS[3] 증폭까지 덤으로 발생한다는 것이다. 이로 인해서 실제 공격자가 단독으로 공격을 전개하더라도 어지간한 DDoS 이상의 공격 규모가 구현되고 좀비PC까지 동원해서 구현되기라도 하면 수백Gbps~수Tbps급의 국제적 규모가 되어버려 매우 심각한 문제를 일으키고 있으며, 이정도가 되면 방어 설정을 할 수 있고 없고가 문제가 아니라 공격 크기 자체가 문제가 된다.[4]


4. 현황[편집]


위에 서술한대로 보자면 뭔가 엄청난 기술같지만 생각보다 전망이 좋지는 않다. DDoS보다 동작 조건을 만족시키기 어렵고 성능에 영향을 주는 변수가 많다보니 오히려 일정 이상의 공격 규모부터는 역효과가 나기 쉽기 때문이다. 특히 증폭을 통해 공격력이 뻥튀기 되는 만큼 에이전트로 쓸 수 있는 시스템도 이에 반비례해서 적다보니 절대적인 규모도 DDoS에 비해 그다지 이득을 보기 어렵고 반사체들은 자신들이 악용되지 않게 점점 방어를 시도하고 있는데다 증폭 특성을 만드는 각종 프로토콜의 결함들도 시간이 지남에 따라 보완이 이루어진다. 이렇게 되면 절대적인 반사체들의 쪽수가 확 줄어들기 때문에 한번 노출된 방법으로는 테라비트 단위의 대규모 공격을 만들기가 상당히 힘들다.[5] 원리 자체가 다른 시스템을 간접적으로 이용하는 것이고 인터넷 서비스는 변화가 굉장히 빠르기 때문에 어줍잖은 지식으로는 제대로 된 공격을 성립시키기 어려워서 변화에 적응할 능력이 없는 툴키디들이 범접하기 힘든 영역이다.[6]

더불어 DRDoS 공격은 IP Spoofing이 가능함을 전제조건으로 사용할 수 있는 공격 방식이다. RawSocket을 이용해 Source IP를 변경해야하는데 IP Spoofing은 오래전부던 악용되었던 공격이라 윈도우는 XP 서비스팩 2 이후 RawSocket을 사용할 수 없도록 바뀌어[7] 리눅스를 사용해야 원활한 DRDoS 공격을 할 수 있다. 또한 ISP의 라우터는 Source IP가 변조된 패킷을 필터링하고 있다. 따라서 대부분의 시스템은 IP Spoofing이 불가능하다. 설령 가능한 지역이 있다 하더라도 ISP가 알아챈다면 어차피 그 후로는 사용할 수 없게된다. 이처럼 기본 전제조건인 IP Spoofing이 가능한 시스템은 매우 희귀하여 이를 만족할 수 있는 시스템을 구하는것 조차 큰 어려움이 있다.

2015년 이후부터는 DRDoS 공격에 자주 악용되던 프로토콜들이 보완됨에 따라 평균 공격 빈도와 규모가 조금씩 감소하는 추세다. 특히 사물인터넷이 발달함에 따라 PC뿐만이 아니라 여러 솔루션의 시스템을 DDoS 공격에 참여시켜 압도적인 쪽수로 밀어버리는 방법이 유행하고 있다. 그러나 DRDoS는 일단 세팅만 적당히 되면 써먹기가 편리한 점 때문인지 쉽게 사라지지는 않는 상황이며, 증폭 가능한 취약점이 발견되면 어마어마한 증폭배율로 막대한 트래픽을 생성하기에 최고 공격 규모 역시 대부분 DRDoS 공격이 갱신하고 있다.



파일:크리에이티브 커먼즈 라이선스__CC.png 이 문서의 내용 중 전체 또는 일부는 2023-12-01 07:10:05에 나무위키 분산 반사 서비스 거부 공격 문서에서 가져왔습니다.

[1] 쉽게 설명하기 위해 뭔가를 요청한다는 뉘앙스로 썼지만 어찌됐든 서버에게서 뭔가 응답을 받을수만 있으면 된다.[2] DNS 기반일 경우 최고 57배, NTP는 최고 1004배의 증폭 공격이 가능하다. 즉, 100Mbps의 일반 가정집 회선으로도 NTP 기반 DRDoS 공격을 전개하면 이론상으로는 컴퓨터 단 1대로 약 100Gbps 규모의 DDoS 공격을 발생시킬 수 있다는 것이다. 심지어 비교적 최근에 공개된 memcached 기반 공격은 일반적으로 대략 5만배, 이론상으로는 증폭비가 아예 무제한이다.[3] Packet per Second, 초당 패킷 수[4] 방어장비는 화살을 막는 방패마냥 무조건 공격을 막아주는게 아니라 들어오는 쓰레기 트래픽을 필터링하여 하위망의 가용성을 지키는, 일종의 거름망 같은 기능을 하는 장비다. 방어장비 상단의 회선 용량마저 초과할 수준으로 큰 공격이 들어와버리면 방어장비고 뭐고 다 무용지물이다.[5] 프로토콜에 따라 다르지만 대부분 악용되는 반사 서버들의 세팅을 약간 조정해줌으로써 손쉽게 무력화 된다. Memcached 기반 공격의 경우, 취약한 Memcached 서버의 캐시를 무효화하는 방법으로 아예 방어자가 증폭 공격 자체를 원천 차단할 수 있다.[6] 최근 깃허브 등지에 DRDoS 공격을 수행하는 스크립트등이 올라와 툴키디들이 이를 어설프게 사용하는 경우가 생겼는데 어차피 앞서 말한 내용과 후술할 내용으로 인해 사용하기 힘든 공격이다.[7] 다만 Winpcap 드라이버를 사용하면 가능하다.