서비스 거부 공격/분산 서비스 거부 공격(DOS/DDOS)

반응형


서비스 거부 공격(DOS)

[정의]

시스템을 악의적으로 공격해 해당 시스템의 자원을 부족하게 하여 원래 의도된 용도로 사용하지 못하게 하는 공격이다. 특정 서버에게 수많은 접속 시도를 만들어 다른 이용자가 정상적으로 서비스 이용을 하지 못하게 하거나, 서버의 TCP 연결을 바닥내는 등의 공격이 이 범위에 포함된다. 수단, 동기, 표적은 다양할 수 있지만, 보통 인터넷 사이트 또는 서비스의 기능을 일시적 또는 무기한으로 방해 또는 중단을 초래한다. 통상적으로 DoS는 유명한 사이트, 즉 은행, 신용카드 지불 게이트웨이, 또는 심지어 루트 네임 서버를 상대로 이루어진다. 2002년 10월 22일과 2007년 2월 6일의 DNS 루트 서버에 대한 DNS 백본 DDoS 공격은 인터넷 URL 주소 체계를 무력화시켜 인터넷 전체에 대한 공격이었다.

[특징]

  • 특정 서버에 수많은 접속 시도를 만들어 서버의 TCP 연결을 바닥나게 하는 등의 공격
  • 서버나 네트워크 대역이 감당할 수 없는 많은 양의 트래픽을 순간적으로 일으켜 서버를 마비시키는 일
  • 시스템을 악의적으로 공격해 해당 시스템의 자원을 부족하게 하여 원래 의도된 용도로 사용하지 못하게 하는 공격
[목적]
  • 파괴 공격 : 디스크나 데이터, 시스템의 파괴
  • 시스템자원의 고갈 : CPU, 메모리, 디스크의 사용에 과다한 부하를 가중시킴
  • 네트워크 자원의 고갈 : 쓰레기 데이터로 네트워크의 대역폭을 고갈시킴
[공격 유형]
1) ping of death
대량의 echo request 패킷을 발생시켜서 서버에 부하를 주는 공격 방식이다. "죽음의 핑 날리기"라고도 하는데 NetBIOS 해킹과 함께 시스템을 파괴하는 데 가장 흔하게 사용되었던 초기 DoS 공격 방법이다. Ping을 이용하여 ICMP 패킷을 정상크기보다 훨씬 크게 만들면 네트워크를 통해 라이팅되어 공격 네트워크에 도달하는 동안 아주 작은 조각이 되는데 공격 대상 시스템은 이렇게 작게 조각화된 패킷을 모두 처리해야 하므로 통상적으로 정상적인 Ping보다 훨씬 많은 부하가 걸리게 하여 시스템을 과부하시키는 방법이다. 현재는 대부분의 시스템에서 Ping of Death 공격이 가해질때, 반복적으로 들어오는 일정 수 이상의 ICMP 패킷을 무시하도록 설정되어 있다.
2) Tear drop
fragment offset 필드를 이용한 공격 방식으로 offset 값을 아주 작은 값으로 만들거나 아주 큰 값으로 만들어서 보내는 공격 방법이다.
ip 조작을 이용한 방식이며 시스템에 오류를 일으킨다.
3) LAND attack
출발지 ip와 도착지 ip를 같은 ip로 설정하여 보내는 공격 방식으로 ip 조작을 이용한 방식이다.
4) Smurf attack
출발지 ip를 공격 호스트의 ip로 위장(스푸핑)하여 도착지 ip를 브로드 캐스팅하는 공격 방법이다. 이렇게 브로드 캐스트를 하게 되면 같은 네트워크에 있는 호스트들이 대상 호스트로 reply하기 때문에 공격이 증폭된다. 현재는 출발지와 목적지 주소를 확인하여 동일한 패킷은 인식하고 버리기 때문에 효과가 없으며, 라우터나 방화벽에서 내부 IP주소와 동일한 출발지 IP주소를 갖는 패킷은 처음부터 차단하도록 하는 것이 좋다.

5) SYN Flooding

네트워크에서 각 서비스를 제공하는 시스템에는 동시 사용자 수에 대한 제한이 있다. 설정상의 차이는 있지만 무제한은 아니기 때문에 존재하지 않는 클라이언트가 접속한 것처럼 속여서 다른 정상적인 사용자가 접속이 불가능하게 하는 공격방법이다.



분산 서비스 거부 공격(DDOS)

[정의]

여러 대의 공격자를 분산적으로 배치해 동시에 서비스 거부 공격을 하는 방법이다. 이는 IAB의 정당한 인터넷 사용 정책에 반하는 것으로 여겨지며 거의 모든 인터넷 서비스 공급자의 허용할 수 있는 사용 정책도 위반한다. 또한 개별 국가의 법률에도 저촉된다.

[특징]

  • 여러 대의 좀비 PC를 통해 DoS 공격을 하도록 하는 것
  • 여러 대의 공격자를 분산적으로 배치해 동시에 서비스 거부 공격을 하는 것
  • 원격으로 여려 대의 컴퓨터를 특정 웹사이트에 동시에 접속시켜 과부하를 일으키는 행위
  • 대부분 자동화된 툴을 이용하고 있으며, 공격의 범위가 방대하며, 공격을 하려면 최종 공격 대상 이외에도 공격을 증폭시켜주는 중간자가 필요하다.
[공격 과정]
  1. 많은 사용자가 사용하며, 대역폭(bandwidth)이 큰 네트워크를 찾는다. 관리자가 모든 시스템을 세세하게 관리할 수 없는 곳에 계정을 획득하여 스니핑이나 버퍼 오버플로우 등의 공격으로 설치 권한이나 루트 권한을 획득한다.
  2. 잠재적인 공격 대상을 파악하기 위해 네트워크 블록별로 스캔을 실시하여, 원격지에서 버퍼 오버플로우를 일으킬 수 있는 취약한 서비스를 제공하는 서버를 파악한다.
  3. 취약한 시스템의 리스트를 확인한 뒤, 실제 공격을 위한 Exploit를 작성한다.
  4. 권한을 획득한 시스템에 침투하여 Exploit를 컴파일하여 설치한다.
  5. 설치한 Exploit로 공격을 시작한다.

서비스 거부 공격 대응책

1) 방화벽 설치와 운영

방화벽은 통상 내부 네트워크와 외부 네트워크의 경계에 우선적으로 설치한다. 일부에선 방화벽만 있으면 모든 보안이 다 되는 것으로 착각하고 있는데 방화벽으로 막을수 있는 건 전체의 30% 정도밖에 안 된다. 단순히 1차적 방어막이라고 생각하길 바란다.

2) 침입탐지 시스템 설치와 운영

침입탐지 시스템은 외부 공격에 대한 일차적인 차단이 실패한 경우 네트워크에 침입해 들어온 공격을 탐지하기 위한 시스템으로 DoS와 DDoS 공격이 일정한 패턴으로 되어 있고, 각 구성 요소간에도 특정한 형식의 통신이 지속적으로 이루어 지고 있기 때문에 공격시나 공격 전에 그 양상을 탐지할 수 있으므로 설치 후 업그레이드를 꾸준히 해야한다.

3) 안정적인 네트워크의 설계

일정량 이상의 패킷이 라우터로 들어올 경우, 그 이상의 패킷은 통과시키지 않도록 하거나 각 장비간 로드 밸런싱을 성정하는 방법 등이 있다.

4) 홈페이지 보안 관리

현재 악성코드 분포 유형을 보면 인터넷을 이용한 웹페이지상의 취약점 때문에 해킹당한 사이트에서 사용자들도 모르게 다운 받는 경우가 제일 많다.

홈페이지 관리자들의 경우 편하다는 이유로 혹은 귀찮다는 이유로 주민등록번호나 주요 사항을 체크할 때 자바스크립트나 html소스를 가지고 하는 경우가 있는데 이는 매우 취약한 부분이며 반드시 시스템소스상에서 설정해야 한다. 또한 관리의 편의성을 위해 임의로 보안을 풀어놓는 경우가 있는데 이 또한 바람직하지 않으며 관리자 계정 또한 ID와 패스워드를 분실 혹은 유추하지 못하도록 주기적으로 변경해 주어야 한다.

5) 시스템 패치

시스템에 대한 지속적인 서비스 팩 설치와 팟픽스를 하는 것 역시 빼놓을 수 없다. 바이러스와 악성코드의 경우 일단 발견되면 대첵을 세워 패치를 하게 되는데 제공되는 패치를 단지 귀찮다는 이유로 사용자들이 무시해 버릴경우 취약성을 띈 시스템을 그대로 유지하는 것이기 때문에 반드시 보안패시를 하는 것이 좋다.

6) 스캔 및 서비스별 대역폭 제한


[출처] 위키백과, 제타위키, http://blog.daum.net/hacker21/218

반응형
TAGS.

Comments