TCP SYN Flooding, TCP Connection Flooding (모의 실습)

oolongeya

·

2021. 8. 25. 16:19

이 활동은 가상으로 구현된 모의 환경에서 실습을 다룹니다. 이 활동은 교육목적으로 진행하며 게시글 또한 불법이 아닌 교육목적으로 게시한 글임을 알립니다.
허가받지 않은 시스템의 접근과 해킹은 불법입니다.

공격자(kali), 피해자(Linux)

공격자가 시퀀스 넘버를 조작하여 SYN Flooding 공격을 수행한다.
피해자는 공격을 통해 telnet 접속이 불가능한 것을 확인한다.

 

DoS 공격의 일종이다.

 

네트워크에서 서비스를 제공하는 시스템은 동시 사용자 수가 제한되어 있다.

TCP의 3 way-handshake를 이용해 공격할 수 있다.

 

1. 존재하지 않는 클라이언트가 서버에 접속하는 것처럼 속여 SYN 패킷을 전송한다.

2. 서버는 클라이언트에게 SYN+ACK 패킷을 보낸 후 ACK 패킷을 대기한다.

3. 존재하지 않는 클라이언트이므로 ACK 패킷을 보낼 리가 없다.

 

SYN Flooding 공격 같은 경우 syn cookie로 방어할 수 있다.

 

Syn Cookie 란?
https://raisonde.tistory.com/entry/Syn-Cookie-Syn-Flooding-%EB%B0%A9%EC%96%B4-%EA%B8%B0%EB%B2%95

클라이언트에서 연결요청이 있을 경우 SYN/ACK 패킷에 특별한 쿠키값을 담아 보낸다.

ACK가 올 경우 쿠키값을 검증하여 제대로 된 값인 경우 연결을 형성한다.

연결 수립에 필요한 정보들을 Cookie를 통해 보내서 SYN Backlog Queue를 사용하지 않는다.

고의적으로 연결을 완료하지 않아 Syn Backlog Queue를 가득채우는 공격을 방지할 수 있다.

 

따라서 모의 실습에서는 SYN Flooding 공격을 위해 이 옵션을 꺼야한다.

 

Syn cookies 를 비활성화 해준다.

 

telnet 서비스 접속이 잘 되는 것을 확인한다.

 

 

터미널 탭 1에선 hping3 -S --rand-source -p 23 --flood (ip)로 공격한다.

 

탭 2에서 telnet 접속을 확인해보자

 

 

이제 피해자(Linux)에서 syn cookies 를 활성화해보자.

 

SYN Flooding 공격에도 telnet에 접속이 되는 것을 확인할 수 있다.

 

이와 비슷하게

 

TCP Connection Flooding 공격

- 한 개의 ip가 다양한 포트로 SYN 패킷을 전송한다.

- 클라이언트와 서버는 3 Way-handshake를 통해 세션을 연결한다

- 세션 연결이 Full이 되면 더 이상 연결이 불가능하다.

 

DNS Query Flooding 공격

- DNS Query 요청 패킷을 대량으로 보내서 공격한다.

- 많은 Query를 발생시켜 서버가 더 이상 DNS 응답을 하지 못하도록 한다.

 

DDoS는

 

여러대의 공격자를 분산적으로 배치하고 동시에 Dos 공격을 하는 것이다.

반응형