DDoS 공격을 차단하기 위한 방법에는 어떤 것이 있나요?
일단 의심되는 트래픽이 탐지되면, 다양한 방식으로 해당 트래픽을 차단할 수 있는데 대략 4가지 정도의 방법이 존재합니다.
1. 블랙홀(Blackhole) 방식 : null-routing using BGP
공격으로 의심되는 특정 목적지의 트래픽을 특정 라우터로 우회시켜 모든 트래픽을 패기.
2. 필터 차단 방식
관리자가 공격 IP 및 포트 정보를 확인하여 라우터에서 조건에 해당하는 트래픽을 수동으로
필터를 생성하여 조건에 해당하는 트래픽만 차단.
3. BGP Flow Specification 이용방식
BGP FlowSpec기능이 동작하는 라우터에서 적용 가능하며 필터 생성을 자동화시켜 신속하게 차단.
공격 탐지 장비에서 확인한 공격 트래픽 정보를 기반으로 아래 필터 종류를 이용하여, BGP로 연동된
라우터에 필터 및 액션을 자동으로 업데이트시켜, 공격 트래픽을 처리.
- 필터 종류 : 출발지, 목적지 IP 주소 및 포트 넘버, 프로토콜 종류, ICMP 타입, TCP Flag정보, 패킷 길이
등을 필터 조건으로 사용
- 액션 : 트래픽 양 제어 ( 완전 차단 or 일정량 이하로 제한), 샘플링(일정량이 트래픽 저장),
특정한 목적지로 트래픽 우회, 트래픽 마킹(패킷의 특정 위치에 DSCP값 추가)
4. 전용 차단 장비 이용방식
공격으로 의심되는 모든 트래픽을 전용 차단 장비로 보내 실제 공격 트래픽은 차단하고 정상으로 판단되는 트래픽은 원래 목적지로 전달.
차단 방식이 개발되던 초기에 나온 방식이 1번입니다. 가장 쉽게 구현이 가능한 장점이 있지만 정상적인 트래픽도 차단되는 단점이 있습니다.
2번 방식은 트래픽을 처리하는 장비에 관리자가 직접 필터를 적용하여 트래픽을 처리하는 방식인데, 관리자가 수동으로 입력해야 해서 대응 속도가 느리고, 라우터의 처리 성능에 대한 고려가 필요한 방식입니다. 또한 해당 필터 조건에 해당되는 트래픽은 모두 차단되기 때문에 필터 조건에 포함되는 정상적인 트래픽도 같이 차단된다는 단점이 있습니다.
3번 방식은 2번 방식을 자동화한 것으로, 관리자가 수동으로 필터를 입력하는 것이 아니고, 탐지장비에서 확인한 트래픽의 목적지 IP 및 포트 정보를 이용하여 라우터에 자동으로 필터가 생성되어, 대응 속도를 높인 방식입니다. 그러나 BGP기반의 Flowspec기능을 사용해야 하기 때문에 해당 기능을 적용 가능한 라우터가 있어야 사용한 가능한 방법이며, 정상적인 트래픽도 차단될 수 있는 단점이 있습니다.
마지막으로 4번째 방식은 전용 차단 장비를 이용하는 방식으로 인라인 타입 제품이나 아웃 오브 패스 타입의 차단 장비 모두 이용이 가능합니다. 이 방식은 의심되는 모든 트래픽을 차단하는 것이 아니고, 트래픽의 L3~L7 레벨을 다시 검사해서 정상으로 판별되는 트래픽은 원래 서버로 전송하고, 공격으로 판별되는 트래픽만 선별적으로 패기 시키는 방식으로 동작합니다.
초창기에는 대부분 1번 방식을 이용하였지만 최근에는 대부분 4번 방식을 주로 적용하는 추세입니다. 4번 방식은 공격으로 의심되는 정황이 탐지되면, 일단 해당 공격 대상으로 가는 모든 트래픽은 차단 장비로 우회시킨다고 표현하였습니다. 여기서 의심되는 정황이라고 표현한 이유는 임계치 기반의 탐지 방식이 100% 정확할 수가 없기 때문입니다.
단지 평상시 트래픽 사용량 대비 통계적으로 충분히 비정상적인 상태를 탐지하고 해당 목적지로 가는 트래픽을 좀 더 자세하게 검사하여 공격으로 의심되는 트래픽은 차단하고 정상으로 판단되는 트래픽은 원래 목적지인 서버로 전달하겠다는 전략이 아웃 오브 패스 방식 장비의 방어전략입니다.
탐지장비가 트래픽을 모니터링하는 방식이 라우터에서 보내주는 Netflow기반 정보를 이용하기 때문에 해당 정보는 L3~L4레벨 정보만 포함되어 있습니다. 그래서 용량 기반 공격이나 자원 소모 공격은 비교적 정확하게 탐지가 가능할 수 있지만 L7 레벨을 이용하는 애플리케이션 기반 공격은 탐지가 부정확할 수밖에 없습니다. 그래서 의심스러운 트래픽은 차단 장비로 우회시켜 직접 트래픽을 모니터링하면서 L3부터 L7까지 모든 레이어를 직접 다시 검사하는 방식으로 작동합니다.
그럼 차단 장비에서는 어떤 방식으로 정상 트래픽과 공격 트래픽을 구분하는지 알아보죠. 차단 장비는 L3~L7까지 다양한 차단 필터를 가지고 있습니다. 각각의 필터는 특정 공격에 대해 식별 및 차단을 할 수 있는 기능을 가지고 있습니다.
아래 <그림 1>과 같이 왼쪽에 빨간색으로 표시된 공격 트래픽과 녹색으로 표시된 정상 트래픽이 있다고 가정해 보죠. 차단 장비로 트래픽이 들어오면 제일 먼저 유입되는 패킷이 표준을 준수하는 정상적인 패킷인지, 블랙리스트에 등록된 IP주소는 아닌지, 혹시 북한에서 들어오는 트래픽은 아닌지 등을 체크하여 설정에 따라 공격으로 판단된 트래픽은 차단되고, 정상으로 판단한 트래픽은 다음 필터로 넘어갑니다.
이런 방식을 이용하여 다양한 필터를 직렬로 배치하여 단계별로 공격 트래픽을 차단해 가다 보면 최종 필터를 통과한 트래픽만 정상으로 추정하여 서버로 전달하는 방식으로 차단을 수행합니다. 공격의 종류가 다양해지고 공격의 크기가 증가하면서 이런 순차적인 다단계 차단 방식이 보다 효과적이며, 차단 수행 시 장비의 부하를 최소화시켜 같은 성능의 장비로 더 큰 용량의 공격을 차단할 수 있는 장점이 있습니다.