딴지일보에 기재된 10.26 선거방해 사건의 정밀 분석

2012. 1. 24. 21:03프로그래밍

반응형

10.26 서울시장 선거를 방해한 사건을 정밀하게 분석한 자료입니다.
기술적 용어들이 난무하기는 하지만 완전 쉽게 풀어쓴 내용입니다. 정부는 이런 자료들에 대해서 왜 내놓지 않는 걸까요? 참으로 답답한 일입니다.
내곡동 부동산 실명제법 위반을 비롯해서 부정선거 사건까지 입을 다물고 그냥 넘어가면 될 것으로 생각하는 MB 정부는 각성해야 할 것입니다.
이러한 내용이 진실이 아니라면 당당하게 밝히면 될 것입니다. 안그런가요?


[정밀분석] 10.26 선거방해 사건의 정밀분석

2012. 1. 17. 화요일
iMaZiNe

편집자 주 :  

10.26 부정선거, 혹은 선거방해 사건이 단순한 디도스 공격 사건으로 변질되는 경향이 있다. 그러나 이 사건의 본질은 디도스 공격이 있었느냐 없었느냐의 문제가 아니다. 디도스만으로는 풀리지 않는 10.26 선거방해사건의 수수께끼를 다뤘다.

이 글은 저자와 합의하여 기재한 것이다. 전문적인 내용이 많아 논지를 해치지 않는 한 비전문가가 알아들을 수 있는 수준의 주석을 삽입하였다.

저자블로그에서보기

 

Intro. 이 글은 지금까지 제가 가지고 있던 의문점들에 대하여 최대한 객관적이고 기술적으로 접근하여 얻은 추론임을 서두에 밝힙니다. 글을 읽는 모든 분들 또한 객관적 시각에서 바라봐 주시길 바랍니다. 

이 글은 많은 기술적 부분을 내포하고 있음으로 읽는 분들의 직종에 따라 상당히 난해한 부분이 나타날 수 있습니다. 해당직종의 종사자가 아닐 경우 
“Chapter4 -쉬운설명”부터 읽어 나가시기를 권해 드립니다.

 

 

 

Chapter 1.선관위의 서버구성

 

우선 이번 사건에서 먼저 알고 넘어가야 하는 부분입니다. 선관위는 국가 주요기관으로 최대한 합리적이고 안정적인 서버 운영이 필요한 기관입니다선관위 서버가 공격등의 위험에 노출되거나 적절한 대응을 하지 못하였을 시에는 선거 결과에 대한 공신력이 저하될 수 있음을 인지하여야 합니다.


객관적으로 이번 사건을 보기위해
선과위 서버 구성을 조사하던 중, 선관위 서버가 Sub Domain마다 다른 IP Address를 가진다는 사실을 알게 되었습니다. 만약 서브도메인 마다 다른 서버를 사용할 경우 선관위 서버는 Load Balancing을 하지 않을 확률이 높아지게 됨으로 이번 증상에 많은 영향을 끼칠 수 있습니다.

편집자 주 :  

Load Balancing(로드 밸런싱)이란 여러대의 서버가 같은 일을 다 같이 힘을 합쳐 하는 것을 뜻한다. 즉 선관위처럼 서브도메인(www.nec.go.kr, m.nec.go.kr, minfo.nec.go.kr 등 파생형 주소)마다 서버를 따로 두는 것이 아니고, 여러 대의 서버로 모든 도메인을 각자 나누어서 처리하는 것이다. 서버끼리 외부에서 오는 모든 트래픽을 분산해서 처리하기 때문에 대체로 더 안정적이다.


조사결과 선관위 
메인 페이지를 기준으로 nec.go.kr을 공유하는 서브도메인 6개(www, info, m, minfo, law, ok)와 별도의 도메인 2개를 발견할 수 있었습니다. 이중에 중요한 것은 서브 도메인 6개 입니다. 정확성을 위해 제가 사용할 수 있는 회선 (SK Broadband와 KT, KT Wibro) 3개와 주변의 지인분들, 그리고 이 포스팅이 가능하도록 조언을 해 주신 모든 분들께 IP조회를 의뢰한 결과 모두 동일한 결과값을 얻을 수 있었습니다.(IP 조회는 국내뿐 아니라 해외에서도 이루어 졌습니다)


 



IP만 가지고는 확신을 할 수 없었기에 
각 서브도메인 별 Header Response를 살펴보기로 합니다.(이미지를 클릭 하시면 확대보기를 하실 수 있습니다)
http://www.nec.go.kr

http://info.nec.go.kr

http://m.nec.go.kr

http://minfo.nec.go.kr

http://law.nec.go.kr

 

각 서버별로 상이한 Header Response를 확일 할 수 있으며 심지어는 Charset값 마저 다름을 알 수 있습니다. 이러한 서버 설정은 상당히 비효율적이라 할 수 있습니다. 개인적인 소견으로는 하청을 주는 과정에서 벌어진 웃지못할 비극이 아닐까 하는 생각을 해봅니다. 혹자는 “Virtual Host 셋팅으로 위와같은 결과물을 만들 수 있다”고 주장할 수 있으나, 그러한 세팅을 해야할 목적을 찾을 수 없음으로 가능성은 아주 낮다고 봅니다. 또한 위 결과물을 토대로 선관위 서버는 Tomcat을 기반으로 JSP를 서비스를 하고 있으며, Unix/BSD,Linux기반의 Apache 서버를 사용할 확률이 높다있다는것을 알 수 있습니다.(추가12.01.10: 또는 많은 비용을 들여 WebLogic의 사용도 가능성이 있습니다.)

편집자 주 :  

지금 필자는, 선관위가 서브도메인마다 따로 서버를 두고 있으며, 로드밸런싱을 하지 않고 있다는 의혹을 입증하고 있다. ‘내가 알아보니까 선관위 서버는 로드밸런싱 안 하는 것 같아. 근데 이게 별로 좋은 것이 아니야’ 라고 말하는 것으로 알아들으면 된다. 


위 결과물과 여러 정황들을 토대로 선관위의 서버 구성도를 그려보았습니다. 선관위 서버 구성과 차이가 있을 수 있으나 logic은 대동소이 할 것입니다. 따라서 이번 현상을 설명하는데는 충분할것 입니다.(포토샵에서 발로 만들었음을 미리 밝히는 바입니다. 이미지를 클릭하시면 확대화면을 보실 수 있습니다.)

KT에서 공개한 MRTG가 2개인 점을 감안하여 두군데의 ISP에서 모두 Pubnet으로 유입이 될 것이라는 전제를 두었습니다. Database Server는 개표정보 수집과 각 방송과 언론 기자들의 조회, 일반인의 조회를 충분히 버텨낼 수 있어야 함으로 최소 2대이상의 병렬구조로 이루어져 있을 것입니다. 각 서브도메인 마다 1대의 서버를 사용할 수도 있지만 아래와 같이 L7 Switch혹은 L4 Switch의 순차적 구성을 사용하여 아래와 같이 여러대로 구성할 수도 있습니다.(이러한 경우에는 로드벨런싱을 하더라도 동일 IP를 보일 수 있습니다)

하단에서 이정도 구성을 할 수 있었다면 상단 구성 또한 로드벨런싱을 했어야 하며, 1대의 구성보다는 훨씬 더 많은 양의 요구를 처리할 수 있습니다. 또한 Chapter2에서 언급할 DDoS공격의 효율성 부분을 더욱 낮게 만드는 요인이 됩니다.

이쯤에서 6기 이상의 서브도메인 서버 또는 서버군을 이미 로드벨런싱으로 묶었어야 하는것 아니냐는 의문을 제기하시는 분이 있을 것입니다. 저도 그 부분은 이해하기가 쉽지 않습니다. 정리하자면 선관위의 서버 구성은 6개 이상, 웹서비스를 목적으로 하는 독립적인 서버(군)으로 이루어져 있으며 각 서버(군)별 서비스 내용은 아래와 같습니다.
  1. www : Domain Root에 관련된 서비스를 하며 다른 서브도메인 으로의 링크를 제공합니다.
  2. info : 투표소 조회와 투/개표율 조회 등의 선거관련 정보를 제공합니다.
  3. m : Mobile Service Page 의 Domain Root를 제공합니다.
  4. minfo : info 서버와 동일한 정보를 Mobile을 통해 제공합니다.
  5. law : 선거와 관련된 법제정보를 제공합니다.
  6. ok : 재외선거와 관련된 정보를 제공합니다.

이쯤되면 전체적인 시나리오가 예상되는 분들이 있으실 겁니다. 앞으로 이야기할 서버는 이 6개의 서버(군)중 www, info, m, minfo 4개의 서버(군) 입니다.


편집자 주 :  

투표소 위치 관련 서비스를 제공하는 서브도메인은 info, minfo 이다. 그리고 이 서버는 별개로 운영된다.

 

 

Chapter 2. 경찰 발표내용의 신뢰성과 기술적 논쟁들.


경찰 발표에 의하면 “200대의 좀비 PC를 가지고 RCMP,UDP,TCP,CC 등의 총합 2Gb의 공격으로 정상적 서비스를 할 수 없는 상태로 만들었다” 가 주된 내용 입니다. 뭐 누가 술을 먹고 마약을 하고 누군가에게 사주를 하였다는 부분은 기술적인 부분이 아님으로 생략하겠습니다.


가.공격의 효율성 부분
입니다. 경찰 발표에 따르면 
“RCMP,UDP,TCP,CC 등의 공격이 이루어 졌다”라고 했습니다. 지금부터 Chapter1 에서 다뤘던 서버의 구성을 가지고 이 공격들의 효율성이 어떠한가 보도록 하겠습니다. LG엔시스에서는 DDoS장비는 정상작동했다고 발표했습니다.


RCMP(ICMP): 가장 당혹스러웠던 공격 기법이었습니다. “구글신”에게 물어보아도 알려주지 않았던 신종 기법이었기 때문이지요. 정확히 말씀드리자면 ICMP의 오타입니다. 이러한 오타를 검증없이 복사해 나른 언론사분들 덕분에 상당히 많은 기사에서 이 단어를 목격하게 됩니다. ICMP 공격의 경우 공격받을 서버가 위치한 네트워크 상의 다른 서버에 공격대상을 수취인으로 하는 ICMP요청을 보내는 방식의 공격입니다. 요청을 받은 네트워크 상의 최소 255대의 서버가 수취인에게 ICMP를 전달하고 공격이 성공하면 상당한 효율을 보장할 수 있습니다. 하지만 대부분 네트워크 장비에들이 막아낼 수 있도록 설계되어 있으며 Chapter1 에서 다루었던 DDoS 방어장비라면 일정량 이상의 ICMP를 거부해 손쉽게 막아낼 수 있는 공격입니다.심지어 서버세팅시 ipTable설정 만으로도 방어가 가능한 공격이 되겠습니다.

UDP별도의 검증없이 양방향으로 데이터를 가장 빠르게 전달하는 통신방법입니다. 보통 동영상이나 음악 스트리밍 서비스에 사용합니다. 방어 방법은 UDP로 들어오는 모든 요청에 대해 Null(정보없음)을 반환해 주는 방식으로 방어가 이루어집니다. 서버나 DDoS 방어 장비에서 이러한 방어를 할 경우 상위 네트워크(스위치 장비나 백본 등)에 부하가 몰리게 되어 서비스 제공 업체에서 인지하고 대응할 수 있으며 마찬가지로 Chapter1의 DDoS 방어장비라면 충분히 방어할 수 있는 공격 입니다.

TCP,CC: 두가지 모두 다른 공격 방법이나 하나로 묶어 쓰는 이유는 두가지 공격 모두가 “정상인척” 하는 공격으로서 대용량의 공격이 불가능 하다는 이유가 있습니다. 정상 이상의 패턴을 보이면 DDoS 방어장비가 탐색할 가능성이 높습니다. 위 공격들은 많은수의 좀비를 확보했을 때 비로소 공격의 효과가 나타나며 200대의 좀비로는 큰 효과를 볼 수 없는 공격방식 입니다.DDoS 방어 장비는 이러한 “정상인척 하는 비정상 신호”를 막아내는 역할을 하며 서버설정으로 방어 할 수 있는 방법을 인터넷 검색만으로 쉽게찾을 수 있습니다.

섞어찌개(?): 경찰 발표에 의하면 200대의 한정된 공격 자원을 이용하여 최대한의 공격을 해야 효율성을 보장받을 수 있습니다. DDoS 공격에 있어 200대는 적은 자원이고 이를 활용해 공격할 수 있는 최선의 방법은 ICMP나 UDP공격이지만 Web Server Web Server Software(Apache등)와 방화벽 기본 세팅은 TCP/80, TCP/433을 제외하고 Deny all입니다. (이 설정이 들어있지 않다면 선관위 서버 관계자들은 전부 옷을 벗어야 합니다) 앞서 설명드린대로 UDP를 제외하면 200대로 2Gbps의 공격을 하는 것은 현실적으로 불가능하기 때문에 전송량 부분 또한 충족할 수 없으며, 2Gbps 이하의 공격을 여러가지 공격방식으로 분할하는 것 또한 효율성면에서 최악의 선택입니다. 따라서 DDoS공격으로 선관위 서버를 무력화 시키는 것에는 실패했을 확률이 높다고 할 수 있습니다.


 

 

나. 기술적
논쟁
 부분 입니다. “나꼼수”에서 처음 이 사건을 이야기 하면서 “DB서버를 끊었다” 라는 표현을 사용합니다. 그리고 자칭 보안전문가 이신 “이길환”님이 방송 매체와의 인터뷰를 통해 “특정 페이지를 공격해 DB를 무력화할 수 있는 신종 DDoS다”라는 이야기를 하면서 
전문가들 사이에 기술적 논쟁이 시작됩니다.


이번 기술적 논쟁에서 가장 중요한 부분은 Chapter1 에서 다루었던 서버의 구성 입니다. 제 예상이 틀리지 않다면 현재의 선관위 서버는 그 어떠한 효율도 기대할 수 없는 구성으로 이루어져 있으며, 앞서 이야기한분들 주장에 가능성이 생깁니다. 하지만 확실히 집고 넘어가야 할 부분은 특정페이지를 공격하던, 메인 페이지를 공격하던 “DDoS공격으로 죽일 수 있는것은 웹서비스를 하는 프로그램이지 특정 페이지만 죽지는 않는다”는 것입니다.


이 기술적인 논쟁을 하기 위하여 한가지 더 필요한 사항이 있다면 바로 선거당일 이용자들이 격었던 장애증상에 대한 레포트 입니다. 선관위 서버에서 일어났던 일들을 종합적으로 정리해봐야 할 필요성이 있었습니다. 이번 맥락 에서는 선관위 서버에서 나타난 증상만을 기술하고 자세한 내용은 Chapter3에서 제보와 증상을 중심으로 사건을 재구성 하면서 이야기 하도록 하겠습니다.

 

    1. DB서버에서의 Caching은 일어나지 않았을 확률이 높다. 시/도,구/군 외 사용자 이름과 주민등록 번호, 읍/면/동을 입력받았다.
    2. DDoS 공격은 있었다. 하지만 200대의 좀비로 2G의 공격은 불가능하며 공격의 효율성 부분을 보장할 수 없다.
    3. 6시 부터 9시 사이에는 자신의 투표소 찾기가 불가능 했다. 심지어 투표율 조회 또한 되지않았다.
    4. 8시 부터 9시 사이에는 http://www.nec.go.kr (메인페이지)도 접속 장애를 겪었다.
    5. DDoS 공격을 받을 수 있는 것은 “특정 페이지를 소유하는 1기의 서버(군)”이다.
    6. info와 minfo 서버(군)에서 동시간대에 같은 증상이 나타났다.
    7. 경찰발표에서 선관위가 공격을 인지한 시각은 5시50분이다.

편집자 주 :  

즉, 불과 200여 대의 좀비PC로 선관위 서버(중 하나)를 죽이기도 어렵고, 효율적인 공격을 위해서는 공격을 분산하지 않고 4개중 하나에 집중해야 한다. 또한 설령 4개의 서버중 하나가 죽었다 하더라도, 다른 3개의 서비스는 정상적으로 이루어져야 한다.

 

 

 

 

Chapter 3. 제보와 증상을 바탕으로 당일 사건의 재구성 

먼저 11월 16일 KT 이상용 상무가 
방송통신위원회가 주최한 해킹방지워크샵에서 공개한 MRTG를 보면서 이야기를 풀어가도록 하겠습니다.

위 MRTG는 11월16일 오전 KT 이상용 상무가 공개한 그래프에 가시성을 위해 시간표시를 추가했음을 알려 드립니다.

Chapter1 에서 말씀드린대로 ISP유입은 KT+Dacom을 보는것이 맞을 것입니다. 그럼으로 두 그래프를 합친 값이 Pubnet으로 유입된 전체 트래픽 양이 되겠습니다. 여기서Pubnet이라 함은은 초고속 국가망을 구축하는 사업으로서 선관위가 들어있는 KRNIC : KT Pubnet 을 가리킵니다. KT Pubnet 안에는 선관위의 서버만이 있는 것은 아닙니다. 하지만 전개의 편의성을 위해 다른 서버로 유입되는 트래픽은 무시하도록 하겠습니다.


유입량을 보면 양 그래프 모두다 7시경 부터 유입량이 증가하며 피크는 8시 입니다. 6시 이전의 유입량은 상당히 적으며 당일 당선확정 뉴스가 나간 20시 30분경 이후로 유입량이 상당히 줄어듭니다. 아래 기사는 MK뉴스에서 당일 9:50에 발표한 뉴스 입니다.


선관위 홈페이지 한때 불통…”디도스 공격 추정”

뉴스에서는 06:15분 부터 08:32분 까지 선관위 서버에 장애가 나타났다고 이야기 하고 있습니다.

 


시간대별로 유입량(피크 기준)을 보면.

    1. [00:00 ~ 06:00]무의미할 정도의 적은 양만이 유입되고 있습니다.
    2. [06:00 ~ 07:00] KT로 1G 가량의 트래픽이 유입됩니다. Dacom은 200M 이하의 유입을 보입니다.(합산 1.2G 정도의 트래픽으로 DDoS공격+ 일반트래픽량 입니다.2G 공격은 보이지 않으며, 공격이 있었다 하더라도 몸풀기 수준일 것으로 예상됩니다)
    3. [07:00 ~ 08:00] KT로 4G->6G
      Dacom으로 1G->2G 의 트래픽이 유입됩니다. 
      합산하면 5G->8G의
      트래픽이 유입
      됨을 알 수 있습니다.(선관위가 발표한 11G의 유입은 없었던 것으로 보입니다)
    4. [08:00 ~ 09:00] 양쪽 그래프 모두 30분 경까지
      급속도로 유입이 줄어들다 09:00경 KT는 1G, Dacom은 2G의 유입을 보입니다.
    5. [09:00~ ] KT는 1G대 Dacom은 2G
      이하
      (합산 평균 3G)의 유입을 꾸준히 유지 합니다. 

 

 

위 상황을 종합하여 보면 선관위 서버 장애가 발생할 수 있는 시간대는 07:00 ~ 08:30 이며 06:00 ~ 07:00 사이에는 장애가 발생할 확률이 낮다는 것을 알 수 있습니다. 다음은 제보를 통한 사건의 분석을 해 보겠습니다.


위 트윗 내용은 제가 트위터를 통하여 선관위서비스의 장애를 수집한 내용 입니다.

먼저 그동안의 제보요청을 꾸준히 리트윗 해 주신 모든 분들께 이번글을 빌어 감사의 뜻을 전합니다. 이글이 포스팅 된 후에도 제보는 꾸준히 받을 생각이며 제보를 하실 분들은 @iMaZiNe80 으로 멘션 주시기 바랍니다.

 

 

제보를 주신 분들의 장애증상을 분석해 본 결과 시간대별 장애증상이 다르게 나타나고 있음을 알 수 있었습니다. 증상과 시간대는 크게 2가지로 나뉠 수 있습니다.(멘션 내용의 공개는 조금 더 심사숙고 후 결정하도록 하겠습니다)


    1. [06:00 ~ 07:40]선관위 메인 페이지(www.nec.go.kr, m.nec.go.kr)와 투표소 찾기 페이지(info.nec.go.kr, minfo.nec.go.kr)까지는 정상적으로 접근이 가능했으나 검색결과 페이지가 나오지 않음.
    2. [07:40 ~ 09:00]선관위 메인 페이지 접속시에도 장애를 격었으며 투표소 찾기 페이지 접근 도 어려웠음. 
    3. 위 증상은 일반접속과 모바일 접속에서도 동일하게 나타남.


Chapter1에서 언급했던대로 선관위의 서버는 서브도메인 별로 독립적으로 구성
되어 있습니다. DDoS가 특정 페이지를 공격했다는 경찰의 발표에 따르면 www, info, m, minfo 4가지의 서버(군)중 하나만이 영향권에 있다 할 수 있습니다. (만약 4개의 서버 모두를 공격했다면 Chapter2 에서 다루었던 공격의 효율성 자체가 소멸되어 버립니다) 또한DDoS가 성공적으로 서버를 공격했다 할지라도 나머지 3개의 서버는 정상적인 서비스를 하고 있어야 합니다. 하지만 제보를 바탕으로 보면 선관위 서버는 2개의 서버(군)[info.nec.go.kr, minfo.nec.go.kr]이 같은 증상(검색 결과 페이지가 나오지 않음)을 보입니다.

편집자 주 :

디도스 공격을 했다면 위에서 말 한 4개의 서비스중 하나만 죽어야 하는데, 나머지 3개에서도 DB검색 결과가 나오지 않았다. 


7시 40분 이후의 접속장애 증상은 MRTG를 기준으로 보았을 때 정상적인 접속 폭주에 의한 서비스 장애일 것으로 보입니다. 대부분 메인 페이지를 기준으로 나타나며 증상으로는 접속이 불가 하거나, 느리거나, 늦게라도 접속이 가능했다 입니다. 물론 접속후 검색 결과 페이지는 나오지 않습니다.

DDoS 공격이 아닌 정상적인 유입은 4가지로 나눌 수 있습니다.
    1. www.nec.go.kr로 접속 -> 팝업링크를 따라 info.nec.go.kr의 검색페이지로 이동.
    2. 다른 블로그나 뉴스의 링크를 따라 info.nec.go.kr의 검색페이지로 바로 접속.
    3. 모바일 기기를 통해 m.nec.go.kr로 접속 -> minfo.nec.go.kr의 검색페이지로 이동.
    4. 트위터나 뉴스의 모바일 링크를 통해 minfo.nec.go.kr 의 검색페이지로 이동.

종합해 보면 Database의 무력화 나 검색결과 페이지의 오류/부재 가 아닐경우 위 증상(2대의 서버군에 동일증상)이 일어나기 힘듬을 알 수 있으며가능성 또한 0%에 수렴합니다. 전문가분들 중에 DDoS를 통해 JDBC 의 DB Connection Pool 초과로 DB Blind 상태가 되었을 수도 있다는 의견을 제시하십니다. 하지만 이러한 증상 또한 Chapter2의 내용에 근거하여 하나의 서버(군)에서만 일어날 수 있으며 트래픽 발생이 시작되는 6시부터 증상이 발생하기는 힘들 것으로 보입니다. DB Connection Pool 이 있었다 함은 WAS(JEUS등)를 사용했거나 DB가 Oracle 이라는 이야기도 됩니다. 이는 하단의 DDoS로 DB를 무력화 시킬 수 있는 가능성을 많이 낮추어 줍니다.


그렇다면 
DDoS로 Database가 무력화 될 가능성을 볼 필요가 있습니다. 먼저 이번 선거에서만 유일하게 투표소 조회에서 주민등록 번호와 이름을 입력받았다는 사실을 알 수 있었습니다. 기존의 시/도, 구/군, 읍/면/동의 입력 방식에서 주민등록 번호와 이름의 Unique한 값이 질의(Query)에 들어가게 되면 일단 DB단이나 WAS에서의 Caching은 힘들어 지며 Heavy Query를 만들어 낼 것 같은 착각을 불러 일으킬 수 있습니다. 하지만 주민등록번호 와 같은 Unique한 INT값은 Primary Key로 사용이 가능하며 Index를 탈 수 있는 최적의 조건을 만들어 줍니다. 또한 DATA의 구성상 주민등록 번호는 이름과 주소지를 내포하고 있음으로 필요없는 중복값을 입력받았을 뿐 그 어떠한 Heavy Query도 생성할 수 없음을 알 수 있습니다. 오히려 주소지별로 구성된 Table을 검색하기 위한 주소지 입력 값이거나. 주민등록 번호의 검증을 위한 이름을 입력받았을 확률이 더욱 높습니다. 게다가 매 공격마다 주민등록 번호와 이름을 생성해야 하며 대부분의 웹프로그래머 들은 DB에 질의를 던지기 전에 주민등록번호의 유효성을 확인합니다. 결론적으로 200대의 좀비+일반접속(6시 대의 적은 양 [MRTG참조]) 으로 DB를 무력화 시키는 상당히 힘든 일이 됩니다.

 

검색페이지의 폴다운 메뉴나 프론트페이지의 공지사항이 멀쩡히 보였다는 상황 또한 Database의 정상 작동을 뒷받침해 줄 수 있는 증거가 될 수 있습니다.


이제 남은 가능성은 검색결과 페이지의 오류(또는 부재)입니다. 지금까지의 모든 상황을 종합해 볼 때 가장 높은 가능성을 보이며 DDoS 공격으로는 일어날 수 없는 상황입니다. 마지막으로 열어놓을 수 있는 가능성이 있다면 info와 minfo 두개의 서버(군) 또는 Database 서버군에 해커가 침입하거나, 접근 가능한 사람이 결과 페이지를 변경 또는 삭제 하거나, Database 에서 조회해야 하는 table의 이름을 바꾸거나 삭제하는것 입니다.

 

편집자 주 :

따라서 10.26때 선관위 홈페이지에 디도스 공격이 있었다 하더라도, 그 공격은 무시해도 좋을 수준이며, 진짜 문제는 선관위 홈페이지 내부에 있었을 가능성이 크다. 그 원인이 무엇이든 간에.

 

 

Chapter 4. 쉬운설명

위 챕터들을 최대한 이해하기 쉽도록 재구성 합니다. 이번 챕터는 기술적 내용을 배제함으로 논리적 반론을 받지 않겠습니다. 먼저 그림을 보시겠습니다.(이번에도 포토샵에서 발로 만들었음을 미리 알려드립니다)




노란색은 웹서버, 연두색은 DB서버 입니다. DATA는 창고라고 보시면 이해가 편합니다.

DATA안에 있는 DB서버라는 녀석들은 웹서버 말고는 접근이 불가능합니다. 간혹 가능한 경우가 있는데 미션임파서블에 나오는 특수요원쯤 되는 해커라는 녀석이 나타나야 가능합니다.

 

 

자 여기 선관위라는 회사가 있습니다. 일반적인 구성일 경우 노란 녀석들은 모든 업무처리가 가능합니다. 하지만 선관위는 www와 m이 안내역할을 하고 info와 minfo가 투표소 조회 업무를 합니다. m과 minfo는 모바일로 들어오는 고객만을 받습니다.


경쟁 회사에서 DDoS라는 고객을 위장한 악당을 선관위에 투입합니다. 하지만 선관위는4명의 직원이 모두 다른 업무를 함으로 괴롭힐 수 있는 직원이 1명 뿐입니다. 경찰발표에 따르면 5시50분 부터 괴롭힘이 시작 되었고 info라는 직원이 몰빵을 당했다고 합니다.


그런데 info와 minfo 두녀석 모두 자신의 업무를 똑바로 하지 않습니다. 고객의 투표소위치자료 요청을 모르쇠로 일관합니다. 괴롭힘을 받은 직원은 분명히 1명 입니다. 또한 CCTV를 조사해 본 결과 6시 부터 7시 사이에는 DDoS를 포함한 정상적 고객이 그리 많이 오지도 않았습니다.(고객이 몰려온 시간은 7시 45분 이후 입니다)


고객들의 불만 내용을 수집해 봅니다. 고객들은 6시부터 7시 사이에도 info와 minfo모두 투표소 위치자료를 내놓지 않았다고 합니다. 8시이후 고객들은 4명의 직원이 모두 업무를 할 수 없을 정도로 지쳐 있었고 투표소 위치자료 또한 받지 못했다고합니다.


위 사건이 일어날 가능성은 몇가지로 압축이 됩니다. info와 minfo가 DB서버라는 직원이 준 자료를 무시했던지, 아니면 애초에 요청을 하지 않았던지, 그것또한 아니라면 DB서버직원 중 투표소 위치자료를 관리하는 직원이 돌연 휴가를 가던가 투표소 위치자료 자체가 증발해야 합니다. 혹은 해커라는 녀석이 원거리 사격으로 DB서버를 저격해서 죽였어야 합니다.


하지만 경찰은 계속 info가 집단괴롭힘을 받아 일어난 일이라고 하고 DDoS라는 녀석만 잡아갑니다. 고객들은 경찰의 발표를 이해할 수 없다고 하지만 경찰또한 모르쇠로 일관합니다.

 

 

 
Chapter 5. 개인적 소견 및 예상반응

상위 챕터의 기술적 분석을 토대로 개인적인 소견을 발표하겠습니다. 100% 개인적인 소견임으로 그 어떠한 태클도 사양하며 책임이 많은 순으로 나열합니다. 




90%의 책임1
선거관리위원회 입니다.

 


  1. 글의 서두에서도 말씀드렸지만 선관위의 서버는 그 어떠한 통신적 지연 및 손실에도 정확한 정보를 수집 및 제공할 수 있는 시스템을 운영해야 합니다. 그렇지 못할 경우 투표결과 와 선거 자체의 공신력을 회손하게 됩니다. 그럼에도 불구하고 방만한 서버관리와 운영으로 2G의 DDoS공격에도 서버에 장애가 발생했다고 자랑스럽게 말하고 있습니다. 또한 그 공격 자체의 의구심을 풀어낼 어떠한 증거도 제시하지 않고 있습니다.
    (내부관련자나 해킹없이 이번 현상이 나타날 수 있음을 기술적으로 증명해야 합니다.)
  • 위 현상들을 기준으로 보면 대략 4G이상의 트래픽에서 장애가 발생하는 서버의 구성입니다. 보궐선거에서 이정도의 트래픽이 발생했다면 총선이나 대선같은 전국구 선거에서는 몇배 이상의 트래픽이 발생할 수 있음은 자명한 일입니다. 이에 따른 서버의 대비책을 말하기는 커녕 “우리는 피해자 입니다” 라고 뒷짐을 지고 있습니다.

     

  • 경찰 발표에 따르면 선거관리위원회가 공격을 인지한 시점은 5시 50분 입니다. 작은규모의 사이트라도 운영해본 분이라면 알 수 있겠지만 서버에 문제가 발생하였을 경우 가장 먼저 찾게되는 것은 “사이트 개발자”와 “서버 관리자” 이며 선거당일 이라는 비상 사태에 대비하여 모니터링을 하고 있어야 함은 당연한 상황입니다. 그린존 대피의 문제 뿐 아니라 그 어떠한 대처도 가능했어야 하고, 만약의 경우 해킹이 발생했더라도 이 두직분이 존재했다면 대응시간은 30분이 넘지 않았을 것입니다. 또한 제 예상을 뛰어넘는 그 어떠한 서버 설정적 문제점이 발견 된다면 책임을 피해갈 수 없어야 합니다.

     

  • 이유없이 투표소를 대거 이동 하였음에도 공지가 허술하여 많은 사람들로 하여금 투표에 지장을 초래하였습니다. 이는 그 어떠한 책임도 피해갈 수 없는 사항이며 선관위의 존재 이유를 부정하는 행위 입니다.

 

 

8%의 책임2 – 대한민국 정부와 여/야를 막론한 국회의원 입니다.

 

 

  1. 앞서 말씀드린대로 현재의 선관위는 방만한 운영으로 공신력을 잃었습니다.이러한 상태에서 치루어지는 그 어떠한 선거도 공정하게 이루어 질 수 없다는 인식을 하지 못한 채 DDoS에만 매달려 있습니다. 이번 사건에서 가장 중요한 부분은 DDoS 범인이 아니라 선관위의 상태 입니다.
  • 특검이 모든것을 해결할 수 있다는 생각을 한다면 큰 오산입니다. 제가 보아온 지금까지 특검은 면죄부를 배포하는 일 이외의 그 어떠한 업적도 남긴 사례가 없었습니다.

     

  • 선관위 서버는 당신들의 웃는 얼굴이나 대문짝 만하게 나오고 접속자도 가뭄에 콩나듯 들어오는 개인 홈페이지가 아니라는 것을 인식하지 못했다는 점입니다. 돈주고 하청주면 해결된다는 생각부터 뜯어고치지 않으면 이 문제의 해답은 영원히 보이지 않을 것입니다.

     

  • 기술적,인문적 전문가가 배양될 수 없는 토양을 만들어준 대가 이기도 합니다. 그러한 전문가들이야 말로 사람이 자원인 대한민국의 기둥이라는 사실을 인지하지 않으면 이러한 사태는 반복될 뿐입니다.

     

 

1%의 책임3 - 누가 시켰는지 확실치는 않지만 DDoS공격을 한 사람들 입니다. 뭐 국가기관을 상대로 범죄를 저질렀으니 죄를 부정할 수는 없습니다.

 

1%의 책임4 – 저를 포함한 이 글을 읽고있는 여러분 입니다.

 

  1. 지지난 서울시장 선거때도 서울 시내에서 5시간 이상을 돌아 개표소에 도착한 투표함에 대하여 어떠한 반응을 보였었나요?

     

  2. 나꼼수 여의도 공연에는 “그리드 측정법”을 기준으로 10만여 명이 모였습니다. 그 이후의 어떠한 집회 현장에서도 그만한 인원을 볼 수는 없었습니다.(물론 저도 모두 나가지는 않았습니다)

     

이 글이 기술적으로 틀리지 않았을 때의 예상 반응입니다.(웃자고 하는 이야기 입니다)기술적으로 문제가 있다면 댓글을 통해 해결이 될 것입니다. 웃자고 하는 이야기에 죽자고 달려들지는 않아 주었으면 합니다.

 

 

    1. 검찰이 갑자기 숨겨진 해커를 찾아냅니다.(하지만 해킹공격은 30분 내에 해결 가능하다 말씀 드렸습니다)


    2. 갑자기 존재하지도 않았던 이상한 MRTG나 로그가 공개됩니다.(이미 했었어야 하지만 이후에 공개되는 자료의 신빙성은 어찌하실런지…)


    3. 알바를 동원해 댓글을 쓰레기 장으로 만듭니다.(그래서 기술적 논의 외의 댓글은 전부 삭제 하겠다 서두에 밝혔습니다)


    4. 이도저도 안되면 글 하나 하나의 꼬투리를 잡아, 여러가지 이유로 잡아갑니다(저는할일이 많기 때문에 잡혀가기 싫습니다, 뭐 잘못한게 있어야 잡혀가던지…, 저는 그러한 삶을 살아오지 않았습니다!!)

       

아니라면 바로 이 화면을 보시게 될 것입니다.


 

 


그러므로 이번 포스팅은 원작자(출처)를 기재하는 한 그 어떠한 캡춰나 불펌을 마구 허용합니다.



Chapter 6. 이글의 목적과 바람
이 글을 통해 그 어떠한 부귀영화를 원하지 않습니다. 그저 믿을 수 있는 상태에서 나의 한표를 행사하고 싶을 뿐입니다. 객관적인 선에서 제시할 수 있는 모든 의문이 풀린다면 제가 많은 시간을 투자하여 이러한 글을 써야할 이유나 근거도 없어집니다. 아마 저를 포함한 많은 분들이 저와 같은 생각을 하시리라 생각합니다. 이 글을 읽으시는 모든 분들께 하고싶은 말은 “제발 부탁이니 선관위를 믿을 수 있는 상태로 만들어 주세요” 입니다. 이것이 이글의 목적이고 바람입니다.

 


다시한번 그동안의 제보요청을 꾸준히 리트윗 해 주신 모든 분들께, 이번글을 빌어 감사의 뜻을 전합니다. 이 글이 포스팅된 후에도 제보는 꾸준히 받을 생각이며 제보를 하실 분들은 @iMaZiNe80 으로 멘션주시기 바랍니다.


iMaZiNe80

본 내용은 딴지일보에 기재된 내용을 그대로 복사하여 옮긴 글입니다.
원문 : 
http://www.ddanzi.com/blog/archives/59232
 
반응형