서비스 거부 공격
IT 위키
더 많은 작업
(DoS에서 넘어옴)
- Denial of Service, DoS
- 대상 시스템이 정상적인 서비스를 할 수 없도록 가용성을 떨어뜨리는 공격
- DoS공격은 공격자가 단일 컴퓨터를 이용해 공격하는 경우
- DDoS(Distributed Denial of Service) : 분산된 다수의 좀비 PC를 이용하여 공격하는 경우
- DDoS는 대량의 호스트가 일시에 정상적인 접근을 하는 것 만으로도 공격이 되므로 뚜렷한 취약점이 없어도 공격이 가능하나 DoS공격은 한 호스트가 비정상적인 접근을 통해 부하를 유발하는 것이므로 취약점에 의한 공격이다.
공격의 목표이자 서비스 거부의 원리라고 할 수 있다.
- 네트워크 자원 소진 : 네트워크 대역폭(Bandwidth)을 소진시키다.
- 시스템 자원 소진 : CPU, 메모리, 디스크 등 자원에 과도한 부하를 발생시킨다.
- 가용 디스크 자원 고갈
- 가용 메모리 자원 고갈
- 가용 프로세스 자원 고갈
- 자원 파괴 : 디스크, 데이터, 시스템을 파괴한다.
#include
void main()
{
char c;
while(1)
c=malloc(1000);
}
#include
main() {
while(1)
fork();
return(0);
}
- DoS 는 가용성을 떨어뜨리는 공격이다(가용성). 데이터를 훔치거나(기밀성) 변조하는 것(무결성)이 목적이 아니다.
- 루트 권한을 얻는 공격이 아니다. 권한이 없어도 자원을 소진시키는 것만으로 성립한다.
- 위의 '자원 파괴'는 데이터를 빼내거나 고치려는 것이 아니라 디스크·시스템을 못 쓰게 만들어 서비스를 멈추게 하는 경우를 말한다.
| 구분 | 방법 | 예 |
|---|---|---|
| 내부(로컬) 공격 | 시스템에 계정이 있는 사용자가 자원을 고갈시킨다 | 디스크 채우기(큰 파일 반복 생성), 메모리 고갈(malloc 무한 반복), 프로세스 고갈(fork 폭탄) |
| 외부(원격) 공격 | 네트워크로 서비스나 대역폭을 소진시킨다 | Mail Storm(메일 폭탄: 짧은 시간에 대량의 메일을 보내 메일 서버·디스크를 마비), 네트워크 트래픽 증가(플러딩), SYN Flooding, Ping of Death |
- 내부 공격은 디스크 쿼터(quota), 사용자별 프로세스·메모리 제한(ulimit, /etc/security/limits.conf)으로 막는다.
- ICMP 패킷을 정상적인 크기보다 아주 크게 만들어 전송하면 IP 단편화(fragment)가 발생한다. 이를 재조합하는 과정에서 많은 부하가 발생하거나 버퍼 오버플로우가 발생하여 정상적인 서비스를 하지 못하게 한다.
- 자세한 내용은 Ping of Death 문서 참조
- 출발지와 목적지가 같은 패킷을 만들어 공격 대상이 자기 자신에게 응답하도록 해 부하 유발
- 현재는 대부분의 OS에서 해당 취약점이 해결되어 이론적으로만 존재
- 출발지를 공격 대상 IP로 위조한 ICMP 패킷을 브로드캐스트하여 공격 대상이 다수의 ICMP 응답 받게 만들어 부하 유발
- 하나의 IP 패킷이 분할된 IP 단편의 offset값을 서로 중첩되도록 조작하여 이를 재조합하는 공격 대상 시스템에 에러와 부하 유발
- 유사한 공격으로 Bonk, Boink
- Bonk는 순서번호가 1번인 단편을 계속 보냄
- Boink는 처음에는 정상적인 순서의 단편을 보내다가 점점 순서번호가 어긋난 패킷을 보내는 방법으로, Bonk보다 개선된 방식
- 이러한 공격들을 Inconsistent Fragmentation 공격 이라 한다.
- ICMP Echo Request 등 ICMP 패킷을 대량으로 보내 대역폭과 처리 자원을 소진시키는 공격
- 정상 모양의 패킷을 양으로 밀어붙인다는 점에서, 패킷 구조의 결함을 노리는 Ping of Death·티어드롭과 다르다
- 자세한 내용은 ICMP 플러딩 참조
- 다량의 TCP SYN 패킷을 전송하여 공격대상 시스템을 마비시키는 공격
- 자세한 내용은 SYN Flooding 참조
- 다량의 UDP 패킷을 전송하여 네트워크 자원을 고갈시키는 공격
- 모니터링: 서비스 거부 공격을 탐지할 수 있는 시스템을 갖추고 모니터링을 수행한다.
- 침입탐지: 서비스 거부 공격으로 추정되는 공격을 탐지한다.
- 초동조치: 신속하게 할 수 있는 조치로 공격의 피해를 완화한다.
- 상세분석: 서비스 거부 공격이 맞는지, 어떤식으로 차단해야 정상 이용자에게 피해가 없을지 분석한다.
- 차단조치: 차단 조치를 수행한다.