2019-08-18 23:48 (일)
DDoS 공격이란 무엇이고 대책은 없을까?
상태바
DDoS 공격이란 무엇이고 대책은 없을까?
  • 박재홍
  • 승인 2011.07.22 15:45
이 기사를 공유합니다

다양한 DDoS 공격, 제대로 알고 대처해야 한다

요즘 DDoS 공격에 대한 이야기가 많아 졌다. DDoS 공격은 다른 악의적인 해킹에 비하여 위험도는 좀 낮은 편이지만 사회적으로 이슈가 많이 되고 있는 이유는 근본적으로 막을 수 있는 방법이 없기 때문이 아닐까?
(사진출처. www.flickr.com / by ketu)
 

DDoS가 도대체 뭘까? 정확히 용어를 말하자면 "분산 서비스 거부" (DDoS, Distributed Denial-of-Service attack) 인데 쉽게 이야기하면, 나누어서 방해한다는 의미이다. “방해 한다” 라고 했으니 다른 악의적인 해킹(정보를 빼내거나, 심지어는 돈을 갈취하는 경우도 있음)에 비하여 위험도가 낮다고 할 수 있지만, 얼마만큼 해야 '방해'한다고 정의 내리기 힘들고, 분산으로 가면 하나하나는 방해한다고 볼 수 없지만 모이면 문제가 되는 경우도 있다.
 

컴퓨터에서 DDoS 이야기가 되지만, 사실 원래 인간 세상에 DDoS는 존재했다고 볼 수 있다. 예를 들어 대부분의 항의 시위가 그렇다. 실제 있었던 일로, 과거 경부고속도로 판교 IC에서 요금인하 시위를 했던 적이 있다. 여기에서 서울까지 고속도로 요금이 900원인데, 이를 인하해 달라는 시위였다. 시위의 방식은 간단하다. 요금을 무조건 10000원권 지폐로 지불하는 것. 이렇게 되면 요금 징수원은 매번 9100원을 거슬러줘야 하고, 좀 지나면 잔돈 부족 사태가 온다. 이때 한 사람 한 사람을 보면 전혀 문제될 것이 없지만 모든 차량이 이렇게 되면 훌륭한 DDoS 공격이 된다. (집회 및 시위가 헌법에 보장된 것처럼 DDoS 권리도 보장해 달라~~)
 

DDoS를 알고자 하면 일단 DoS(Denial-of-Service)부터 알아보자. DoS는 DDoS보다 넓은 의미이다. 서비스를 방해하면 모두 DoS라고 할 수 있다.

서비스가 잘 안 되는 경우를 연구해 보자.
1. 자원을 고갈 시킨다.
■ 위에서 예를 들었던 경우다.
■ CPU를 바쁘게 한다. 메모리를 다 소진하게 한다. 네트워크 대역폭을 다 차지한다.
 

2. 약점을 찌른다.
■  가끔 경쟁사의 비리를 고발하는 경우가 있다. 세무조사 당하면 정상적인 서비스가 힘들어진다.
■  취약성이 있는 부분을 건드려 서비스 프로그램을 마비 시킨다.
 

3. 그냥 사용량이 많다.
■  연휴 교통체증을 생각하면 되겠다.
■  대학 수강등록 할 때 수강등록 서버 폭주
 

4. 잘못된 환경
■  잘못된 정책으로 업무가 안 돌아 가는 경우
■  서버 설정이 잘못된 경우 
 

대략 이 정도로 정리할 수 있는데, 여기서 3번 4번은 서비스를 제공하는 쪽이 잘못한 것으로 보이므로 여기서는 논외로 하자. 문제는 1번 2번이 되겠다. 2번의 경우는 단 한번의 공격으로도 데미지를 줄 수 있으므로, 분산하여 공격할 필요가 없을 것 같다. 반면 1번의 경우는 한번 공격으로는 별 효과가 없다. 그래서 상대방이 힘들 때까지 공격을 해야 한다. 잔돈이 다 소진 될 때까지 열심히 톨게이트를 반복하여 통과 한다. 그러나 혼자 이렇게 했을 때는 돈과 시간을 소모만큼의 효과를 보기 힘들다. 은행에서 잔돈 바꿔오는 속도를 따라잡을 수 없는 것이다. 만약 뜻을 같이하는 동료가 많이 있다면? 이 시위는 성공할 가능성이 있다. 물론 시작한지 얼마 되지 않아 톨게이트 직원이 이상함을 알아차리게 되고, 상사에게 보고하여 사태 파악 및 해결을 위해 노력하게 될 것이다.
 

그럼 컴퓨터로 바꾸어 생각하면 이쪽이 이런 공격에 더 효율적임을 알 수 있다. 컴퓨터는 묵묵하게(잔돈을 다 소진하여 문제가 될 때까지) 일하다가 해결할 시점을 놓쳐 버리게 될 것이다. 물론 서버관리자가 수시로 확인해야 하지만 이것도 쉽지 않다. 공격자 입장에서 보자. 사람의 경우 뜻을 모으려면 여러 방면으로 홍보도 해야 하고, 설득도 해야 하겠지만, 컴퓨터는 단순하다. 그래서 보안이 뛰어나지 않은 컴퓨터 수천 대를 해킹하여 장악한다. 이렇게 되면 이른바 좀비PC로 주인에게 들키지 않으면(들키더라도 괜찮은 경우도 있지만…) 명령을 내릴 수 있다. 이러한 환경에서 DDoS공격이란 것이 원래 사회현상에도 존재함에도 불구하고, IT세계에서 더 이슈가 된 이유가 되겠다.
 

IT 환경에서 DDoS 공격이 상대적으로 쉬움에도 불구하고 좀더 효율적으로 공격하는 것은 당연하다. 그럼 어떤 부분을 괴롭힐 것인가? 물론 대부분이 아픈 부위일 것이지만 하나에 집중하는 것이 보다 효과적이다. 대상은 모든 한정된 자원이다. 네트워크 bandwidth 일 수도 있고 커넥션 수, 서버의 CPU, RAM, DISK, 심지어는 웹 서버의 backend 에 있는 DB 서버의 자원까지도 대상이 될 수 있다. 
 

그럼 DDoS에 대한 대책을 어떤 것이 있을 수 있을까? DDoS 공격에 대한 대응은 탐지, 대응, 방지의 3가지로 나눌 수 있다. 그러나 위에 언급한 것과 같이 공격대상이 매우 다양하고, 공격이 쉽기 때문에 대응 방법이 그리 시원하진 않다.
 

먼저 '탐지'에 대하여 알아보자. 탐지 방법에는 크게 2가지가 있을 수 있다. 특정 행동을 보고 판단하는 것과 전체적인 분위기로 판단하는 것. 전자를 signature라고 하고, 후자는 anomaly 라고 하는데, signature는 공격 방법이 바뀔 때마다 signature도 바뀌어야 하고, anomaly는 판단하는데 두루뭉실하다. 결국은 signature와 anomaly를 종합해서 판단하는 방식이 추진되고 있다.
 

'대응'은 문제가 있는 부분을 차단하는 것이다. 물론 탐지가 우선되어야 한다. 탐지한 정보에서 문제가 있는 부위 부분을 그 주변에 있는 문제가 없는 부분과 같이 짤라 버리는 것이다.(암 수술 같다.) 이렇게 하면 일단 그 문제가 없어지기는 한다. 그러나 근처에 있는 문제가 없는 부분까지 같이 차단 대상이 된다는 것이 문제다. 다시 말해 DDoS의 원인이 되는 IP들을 차단 했을 때 좀비PC가 되어버린 장비는 자신도 모르게 서비스가 차단되거나, NAT 환경에 있다면 한 PC의 문제로 그 네트워크 모두 차단된다. 또한 DDoS의 경우 원인이 되는 IP가 매우 많으므로 그만큼 서비스 불가 영역이 넓어지게 된다. 또한 탐지도 그리 쉽지 않았다고 이야기 된 것을 잊으면 안 된다. 서비스 차단이라는 강수를 쓰는 상황에서 정확한 판단도 미덥지 못한 상황인 것이다.
 

'방지'는 다시 3가지로 나눌 수 있는데, 서비스 로직의 개선(리소스를 많이 소비하지 않는), 충분한 자원 확보, 지능적인 차단이다. 서비스 로직의 개선은 모든 이들의 꿈이다. 같은 일을 하는데도 자원이 더 적게 들어가게 하거나, 과부하에도 자원의 증가가 거의 없는 경우는 희망사항이긴 하지만 가능한 기술의 발전이 뒷받침 되어야 한다. 충분한 자원 확보는 여러 대기업에서 추진되고 있는 사항이다. 이미 장비를 2중화 하거나, 필요할 때 서버의 수를 늘릴 수 있다거나, 유사시를 대비하여 충분한 자원을 마련해 놓거나, 클라우드 환경을 이용하여 매우 탄력적으로 운용을 하는 것이다. 그러나 cloud 환경을 제외하고는 비용이 문제가 된다.
 

지능적인 차단은 DDoS 공격이 대부분 좀비PC를 이용하여 실행된다는 점에서 착안한 것이다. 사회현상과 IT에 모두 DDoS가 존재하지만, IT이기 때문에 더 문제가 되는 것은 사람이 좀비가 되는 것은 환타지에 나오는 것이고, IT에서는 실제 현상이 있기 때문이다. 또한 대부분 프로그램이기 때문에 단순한(정해진) 반응을 보인다. 여기에 착안하여 사소한 변경점을 부여하여 좀비 프로그램의 오동작을 유발한다면 비교적 효과적으로 막을 수 있을 것이다. 다만 얼마나 지능적이어야 하느냐는 과제가 있는데, 아직 풀어야 할 숙제이다.
[펜타시큐리티시스템 박재홍 synack@pentasecurity.com]