개요
DDoS에 대해 간단히 설명하고 어떤 공격 기법이 있는지 알아본다.
Amplification
DDoS는 결국 트래픽을 전송하여 서비스를 거부시키는 공격인데 정직하게 하나씩 보내서는 공격자의 Cost가 너무 높기 때문에 Cost를 낮추기 위해 적은 트래픽으로 많은 트래픽을 유발할 수 있는 방법을 이용한다,
Smurf
특정 네트워크의 Target 주소로 Broadcast 주소에 요청을 날린다. 그럼 해당 네트워크 전체는 Target 주소로 해당 요청에 대한 응답을 보내게 된다. 따라서 하나의 패킷으로 해당 네트워크 전체의 호스트 수 만큼으로 증폭시킬 수 있는 것이다.
Memcached
database 같은 곳에 cache 된 데이터를 요청한다. Target의 주소로 요청하기 때문에 해당 요청에 대한 응답은 결국 Target으로 가게 된다. 이는 적은 크기의 Quary payload로 매우 큰 양의 cache data가 전송되기 때문에 이것도 증폭에 해당한다.
DNS
위와 비슷한 맥락으로 DB에서 DNS Server로 이용하는 것만 달라졌을 뿐이다 이것도 적은 크기의 DNS Quary payload로 매우 큰 양의 data가 전송된다.
TCP SYN flooding
SYN을 특정 Server에 많이 보낸다. 랜덤한 IP로 보내 전부 다른 요청으로 보내서 Backlog queue를 전부 채워버리는 것이다. 이렇게 하면 다른 요청에 대해서는 연결이 이루어질 수 없게 된다. 이는 유한한 자원인 Backlog queue에 대해 고갈시키는 공격으로 생각보다 크기가 큰 자원은 아니기 때문에 별도의 솔루션이 없으면 쉽게 공격당할 수 있다.
Backscatter Effect
IBR을 보면 이러한 Amplification에 대해 시각적으로 확인할 수 있다. 이를 Backscatter Effect라고 하는데 특정 소수의 패킷으로 많은 패킷을 유발하기 때문에 뒤로 퍼지는 현상을 볼 수 있다.
Botnet-Driven DDoS Attack
DDoS는 분산형 DoS 공격인 만큼 한대의 PC로 하지 않고 여러대의 PC를 이용하는데 이러한 것을 가능하게 하는 것이 Botnet이다. Botnet이란 네트워크로 연결된 Bot들의 집합으로 Bot은 흔히 말하는 좀비PC와 동일한 개념이다. 아무튼 이러한 bot들을 통제하여 공격을 시도해야 하는데 이 통제 주체를 C&C(Command and Control)라고 한다.
Traditional
전통적인 DDoS 공격 명령은 하나의 C&C에서 순차적으로 명령을 하달하는 방식으로 비교적 간단하게 구축할 수는 있지만, 명령을 전달하는 과정에서의 Latency가 발생하여 완전히 동시에 공격을 시도할 수는 없다. 위의 SYN Flooding 공격을 예시로 들자면 평균적으로 3분만에 backlog queue를 채워야 하는데 이런식으로 순차적인 공격은 그렇게 효과적이지 못할 수도 있다.
Modern
기존의 방식이 아닌 Bot들을 P2P로 연결해놓는 방식이다. 따라서 순차적으로 명령이 전달되지 않고, 명령을 받은 Bot들이 자신과 연결된 다른 Bot들에게도 명령을 전달하여 비교적 빠르게 명령이 전달될 수 있도록 한 방식이다. 당연히 기존 방식보다 동시성이 강화되었지만, Bot들을 전부 P2P로 연결을 해두어야 하기에 구축 자체의 난이도는 더 높아진다.
Mirai
현재 가장 위협적인 Botnet malware 중 하나인 Mirai를 통해 더 자세한 내용을 알아보자.
Mirai?
기존 PC만을 노리는 방식과는 달리 IoT 장비까지 Bot으로 만드는 방식으로 일단 기본적을 IoT 장비가 많기에 Bot 확보가 쉽고 게다가 IoT장비는 기존 PC보단 취약점이 많기에 매우 빠르게 Bot들을 확보할 수 있게 된다. 주로 하는 방식은 Scanning을 통해 telnet port를 찾고 해당 port를 통해 해당 장비의 default password를 넣어 권한을 탈취한다. 생각보다 많은 장비들이 default 설정을 변경하지 않기에 효과적으로 해킹이 가능하다. 추가적으로 Open source화 하여 여러 해커 및 연구자에 의해 폭발적으로 고도화된 케이스이기도 하다.
1. Scan
일단 기본적으로 scan을 통해 감염 대상을 찾는다. 23, 2323 port를 중점적으로 찾고 statelessly하게 scan하여 속도를 매우 빠르게 한다. 그 다음 위에서 말했듯이 default password를 넣어 해킹을 시도한다.
2. Report
해킹이 성공하면 해당 장비의 IP 정보를 Master server에 report한다.
3. Dispatch
Report 이후 해당 PC는 또 다른 감염원으로 동작하여 지속적으로 주변 기기들을 감염시킨다.
4. Loader
이제 명령을 수행할 수 있도록 malware을 설치하고 실행시킨다. 이러한 과정에서 사용자에게 식별되지 않도록 바이너리 파일 및 프로세스 이름에 대해 난독화를 수행한다.
Send command, Relay, Attack
이후 C&C는 명령을 내리고 해당 명령을 서로 전달한 뒤 공격을 수행하는 방식이다. 공격은 Flooding(HTTP, UDP, TCP)나 GRE 타입 등이 있다.
Crossfire Attack
DoS 공격 중 특정 Server같은 node가 아닌 link를 공격하는 방식으로 link flooding이라고도 한다. 이러한 공격은 평범한 트래픽과 구분하기 힘들어 공격에 대한 방어가 쉽지 않다.
Scan
Tracerouter를 통해 병목지점을 찾는다. 해당 부분을 타겟으로 설정하여 효과적인 공격을 수행한다. 이는 주로 flow density를 측정하여 높은 것을 타겟으로 지정한다,
Bot Coordinate
해당 지점을 통과할 수 있도록 decoy server를 두고 해당 server를 타겟으로 공격을 시도한다. 이런 방식으로 진행하면 Host에 설치된 장비로는 공격 탐지가 어려우며, 특정 Server가 타겟이 아니기 때문에 보다 광범위한 공격이 가능하다.
Trand
요즘은 이런 공격에 대한 미티게이션으로 Reverse proxy를 많이 사용한다. Cloud flare가 대표적이며 앞에 DoS를 받아주는 하나의 방패를 두는 식이다.
공격 방식으로는 Ransom DDoS라 하여 DoS 공격을 한 뒤 현금을 요구하는 식으로 범죄에 악용된다. 문제는 이런식의 DoS를 완벽히 막을 방법이 없는 것이다 HTTP 같은 경우 단순히 보면 일반적인 패킷과 구분하기 어렵기 때문에 이를 막으려면 비용이 많이 발생한다.
'4학년 1학기 > 네트워크 보안' 카테고리의 다른 글
14. SSL/TLS (0) | 2024.05.27 |
---|---|
13. Authentication (0) | 2024.05.23 |
11. IPSec (0) | 2024.04.20 |
8. DoS Defense (1) | 2024.04.19 |
7. Intrusion Detection (0) | 2024.04.19 |