07 서비스 거부 공격
공격의 시발점, DoS와 DDoS 그 차이점에 대해 잘 알고 계시나요?
DoS란 서비스 거부를 말합니다. 공격을 하기 위해 공격 PC는 지속적으로 서버에 패킷을 보냅니다. 그러면 트래픽이 발생하고, 트래픽이 지속적으로 발생하면 서버는 결국 공격을 당하고 말지요. 그러나 서버에서 공격 PC의 패킷을 차단해 버리면 해결이 됩니다.
그래서 한 단계 진화한 것이 DDoS입니다. DDoS란 분산 서비스 거부를 말합니다. 다음과 같이 공격자는 지령 PC에서 DDoS 에이전트에 감염된 파일을 업로드하고, 그 감염된 파일을 받은 PC는 좀비PC가 됩니다. 이렇게 생성된 좀비 PC의 수는 갈수록 많아지고 엄청난 트래픽이 발생하게 되지요. 좀비 PC들의 트래픽을 모두 차단한다고 해도 지령 PC를 찾지 못하면 수 많은 PC들이 공격을 계속하기 때문에 상대하기 매우 까다로운 공격방식이 됩니다. 이제 두 공격의 차이점을 잘 알겠지요? 지금부터 서비스 거부 공격에 대해 더 자세히 알아보도록 하겠습니다.
서비스 거부 공격
1. 서비스 거부 공격
서비스 거부 공격서비스 거부 공격이란 Denial of Service의 약어로 DoS라고 불리며 시스템 또는 특정 서비스의 정상적인 운영을 방해 하는 모든 행위를 말합니다. 기본적으로 공격자가 공격 대상 컴퓨터나 네트워크에 과도한 데이터를 전송하여 네트워크와 시스템의 자원을 고갈 시켜 정상적인 사용자의 접속을 방해합니다.
2. 서비스 거부 공격의 종류
서비스 거부 공격은 크게 지역 시스템에 대한 공격과 원격 네트워크에 대한 공격으로 구분할 수 있습니다.
먼저 지역 시스템 공격은 실제 대상 시스템에 공격자가 접근 후 내부 하드웨어에 직접 과부하를 주는 공격을 말합니다. 공격 유형으로는 메모리를 고갈시켜 서비스를 중단시키거나, 프로세스 서비스 거부, CPU 서비스 거부, 디스크 서비스 거부 등이 있습니다.
원격 네트워크 공격에 해당하는 DoS는 공격자가 목표 시스템에 접근하지 않고 원격지에서 Internet 또는 기타 네트워크 망을 이용한 공격으로 일반적으로 실제 목표 시스템 자원에 심각한 영향을 미치지는 않지만, 서비스를 제공받는 사용자들은 해당 서비스를 제공받지 못합니다. 이러한 원격 네트워크 공격이 심할 경우 실제 시스템에도 영향을 미칠 수 있습니다.
세부 공격 방법
1. 세부 공격 방법
세부 공격 방법이번에는 DoS공격의 세부 공격 방법에 대해서 알아보도록 할까요? 총 여섯 가지가 있는데요.
가장 먼저 Ping of Death 공격 방법에 대해서 알아보겠습니다. 네트워크에서는 패킷을 전송하기 적당한 크기로 잘라서 전송합니다.
Ping of Death는 이러한 네트워크 특성을 악용한 것입니다. 네트워크의 연결 상태를 점검하기 위해 Ping 명령을 보낼 때 패킷을 최대한 길게 하여 공격 대상에서 전송하지만 Ping of Death 공격 방법에 의해 패킷이 네트워크에서 수백 개로 잘게 쪼개져 전송되며 이러한 패킷을 수신 받은 서버는 이를 처리하기 위해 정상적인 서비스를 수행하지 못합니다.
TCP SYN Flooging은 TCP의 연결 과정을 위한 과정인 3-Way Handshaking의 문제점을 악용한 방법으로 클라이언트와 서버의 연결 시 초기에 클라이언트가 SYN 패킷을 서버 측으로 전송합니다. SYN 패킷을 수신 받은 서버는 이에 대한 ACK 패킷과 SYN 패킷을 다시 클라이언트에게 보내고 클라이언트가 ACK 패킷을 전송할 때까지 대기합니다.
공격자는 서버에 SYN 패킷만 보내어 서버가 클라이언트의 ACK 패킷을 수신하기 위해 SYN Received 상태로 대기하도록 유도합니다. 이 경우 정상적인 사용자가 서버에 접속하기 위해 SYN 패킷을 보내도 서버 측에서는 이를 처리할 자원이 없어 정상적인 서비스를 제공하지 못합니다. TCP SYN Flooging은 TCP 해더 Flag 값에 따라 NULL, PUSH, FIN, RESET 등으로 구분됩니다. TCP SYN Flooding을 이용한 DoS 공격에 대응하기 위해서는 웹 서버의 SNY Received의 대기 시간을 줄이거나, 침입 차단 시스템과 같은 보안 시스템을 활용할 수 있습니다.
Boink, Bonk, TearDrop은 TCP가 신뢰성 있는 연결을 제공하는 점을 악용한 공격 방법입니다. 신뢰성 있는 연결이란, 전송되는 패킷의 순서가 올바른지 확인하고, 중간에 손실된 패킷은 없는지 확인, 손실된 패킷을 재전송을 요구하여 데이터의 손실이 없도록 하는 것입니다. 신뢰성이 확인되지 않은 데이터 전공에 대하여 프로토콜은 신뢰도를 확보하자고 반복적인 재요청과 수정을 수행합니다.
그리고 Boink, Bonk, TearDrop은 모두 이러한 반복적인 재요청과 수정을 공격 대상이 계속하게 함으로써 시스템의 자원을 고갈시켜는 공격입니다. TCP 패킷 안에 존재하는 시퀀스 넘버를 속여 시스템의 패킷 재전송과 재조합에 과부하를 유도합니다. Boink, Bonk, TearDrop의 공격 대응 방법은 패치를 통해 해당 취약점을 제거하거나 과부하가 걸리거나 계속 반복되는 패킷을 무시하도록 설정하면 됩니다.
Land 공격은 패킷을 전송할 때 출발지 IP 주소와 목적지 IP 주소 값을 똑같이 만들어서 공격 대상에게 보내는 공격 방법입니다.Land에 대한 대응 방안으로는 운영체제의 패치를 통해 해결이 가능하며, 방화벽 등의 보안 시스템에서 패킷의 출발지와 목적지 주소의 적절성을 검증하여 해결할 수도 있습니다.
다음은 Smurf 공격 방법에 대해 알아보겠습니다. smurf 공격은 다이렉트 브로드캐스트를 악용한 공격 방법으로 브로드캐스트, 다이렉트 브로드캐스트, 에이전트에 의한 Smurf 공격의 실행의 세 가지의 공격 방법이 있습니다. 먼저 브로드캐스트란 255.255.255.255의 목적지 IP 주소를 가지고 네트워크의 임의의 시스템에 패킷을 보내는 것으로 3계층 장비를 넘어가지 못합니다.
다이렉트 브로드캐스트란 브로드캐스트와 달리 네트워크 부분에 정상적인 IP를 기입하는 브로드캐스트 방법입니다. 해당 네트워크에 있는 클라이언트에 대한 브로드캐스트를 원격으로 수행하기 위해 사용됩니다.
다이렉트 브로드캐스트를 이용한 smurf 공격 방법은 시작 주소가 위조된 ICMP Request를 특정 네트워크에 전송합니다. 172.10.0.0 네트워크에 위조된 패킷을 전송하는 것이 보이나요? ICMP Request 패킷을 전송 받은 네트워크에 존재하는 모든 컴퓨터들은 위조된 시작 IP주소에 ICMP Reply를 보내게 됩니다. 그럼 공격 대상은 수많은 ICMP Reply를 전송 받아 Ping of Death와 같이 수 많은 패킷이 시스템을 과부하 상태로 만듭니다. smurf 공격에 대응하기 위해서는 라우터에서 다이렉트 브로드캐스트를 차단하는 방법이 있습니다.
마지막으로 Mail Bomb에 대해 알아보도록 하겠습니다. Mail Bomb은 흔히 폭탄 메일이라고 불리며 스팸 메일도 여기에 해당합니다. 메일 서버는 각 사용자에게 일정한 양의 디스크 공격을 할당해 주고 있는데, 사용자들에게 할당한 디스크 공격을 가득 채우면 정상적인 메일의 수신이 불가능해집니다.
Mail Bomb은 정상적인 메일 서비스를 제공 받지 못하도록 하기 때문에 서비스 거부 공격이 될 수 있습니다.
2. DDoS
이번에는 DDoS에 대해 알아보도록 하겠습니다. DDoS는 분산 서비스 거부 공격으로 여러 대의 공격자를 분산적으로 배치해 동시에 서비스 거부 공격을 하는 방법입니다. 최근 서버의 시스템 성능이 높아지면서 소수의 서비스 거부 공격으로는 목적을 달성할 수 없어 여러 대의 컴퓨터를 이용한 서비스 거부 공격이 대세를 이루고 있습니다. DDoS는 1999년 8월 17일 미네소타 대학에서 발생한 것으로 알려져 있으며 야후, NBC, CNN 서버의 서비스가 중지되었습니다.
DDoS 공격으로 인한 피해가 상당히 심각하지만 이에 대한 확실한 대책이 없으며, 공격자의 위치와 구체적인 발원지를 파악하는 것이 어렵습니다.
DDoS의 특징을 살펴보면 대부분의 공격은 DDoS를 수행하기 이전에 공격을 수행할 수 있는 시스템을 확보하기 위해 일정 시간 준비 과정이 필요하며, 공격 PC가 확보되면 자동화된 툴을 이용합니다. 공격의 범위가 방대하여 DDoS 공격을 하려면 최종 공격 대상 이외에 공격을 증폭시켜주는 중간자가 필요합니다.
DDoS의 기본 구조를 살펴보겠습니다. 대부분 공격자, 마스터, 핸들러, 에이전트, 데몬으로 구성됩니다. 공격자는 공격을 주도하는해커의 컴퓨터를 말하며, 마스터는 공격자에게서 직접 명령을 받는 시스템으로 여러 대의 에이전트를 관리합니다. 핸들러는 마스터 시스템의 역할을 수행하는 프로그램이며, 에이전트는 공격 대상에 직접 공격을 가하는 시스템입니다. 마지막으로 데몬 프로그램은에이전트 시스템의 역할을 수행하는 프로그램입니다.
'정보 보호' 카테고리의 다른 글
09 무선 네트워크 보안 (3) | 2016.01.26 |
---|---|
08 스니핑과 스푸핑 (2) | 2016.01.26 |
06 윈도우 보안 (0) | 2016.01.26 |
05 로그와 취약점 관리 (0) | 2016.01.26 |
04 접근 제어와 권한 관리 (1) | 2016.01.26 |