멀쩡한 소프트웨어 제품이나 절차에서 사용되는 합법적인 인증서를 해킹하거나 손상시키는 것은 보안커뮤니티에 상당히 까다로운 영향을 미친다. 이러한 경우, 문제가 되는 것은 인증서 존재 자체가 합법적이고 신뢰할 수 있다는 것을 말해주는 부분이기 때문이다. 인증서는 어떻게 보면 여권이나 주민등록증과 같다. 인증서는 소프트웨어 제작자가 그들의 코드에 서명하고 인증하는데 사용된다. 웹 브라우저나 운영체제는 이러한 인증서를 보고 신뢰할 수 있는지를 사용자에게 알린다. 그러나 이러한 신뢰할 수 있는 인증서를 해킹하여 공격자가 자신의 악성코드에 사용하면 얘기가 달라진다. 어떻게 보면, 이러한 부분이 인증서의 부정적인 결점 중 하나이지 않을까 생각된다. 최근 국내 대표 그룹웨어 기업인 핸디소프트의 전자인증서가 해킹당하여 인증서가 유출되는 사건이 있었다.[1]
전자인증서(digital certificate)라고도 불리는 전자서명(Digital Signature)이란, 전자상거래나 컴퓨터를 이용한 비즈니스를 진행할 때 사용자의 신원이나 제품의 내용에 대해 인증을 하여 신뢰할 수 있다는 것을 보증하는 문서다.[2][3] 쉽게 말해, 서명이란 보통 서명한 사람의 신분을 증명하는 행위, 도구로 이를 전자적 형태로 표현한 것이 전자서명이다. 예를 하나 들자면, 우리가 가지고 있는 인감도장 같은 거와 비슷하다.
전자서명은 원래 가지고 있던 제품의 해시의 값을 구하여 이 해시값에 부인방지 기능을 주기 위해 공개키 기법을 이용한다. 예를 들자면 철수가 영희에게 편지를 보낼 때 철수는 자신이 편지를 보냈다는 것과 편지가 진짜라는 것을 표현하기 위해 전자서명을 한다. 전자서명은 편지의 해시값을 구하여 이 해시값을 자신의 개인 키로 암호화하여 보내는 것이다. 물론 영희는 철수의 공개된 키로 암호화된 편지의 해시값을 확인할 수 있고 이와 편지의 해시값을 비교하여 이 편지를 철수가 보낸 것인지, 편지가 진짜인지 확인한다. 전자서명의 몇 가지 특징은 전자 서명은 제품의 해시값을 암호화하여 보내는 것이지 제품 자체를 암호화하는 것이 아니므로 제품의 기밀성이 보장되는 것은 아니다. 즉, 누구나 읽을 수 있다. 또한, 서명자만이 서명을 생성하여 위조가 불가하고 이는 서명을 한 이만 확인할 수 있어 인증이 가능하다. 재사용이 불가능하여 한 번 인증된 제품의 전자서명을 다른 제품에 사용할 수 없고 제품에 약간의 수정이 오가면 해시의 값이 완전하게 바뀌기 때문에 제품에 대해 무결성을 보장한다. 이렇게 코드서명된 제품은 서명하는 순간부터 서명자의 책임을 지고 있기 때문에 서명자는 이를 부정할 수 없다.[4]
지난 2017년 1월 19일, 핸디소프트는 자체 웹 사이트에서 자신들의 인증서가 해킹 당하여 악성코드 유포에 사용되었다며 사과의 공지문을 올렸다.[5] 이어 자신들은 19일부터 한국인터넷진흥원(KISA) 등을 통해 자세한 사건의 경위와 내부 시스템 확인을 진행하는 중이라고 이야기 했다. 이번 해킹사고를 당한 핸디소프트는 1991년에 설립되어 소프트웨어 솔루션 개발을 주로 하는 하는 회사로 비즈니스 통합 플랫폼, 그룹웨어 등 협업 프로그램, 전자문서관리 시스템 등을 개발하여 주로 정부와 같은 공공기관에 제품을 공급하는 기업이다.[6][7] 특히나, 공공기관에 전자인증서를 많이 제공하고 있었던 터라 이번 사건으로 인해 공공기관의 보안이 더욱 우려되는 상황이다.
사건은 2017년이 맞이한 지 얼마 되지 않은 9일, 국가사이버안전센터로부터 핸디소프트웨어의 그룹웨어를 사용한 전자서명 인증서가 탈취되어 악성코드 유포에 사용된 것으로 추정되는 연락을 받았다고 핸디소프트는 발표했다.[8] 이는 핸디소프트가 자체적으로 만들어 자신들의 프로그램을 인증하는 전자서명이 유출된 것이다. 아직 이 사건에 대해 자세한 경위와 누가 했는지는 나오지 않았지만 지난해 금융 보안 기업의 코드 서명이 유출되어 악성코드 유포에 사용된 사건과 비슷한 특징을 지닌 것으로 보고 있다.[9]
핸디소프트는 이러한 사실을 통보 받은 후 한국인터넷진흥원(KISA)에 신고를 하고, 고객들 대상으로 다른 피해가 있었는지 확인 및 접수하였다고 한다. 또한, 13일 기준으로 기존의 인증서를 폐기하고 신규 인증서를 받아 사용할 수 있도록 조치를 취하고 문제가 되었던 인증서는 주요 보안소프트웨어를 통해 해결할 수 있도록 하였다. 더불어, 이번 사건으로 인해 피해를 입은 분들에게 최선의 조치를 할 것이며 보안 전문가를 통해 자체 보안 검증을 더욱 새롭게 하여 보안 검증을 더욱 개선하고 이와 같은 사건의 재발방지를 위해 노력에 만전을 기할 것이라 답했다.[10]
사실, 인증서가 탈취 당하여 악성코드 유포에 쓰였던 적이 핸디소프트가 처음인 것은 아니다. 2016년 2월, 금융권과 공공기관에 보안솔루션 및 전자서명 업체인 이니텍의 전자서명이 해킹되어 유포되었다.[11] 탈취된 전자서명은 악성 파일이 사용자의 시스템에 의심 없이 들어갈 수 있도록 눈속임해주는 역할로 사용되었다. 탈취된 전자서명이 붙은 악성코드의 파일이름은 ‘Trojan/W32.Agent.785921.I’로 외부에서 서버에 접속하여 진짜 악성코드를 다운받아 실행시키는 파일이다. 악성코드가 컴퓨터에 자리를 잡게 되면 특정한 경로에 자신을 복제하여 실행한다. 복제한 파일에는 파일 끝에 임의의 4byte를 추가하여 해시값을 바꿔주고 복제한 파일이 자동 실행될 수 있도록 레지스트리를 수정한 후, 자신을 삭제하여 흔적을 감춘다.[12][13]
좀 더 자세하게 얘기하면 해당 악성코드는 서버에 접속하여 DBD 명령을 수행할 수 있도록 작성되었으며 다운도르 성공, 실패, 처리 등과 같이 이러한 처리과정을 외부 서버에 전달하도록 되어있다. 또한, 특정경로에서 자신을 복제하는 동안 랜덤 값을 추가하여 파일의 해시값을 부여하고 이를 통해 안티바이러스 진단 프로그램을 우회한다. 이 사건에 대한 범인은 정확하게 밝혀지지 않았지만 북한의 소행이라고 추측했다.[14][15]
이러한 인증서 해킹은 우리가 생각했던 것보다 훨씬 위험하다. 전자서명 자체가 신뢰할 수 있는 파일로 여겨져 파일이 제작자에 의해 제작되고 위, 변조 되었는지 확인할 때도 사용되기 때문에 이러한 마크를 들고 다오는 것은 그 파일이 심지어 악성코드라고 하여도 컴퓨터는 전자서명만 보고 신뢰를 한다. 즉, 전자서명이 있다면 프로그램의 신뢰도를 이용하여 더 쉽게 사용자의 컴퓨터에 들어갈 수 있다. 따라서 인증서가 유출되면 발 빠르게 움직여 제 2차 피해를 막을 수 있도록 해야 한다.
먼저, 인증서가 해킹당했다는 소식을 듣게 되면 사용자가 자신이 가지고 있는 인증서를 폐기하고 새로 인증서를 발급받을 수 있도록 해야 한다. 가장 좋은 것은 정기적으로 인증서를 새로 발급받는 것이 가장 좋다. 이를 자동화로 해놓는다면 금상첨화가 될 것이다. 또한, 해킹 당한 혹은 신뢰할 수 없는 인증서는 발 빠르게 제거하고 더불어, 서버측에서는 키와 인증서 관리에 대해 계속적인 관심을 가지고 더욱 힘써서 보호를 해야 할 것이다.[16]
이니텍과 핸디소프트뿐만 아니라 인증서의 유출은 생각보다 빈번하게 일어난다. 우리가 알고 있는 스턱스넷 역시 다른 기업의 전자서명을 가지고 의심 없이 사용자의 컴퓨터에 들어갈 수 있었다. 외에도 블랙바인, 히든링스 등 여러 기업들도 가짜 인증서를 통해 공격이 시도 되었다.[17] 국내 역시 2015년 미래창조과학부로부터 제출 받은 자료에 의하면 해킹 3년 동안 7만건의 인증서가 유출되어 공인인증서를 활용한 개인정보보호 시스템의 변화가 필요하다는 주장이 나오기도 했었다.[18] 특히나, 시만텍은 코드서명을 탈취하는 서플라이(Suckfly) APT 공격에 대해 조사한 결과, 탈취한 코드서명을 사용 하는 주 공격대상은 정부 기관, 공공기관이며 탈취한 인증서의 출처의 대부분은 서울 소재의 기업들이라고 밝혔다. [19]
전자서명을 탈취당한 기업 역시 해당 기업의 평판에 상당한 오점을 남기겠지만 기업 내에서 전자서명을 재배포하는 것 역시 금전적인 문제도 상당하다. 갈수록 진화하는 해킹 사고와 관련하여 사용자의 시스템에 의심 없이 들어가기 위한 아이디어 싸움이 치열하다. 그런 아이디어들 중에 전자서명 해킹은 당연 좋은 아이디어임은 틀림 없다. 많은 침입자들이 각 기업의 전자서명을 노리고 있는 만큼 기업들 역시 전자서명 관리에 각별한 주의가 필요하다고 생각된다.