"이 정도 규모의 사이트를 만들어 본 경험이 없는 개발자가 만든 것 같다."
만 53~54세 대상 모더나 코로나19 백신 접종 사전예약이 지난 19일부터 시작된 가운데 예약 시스템에 또 다시 오류가 발생했다. 정보기술(IT)업계 전문가들은 누구나 쉽게 조작할 수 있을만큼 웹 사이트가 허술하게 짜여진 탓이라고 입을 모은다. 델타 변이 확산으로 백신 접종 일정이 급하다지만 수십만명의 국민들이 동시 접속하는 사이트를 제대로 된 오류 검증없이 운영했다 화를 자초했다는 지적이 나온다.
20일 IT업계에 따르면 코로나19 백신 접종 사전예약 시스템에서는 인터넷 브라우저의 개발자 모드를 이용하면 대기없이 시스템에서 예약이 가능한 오류가 발생했다. 컴퓨터 웹 브라우저에서 F12키를 이용해 개발자 모드-콘솔로 들어간 뒤 'N'을 누르면 된다는 것이다. 전날 오후 8시부터 예약신청이 한꺼번에 몰리면서 시스템 접속도 원활하지 않았다. 자정 기준 대기인원은 약 37만명에 달했으며 예상 대기시간만 26시간이었다. 이 방법을 사용해 수십만명의 대기를 뚫고 수 초 만에 예약이 가능했다는 후기도 이어진다.
디시인사이드와 에펨코리아 등 온라인 커뮤니티에서도 다양한 우회방법이 공유됐다. 윈도 제어판에 들어가 '자동 시간설정'을 끄고 시간을 바꾼 뒤 접속하는 방법도 있다. 출생연도에 따라 순차 접수를 받는다는 점을 노린 것이다. 사이트 접속 후 예약 대기 중 비행기모드로 전환했다가 켠 뒤 새로고침을 누르면 바로 예약가능하다는 또 다른 '꿀팁'도 나왔다.
많은 누리꾼들이 실제로 예약에 성공했다는 댓글을 남겼다. 한 누리꾼은 "어머니 예약 해드리려고 새벽 3시부터 시도하다가 (우회접속 방법으로) 바로 성공해서 무거운 눈을 붙일 수 있게 됐다"는 후기를 남겼다. 정부가 만든 사이트가 너무 쉽게 뚫려 황당하다는 반응도 이어졌다. 또 다른 누리꾼은 "정부에서 운영하는 사이트인데 이렇게 시간만 바꿔도 바로 접속되는게 가능한 일이냐"고 했다. 논란이 이어진 후 이런 우회로들은 지금은 모두 막힌 것으로 알려졌다.
IT업계 전문가들은 누구나 쉽게 사이트 설정을 변경할 수 있을만큼 허술한 사이트 구성이 화를 불렀다고 입을 모았다. 보안업계 한 관계자는 "코드가 백엔드(소프트웨어 개발 프로세스에서 서버 측에 해당하는 영역)가 아닌 프론트엔드(사용자가 접속해서 이용하는 인터페이스 영역)에 그대로 노출돼 있던 것"이라며 "코드를 읽을 줄 아는 사람이라면 누구나 보고 직접 고쳐서 활용할 수 있도록 사실상 코드를 오픈해놓은 셈"이라고 설명했다.
또 다른 보안업계 관계자도 "서버가 다운되는 것을 피하려 프론트엔드에 예약 대기표를 받을 수 있는 시스템을 구축한 것 같다"며 "이를 백엔드랑 연계해 서버에서 예약 내역을 검증하는 절차를 만들었어야 하는데 이 부분이 빠졌던 것"이라고 덧붙였다.
시간만 바꿔도 예약이 가능했던 이유는 시스템 시간 설정을 서버가 아닌 로컬(PC나 스마트폰) 시간으로 설정했기 때문이다. 한 사이버보안 전문가는 "일반적으로 프로그램을 구성할 때 NTP(Network Time Protocol, 네트워크를 통해 서버와 여러 PC 간 시간을 동기화하는 프로토콜) 등을 설정해 임의로 시간을 변경할 수 없도록 구현하는데 (코드에는) 이 부분이 빠져있었다"고 말했다.
새로운 예방접종 대상이 추가될 때마다 코로나 백신 사전예약 시스템 오류는 반복되고 있다. 이 때문에 방역당국의 행정 대응에 문제가 있다는 지적도 나온다. 앞서 지난 14일에도 예약 페이지에 오류가 발생했다. 55~59세 대상 사전예약 접수를 시작하기 전, 예약 페이지에 접속이 가능한 링크를 연결해두면서 소위 '뒷문' 논란이 불거졌다.
한 전문가는 "날짜 오류는 단순 실수라고 할 수 있어도, 프론트엔드에 코드를 그대로 노출했던 건 일반적이지 않은 실수"라며 "개발자가 이 정도 동시 접속자가 발생하는 사이트 개발 경험이 없어서 누군가 코드를 들여다보고 사이트를 직접 손댈거라고 생각을 못했던 것 같다"고 말했다. 또 다른 관계자도 "시급하게 프로그램을 구현하다보니 코드의 유효성이나 오류 검증이 제대로 되지 않은 것 같다"며 "국민을 대상으로 한 서비스는 코드검증이 당연히 이뤄져야 한다"고 제언했다.
한편 질병관리청 관계자는 이날 오전 "현재시간을 추출하는 방식 등 코딩오류가 있었다"며 "현재는 관련 코드를 수정해 반영했다"고 답했다.