최근 아이템 현금 거래 사이트들이 DoS(Denial of Service)로 추정되는 - 대상 업체에서 발표를 거부하고 있어 추정밖에 할 수 없다 - 공격을 받아 모두 빈사 상태에 빠졌다. 2, 3위 업체는 정신을 차렸지만 1위 업체는 아직도 코마 상태를 유지하고 있다.
그 와중에 온갖 루머가 난무하고 있는데, 단순한 DoS도 못막는 허섭한 보안 상태를 질타하는 사람들이 단연 많다. 일부는 중국 IP만 막으면 해결될 걸 왜 해결 못하냐고 으르렁 거리는 사람들도 있다.
이게 그렇게 단순한 문제가 아니라는 사실을 간단히 설명할까 한다.
more..
우선 DoS에 대해서 알아보자.네트웍에 익숙치 않은 사람도 있을테니 보다 이해하기 쉽게 고속도로 톨게이트를 예로 들어 설명하겠다.
통행료 인상에 불만을 가진 백만명의 사람들이 톨게이트를 봉쇄하기로 합의하고 동시에 차를 끌고 나와서 통행료를 아주 느린 속도로 낸다고 생각해보라. (실제로 신공항 고속도로에서 이와 비슷한 일이 있었다.) 톨게이트 주변은 완전히 마비가되고, 실제로 고속도로를 이용하려는 사람들은 톨게이트 통과가 극도로 어려워진다. 이게 서비스 거부 공격이다.
네트웍도 고속도로와 비슷하게 대역폭(차선과 비슷하게 생각하면 될듯, 광고에서 100메가니 어쩌니 하는게 바로 이 것이다)이라는게 있는데, 이 대역폭을 서비스를 사용하지 않은 쓰레기들로 가득채워 실제로 서비스를 이용하려는 사람들이 서비스 이용을 불가능하게 만드는 방법이다.
그러나, 이렇게 단순한 DoS는 헛점이 있다. 그러니까 위에서 예로든 백만명의 불만에 가득찬 사람들이 특정 지역에 살고 있다고 가정해보자. 그 고속도로에 진입하기 위해서는 몇 개의 길을 통과해오는 방법밖에 없다. 이러한 경우에 정부에서 그 진입로를 차단해 버릴 수 있다. 그럼 대부분의 운전자는 톨게이트에 도착하기도 전에 이미 차단을 당해서 갈 수 없게된다. 이 경우 일부 진입로는 차단 되겠지만, 톨게이트는 정상적으로 운영이 가능하게 된다.
이와 비슷한 사례를 보자. 해마다 광복절 혹은 3.1절이 되면 일부 네티즌들이 일본 사이트를 다운 시키겠다고 F5 연타 운동을 벌이는 경우가 있다. 그리고 실제로 사이트 로딩이 중단되면 성공했다고 좋아하는데, 바로 위에 설명한 예로 아주 적절한 경우다. 한국에서 일본으로 연결된 라인은 아주 제한된 숫자에 불과하서(틀어 막기에도 아주 좋다는 얘기다), F5 신공을 사용해서 신나게 공격해봐야 중간 길목에서 막아버리면 아무 소용이 없다. 사이트 로딩이 중단되는건 그 사이트가 죽었기 때문이 아니라 당신이 차단당해서 그럴 확률이 훨씬 더 높다. 이 경우에 일본 본토에서는 그 사이트를 자유롭게 이용이 가능하다. 그러니까 이러한 공격은 아무런 소용도 없다는 말이다(아무 것도 모르는 상태에서 자신이 참여해 뭔가를 이루었다는 찌질한 성취감을 성과로 친다면 의미가 있기도 하다).
다시 DoS로 돌아 오자. 정부의 진입로 차단을 통해서 목적을 이루지 못한 백만명의 운전자들은 두 번째 시위를 준비한다. 이번에는 진입로 차단에 좌절당하지 않기 위해서 거사일 하루 전에 고속도로 진입이 용이한 몇 개의 지정된 위치로 미리 이동을 한다. 그리고는 동시에 다시 톨게이트로 진입을 한다. 이 경우는 진입로 차단도 도움이 안된다. 전지역을 다 막으면 시위가 성공하니까(누구도 톨게이트 진입이 불가능해진다). 이게 바로 진화된 DoS로 DDoS(Distributed Denial of Service)라 불리운다.
실제 네트웍 DoS도 이와 비슷한 방향으로 발전했다. 몇몇 거점을 해킹해서 차지한 후 동시에 공격을 하는 방법으로 말이다. 그러나 거점을 갖는 이 방법에도 허점이 있다. 위의 고속도로 예에서 고속도로 진입이 용이한 몇 개의 지정된 위치로 대규모 경찰을 투입해서 원천 봉쇄해 버리는 방법이 그 것이다. 당연히 막대한 인력과 노력이 들어가지만 시위로 성공함으로써 인해 생기는 피해에 비하면 작은 노력이다. 온라인의 경우에 이러한 공격이 발생하면 대량 트래픽을 유발하는 거점을 빠르게 찾아서 그들을 말단에서 차단한다. 물론 이렇게 하기 위해서 여러 단계의 협동이 필요하지만, 공격이 시작되면 모든 관련자가 다 피해를 입기 때문에 이런 경우 협조는 잘 이루어 질 수밖에 없다.
이렇게 해서 DDoS가 없어지거나 적은 평화로운 세상이 오면 좋겠지만, 우리의 성난 백만명의 운전자들은 이 정도로 굴복할 생각이 없다(슬슬 이 긴 글도 끝이 날때가 왔다). 모월모일 모시에 고속도로 진입이라는 목표만을 가지고 아무데나 흩어진다. 그리고 그들은 결국 대규모 DDoS 공격에 성공한다. 사실 이 방법의 해결책은 고속도로 폐쇄라는 극단적인 방법밖에 없지만, 고속도로 폐쇄는 곧 그들의 목표와 일치하기 때문에 사실상 해결 방법은 없다고 할 수 있다.
그렇다면 이러한 방법이 온라인에서는 어떻게 적용이 될까?
가장 최근의 기술은 Botnet이라 불린다. 평소에 부지런히 끝없는 해킹을 통해서 - 사실 이 과정도 자동화된다 - 자기 수중의 해킹된 컴퓨터(이렇게 해킹된 녀석들을 봇이라 부른다)를 늘려 나간다. 이렇게 준비된 수백에서 만단위의 봇을 통해서 일제 공격을 하게 되는 것이다. 위에서부터 차례로 본 것처럼 이 방법에는 딱히 마땅한 방법이 없다. 이론적으로는 봇으로 활용될 컴을 확보하지 못하게 만드는건데 이게 쉽지 않다.
DoS에 대해 간략하게 알아봤는데, 인터넷 강국이라는 우리나라의 상황을 보자. 개인적으로 보면 공부한다고 깔아둔체 24시간 내내 켜두는 리눅스 서버, 보안 업데이트라고는 절대 하지 않는 윈도우 피씨부터 시작해서, 사회적으로는 보안에 대한 개념따위는 전혀 없는 대학의 수천대 이상되는 피씨와 서버들까지지 모두 다 해커의 아주 쉬운 표적들이고 이들이 남아 있는한 DDoS 공격에서 절대로 자유로울 수 없다.
보안이란 특정의 집단에 의해서 이루어 지는게 아니다. 대상 집단의 가장 취약한 부분이 그 집단의 전체 보안 수준이다. 아무리 철벽같은 방화벽을 구축해도 생각없는 구성원 하나가 웹에서 클릭 한 번 잘못하면 그냥 병신되는게 보안이다.
그러니 이 순간에도 박봉에 죽도록 일하고 있는 보안 담당자들을 비난하지도 말고, 중국 IP만 막으면 된다는 철없는 소리해서 그들 가슴에 대못도 박지 말자.
보안 어려운 것이다.
ps. 극도로 단순화 시킨 것을 이해해 주기 바란다. 복잡한 방법들도 있지만, 이들에 대해서 잘 알지도 못하고 그걸 쉽게 설명할 방법은 더 모르겠다.