And Brain said,

DoS/DDoS(Denial of Service) 공격, 원리와 그 방어 본문

IT/보안

DoS/DDoS(Denial of Service) 공격, 원리와 그 방어

The Man 2025. 2. 10. 16:31
반응형

1. DoS/DDoS ?

1.1 DoS(Denial of Service, 서비스 거부 공격)

DoS 공격은 특정 시스템(서버, 네트워크 장비 등)이 정상적인 서비스를 제공하지 못하도록 과부하를 유발하는 공격으로, 일반적으로 한 대의 공격자가 단일 타겟을 목표로 하여 CPU, 메모리, 네트워크 대역폭 등의 리소스를 고갈시키는 방식으로 수행됩니다.

1.2 DDoS(Distributed Denial of Service, 분산 서비스 거부 공격)

DDoS는 여러 대의 장비(봇넷)를 활용하여 대량의 트래픽을 특정 서버로 보내 분산된 형태의 공격을 수행하는 방식으로, 이는 DDoS 공격을 탐지하고 차단하는 것을 더욱 어렵게 만드는 요소입니다.

 

비교 항목 DoS DDoS
공격 주체 단일 공격자 다수의 공격 장비(봇넷)
공격 방식 한 개의 IP에서 요청을 보내 서비스 마비 여러 개의 IP에서 대량의 요청을 보내 방어 어렵게 만듦
방어 방법 방화벽 설정, Rate Limiting WAF, CDN, 클라우드 기반 DDoS 방어 서비스

 

2. 주요 DoS/DDoS 공격 기법

2.1 SYN Flood 공격

  • TCP 3-way Handshake를 악용하여 SYN 패킷을 연속적으로 보내 서버의 연결을 과부하 상태로 만듦.
  • 서버는 SYN-ACK을 보내지만, 공격자는 응답하지 않음 → 서버의 세션 대기열이 가득 차면서 신규 연결이 불가능해짐.
  • 심화: SYN-ACK Reflection 기법을 사용하여 공격자의 IP를 숨기고, 다른 시스템을 이용한 간접 공격 가능.

🛡 방어 방법

# SYN Cookies 활성화 (Linux)
sysctl -w net.ipv4.tcp_syncookies=1

2.2 UDP Flood 공격

  • 대량의 UDP 패킷을 무작위 포트로 전송하여 CPU 및 네트워크 대역폭을 소모시킴.
  • 특히 DNS 서버 및 NTP 서버가 증폭 공격(Amplification Attack) 대상으로 자주 이용됨.
  • 심화: 공격자가 보낸 패킷 크기보다 응답 패킷 크기가 훨씬 큰 UDP 기반 프로토콜을 활용하여 증폭 효과를 극대화.

🛡 방어 방법

# iptables로 특정 UDP 트래픽 제한
iptables -A INPUT -p udp --dport 53 -m limit --limit 10/sec -j ACCEPT
iptables -A INPUT -p udp --dport 53 -j DROP

2.3 Slowloris 공격

  • 웹 서버에 매우 천천히 HTTP 요청을 보내 연결을 유지하면서 서버의 연결 리소스를 고갈시키는 방식.
  • 심화: HTTP Keep-Alive 기능을 악용하여 지속적인 연결을 유지하고, 긴 요청 헤더를 전송하면서 서버가 타임아웃되지 않도록 유도함.

🛡 방어 방법

# Apache에서 KeepAliveTimeout 설정 변경
echo "Timeout 5" >> /etc/httpd/conf/httpd.conf
systemctl restart httpd

2.4 DNS 및 NTP Amplification 공격

  • DNS/NTP 서버를 공격자의 트래픽 증폭 도구로 사용.
  • 공격자는 작은 쿼리를 보내고, 훨씬 큰 응답을 피해 서버로 전송하게 유도.
  • 심화: 공격자는 DNS ANY 레코드를 요청하거나 NTP monlist 요청을 이용하여 응답 크기를 50배 이상 증폭시킬 수 있음.

🛡 방어 방법

# DNS 서버에서 Recursion 비활성화 (BIND 사용 시)
echo "recursion no;" >> /etc/named.conf
systemctl restart named

3.  추가 방어 기법

3.1 공격 탐지 후 자동 대응

  • 방화벽 및 IPS(Intrusion Prevention System)를 활용하여 의심스러운 IP를 실시간 차단.
  • 자동화된 방어 시스템을 구축하여 특정 트래픽 임계치를 초과하면 즉시 트래픽 제한 적용.

3.2 WAF 및 고급 Rate Limiting

  • **WAF(Web Application Firewall)**를 사용하여 악성 트래픽을 필터링.
  • Nginx 및 Apache에서 IP별 요청 속도를 다르게 제한하는 세부적인 Rate Limiting 적용.

🛡 고급 Rate Limiting 설정 (Nginx)

limit_req_zone $binary_remote_addr zone=mylimit:10m rate=5r/s;
server {
    location / {
        limit_req zone=mylimit burst=10 nodelay;
    }
}

3.3 BGP 블랙홀 라우팅

  • BGP 블랙홀 라우팅을 이용하여 공격 트래픽을 아예 폐기.
  • 클라우드 DDoS 보호 서비스와 연계하여 공격 발생 시 BGP 업데이트로 공격 트래픽을 우회.

3.4 클라우드 기반 방어 솔루션 적용

  • AWS Shield Advanced, Cloudflare Magic Transit 같은 클라우드 기반 DDoS 방어 서비스 활용.
  • 공격이 감지되면 트래픽을 클라우드 서비스로 우회하여 차단.

DoS/DDoS 공격은 계속 진화하고 있으며, 단순한 방어 방법만으로는 차단이 어려워지고 있습니다. BGP 블랙홀 라우팅, 클라우드 방어 솔루션 등을 조합하여 다층적인 방어 체계를 구축해보세요.

반응형
Comments