검색창에 "raon k 뭐임"이라고 친 사람이 있었다. 나도 처음엔 똑같은 생각이었다. 작업 관리자에 raonk.exe 와 raonk.moni.exe 가 나란히 떠 있는데, 설치 프로그램 목록에서 찾은 이름은 "RAON K 2018" 하나뿐이었다. 2018 이라는 연도가 붙은 프로그램이 지금도 매일 PC 가 켜질 때마다 뜨고 있었다.
이름표: 라온위즈의 파일 전송 에이전트
설치 폴더를 열어 실행 파일과 DLL 의 속성을 하나씩 읽었다. 모두 RAONWIZ Inc. 서명이 유효했다.
| 파일 | 파일 설명 |
|---|---|
| raonk.exe | RAON K Premium Hybrid Agent |
| raonk.moni.exe | RAON K Moni |
| raonk.upload.dll | RAON K HTTP/HTTPS |
| raonk.link.dll · raonk.link64.dll | RAON K Upload Link |
| raonk.editor.dll | RAON K Editor |
| raonkhwp.dll | HwpFilePathUtil |
설명을 모아 보면 성격이 보인다. RAON K 는 웹 페이지가 브라우저만으로는 하기 어려운 파일 작업, 즉 대용량 파일 올리기와 받기, 여러 파일 한꺼번에 보내기 같은 일을 대신 해 주는 "하이브리드 에이전트"다. 웹 페이지 안의 업로드 화면은 사이트가 그리지만, 실제 파일을 읽고 보내는 일은 PC 에 깔린 이 에이전트가 한다. 한글 문서 경로를 다루는 raonkhwp.dll 이 따로 있는 것도 한국 사이트용 제품답다. 대학, 기관, 기업의 업무 사이트에서 첨부 파일을 올리려다 설치 안내를 받았다면 이 프로그램일 가능성이 크다.
두 프로세스의 관계는 부모와 자식이었다. raonk.moni.exe 가 먼저 뜨고, 그것이 raonk.exe 를 띄운다. 이름 그대로 moni 가 본체를 지켜보다가 꺼지면 다시 띄우는 감시 역할로 보인다. 메모리는 둘 다 작업 집합 2~6MB, 개인 메모리 4MB 정도로 아주 작았다.
ProgramData 와 작업 스케줄러
설치 위치가 조금 특이했다. 보통 프로그램은 C:\Program Files 아래에 깔리는데, RAON K 는 C:\ProgramData\RAONWIZ\RAON K 에 있었다. ProgramData 는 원래 프로그램의 설정이나 데이터를 두는 곳이라, 실행 파일을 찾을 때 Program Files 만 뒤지면 놓친다. "설치한 적 없는 프로그램이 어디서 뜨는지 모르겠다"는 말이 나오는 이유 중 하나다.
시작 방식도 흔한 시작 프로그램(Run 레지스트리 키나 시작 폴더)이 아니었다. raonk.moni.exe 의 부모를 따라가니 svchost.exe 였고, 작업 스케줄러에 RAONK Task 1.0 이라는 작업이 등록되어 실행 중이었다. 그래서 작업 관리자의 "시작 앱" 탭에서는 끄는 스위치를 찾을 수 없다.
Get-ScheduledTask | Where-Object { $_.TaskName -match 'raon' } |
Select-Object TaskName, State
TaskName State
-------- -----
RAONK Task 1.0 Running
그리고 raonk.exe 는 127.0.0.1 의 47317 번과 47337 번 포트를 열고 기다리고 있었다. 주소가 127.0.0.1 이라 외부에서는 접속할 수 없고, 같은 PC 의 브라우저만 말을 걸 수 있다. 업로드 화면의 스크립트가 이 포트로 "이 파일들을 보내 달라"고 요청하면 에이전트가 파일을 읽어 사이트 서버로 전송하는 구조다.
루트 인증서까지 들어가 있었다
여기서 한 가지가 더 나왔다. 인증서 저장소에서 "신뢰할 수 있는 루트 인증 기관"을 열어 보니 RAON K ROOT CA 가 들어 있었다. 컴퓨터 저장소와 현재 사용자 저장소 양쪽 모두였고, 유효 기간은 2018년 9월 19일부터 2038년 12월 31일까지다.
Get-ChildItem Cert:\LocalMachine\Root, Cert:\CurrentUser\Root |
Where-Object Subject -match 'RAON' |
Select-Object PSParentPath, Subject, NotAfter
https 로 된 사이트 페이지가 PC 의 에이전트와 통신하려면 에이전트 쪽도 브라우저가 믿는 인증서를 내밀어야 한다. 그래서 이런 에이전트들은 설치할 때 자기 루트 인증서를 신뢰 목록에 넣고, 그 루트로 발급한 인증서로 로컬 포트를 연다. 같은 PC 에 있던 위즈베라 Veraport 도 실제로 16106 번 포트에서 Veraport-CA 가 발급한 CN=127.0.0.1 인증서로 응답했다.
문제는 루트 인증 기관이라는 지위가 생각보다 크다는 점이다. 신뢰할 수 있는 루트에 들어간 인증 기관은, 원칙적으로 어떤 사이트 이름으로 인증서를 발급해도 브라우저가 믿는다. 개인 키가 안전하게 관리되는 한 문제가 없지만, 그 키가 새면 남의 사이트를 흉내 내는 데 쓰일 수 있다. 내 PC 의 루트 저장소에는 RAON K 말고도 위즈베라(Delfino-CA, Veraport-CA), 드림시큐리티, 한컴, 인터리젠의 루트 인증서가 같이 들어 있었다. 보안 프로그램을 깔 때마다 신뢰 목록이 하나씩 늘어난 셈이다.
지우는 방법
RAON K 를 쓰는 사이트에 당분간 갈 일이 없다면 지워도 된다. 설정 → 앱 → 설치된 앱에서 "RAON K 2018" 을 제거한다. 등록된 제거 명령은 C:\ProgramData\RAONWIZ\RAON K\uninstall.exe /u 였다.
제거한 뒤에는 두 가지를 확인하면 깔끔하다. 하나는 작업 스케줄러에 RAONK Task 1.0 이 남아 있지 않은지, 다른 하나는 루트 인증서 저장소에 RAON K ROOT CA 가 남아 있지 않은지다. 인증서가 남아 있으면 certmgr.msc(현재 사용자)와 certlm.msc(컴퓨터)에서 "신뢰할 수 있는 루트 인증 기관 → 인증서"를 열어 지운다. 다음에 그 사이트에서 파일을 올릴 때 설치 안내가 다시 뜨고, 그때 다시 깔면 된다.
다음 편은 인터넷 뱅킹에서 공동인증서로 서명할 때 쓰이는 Delfino G3 와, 이런 보안 프로그램들의 설치를 관리하는 Veraport 다.