
중국 홍콩발 디도스 공격이 무차별적으로 이루어지고 있습니다. 접속 차단 조치를 잘 하고있지만 이러한 엄청난 공격을 방치하면 웹리소스가 모두 소진되어 정상적인 블로그 운영이 어렵습니다. 어떤 의도로 디도스 공격을 하는지는 모르겠지만 아무튼 중국발 홍콩에서 오는 무차별 접속량은 하루에 어마어마 합니다.
디도스 공격(DDoS Attack)이란 무엇인가?
DDOS 공격이란 분산 서비스 거부 공격(Distributed Denial of Service Attack)을 의미합니다. 즉 여러 개의 장치를 이용하여 컴퓨터 서버나 네트워크 장비를 대상으로 처리할 수 없을 정도의 과도한 트래픽을 발생시켜 정상적인 데이터 전송에 장애를 일으키는 서비스 거부 공격입니다.
데이터 전송이라는 인터넷의 가장 기본적인 원리를 사용하여 서비스 거부 공격 중에서는 가장 광범위하게 쓰이고 사이버테러에 널리 이용되는 방식이 바로 DDOS 공격입니다.
분산 서비스 거부(DDoS) 공격은 인터넷 트래픽의 폭주를 불러 옵니다. 그래서 공격을 하는 대상이나 그 주변 인프라를 압도하여 공격 대상 서버나 서비스, 네트워크의 정상적인 트래픽을 방해하여 정상적인 운영을 막습니다.
DDoS 공격은 그러니까 자동차가 10대 정도 다니는 도로에 순식간에 1천대~1만대의 차량을 무단으로 진입시켜서 정상적인 통행을 못하도록 하는 것이라 이해하면 됩니다.
DDOS 공격의 유형
DDOS 공격은 OSI 7계층 모델을 기반으로 다양한 방식으로 이루어질 수 있으며, 크게 세 가지 유형으로 나눌 수 있습니다.
볼류메트릭 공격 (Volumetric Attacks)
가장 흔한 형태의 공격으로, 목표 서버나 네트워크의 대역폭을 고갈시키는 데 초점을 맞춥니다. 엄청난 양의 트래픽을 발생시켜 정상적인 트래픽이 접근하지 못하게 만듭니다.
UDP Flood: UDP 프로토콜의 비연결성 특성을 이용하여 대량의 UDP 패킷을 서버로 전송합니다. 서버가 해당 포트가 열려있지 않아도 공격이 가능하며, 대량의 응답 패킷을 유도하여 서버에 부하를 줍니다.
ICMP Flood (Smurf Attack): ICMP Echo (Ping) 패킷을 위조된 출발지 IP 주소(공격 대상 서버)로 다수의 호스트에 브로드캐스트하여, 해당 호스트들이 공격 대상 서버로 응답 패킷을 보내게 함으로써 서버를 마비시킵니다.
DNS 증폭/반사 공격: DNS 서버를 악용하여 작은 요청으로 큰 응답을 유도하고, 이 응답을 공격 대상 서버로 향하게 합니다.
프로토콜 공격 (Protocol Attacks)
서버의 리소스(연결 테이블, 방화벽 등)를 소진시키는 데 초점을 맞춥니다. TCP/IP 스택의 취약점을 이용합니다.
SYN Flood: TCP 3-way Handshake 과정의 첫 단계인 SYN 패킷을 대량으로 보내고, 서버의 SYN-ACK 응답에 대한 ACK를 보내지 않아 서버의 연결 대기 큐를 가득 채웁니다. 서버는 연결을 기다리느라 정상적인 요청을 처리하지 못하게 됩니다.
Connection Flood: 실제 연결을 맺은 후 데이터를 주고받지 않거나, 비정상적인 헤더를 가진 패킷을 보내 서버에 지속적으로 부하를 줍니다.
Fragment Flood: 의도적으로 조각화된(fragmented) IP 패킷을 대량으로 보내 서버가 이를 재조합하는 데 리소스를 소모하게 만듭니다.
애플리케이션 레이어 공격 (Application Layer Attacks)
웹 서버나 애플리케이션의 특정 기능을 대상으로 하여, 서버의 애플리케이션 리소스를 고갈시키는 데 초점을 맞춥니다. OSI 7계층에 해당합니다.
HTTP Flood: 웹 페이지 요청(GET, POST)을 반복적으로 보내 웹 서버에 과부하를 일으킵니다. 로그인 페이지, 검색 API 등 비용이 많이 드는 요청을 집중적으로 보낼 수 있습니다.
Slow HTTP Attacks (예: Slowloris, RUDY): HTTP 연결을 느리게 유지하면서 서버의 연결 리소스를 점유하여 정상적인 요청을 처리할 수 없게 만듭니다. (예: HTTP 헤더를 매우 느리게 전송)
DNS Query Flood: 특정 도메인에 대한 DNS 쿼리를 대량으로 발생시켜 DNS 서버를 마비시킵니다.
DDOS 공격 방어법
DDOS 공격을 100% 방어하는 것은 사실상 불가능에 가깝습니다. 따라서 "완화(Mitigation)"라는 용어가 더 적합하게 사용됩니다. 다층적인 보안 전략을 통해 공격의 영향을 최소화하는 것이 중요합니다.
네트워크 모니터링 및 트래픽 분석
실시간으로 네트워크 트래픽을 모니터링하고 분석하여 비정상적인 트래픽 패턴(갑작스러운 대역폭 증가, 비정상적인 패킷 수 등)을 조기에 탐지합니다.
정상적인 트래픽의 기준선을 설정하고, 이를 벗어나는 경우 경보를 발생시킵니다.
트래픽 필터링 및 Rate Limiting:
IP 블랙리스트/화이트리스트: 알려진 악성 IP 주소를 차단하거나, 신뢰할 수 있는 IP 주소만 허용합니다.
속도 제한 (Rate Limiting): 특정 IP 주소나 사용자로부터 들어오는 요청 수를 제한하여 과도한 요청으로 인한 서버 부하를 막습니다. Nginx와 같은 웹 서버에서 설정할 수 있습니다.
Geo-blocking: 특정 지역(국가)의 트래픽을 제한하여 공격을 막을 수 있습니다.
DDoS 방어 솔루션 도입
클라우드 기반 DDoS 완화 서비스: 전문 DDoS 방어 서비스를 제공하는 클라우드 공급자(예: Cloudflare, Akamai, AWS Shield)의 도움을 받습니다. 이들은 대규모 분산 인프라를 통해 공격 트래픽을 흡수하고 필터링합니다.
웹 애플리케이션 방화벽 (WAF): 애플리케이션 계층 공격(HTTP Flood 등)을 효과적으로 방어하며, 악성 트래픽을 탐지하고 차단합니다.
스크러빙 센터 (Scrubbing Center): 대용량 DDoS 공격 시 모든 트래픽을 스크러빙 센터로 우회시켜 악성 트래픽을 제거한 후 정상 트래픽만 서버로 전달합니다.
분산형 인프라 및 확장성
CDN (콘텐츠 전송 네트워크): 웹 콘텐츠를 분산된 서버에 캐싱하여 사용자와 가까운 곳에서 콘텐츠를 제공함으로써, 웹 서버의 부하를 줄이고 DDoS 공격의 영향을 분산시킵니다.
로드 밸런서: 여러 서버에 트래픽을 분산시켜 특정 서버에 부하가 집중되는 것을 막습니다.
Anycast 네트워크: 동일한 IP 주소를 여러 위치에 할당하여, 사용자가 가장 가까운 서버로 연결되도록 하여 공격 트래픽을 분산시킵니다.
보안 위생 및 취약점 관리
최신 보안 패치 적용: 운영체제, 웹 서버, 애플리케이션 등 모든 시스템을 최신 상태로 유지하여 알려진 취약점을 제거합니다.
강력한 비밀번호 사용 및 2단계 인증: 봇넷에 감염될 위험을 줄입니다.
불필요한 포트 및 서비스 비활성화: 공격 노출 지점(공격면)을 최소화합니다.
중국발 홍콩 등 특정지역에서 오는 디도스 공격 차단법
즉각적인 차단 방법으로 우선 웹 접속 유입 분석을 통해 문제의 트래픽 패턴을 파악하고 다음과 같이 차단 조치를 합니다.
지오 블로킹 (Geo-blocking):
가장 직접적인 방법입니다. 웹 서버(Apache, Nginx) 또는 방화벽(iptables, ufw)에서 중국과 홍콩의 IP 대역을 차단합니다.
가장 확실하게 해당 지역의 트래픽을 차단하기에 효과적입니다. 그러나 정상적인 중국/홍콩 사용자도 웹사이트에 접속할 수 없게 됩니다. 따라서 웹서비스에서 만약 중국이나 홍콩 고객이 있다면 신중하게 고려해야 합니다
cOnline.com
