Computer Science

DDos 공격은 무엇이고, 어떻게 대응하면 좋을까?

DDos 공격이란?

DDos 공격이란 분산 서비스 거부 공격(Distributed Denial of Service Attack)으로서 인터넷상에서 사이트 공격을 하는 방법 중 하나로 사이버 테러의 대표적인 경우이다.

 

기본 원리는 생각보다 단순하다. 웹 서버에 비정상적으로 많은 트래픽을 흘려보내 웹 서버가 과도한 트래픽 소모 및 프로세스 진행, 과도한 입출력을 수행하도록 하여 서버가 먹통이 되게 만드는 기본적인 서버 공격 방법이다. (어떤 글에서 다구리와 같다고..)

나쁜 의도가 아닌 정상적인 접속이 폭주에 먹통이 되는 것도 DDos 공격과 같은 원리를 갖는다. 가장 쉬운 예를 들자면 수강신청 때 너무 많은 학생들이 한꺼번에 몰려 사이트가 먹통되는 경우? 이러한 경우 또한 DDos라고 볼 수 있으며 어택이 빠진 경우이다.

 

아무튼, 이러한 디도스 공격에 대해서는 어떻게 대응하면 좋을까?

1. 규모에 대해 선대비하기

 

충분한 서버 용량 및 대역폭을 확보해둠으로서 한꺼번에 접속이 폭주하는 것에 대해 대비할 수 있다.

 

2. 공격 지점을 줄여서 DDos 공격 대비하기

 

어플리케이션에 도달할 수 있는 가능한 트래픽의 유형을 줄인다. 예를 들어 웹 애플리케이션을 만들 때, 인터넷으로 80과 443 포트만을 오픈하는 것이다. 이를 통해서 DDos 공격에 사용되는 다양한 공격 기법들을 막을 수 있다. (왜? 통신이 일어나지 않는 포트들을 마구 열어둔다면 여러 포트에서 공격이 들어올 수 있고, 대응하는 것이 어렵다.) 이에 대한 방법으로 SSH bastion 서버를 구축하는 것이다. SSH Bastion 서버는 오로지 관리자만이 SSH를 사용하여 접근할 수 있도록 제한하기 위해 하나의 EC2 인스턴스에 구성된다. 이를 통해 관리자는 TCP 22번 포트를 이용해 인터넷이나 허용된 아이피로부터 접근할 수 있게 된다. 만약 22번 포트에 대해 공격을 받게 된다면 SSH 서비스에 대한 부분만 지장을 받기 때문에 공격자가 이 포트를 통해 어플리케이션에 영향을 주려는 시도를 차단할 수 있다.