부정선거, 불법선거 관련

선관위의 “디도스 대응” 신공 2탄

道雨 2012. 2. 24. 15:39

 

 

 

    선관위의 “디도스 대응” 신공 2탄

 

 

참여연대의 정보공개청구에 마지못해 2월14일에 선관위는 “2011년 10월 26일 재보궐선거 서비스 장애 분석 보고서”(엔시스 보고서)를 공개합니다. 그러나, 엔시스 보고서가 공개되기 전에 선관위는 “중앙선거관리위원회 DDoS관련 기술분석 보고서”(선관위 보고서)라는 것을 1월27일에 발표합니다. 이 자료를 보면 선관위가 10.26서비스 장애를 “디도스 사건”으로 포장하기 위하여 수단과 방법을 가리지 않고 있음을 알 수 있습니다. 7시(정확히는 6:58) 전과 7시 후로 나누어 살펴보겠습니다.


7시 이전 상황


디도스 공격트래픽 유입은 5시50분에 시작되어 7시쯤이면 끝이 납니다. 엔시스 보고서3-2에는 6-7시 사이 유입트래픽의 평균 규모가 초당 221M 로 기록되어 있는데, 선관위 보고서는 유입트래픽의 규모를 “과장”합니다. 선관위 슬라이드4를 보면 “KT회선으로 초당 264M[회선 총용량의 85%]의 패킷 유입 확인“이라 적고 있습니다. 그러나, 아래 그림을 보시죠(선관위 보고서 슬라이드13). 그림을 클릭하면 큰 사이즈로 보실수 있습니다.



왼쪽에 표시된 수치를 기준으로 보면 6시-7시 사이 유입트래픽 규모가 250,000 Kbps (즉, 250Mbps)를 훨씬 넘어가는 것처럼 보일 것입니다. 그러나, 초록색 선은 유입트래픽이 아니라, 차단된 트래픽입니다. 유입트래픽 중에서 나쁜트랙픽이 걸러지고 차단되는 것이므로, 차단트래픽이 유입트래픽보다 많을 수는 없습니다. 그럼 어째서 초록색 선(차단트래픽)이 고동색 선(유입트래픽)보다 높게 올라가느냐? 오른쪽에 표시된 수치가 차단트래픽의 수치입니다. 자세히 보시면, 차단트래픽 240,000Kbps 가 그래프 왼쪽에 있는 유입트래픽250,000Kbps 보다 더 높게 보이도록 해두었습니다.^^ 그래서 그림을 얼핏보면, 유입트래픽이 마치 250M을 훨씬 넘어가는 것처럼 보이지요.


유입트래픽이 초당 264M에 도달한 시점이 딱 한번 있긴 합니다. 6시15분경. 한번 잠깐 도달한 적이 있던 수치를 기준으로 유입트래픽의 규모를 이야기할 수는 없지요. 6시-7시 사이 유입트래픽의 평균 규모는 초당 264M이 아니라, 초당221M입니다.


“회선 총용량의 86%”라는 말도 오해를 불러일으키는 말입니다. 선관위 회선 총용량은 465M입니다. KT두 회선(각 155M)만 생각하면 310M인것 같지만, 선관위는 L4스위치를 사용하여 트래픽 로드밸런싱과 서버 로드 밸런싱을 하고 있습니다. 무슨 말인고 하니, 주로 사용하는 KT 회선의 처리량이 많아지면 자동으로 LG회선으로도 트래픽이 오가도록 되있습니다. 따라서 선관위의 회선 총용량은 310M이 아니라, 465M입니다. “수신 트래픽이 폭주”했다느니, “급증”했다느니, “회선 대역폭을 고갈시키는 디도스”라느니, “과도한 유입트래픽” 등의 말만 난무했지, 실제로는 회선 용량(465M)의 절반에도 못미치는 규모(221M)의 유입트래픽이 있었을 뿐입니다.


KT 두 회선으로 마치 “회선 총용량의 86%”의 트래픽이 들어오는 비상 상황에서 6:58에 KT망 두개를 자른 것처럼 선관위는 이야기하지만, 아래 그래프에서 보듯이 KT회선을 자르기 전에 이미 유입트래픽이 급격히 떨어져서 100M 수준까지 내려갔을 때(KT망 1회선 용량에도 못미칠때) 선관위는 KT망 두 회선을 모두 잘랐습니다.


6:58까지의 유입트래픽 추이


KT망으로 들어오는 유입트래픽이 6:50경부터 급격히 줄어든 이유는 공격에 동원된 좀비PC(고작 200대 규모)의 ip를 KT도 파악하고 해당 ip에서 오는 트래픽을 6:50경부터는 아예 보내지 않기 시작했기 때문일 것입니다. 선관위 유훈옥 사무관은 공격PC의 ip를 KT와는 공유했으나 LG에게는 알려주지 않았다고 제게 말씀하셨습니다.



7:00-8:32 사이의 상황


7시 이후에는 유입트래픽이 아예 없거나, 잠시 들어오다가 다시 0으로 떨어지는 이상한 상황이 벌어집니다. “디도스” 어쩌구 저쩌구 할 상황이 아예 아니지요. 디도스 방어장비가 방어하고 말고할 트래픽 자체가 아예 없는 상황이기 때문입니다.


7:00-8:32 사이 유입트래픽 추이, 선관위 보고서 슬라이드13(부분)


6:58에 KT망 두회선을 모두 끊고 LG망 하나만 남겨두자, 유입트래픽이 “처음 몇분 동안”은 155M까지 올라가는 것을 보실 수 있습니다. 이 말은, 네트워크 load balancing 설정이 “처음에는” 이상 없이 작동했었다는 뜻입니다. 복수의 망사업자에게 할당된 여러개의 ip를 통하여 유입되는 트래픽을 사용하여 하나의 웹사이트를 운용하려면 – 즉, 복수의 망사업자가 제공하는 회선들의 용량을 모아서(aggregate bandwidth) 사용하려면 – 웹서버측이 ‘트래픽 교통정리 방식’을 올바르게 설정해 두어야 합니다. 한쪽 망이 끊기거나 부하가 늘어나면, 다른 쪽 망으로 트래픽을 보내는 규칙을 자세히 정해 두는 것이지요. KT망 두개를 끊으니, LG망으로 들어오는 트래픽이 빠르게 증가했다는 뜻은 선관위의 WAN load balancing(트래픽 교통정리 방식) 설정이 처음에는 멀쩡했다는 말입니다.


하지만 7:05경에 유입트래픽이 갑자기 0으로(!) 떨어집니다. 선관위가 네트워크 load balancing 설정을 “건드리면” 이런 일이 발생할 수 있습니다.


그러다가, 7:10경부터 약 25분간 40M 규모의 트래픽이 안정적으로 들어오다가, 다시 0으로 떨어집니다. 선관위는 이것을 “1차 정상화”라고 부르면서, 마치 LG회선을 통하여 1차 정상화가 된 것처럼 적고 있습니다: “7:10 1차 정상화 이후 약25분간 LG U+망을 경유한 사용자는 접속이 원활한 상태” (선관위 보고서 슬라이드10). 그러나 이것은 사실과 다릅니다.


아래 그림을 보시면, 6:58에 KT선을 자른 후에 LG망으로 “최대 30M 정도의 트래픽 유입”이 있었던 것처럼 선관위는 주장하고 있습니다(슬라이드12). 그러나, LG망으로 최대 30M 수준의 트래픽이 들어온 시점은 KT망을 자른 후가 아니라, KT망을 자르기 전입니다(7시 이전). 실은, 7:10-7:35 사이 기간 동안 LG망에 나타나는 트래픽의 규모는 10M에도 훨씬 못치는 수준입니다. 아래 그림을 클릭하면 나타나는 원본 사이즈 화면의 첫 번째 그래프를 자세히 보시기 바랍니다.



사실은, 7:10-7:35 사이에 선관위로 들어온 초당 40M 규모의 트래픽은 LG망이 아니라, KT 1번 망을 선관위가 열었고, 이렇게 복구된 KT 1번 망으로 약25분간 초당 40M정도의 트래픽이 안정적으로 들어왔기 때문입니다. KT망으로 들어온 이 트래픽은 공격트래픽이 거의 없는 정상트래픽입니다. 선관위 유입트래픽 추이 그래프 중, 7:10-7:35 에 해당하는 부분을 자세히 보시면, “초록색 선”이 바닥에 깔려서 0으로 계속 나타나는 것을 보실 수 있습니다. 즉 선관위 디도스 방어장비가 차단해야 할 트래픽은 아예 없었고 유입트래픽은 모두 정상트래픽이었다는 말입니다. 왜냐하면 KT는 이미 좀비PC들의 ip를 모두 확보하여 망사업자 단에서 이미 차단하고, 정상트래픽만을 선관위에게 보내주고 있기 때문입니다.


선관위는 이런 사실을 25분동안 차분히 지켜보며 “확인한 다음”, 7:35에 KT망을 다시 자릅니다. 이 사실에 대하여 선관위는 “KT 망 공격여부 확인을 위한 일시적 회선 복구로 트래픽 유입”이라고만 적고 있습니다(슬라이드11).


하나만 물어봅시다. 7:10 부터 25분간 KT 1번망을 열어서 확인해보니, 과연 디도스 공격이 계속되고 있던가요? 깨끗한 정상트래픽이 KT 1번망으로 안정적으로 들어오는 상황이 그렇게 겁나던가요? 그래서 KT 1번망을 7:35에 “다시” 잘랐나요?

김기창