728x90
분산 DoS 공격 (DDoS)
- 공격에 많은 호스트(zombie)를 동원
- 공격자는 공격에 사용하기 위한 호스트(zombie)에 멀웨어를 설치하여 조정
- 공격자가 직접 zombie를 조정할 수도 있지만, 보통 다음의 구조를 갖는다.
- 공격자
- Handler(C&C)
- Agent(zombie)
- Botnet
- Zombie 군단을 보통 봇넷이라고 한다.
DDoS 방어
No zombie - no infection
- 해석: zombie가 없으면 DDoS 공격은 가능하지 않다.
- 그러나 이 방법은 전세계 호스트를 대상으로 해야 하는 일이므로 각 호스트 개인의 책임 영역에 있다.
Source IP address spoofing 방어
- ISP의 협조
- 사용하지 않는 IP 소스 주소의 패킷을 막음
SYN cookie - TCP authentication
- 서버가SYN패킷을받았을때이것이정당한SYN패킷인지아닌지모르 기때문에 half-open 연결을 하지 않는다.
- 대신, 서버는 초기 TCP sequential number를 다음과 같이 계산된 해시값 으로 사용한다.
- TCPSN초기값=H(IP소스주소,IP목적지주소,SYN의포트번호,비밀값),비밀 값은 서버 만이 알고 있는 값
- 이와 같이 계산된 SN 초기값을 SYN cookie라고 한다.
- 그리고 서버는 SYN-ACK을 전송한다.
- 이때, 서버는 SYN cookie 값이나 어떠한 연결 정보도 TCP 버퍼에 기록하지 않는다.
- 나중에 SYN-ACK에 대한 응답을 받으면, 그 패킷에서 동일한 정보로 cookie값을 계 산한다. 만약 cookie+1이 응답된 패킷의 sequence number와 일치하면 정당한 연결 요청으로 TCP 버퍼에 연결 정보를 기록한다.
- 이와 같이 서버는 SYN에 대한 정보를 기록하지 않고도 정당한 연결에 대해서 연결을 설정할 수 있다.
- SYN Cookie는 서버(시스템)의 자원에 대한 공격을 방어하는 방법이다.
- 서버가 네트워크에 연결된 링크의 대역에 대한 공격을 방어하지는 못한다.
다리를 파괴하라 (drop)
- 감당할 수 없을 경우 패킷들을 drop 시킨다.
- 그런데 이때 공격 패킷과 정상 패킷을 구분할 수 없다.
- 공격 패킷 뿐만 아니라 정상 패킷까지 같이 drop된다.
- 그렇다면, DDoS 공격이 어느 정도 성공되었다고 볼 수 있다.
분산 서버 ("눈에는 눈, 이에는 이")
- 서버를 지역적으로 분산시킨다.
- 사실상이방법이현재웹서비스를하는회사들이DDoS를 방어하는 현실적인 방법이다.
- 그래서 대표적인 웹 서비스 회사들의 서버는 DDoS 공격을 당하지 않는다.
- 이러한 분산 서버 운영을 지원하는 대규모(다국적) 웹 호스 팅 서비스 회사들이 존재한다.
공격자 추적
- 앞의 Botnet에서 보았듯이, 전문적인 공격자는 자신의 존재의 자취(log 기록 등)는 남기지 않는다.
- IP 주소로도 추적하기가 힘들다.
- 사실상, 공격자 추적은 가능하지 않고, 단지 zombie들만 추 적할 수 있다.
CAPTCHA
- CAPTCHA(Completely Automated Public Turing test to tell Computers and Humans Apart)는 DoS 공격을 막는 방법의 한 종류라고 할 수있다.
- 공격자가 자동적인(automated) 방법으로 접근을 시도 하려고 할 때 막는 방법이다.