Computer >> 컴퓨터 >  >> 네트워킹 >> 인터넷

DDoS 보호는 어떻게 작동할까? 가정용 방화벽부터 대형 ISP까지 완벽 해부

DDoS 보호는 어떻게 작동할까? 가정용 방화벽부터 대형 ISP까지 완벽 해부

지난 수년간 분산 서비스 거부 공격(DDoS)은 웹사이트나 플레이스테이션 네트워크(PlayStation Network) 같은 호스팅 서비스를 적어도 한동안은 마비시키는 데 매우 '믿음직한' 수단으로 자리 잡아 왔습니다.

이런 공격이 지닌 위력만큼 사람들은 그 이면에 숨겨진 메커니즘에 궁금증을 느낍니다. 그래서 우리는 DDoS가 어떻게 작동하는지 설명했고, 나아가 일부 공격이 얼마나 거대해질 수 있는지 직접 실험하기도 했습니다. 실제로 단 한 번의 공격으로 수백만 명의 인터넷 구역 전체가 마비된 사례도 있었으니까요. 하지만 정작 그 반격책, 즉 DDoS 보호가 어떻게 작동하는지에 대한 공개적인 논의는 놀랄 만큼 드뭅니다.

DDoS 보호를 논하기 어려운 이유

인터넷은 하나의 거대하고 복잡한 공간 속에서 무수한 네트워크들이 연결되어 이루어진 집합체입니다. 지구 곳곳에는 빛의 속도에 가까운 속도로 움직이는 수조 개의 패킷이 오가고 있습니다. 이 혼란스럽고 신비로운 내부 구조를 파악하기 위해 인터넷은 여러 그룹으로 나뉘며, 각 그룹은 다시 세부 그룹으로 쪼개집니다.

바로 이 점 때문에 DDoS 보호를 논하는 일이 상당히 까다로워집니다. 가정용 컴퓨터가 DDoS로부터 스스로를 지키는 방식은 수백억 달러 규모 기업의 데이터센터 방어 방식과 비슷하면서도 조금씩 다릅니다. 게다가 아직 인터넷 서비스 제공업체(ISP) 이야기도 시작하지 않았습니다. 수십억 개의 연결과 클러스터, 대륙 간 교환 노드, 서브넷으로 이루어진 인터넷을 분류하는 방법이 무수히 많듯이, DDoS 보호 역시 그만큼 다양한 관점에서 분류될 수 있습니다.

그럼에도 불구하고, 이 주제와 관련된 중요한 세부 사항들을 빠짐없이 짚어보는 '정밀 해부'에 도전해 보겠습니다.

DDoS 보호의 기본 원리

DDoS 보호는 어떻게 작동할까? 가정용 방화벽부터 대형 ISP까지 완벽 해부

DDoS가 어떻게 작동하는지 모른 채 이 글을 읽고 있다면, 앞서 링크한 설명 글을 먼저 읽어보길 권합니다. 아니면 내용이 다소 어렵게 느껴질 수 있습니다. 핵심은 간단합니다. 들어오는 패킷에 대해 할 수 있는 선택지는 두 가지뿐입니다. 무시(ignore)하거나 우회(redirect)하는 것입니다. 패킷의 발신지를 통제할 수 없기 때문에 도착 자체를 막을 방법은 없습니다. 패킷은 이미 도착했고, 여러분의 소프트웨어는 그것을 어떻게 처리할지 결정해야 합니다.

이것은 우리 모두가 따르는 보편적인 진실이며, 우리를 인터넷에 연결해 주는 ISP들도 예외가 아닙니다. 바로 이 때문에 수많은 공격이 성공합니다. 발신자의 행동을 통제할 수 없기 때문에, 공격자는 여러분의 연결이 감당할 수 없을 만큼 많은 패킷을 쏟아부을 수 있는 것입니다.

소프트웨어와 라우터(가정용 시스템)의 방어 방식

DDoS 보호는 어떻게 작동할까? 가정용 방화벽부터 대형 ISP까지 완벽 해부

컴퓨터에서 방화벽을 사용하거나 라우터에 방화벽 기능이 있다면, 보통 다음과 같은 기본 원칙을 따르게 됩니다. DDoS 트래픽이 밀려들어오면 소프트웨어는 비정상 트래픽을 보내는 IP 목록을 작성합니다.

이를 감지하는 방식은 초당 50회 이상처럼 비정상적으로 잦은 빈도로 쓰레기 데이터나 연결 요청이 들어오는지 살피는 것입니다. 그런 다음 해당 출발지에서 오는 모든 통신을 차단합니다. 차단하면 컴퓨터는 데이터를 해석하는 데 추가 리소스를 쓰지 않아도 됩니다. 메시지 자체가 목적지에 닿지 않는 것이죠. 만약 여러분이 어떤 컴퓨터의 방화벽에 차단된 상태로 접속을 시도하면, 보내는 모든 것이 무시되기 때문에 연결 시간 초과(connection timeout)만 받게 됩니다.

단일 IP 서비스 거부(DoS) 공격에 대해서는 훌륭한 방어책입니다. 공격자는 자신의 작업이 성과를 내고 있는지 확인할 때마다 연결 시간 초과만 겪게 되니까요. 분산형 DDoS 공격이라도 공격 IP에서 오는 모든 데이터가 무시되기 때문에 같은 원리로 동작합니다.

하지만 이 방식에는 문제가 있습니다.

인터넷 세계에는 '수동적 차단'이라는 것이 존재하지 않습니다. 패킷을 무시하는 데에도 리소스가 필요합니다. 소프트웨어로 방어하면 공격 지점은 컴퓨터에서 멈추지만, 그 패킷들은 종이를 뚫는 총알처럼 라우터를 그대로 통과해 옵니다. 즉, 라우터는 비정상 패킷을 여러분에게 전달하기 위해 쉬지 않고 일하고 있는 셈입니다.

라우터의 방화벽을 사용하면 일은 거기서 끝납니다. 하지만 그 경우에도 라우터는 모든 패킷의 출발지를 검사한 뒤, 차단 IP 목록을 하나씩 훑으며 무시할지 통과시킬지 판단해야 합니다.

이제 라우터가 방금 설명한 작업을 초당 수백만 번 수행해야 한다고 상상해 보세요. 라우터의 연산 능력에는 한계가 있습니다. 그 한계에 도달하면 아무리 고급 기법을 쓴들 정상 트래픽을 우선 처리하는 데 어려움을 겪게 됩니다.

여기서 잠깐, 또 다른 문제도 짚고 넘어가겠습니다. 설령 무한한 연산 능력을 가진 마법의 라우터가 있다 해도, ISP는 여러분에게 유한한 대역폭만을 제공합니다. 그 대역폭 상한선에 도달하면 웹에서 가장 단순한 작업조차 제대로 수행하기 힘들어집니다.

결국 DDoS에 대한 궁극적인 해결책은 무한한 연산 능력과 무한한 대역폭을 갖추는 것입니다. 누군가 그 방법을 찾아낸다면 우리는 모두 안심할 수 있겠죠!

대기업은 어떻게 트래픽 부하를 감당하는가

DDoS 보호는 어떻게 작동할까? 가정용 방화벽부터 대형 ISP까지 완벽 해부

기업들의 DDoS 대응 방식의 미학은 우아함에 있습니다. 기존 인프라를 활용해 닥치는 모든 위협에 맞서는 것입니다. 보통 로드밸런서(load balancer), 콘텐츠 전송 네트워크(CDN), 혹은 두 가지의 조합으로 구현됩니다. 규모가 작은 웹사이트나 서비스는 이렇게 방대한 서버 군을 유지할 자본이 없기 때문에 제3자 업체에 외주를 주기도 합니다.

CDN을 사용하면 웹사이트의 콘텐츠가 전 세계 여러 지역에 분산된 대규모 서버 네트워크에 복제됩니다. 덕분에 어디서 접속하든 웹사이트가 빠르게 로딩됩니다.

로드밸런서는 여기에 더해 데이터를 재분배하고 서버별로 분류하며, 각 작업에 가장 적합한 서버를 기준으로 트래픽의 우선순위를 정합니다. 대용량 하드드라이브를 갖춘 저대역폭 서버는 작은 파일을 대량으로 처리하는 데 적합하고, 초대형 대역폭 회선을 가진 서버는 큰 파일의 스트리밍을 담당합니다. '유튜브'를 떠올리면 이해하기 쉽습니다.

실제 작동 방식

흐름이 보이시나요? 공격이 한 서버에 몰아치면 로드밸런서가 해당 DDoS 공격을 추적하면서, 공격이 그 서버를 계속 때리도록 내버려 두고 모든 정상 트래픽을 네트워크의 다른 곳으로 돌립니다. 요점은 분산형 네트워크를 역으로 활용해 필요한 곳에 리소스를 배분함으로써, 공격이 '미끼(decoy)' 서버를 향하는 동안에도 웹사이트나 서비스가 계속 운영되도록 하는 것입니다. 꽤 영리한 방법이죠?

네트워크가 분산되어 있기 때문에 단순한 방화벽이나 대부분의 라우터가 제공하는 보호 기능보다 확연한 우위를 점합니다. 문제는 자체 인프라를 구축하려면 상당한 자본이 필요하다는 점입니다. 성장 과정에 있는 기업들은 더 큰 전문 보안 업체에 의뢰해 필요한 보호를 받곤 합니다.

거대 통신사(ISP)들의 방어 전략

DDoS 보호는 어떻게 작동할까? 가정용 방화벽부터 대형 ISP까지 완벽 해부

작은 가정용 네트워크부터 초대형 기업의 세계까지 둘러봤습니다. 이제 이 탐험의 마지막 단계로 들어갈 시간입니다. 여러분에게 인터넷 연결을 제공하는 바로 그 회사들이 스스로 어떻게 심연에 빠지지 않고 자신들을 지키는지 살펴보겠습니다. 이야기가 조금 복잡해지지만, 각종 DDoS 방어 기법에 대한 졸음을 유발하는 장문의 논문 없이 최대한 간결하게 설명하겠습니다.

ISP는 트래픽 변동을 처리하는 자체적인 방법을 갖추고 있습니다. 대부분의 DDoS 공격은 사실 그들의 레이더에 거의 감지되지 않는데, 거의 무제한에 가까운 대역폭을 확보하고 있기 때문입니다. 저녁 7~11시(이른바 '인터넷 러시아워')의 일상 트래픽만 해도 평균적인 DDoS 스트림의 대역폭을 훨씬 상회하는 수준입니다.

물론, 여기는 인터넷입니다. 트래픽이 레이더의 작은 점 이상으로 커지는 경우도 있었고 앞으로도 있을 것입니다.

이런 공격은 폭풍우처럼 몰아쳐 상대적으로 작은 ISP의 인프라를 압도하려 듭니다. 여러분의 인터넷 제공업체가 상황을 인지하면, 즉각 대응 가능한 다양한 무기를 꺼내 듭니다. 이들은 방대한 인프라를 보유하고 있기에 대응 방법도 여러 가지입니다. 가장 흔한 방법들은 다음과 같습니다.

  • 원격 트리거 블랙홀(RTBH) – SF 영화에 나올 법한 이름이지만, RTBH는 Cisco가 문서화한 실제 기술입니다. 구현 방법은 다양하지만 '간단 요약 버전'을 소개하면 이렇습니다. ISP는 공격이 발생한 네트워크와 통신하여, 자신을 향해 날아오는 모든 발신 트래픽을 차단해 달라고 요청합니다. 들어오는 패킷을 막는 것보다 나가는 트래픽을 막는 것이 훨씬 쉽기 때문입니다. 물론 그 순간부터 공격 발신지에서 접속하는 사람들에게는 해당 ISP가 오프라인인 것처럼 보이지만, 일은 처리되고 번거로움도 적습니다. 나머지 세계의 트래픽은 전혀 영향을 받지 않습니다.
  • 스크러버(Scrubbers) – 일부 초대형 ISP는 트래픽 패턴을 분석해 정상 트래픽과 DDoS 트래픽을 걸러내는 장비로 가득 찬 데이터센터를 운영합니다. 엄청난 연산 능력과 구축된 인프라가 필요한 작업이기 때문에, 규모가 작은 ISP는 보통 이 업무를 다른 회사에 외주 줍니다. 피해 구역의 트래픽은 필터를 통과하며, 대부분의 DDoS 패킷은 차단되고 정상 트래픽만 통과 허용됩니다. 막대한 연산 비용을 치르면서도 ISP의 정상 운영을 보장하는 방식입니다.
  • 트래픽 마술(traffic shaping) – '트래픽 셰이핑'이라 불리는 기법으로, ISP는 DDoS 공격이 실어 온 모든 것을 목적지 IP로 그대로 몰아붙이고 다른 노드는 건드리지 않습니다. 쉽게 말해 나머지 네트워크를 지키기 위해 피해자를 희생양으로 내던지는 것입니다. 상당히 지저분한 해결책으로, 네트워크가 심각한 위기에 처해 전체의 생존을 위해 신속하고 결단력 있는 조치가 필요할 때 ISP가 최후의 수단으로 사용하는 방법입니다. '다수의 필요가 소수의 필요보다 우선한다'는 시나리오라고 생각하면 됩니다.

DDoS의 문제는 그 위력이 컴퓨터 성능과 대역폭의 발전과 함께 함께 성장한다는 점입니다. 이 위협에 정면으로 맞서려면 평균적인 가정용 사용자의 능력을 훌쩍 뛰어넘는 고급 네트워크 수정 기법을 동원해야 합니다. 가정이 DDoS의 직접적인 표적이 되는 일이 드문 것은 아마 다행스러운 일일 겁니다!

참고로, 이런 공격이 실시간으로 어디서 일어나는지 궁금하다면 디지털 어택 맵(Digital Attack Map)을 확인해 보세요.

여러분은 집이나 직장에서 이런 공격의 피해를 입어본 적이 있나요? 아래 댓글로 여러분의 경험을 들려주세요!