지난 25일 KT ‘먹통’ 사태는 협력업체 직원이 ‘exit’라는 명령어 하나를 입력하지 않아 발생한 ‘인재’였던 것으로 드러났다. 사태 초기 외부의 디도스 공격을 원인으로 밝혔던 것과는 달리 정작 문제는 내부에 있었던 셈이다.
과학기술정보통신부(과기부)는 29일 KT네트워크 장애 원인 분석 결과를 발표했다. 과기부에 따르면 사고는 지난 25일 KT 부산국사에서 기업망 라우터(네트워크간 통신을 중개하는 장치)를 교체하던 중 일어났다.
사고의 원인은 전형적인 인재였던 것으로 나타났다. 과기부에 따르면 KT협력업체 직원은 교체 장비의 ‘라우팅’(네트워크 경로 설정)을 하다가 정보를 입력하는 과정에서 들어가야 할 명령어 중 ‘엑시트’(exit)라는 한 단어를 빠뜨린 것으로 확인됐다. 부산에서 시작된 오류는 서울을 거쳐 약 30초 만에 전국에 퍼졌다.
전체 스크립트(명령글)에 오류가 있는지를 확인하는 사전검증 단계가 두 차례 있었지만, 사람이 직접 검토하는 체계여서 이 오류가 발견되지 않았다. 사람의 실수를 걸러낼 수 있는 장치가 없었다는 점이 드러난 셈이다.
과기부는 이에 대해 시스템에 지장을 주지 않고 이 오류를 미리 발견해 수정할 수 있는 가상의 테스트 베드(시험공간)가 없었고, 지역에서 발생한 오류가 전국으로 확산하는 것을 차단할 수 있는 시스템도 부재했다고 지적했다.
당초 작업은 26일 새벽 1~6시에 승인됐지만, 실제로는 25일 낮 시간에 작업이 이뤄졌다. 이용량이 많은 낮 시간대에 사고가 발생하면서 대규모 피해가 발생하게 된 이유다. KT측 관리자가 없는 상태에서 협력업체 직원들끼리만 작업을 수행한 점도 조사 결과 드러났다.
과기부는 재발방지 대책을 제시했다. 우선 네트워크 작업을 할 때 오류 여부를 사전에 진단할 수 있는 시뮬레이션 시스템을 통신3사에 도입하기로 했다. 아울러 통신3사가 라우팅 작업을 할 때 한 번에 업데이트되는 경로 정보 개수를 일정 수준 이하로 제한하기로 했다. 이번처럼 오류가 발생해도 피해가 전국 단위로 발생하는 사태를 방지하기 위해서다.
구자창 기자 critic@kmib.co.kr