- 분산 서비스 거부 공격 DDoS(Distributed Denial of Service)
이 공격은 DoS처럼 인터넷 트래픽의 폭주로 공격 대상이 정상적으로 네트워크가 작동하지 않게 한다. 그러나, DDoS는 1대 1로 싸우는 것이 아닌 1대 다수로 싸우게 된다.
갑자기 이슈가 되어 접속자가 많아진 웹사이트와 DDoS 공격을 받고 있는 웹사이트를 구별하는 것은 어렵다. 숙련된 DDoS 공격은 알려진 해결책으로도 방어가 매우 어렵다. 뚜렷한 해결책이 없어서 DDoS는 방어라는 표현보다는 완화라는 표현을 사용할 정도이다.
일반적인 경우는 공격자가 다수의 보안이 약한 일반 사용자를 먼저 공격한다.(=좀비PC 생성) 그리고 그들의 컴퓨터에서 원격으로 진짜 목표에 트래픽을 보낸다. 이로 인해 진짜 공격 대상은 너무 많은 요청으로 인해 정상적인 서비스를 하지 못하게 된다. 공격을 위해 공격 날짜를 미리 정해야 하며, 사회적인 영향을 키우기 위해 특정 기념일에 공격하는 경우도 있었다.
- DDoS 공격 유형
1) 이전 포스팅 했던 DoS를 좀비PC들이 수행
2) 좀비PC들이 http 요청(GET, POST 등)을 연속적으로 전송
3) 정규표현식을 검사하는 로직에 검사에 시간이 걸리는 문자들을 넣어서, 서버의 자원을 낭비
- 좀비PC가 되지 않으려면?
1) 기본적인 보안 수칙을 지킨다. (수상한 파일 실행하지 않기10 등)
2) 웹 서버도 조심해야 한다. 포트폴리오를 올려놓은 웹 서버도 약한 보안조치로 인해 좀비pc가 될 수 있다.
- DDoS 방어 방법
웹 개발 과정에서 비정상적으로 빠르게 같은 요청을 보내는 사용자를 일시적으로 방화벽에서 차단하는 방법 등을 사용할 수 있다. 이외에도 로드 밸런서를 도입해도 효과적이다. 로드 밸런서는 많은 사용자들이 몰릴 때를 대비해 많이 사용하지만, DDoS 완화에도 효과가 있다.
그러나 작정하고 공격할 경우, 단순히 개발자의 노력만으로는 힘들다. 따라서 DDoS는 어쩔 수 없이 솔루션을 추천하며, 보통 클라우드 컴퓨팅을 제공하는 곳에서 DDOS 완화 솔루션을 같이 제공하기도 한다.