[DOS공격] 2. SYN Flooding 시연
서유기 는 고전 필독서 중에 하나로서, 많은 사람들이 어릴적에 한번쯤 읽어보거나, 만화,영화 등으로
접하는 대표적인 작품중에 하나 입니다. 서유기 작품을 빗대어 이번 시간에는 네트워크 해킹중에서
SYN Flooding 공격 에 대해서 알아보겠습니다.
서유기에서 손오공은 여러가지 공격을 쓸 수가 있는데요.
여의봉이 길어진다거나, 요술을 부린다거나 하는 등 신통방통 한 공격으로 적을 당혹 시킵니다.
그중에서도 머리털을 뽑아서 분신술을 쓰는 공격기법이 참 인상적 이더군요.
머리털 갯수가 엄청 많으니 그것이 자신의 또 다른 분신이 태어나서 적을 공격하면... 무시무시 하겠죠?
머리털 분신술 공격 = SYN Flooding 공격
- 보통 네트워크는 서비스를 제공하는 시스템은 사용자 수가 제한되어 있습니다. SYN Flooding
공격은 존재하지 않는 클라이언트(사용자)가 서버별로 한정되어 있는 접속 가능 공간에 접속한
것처럼 속여서 다른 사용자가 서비스를 제공받지 못하게 하는 기법 입니다.
서유기에서 손오공이 자신의 머리털을 뽑아서 '후' 하고 불면 자신의 분신을 만들어서 공격을
하듯이 한정된 사용자 수를 손오공이 머리카락 분신으로 모두 자기 분신으로 채우는 것이죠.
TCP / IP 프로토콜은 아시는 분들은 아시겠지만 '보안' 을 생각하고 나온 녀석이 아닙니다.
그래서 취약점이 존재 할 수 밖에 없으며 오래전 네트워크해킹 공격의 상당수가 아직도
유효한 경우가 많습니다.
SYN Flooding 공격시 해커는 3-way-handshake(쓰리웨이 핸드쉐이크) 과정에서
서버를 다운 시키기 위해 짧은 시간안에 많은 양의 SYN만 보냅니다.
그것도 출발지 주소지를 존재하지 않는 시스템의 IP주소로 위조한 패킷을 보냅니다.
위조한 패킷을 보내는 이유는 서버와 분신술 놀이를 하기 위해서 입니다.
해커는 하나지만 여기저기 숨어서 수많은 클라이언트(사용자) 인것처럼 보이게 해야 하기
때문이죠
그림에서 보시는 바와 같이 왼쪽이 클라이언트 이고 우측이 서버 입니다.
1.클라이언트는 서버에에게 '접속요청' SYN 패킷을 보냅니다.
2.서버는 받은 SYN 패킷에 대한 SYN/ACK 패킷을 각 클라이언트에게 보냅니다.
3.서버가 보낸 SYN / ACK 패킷에 대한 ACK 패킷을 서버는 받지 못합니다.
4. 서버는 세션의 연결을 기다리게 되고 공격은 결국 성공 합니다.
이렇게 되는 이유는 시스템 설계 자체가 SYN에 대한 연결을 무한정 기다리기만 하는 것이 아니라
일정 시간동안만 연결을 시도하고 기다리도록 설정 되어 있기 때문 입니다.
그러므로 SYN Floodong 공격을 Success 시키려면 서버에 설정된 대기 시간안에
서버가 수용할 수 있는 동시 사용자 수의 한계를 넘는 연결을 시도해야 합니다.
SYN Flooding 도스공격 실습
타겟측에서 IP를 확인 합니다.
알FTP 등을 통해 서버를 열어줍니다. 알FTP의 경우 보통 5명까지 설정 되어 있습니다.
본 포스팅은 보안공부를 위해 작성하였으며 악용하면 책임은 본인에게 있다는점 을 명심하시길 바랍니다.