본문 바로가기

OSI 7계층/[기타] 보안

SYN Flooding이란?

안녕하세요 여러분!

IT 세계에는 다양한 분야가 존재합니다. 멀고 먼 험난한 길이지만...

우리는 지금까지 네트워크 영역을 다루고 이제 보안 영역에 들어와 계속해서 순항중에 있습니다.

비록 앞에 험난한 길이 있더라도 오늘은 SYN Flooding에 대해서 알아보도록 하겠습니다.

 

1. SYN Flooding란 무엇일까?

아래의 그림과 같이 우리가 일반적으로 TCP 통신을 하기 위해서는 3-way-handshaking이란 과정을 거쳐야 합니다!

잘 기억이 안나신다고요? 그럼 여기를 참고해 주세요 https://run-it.tistory.com/21

 

 

일반적인 통신을 하기 위해서는 위처럼 반드시 SYN패킷을 사용해야 합니다. 어떠한 서비스를 제공하느냐에 따라서 SYN 패킷의 사용량이 많을 수도 적을 수도 있습니다.

그래서 우리는 실제로 이게 SYN Flooding 공격이 맞는지 아니면 일반적인 서비스를 제공하는데 있어 들어오는 SYN 패킷인지 구분하기 어려울 때가 있습니다.

아래의 그림처럼 SYN Flooding 공격의 특징은 특정 IP에서 과도한 통신시도를 한다라는 것이 특징입니다.

예를 들어 일반적인 통신은 1개의 IP에서 SYN 패킷이 20개정도가 일반적이라면,

공격자 IP에서는 SYN패킷이 200개, 300개 이상이 발생하는 것입니다.

우리는 이러한 형태를 보고 이게 SYN Flooding 공격이구나라는 것을 파악 할 수 있습니다.

SYN Flooding은 말 그대로 SYN 패킷이 흘러 넘친다이며 이는 과도한 SYN 패킷을 서버에게 전송 하는 것입니다.

과도한 SYN 패킷을 전송함으로서 Server에게 많은 부하를 발생하게 하여 서버가 제기능을 못하도록 하는 것이 바로 SYN Flooding의 목적입니다

 

2. SYN Flooding를 막아보자

SYN Flooding을 막기위해서는 어떠한 방법들이 있을까요?

인터넷에 검색해보면 Server의 time out을 줄여준다, SYN cookie 값을 조정한다 등이 있지만 이는 실질적으로 SYN Flooding 공격을 막을 수 있는 방법은 아닙니다.

 

어...!?! 어라!?!?! 어디서 구원의 소리가 들리시지 않나요?

위 그림처럼 과도한 SYN 패킷이 몰려올때 우리의 구세주가 되어줄 분이 계십니다

바로 Anti-DDoS 기능이죠!

DDoS방어 기능을 간략히 설명드리면 DDoS장비에서는 SYN Flooding 방어에 대해서 아래와 같이 룰을 조정합니다.

EX) 특정 IP에서 10초 동안 SYN 패킷이 200개 들어오면 걔는 30초 동안 출입 금지시켜!

이러한 방어를 임계치 기반 방어라고 합니다.

 

이렇게 특정 IP에서 과도한 SYN 패킷이 들어오는 것을 앞에서 DDoS장비가 막아준다면 서버에서도 원활하게 서비스를 제공할 수 있겠죠?

 

SYN Flooding 이외에도 아래와 같이 여러 종류의 Flooding 공격들이 존재합니다.

ACK Flooding

UDP Flooding

ICMP Flooding

HTTP GET Flooding

여러 Flooding 공격들이 존재하지만 대부분의 Flooding 공격은 SYN Flooding와 유사한 공격형태를 가지고 있으며 목적은 역시 서버의 부하를 발생시켜 시스템 자원을 고갈 시키는 것이 목적입니다.

하지만 DDoS 방어 기능을 이용하여 대부분의 Flooding 공격은 대응이 가능한 부분입니다.

다음에 기회가 된다면 SYN Flooding 이외의 Flooding 공격들에 대해서도 알아보는 시간을 가져 보도록 하겠습니다.

 

오늘도 긴글 읽으시느라 고생많으셨습니다. 조금이나마 도움이 되었을지 모르겠네요! 그럼 다음에 또 만나요!