옵션 |
|
[기자회견 첨부 자료]
모의시연 결과 문제점
1. 설명회 소회
- 문제점 : 위원석 공석이 많고, 비전문가로 구성되어 문제의 본질을 파악하기 어려웠습니다.
그림 1 ] 2017년 4월 6일 중앙선거관리위원회에서 시연한 통합명부보안시스템 보안체계 설명회 모습.
- 18대 대선에서 제기된 전산정보 시스템 전반의 불신이 팽배한 상태를 감안해 볼 때 의원 불참, 전문기자 불참, 후보자 측 무관심 속에 시연회를 개최했다는 점에서 상당한 문제가 제기되고 있습니다.
2. 보안카드용 마스터키 생성시 네트워크 연결 문제
가. 보안카드용 마스터키 생성을 현장에 있는 노트북으로 진행했습니다.
그림 2 ] 프리젠테이션, 마스터키 생성과 보안카드 발급을 모두 이 노트북 하나로 처리했다.
그림 3 ] 단상에 가린 한 명까지 총 6명의 보안 담당 중선위 직원들이 참석한 자리에서 진행됐다.
나. 마스터키 생성 및 카드 발급 시연을 진행하는 동안 해당 노트북은 네트워크 온라인 상태였습니다.
그림 4 ] 아래 오른쪽 아이콘 중 두 번째가 네트워크 연결상태임을 나타내는 아이콘. 화면은 마스터키 생성 프로그램의 마지막 단계.
다. 해설
인증서용 마스터키는 온라인 상태가 아닌 오프라인 상태로 인증서버에 시리얼케이블로 연결한 상태에서 진행해야 같은 네트워크상의 다른 시스템이 해당 키를 탈취할 수 없습니다. LAN은 네트워크에 연결돼 있는 모든 사용자들이 서로간의 통신내용을 열람할 수 있는 구조이므로 WireShark 등의 네트워크 분석 툴을 이용하면 쉽게 다른 기기들의 통신 내용을 알 수 있습니다. 위원 한 명이 혹시 마스터키 생성 중에 인터넷에 연결된 상태였는지 물어볼 때까지 계속 온라인 상태로 진행되었습니다. 중앙선거관리위원회 직원 중 보안전문가 6인으로 참석한 사람 중 한 명이 이에 아니라고 대답하며 바로 네트워크 연결을 해제했습니다.
이어 시민의눈 플랫폼 팀장이 '시연시에는 인터넷은 아니었으나 네트워크 연결상태였다'고 반박하니 6인중 다른 사람이 '선상투표 서버에 원격(RDP)연결하기 위해서였으며 선상투표 시연 때에만 연결했었다'고 대답했습니다.이어 시민의눈 플랫폼 팀장이 '선상투표 시연 이전에도 연결돼 있었다'고 다시 반박했지만 직원들은 아무런 대답을 하지 못했습니다.
선상투표 시연 이전인 마스터키 생성 시연시에도 네트워크에 연결됐었던 것은 위 사진 증거로 증명할 수 있습니다.
3. 서버 네트워크가 원격 연결 가능한 상태인 문제
선상투표 시연시에 중앙선거관리위원회(이하 중선위) 내부 네트워크에 있는 인증 서버에 윈도우 기본 원격 연결 기능인 RDP로 접속했습니다.서버에 RDP 서비스를 열어두는 것은 보안에 매우 취약한 상황으로 내부 네트워크를 너무 믿고 있는 것입니다.중선위 건물은 매우 큰데 그 곳 어디에서라도 서버 아이디 암호를 아는 내부자가 한 명만 있다면 인증서버를 직접 해킹 가능함을 알려줬습니다.만약 아이디와 암호를 알지 못하더라도 중선위 내부의 어느 컴퓨터에서도 Brute force 공격 등 매우 간단한 방법으로 아이디와 암호를 탈취 가능합니다.
폐쇄망을 해킹하는 것이 최근 외국에서 각광받고 있으며 격리망이라고 절대 안심할 수 없음을 알려주었습니다.외부 해킹이나 정전, 재해시에 외부에 있는 DR 서버를 사용해 시스템을 계속 운영합니다.
중선위와 외부 서버와의 사이는 KT, SK 두 회사의 1Gbps 전용통신망으로 구성되어 있습니다. DR서버와 중선위 내부 스위치는 L4로 일반 가정에서 사용하는 스위치와 같은 레벨입니다.
또한 네트워크에 이상을 탐지하기 위해 엔터프라이즈급 SMS 시스템을 운용하고 있습니다. 이러한 사항들은 사실 크게 보안적인 문제점은 없으나 DDoS등의 네트워크 해킹에 대한 준비가 얼마나 되어있는지 확인차 물어보았습니다.중선위는 내부 네트워크에 접속할 수 있는 다른 중선위 직원들이 인증 서버에 무단으로 침입하는 것을 막는 방안이 있는지 밝혀야 할 것입니다.
4. 인증 서버에 서버용으로 부적절한 운영체제 사용 문제
RDP라는 것은 윈도우 기본 원격 연결 프로그램이기 때문에 주로 연결하는 쪽과 연결되는 쪽 모두 윈도우인 경우가 일반적입니다. 선상투표 시연시에 RDP연결했던 인증 서버도 같은 윈도우 화면이었기 때문에 혹시 같은 윈도우를 사용한 것인지 물어보았습니다.보안 전문가 6인중 한 명이 이에 맞다고 대답하였으며, 윈도우7 32비트로 확인시켜줬습니다. 이는 서버용으로 부적절한 OS를 선택한 것입니다. 윈도우 제품군에서는 윈도우 서버 제품군이 따로 있으며, 개인용 OS와는 다르게 강화된 보안과 네트워크 모니터링 기능등을 제공합니다.중선위는 인증서버 OS를 누가 선택했는지, 왜 윈도우7으로 선택하였는지 그 선발 기준과 과정을 밝혀야 할 것입니다.
5. 보안카드 마스터키 생성에 비표준 인증서 사용 문제
통합명부시스템 인증서는 GPKI로 되어있다고 프리젠테이션 자료에 쓰여 있었고 계속해서 GPKI라고 설명했습니다.
그림 5 ] 중선위 배부 자료에도 곳곳에 GPKI만 반복되고 LPKI에 대한 내용이 누락되어있다.
해설 ]
보안 설명회에 참석한 다른 위원이 보안카드용 인증서도 GPKI인지 질문하자 LPKI를 GPKI 규격으로 자체 개발해 사용했다고 중선위 측에서 대답했습니다.GPKI는 행정전자서명으로 정부 행정망에서 사용되는 모든 인증서 시스템들은 여기에서 정한 규격에 따라 개발되고 관리되어야 합니다. 반면에 LPKI는 경량화된 인증서 시스템을 의미하며 이러한 규격을 자체적으로 경량화하여 개발한다는 것은 시스템을 개발한 중선위 직원들이 인증서를 쉽게 탈취할 수 있는 방법이 열려있는 것입니다. GPKI에 대한 내용에 대해서 공무집단으로써 중선위가 충분히 알고 있었을 것인데도 불구하고 이를 지키지 않으며 자체 개발한 인증서 규격을 믿으라고 강요하고 있는 것입니다.
기존 인증서 시스템은 예전에 KS인증을 받았으며 이번에 새로 받겠다고 얘기했습니다. 인증서 시스템은 CC인증을 받아야 하고 CC인증도 여러 등급이 있기 때문에 KS인증을 받는 것은 보안상의 큰 문제가 발생되므로 문제의 해결이 될 수 없다 제기 했습니다.
중선위는 ‘GPKI 규격을 왜! 보안카드용 인증서에 적용하지 않았는지? 그리고 자체개발한 LPKI는 어떤 과정으로 개발되었으며, 왜! 인증받지 않은 채로 개발되었는지?’ 밝혀야 할 것입니다.
6. 투표지분류기 제어용 노트북에 특정후보의 회사 제품인 V3 백신이 설치되어 논란이 예상됨.
투표지분류기에 V3가 설치돼 있는 것이 특정 후보 소유의 회사 제품이라는 점에서 상당히 우려스럽습니다. 이와 관련 “대처방안이 있는지?”에 대해 참석한 위원이 질문하였으나, 중선위측에서는 “당일에 백신이 실행되지도 않으며 망이 분리되어 있으므로 아무 걱정할 필요가 없기 때문에 설치된 상태 그대로 두었다”고 답했습니다.
백신 프로그램들은 OS에 의해 다른 프로그램보다 먼저 실행되는 서비스 프로그램이므로 당연히 사용자가 직접 실행할 일이 없으며, 망이 분리되는 것은 당일뿐이라고 주장하지만 그 전에 어떤 네트워크에 연결되어 V3의 업데이트가 실행될 지 모릅니다.또한, 백신 프로그램들은 다른 프로그램이 악성코드인지 알아보기 위해 현재 실행되고 있는 다른 프로그램들을 직접 분석하고 종료하는 등 영향을 줄 수 있는 특수한 권한으로 실행되기 때문에 역으로 해킹 포인트가 되는 경우가 있습니다.
실례로 V3의 업데이트 서버가 해킹당해 악성코드를 포함시킨 상태로 업데이트 됐던 사건이 있었습니다.
(관련기사 : http://www.ddaily.co.kr/news/article.html?no=102430) 중선위는 ‘단순히 프로그램 삭제만 하여도 되는 것을 왜! 그대로 두는지?’ 밝혀야 할 것입니다.
7. 투표지 분류기 제어용 프로그램 소스코드의 잘못된 언어선택 및 바이너리 암호화 부재
100% VB.net으로 개발되어 있음. [.net] 제품군은 dotPeek, ILSpy 등의 디컴파일러가 널리 유포되어있으며 디컴파일러에 의한 원본 소스코드 복구율이 100%인 보안에 취약한 언어입니다.
실행용 프로그램 상태인 바이너리 파일(.exe)만 유출되면 원본 소스코드까지 모두 유출되는 것입니다.소스코드를 유추하지 못하게 하는 패킹이라는 기술이 있으나 해당 프로그램에는 적용되지 않았으며 6인 보안 전문가 중 담당 직원은 패킹이라는 기술에 대해서도 모르고 있었으며, 어차피 분류기는 오프라인으로 운용되기 때문에 유출될 일이 없다고 변명하기만 하였습니다. 하지만 투표지분류기 뒷부분에 프로그램을 설치하는 프로그램인 인스톨러가 들어있는 USB 저장장치나 백업용 기기를 연결하기 위한 USB포트가 노출돼있으며 이곳에 자동실행되는 악성코드를 저장해둔 USB저장장치를 연결해 충분히 바이너리를 유출하거나 작동중인 투표지분류기 프로그램에 영향을 줄 수 있습니다. 중선위 측은 ‘대체 보안 전문가 6인을 어떤 절차로 선발하였는지?’, ‘그 자격은 어떤 조건인지?’ 공개해야 할 것이며, ‘소스코드에 대한 보안 자문을 받고 있는지?’, 받고 있다면 ‘누가 자문하는지?’에 대해서 밝혀야할 것입니다.
8. 투표지 분류기 제어용 컴퓨터 시스템 보안 문제
투표지 분류기 제어용 컴퓨터 내부에서 작동하면서 제어 프로그램의 메모리를 들여다 보고 수정할 수 있어 결과적으로 투표지분류기의 작동을 직접 제어할 수 있는 디버깅 프로그램이 있는지 OS Call로 확인하는 기능이 있으나 해당 코드는 프로그램 시작시와 끝에만 작동하도록 되어 있었습니다.해당 코드는 연산 능력이 많이 필요한 부분이 아니므로 이를 1분정도 간격으로 주기적으로 실행하도록 요구했습니다.투표지분류기 내부에서 돌아가는 다른 프로그램들에 대한 기록을 충분히 남길 수 있음에도 남기는 기능을 구현하지 않았습니다. 다른 어떤 악성코드가 시스템 내에서 작동하는지 나중에라도 확인할 방법이 필요하므로 다른 작동중인 프로그램들의 목록을 기록하는 기능을 추가하도록 요구했습니다.
9.투표지 분류기 DB 접속 문자열에 암호가 고정표기됨, 암호 끝자리가 'miruk'으로 끝남.
투표지 분류기는 결과 값을 모두 투표지 분류기 노트북 안에 로컬DB파일로 저장하도록 되어있었습니다.로컬 DB (프로그램 위치에 DB폴더 안에 mdb파일로 저장됨) 접속 문자열에 패스워드가 그대로 노출되도록 하드코딩(유동적으로 되어있어야 하는 값이 코드 내에 고정되어 기입 되어 있는 것) 되어 있었습니다.
앞서 6에서 서술한대로 프로그램이 패킹돼있지 않기 때문에 바이너리 파일만 노출되어도 DB 접속암호가 그대로 노출됩니다. 이를 이용해서 저장되어 있는 DB파일을 직접 열어보고 읽어오거나 수정할 수 있는 프로그램을 만들 수 있습니다.이러한 설계는 전국에 설치되는 모든 투표지 분류기의 DB의 암호가 완전히 똑같아지는 문제점도 가지고 있습니다. 카드키의 고유번호를 이용해서 DB 암호를 생성하여 인스톨시에 DB를 초기화하도록 해서 전국 모든 기기가 서로 다른 DB 암호를 가지도록 해야함을 알려주었습니다.또한 DB 패스워드 맨 마지막이 miruk으로 끝나도록 설정되어있었습니다. 투표지분류기 생산 회사 이름이 미르라는 점이 최순실 사태의 중심에 있던 미르, K스포츠라는 회사와 어떤 연관인지 추측과 의심이 있었으나, 두 회사 이름을 합친 miruk라는 암호를 통해서 두 회사와 확실한 연관이 있다는 점을 암시하고 있었습니다. ‘미륵이라는 암호를 도대체 누가 정했는지?’ 중선위는 해명해야 할 것입니다.
10. 투표지 분류기의 USB포트가 부적절한 위치에 있어 외부인 접근이 용이함.
투표지 분류기 제어용 노트북 뒤와 옆에는 USB 포트가 노출돼있지 않지만, 투표지분류기 뒷부분에 USB 포트가 있어서 누군가가 악성코드가 들어있는 작은 USB를 슬쩍 연결하더라도 알아채기 힘듭니다.투표지분류기 뒷쪽에 장착된 USB 포트는 노트북에 직결된 것이 맞다고 직원에게 확인했습니다.중선위는 당일 날 정당참관인이 있는 자리에서 봉인을 해제하고 사용한다고 답했으며 이는 실제 작동중인 시점에 사실상 허점이 노출된 상태라는 것을 의미합니다.‘중선위는 누가 이러한 방식으로 설계를 했는지?’, ‘그 설계의 의도는 무엇인지?’ 설명해야 할 것입니다. [아래 그림 참조]
그림 6 ] 오른쪽 USB 포트에 꽂혀있는 흰 물체가 USB 저장장치, USB포트가 노트북 담당 직원이 볼 수 없는 뒤에 있다.
11. 분류기 카드 인증 방법이 허술하여 있으나마나
USB 포트에 꽂혀있는 흰 물체가 USB 저장장치입니다. USB포트가 노트북 담당 직원이 볼 수 없는 뒤에 있습니다.
프로그램 전체 인스톨러(약 600메가)를 USB에 담은 다음 전자개표기 뒷부분에 있는 USB포트에 꽂고 보안카드를 노트북 오른편 리더기에 꽂아서 설치하도록 되어있습니다.설치 과정에서 보안카드에 저장된 해쉬값을 USB의 인스톨러 내용 전체의 해쉬값과 비교하여 무결성(외부에서 수정되지 않았음)을 검증합니다. 해쉬값은 MD5로 되어있으며 암호화하지 않습니다.암호화되지 않은 해쉬값이 분류기 프로그램을 실행하는 실행인자로 OS에 넘겨지는데 이 때에 다른 프로그램이 쉽게 해쉬값을 탈취할 수 있습니다.
MD5는 이미 1996년에 깨진 암호화 기법으로 카드 번호를 그대로 노출시킨 것이나 다를 바 없습니다. 탈취한 카드 번호로 쉽게 다른 카드를 복제해서 인스톨 및 실행에 원본과 동일하게 사용할 수 있습니다.또한 투표지 분류기 프로그램 인스톨러는 파일이 전혀 암호화 되어 있지 않기 때문에 인스톨러가 들어있는 USB를 탈취한 후 디컴파일러로 원본 소스코드를 복원한 후 세이프콜이 카드를 인식하여 프로그램을 실행한 것처럼 위장하는 프로그램을 만들어 사용하면 카드가 없는 상태에서도 손쉽게 투표지 분류기 프로그램을 실행할 수 있습니다.
12. SSL 비적용 웹서버 이용한 카드발급 시스템 문제
선상투표 프로그램 인스톨러 생성 프로그램은 딱히 정해진 이유가 없이 웹으로 되어있었으며, 시연시에는 http로 연결되어 있었습니다. http는 https와 다르게 SSL 암호화가 적용되지 않은 웹 연결 프로토콜입니다. 이러한 상황은 웹서버와 접속자가 암호화되지 않은 상태로 내용을 주고받는 것으로 네트워크에 연결되어있는 모든 기기에서 WireShark 등의 네트워크 모니터링 프로그램으로 이 내용들을 쉽게 알 수 있는 것입니다.
그림 7 주소가 http://10.36.10.106:8081/KVM/validtion.do 로 나와있다. SSL 미적용 비보안 프로토콜 연결 분류기 프로그램 인스톨러가 생성하는 디렉토리 구조를 보여주는 화면
기타사항
프리젠테이션 화면이 중요한 슬라이드를 설명하는 중에만 계속해서 깜빡거렸습니다.
정당 참가 보안위원들은 위에 서술한 문제들이 눈앞에서 펼쳐지는 와중에도 이러한 문제점을 인지하지 못하였으며, 이에 대한 질문이나 문제제기를 할 만큼 관련 지식을 갖춘 사람들이 아니었습니다.위원장이 보안위원이 아니라는 이유로 질문을 받지 않았으며 마지막에 질문시간을 주겠다고만 하였습니다. 모두 아무것도 하지 못하고 기다리기만 해야 하는 보안키 입력시간 동안에도 질문을 허용하지 않았습니다. 위원장은 전체 네 번 가량 질문을 거절했습니다. 그리고 마지막에 준 질문 시간에는 정작 위원장 본인과 정당 보안위원들이 모두 자리를 비우고 선거 1과장이 대신 와서 위원장석에 앉아있는 자리였습니다. 선거 1과장은 질문기회를 주되 질문 사이마다 중선위의 업무는 아무런 보안적 문제가 없다고 연설을 늘어놓았습니다.
시민단체 참가 위원들은 위원장이 있는 동안 아무런 질문이나 이의제기를 하지 못했습니다.
따라서 비민주적인 시연회에 대해서 향후 개선해야 할 문제임을 지적합니다. 끝.
출처 | http://eye.vving.org/post/120 |