부정선거, 불법선거 관련

선관위와 검찰이 함께 쓰는 “디도스 시나리오”

道雨 2012. 2. 29. 15:42

 

 

 

선관위와 검찰이 함께 쓰는 “디도스 시나리오”

 

 

참여연대의 정보공개청구로 선관위가 마지못해 공개한 LG엔시스 기술보고서가 없었더라면, 그냥 묻혀 넘어갔을 일들이 많았을 것입니다.
 
올해 1월6일 검찰은 모든 언론 매체를 불러 모아 놓고 “수사발표“라는 것을 하면서, 이 사건 범행이 다음과 같이 실행되었다고 했습니다. 아래 그림을 클릭하여 붉은 색으로 표시된 부분을 보시기 바랍니다.

 

새벽 1:01-1:43 테스트 공격이 성공했다는 검찰

 

새벽 1시부터 선관위 홈페이지에 40여분 동안 테스트 공격을 해 보니, “DDoS 테스트 공격 성공”했고, 그 사실을 공범들에게 보고하고, 투표개시 시간에 맞춰서 본 공격이 착착 진행되었다는 깔끔한 “스토리”입니다. 검사 나으리께서 “테스트 공격 성공”했다고 엄숙히 발표하시니, 민초들은 그런가보다 하고 믿을 수 밖에…
 
그러나, 엔시스 보고서 3.1(라우터 유입트래픽)과 3.4(방화벽 도달 트래픽)를 보면 그 기간 동안 80M비트(Mbps)정도의 공격트래픽이 유입되었지만, 디도스 방어장비가 공격트래픽을 걸러내서 서비스에 아무 영향을 미치지 못했다는 사실이 드러납니다. 결국 선관위도 올해 1월27일 공개한 기술보고서(선관위 보고서)에서 이 사실을 인정하고 있습니다.

 

선관위 보고서 슬라이드11을 보면, “01시 20분경 약80M의 DDoS공격이 있었으나 … 외부에서 공격 감지 불가”라고 되어있고, 슬라이드10에서도 그 기간 동안 “접속 원활”했음을 밝히고 있습니다.

 

새벽 1:20경의 테스트 공격은 실패하였음

 

 

디도스 공격을 해봤는데, 외부에서는(즉, 선관위 관계자 외에는) 공격이 있는지조차도 감지 못할 규모였고 접속도 원활했다면, 그게 어떻게 테스트 공격 “성공”인가요?

싸구려 공격 프로그램으로 새벽1시부터 40여분 동안 아무리 디도스 공격을 해봐도 선관위 사이트는 “접속 원활”했다는 것입니다. 반면에, 박원순 홈페이지는 10분만에 뻗었습니다.

 

이런 상황이라면, “함 때리봤는데예, 선관위는 디도스 방어 장비가 있어가꼬, 꺼떡도 안하던데예”라고 알리고 다른 방안을 찾는 것이 정상이었을 것입니다.

컴퓨터사용자(좀비PC 이용자)들이 깨어있을 가능성이 비교적 더 높은 새벽1시에도 실패했다면, 새벽5:50분에 성공할 가능성은 아예 없습니다.

그러나 범인들은 늦은밤의 테스트 공격이 완전히 실패했는데도, 마치 새벽 5:50에는, “무슨 이유인지는 모르지만”, 디도스 공격이 무난히 성공할 것으로 예언/예감/예지하고 행동했다는 것인데, 이게 말이 되나요…

전지전능한 가카도 아닌 주제에. 7시경에 선관위가 KT두 회선을 자르는 괴상한 행동을 할거라는 사실을 ‘미리’ 알수는 없잖아요?
 
테스트 공격에 “성공”했다는 것이 무슨 뜻인지요?

공격트래픽이 선관위로 들어오긴 하더라? 선관위 라우터 트래픽 유입 현황을 범인들이 실시간으로 확인하고 있었나요, 그런 걸 다 알게? 공격트래픽이 선관위로 유입되기만 하면 “디도스 공격 성공”인가요?

 

검찰이 내놓은 매끄러운 스토리는 40분 동안의 테스트 공격이 완전히 실패했었다는 새로운 사실이 드러남으로써 좀 너절하게 되었습니다.
 
거짓말을 해도 손발이 맞아야 하는데, 이건 뭐, 장단이 안맞어, 장단이.

올해 1월6일 검찰이 발표한 “디도스 시나리오”의 백미는 역시 다음 부분입니다:

 

 

2012년 1월6일자 검찰 수사발표 보도자료 제14면

 

엔시스 기술보고서가 공개되지 않은 시점에(검찰은 그때 이미 그 보고서를 가지고 있었지만), 검찰의 이런 “명쾌한” 설명을 들은 국민들은(일반인이건, 기술전문가건) 어떤 의혹도 제기할 이유가 없었습니다. 어느모로 보나 합리적 대응조치였던 것처럼 들리기 때문입니다.
 
그러나, 2월14일에 공개된 엔시스 기술보고서를 보면, 검찰이 1월6일에 발표한 이 내용이 실은 전국민을 상대로 한 사기극에 가까왔다는 점이 드러납니다. 하나씩 살펴보겠습니다.

 

“디도스 공격 IP 차단(6:25)”
 
디도스 공격 IP를 차단했다는 말은, 그런 IP가 일단은 파악되었다는 뜻입니다. 디도스방어 장비는 언제나(6:25에만 하는 것이 아니라) 그런 일을 자동으로 하고 있습니다.

선관위 보고서 슬라이드14에도 “하나의 IP에서 초당 50건을 초과하는 UDP 패킷이 유입되는 경우 공격 1회로 판단하여 해당 IP차단(1분간)” 이라 설명되어 있습니다.

따라서 “6:25부터” 디도스 공격 IP를 차단했다는 말은 선관위의 디도스방어 장비가 공격 IP를 차단하기 시작했다는 말이 아니고, 그때 쯤부터 선관위는 KT에게 공격 IP를 알려주고, 그런 IP에서 오는 트래픽은 아예 선관위쪽으로 보내지도 말라고 요청했고(1분간만 차단했다가 다시 풀어주는 것이 아니라), KT가 그런 조치를 취하기 시작했다는 뜻입니다(ip Access Control Lists를 이용하여).
 
공격에 동원된 좀비 PC “총 대수”를 경찰은 196대, KISA는 276대, 검찰은 229대라고 분석했는데, 이것은 모두 IP 주소를 기준으로 하는 것입니다(검찰 보도자료, 제8면). 공격 IP주소 고작 200여개를 KT가 자신의 “IP기준 접속 통제 리스트(ip Access Control Lists)”에 반영하는데 그리 오랜 시간이 걸리지는 않았을 것입니다.

반면에, LG에게는 선관위가 공격 IP를 알려주지 않았습니다. 유훈옥 사무관이 저에게 시인한 내용이기도 하고, 2월23일 선관위가 추가 배포한 “설명자료”에도 “KT와 공조를 통해 KT측에서도 접속차단 하도록 조치를 취하고 있었음” 이라고만 되어 있습니다.

LG는 공격 IP에서 오는 트래픽을 거르지 않고 모조리 선관위로 보내온다는 뜻입니다. 이 사실을 잘 알면서, 선관위는 6:58분 KT망을 모두 자르고 LG망으로 트래픽을 집중시킵니다.

 

검찰이 발표한 “디도스 공격 IP 차단(6:25)”은 이런 내막을 모르는 사람이 들으면 흠잡을 이유가 없습니다. 그러나, 엔시스 보고서를 보면 선관위가 7시경에 KT망을 모두 끊고 LG망만을 사용하였다는 사실이 드러납니다.

KT에게 디도스 공격 IP를 알려주고 그런 IP에서 오는 트래픽을 차단해 달라고 요청하는 쑈를 한뒤, 실제로 유입트래픽이 절반 이하로 떨어지니까 KT망을 내려버리고 LG망으로만 트래픽을 받는 괴상한 짓을 선관위가 하고 있었다는 사실이 검찰 발표에는 전혀 안드러나게 되어 있습니다.
 

“트래픽 우회 조치(6:58)”
 
엔시스 보고서 내용을 모르는 상태에서 검찰 발표를 접한 모든 사람들은 아마 이렇게 생각했을 것입니다: “공격 트래픽이 많이 들어오니까 회선 용량이 ‘더 큰’ 다른 곳으로 트래픽이 가도록 우회시켰구나.”

선관위 웹주소 www.nec.go.kr의 IP는 210.204.204.10 인데, 용량이 더 큰 다른 망으로 트래픽이 가도록 선관위 IP주소를 바꾸면 서비스를 계속할 수 있습니다.

 

디도스 공격 프로그램이 좀비PC들에게 공격을 명령할 때 흔히 공격 타겟의 IP만을 지시하는 방법을 사용합니다. 따라서 공격 타겟이 IP를 바꿔버리면 디도스 공격이 무력화 될 수 있습니다.

더 세련된 공격 프로그램이라면 공격 타겟이 IP를 바꾸면 변경된 IP로 따라다니며 공격트래픽을 보낼 수도 있지만, 변경된 IP의 회선 용량이 더 크면 역시 디도스 공격이 무력화될 수 있습니다. 저역시 검찰이 발표한 “트래픽 우회 조치(6:58)”을 이렇게 이해했기 때문에 “그런가 보다” 했습니다.
 
웬걸, 엔시스 보고서를 보니 6:58에 벌어진 일은 “트래픽 우회 조치”는 커녕, “트래픽 과부하 유발 조치”였습니다.

선관위 웹사이트(www.nec.go.kr)의 IP를 변경하여 “트래픽을 우회” 시킨 것이 전혀 아닙니다.

 

선관위 IP는 그대로 두고(따라서 트래픽이 ‘우회’되는 것이 아니라 모두 그 IP로 몰려오도록 해 둔 상태에서), 그리로 들어오는 트래픽을 받던 세개 회선(각 155Mbps 용량) 중, 두개를 자르는 해괴한 짓을 한 것입니다.

 

트래픽이 많이 몰려오면 회선을 늘여서 대처하는 것이 정상입니다. 회선 두개를 잘라서 용량을 1/3로 줄이는 비정상적 행동을 선관위가 했는데도, 그리고 검찰은 이 사실을 뻔히 알면서도 그걸 “트래픽 우회 조치”라고 우회적으로 말한 것입니다.

 

내막을 모르고 듣는 사람은 완전히 속아 넘어가는 것이지요. 제대로 된 거짓말은 원래 이렇게 우회적으로 하는 것입니다.

 

기술적으로 말하자면, 6:58에 선관위가 한 일은 network load balancing을 disable시키고, link aggregation 설정을 무용지물로 만들어 선관위 회선 용량을 1/3로 줄인 것입니다. 쉽게 말하면, 파이프 세개로 나누어 트래픽을 받다가, 파이프 두개를 자른 것입니다.

이걸 두고 “트래픽 우회 조치”라고 한다면 한마디로 거짓말이고 궤변입니다.

검찰이 왜 이런 궤변과 거짓말을 늘어놓는지 궁금합니다. 몰라서 그런 것은 아닐 것입니다.
 
 

“일시 정상 복구(7:10-7:30)”
 
검찰은 마치 “트래픽 우회 조치(6:58)로 일시 정상 복구(7:10-7:30)”가 된 것처럼 발표했습니다. 선관위도 이런 입장입니다. KT망 두개를 6:58에 자르고 나니, 약 10분 뒤에는 LG망을 통하여 1차 정상화가 되더라는 식의 깔끔한 “스토리”입니다.

 

그러나 참여연대의 정보공개청구 때문에 엔시스 보고서가 공개되야 할 상황에 처하자, 선관위는 일단 공개를 거부하고 두달 동안 열심히 이 시나리오를 보강하여 “중앙선거관리위원회 DDoS관련 기술분석 보고서”라는 55장 분량의 슬라이드를 1월27일에 먼저 뿌렸습니다(그러고 나서 엔시스 보고서를 2월14일에 공개했지요).

선관위 보고서 슬라이드10에 보면, “7:10 1차 정상화 이후 약25분간 LG U+망을 경유한 사용자는 접속이 원활한 상태”라고 적혀 있습니다.

 

그러나 엔시스 보고서는 산통을 깹니다. 아래 인용하는 슬라이드는 선관위가 1월27일에 먼저 뿌린 것이긴 하지만, 엔시스 보고서에 담겨있으므로 어차피 공개될 내용(해상도가 떨어지긴 하지만)이었습니다.

엔시스 보고서3.1(라우터 장비 유입트래픽)에 표시된 LG망 유입트래픽은 7:10이후에는 10Mbps를 넘지 못할 뿐 아니라, 매우 불규칙한 모습을 보입니다.

 

7시 이후 LG망 유입량은 10M미만이었음, 선관위 슬라이드12(부분)

 

반면에 KT 1번 망의 유입트래픽 추이를 보면 그 기간 동안 약40Mbps 규모의 트래픽이 유입되고 있습니다. 붉은 동그라미 4번 참조.

 

 

7:10-7:35경 KT1번망으로 40M 수준 유입, 선관위 슬라이드11(부분)

 

 

KT망이나 LG망을 통해서 들어오는 트래픽은 디도스 방어장비에 도달합니다. 그 기간 동안 디도스 방어장비에 유입된 트래픽을 보면, 평균 40Mbps 수준의 정상트래픽만 안정적으로 유입되었음을 알 수 있습니다.

 

 

7:10-7:35 디도스방어장비로 유입된 트래픽에는 공격트래픽이 없었음, 선관위 슬라이드13(부분)

 

 

7:10-7:35 사이에 LG망으로는 10Mbps 미만의 트래픽만 유입되었으므로, 결국 디도스방어 장비에 나타나는 40Mbps 규모의 트래픽은 주로 KT망으로 들어온 것입니다. 그 트래픽에 공격트래픽이 거의 없다는 사실은 아마도 KT가 공격 IP로부터 오는 트래픽을 원천 봉쇄하고 있었기 때문이라 짐작할 수 있습니다. 선관위도 이 기간 동안 KT 1번망을 열었다가 다시 끊었음을 시인하고 있습니다(슬라이드11).

열어보니, 깨끗한 정상트래픽이 잘 들어왔고 그것을 25분간 확인하고 다시 끊었다는 것이지요. 이것이 바로 검찰이 말하는 “일시” 정상 복구의 진상입니다.

 

새벽1시에 테스트 공격을 해 보니, “DDoS 테스트 공격 성공” 했고, 그 사실을 공범들에게 보고하고 투표개시 시간에 맞춰서 본 공격이 착착 진행되었다는 검찰의 깔끔한 “시나리오”는 처음부터 거짓말이었습니다.

 

저는 이때까지 검찰의 발표가 이렇게까지 터무니 없는 허위 사실로 일관한 사례를 본적이 없습니다. 기술을 몰라서 그랬다고요? MRTG(트래픽 유입량 그래프)를 읽을 줄 몰랐나요?

 

김기창