"익명 오픈채팅방에 있으면 누군지 모를 것 같죠? 익명 ID만 알아도 카톡 프로필 사진부터 상태 메시지, 전화번호까지 알 수 있습니다. 문의 사항은 텔레그램 보내세요."

일부 개발자들 사이에서 최소 몇 달, 혹은 몇 년째 카카오톡 오픈채팅방에 대해 돈 얘기입니다. 카카오가 10년 이상 쓰고 있는 메신저 프로토콜의 허점이 노출되자 이를 악용해 익명 채팅방의 참여자 정보를 빼내는 방법이 확산했다는 겁니다.

정부는 카카오톡 오픈채팅의 보안 허점에 따른 개인정보 유출 가능성에 대해 조사를 시작했는데요. 이 가운데 업계에선 카카오가 최소 수개월째 오픈채팅방의 보안 취약점이 있음을 알고 있었다는 주장이 제기됐습니다.

1월에 이미 업계 '경고'

14일 정보기술(IT)업계에 따르면 지난 1월 카카오 플랫폼 서비스 관련 개발자 커뮤니티인 '카카오 데브톡'에는 '카카오톡 오픈채팅방의 보안 허점과 개인정보 누출'이라는 제목의 글이 올라왔습니다.

카카오톡 메시지 전송에 쓰이는 '로코 프로토콜'을 악용해 오픈채팅방 참여 이용자의 카카오톡 프로필 ID, 카카오톡 로그인에 쓰이는 이메일 주소, 전화번호까지 추출 할 수 있다는 경고를 담은 글입니다. 데브톡은 카카오톡, 카카오맵, 카카오페이 등 카카오 각종 서비스의 API(응용프로그램 인터페이스)와 SDK(소프트웨어 개발 도구) 등 정보를 나누는 커뮤니티입니다.

글을 올린 개발자는 해커로 추정되는 이들이 오픈채팅방에서 채팅방 익명 이용자의 실제 카카오톡 아이디와 메일주소, 전화번호를 뽑아내는 과정을 담은 스크린샷을 글에 첨부했습니다.
지난 1월 카카오 개발자 커뮤니티 '데브톡'에 올라온 글. 작성자는 오픈채팅방 보안 취약점에 대해 경고했다. /화면 캡쳐
지난 1월 카카오 개발자 커뮤니티 '데브톡'에 올라온 글. 작성자는 오픈채팅방 보안 취약점에 대해 경고했다. /화면 캡쳐
스크린샷에 따르면 해커가 오픈채팅방 이용자에 배정된 익명 ID에 대해 특정 명령어를 써 데이터 요청을 보내 해당 이용자의 카카오톡 아이디 식별 번호와 로그인용 메일 주소, 전화번호를 알 수 있습니다.

"명령어만 알면 비공개 정보도 접근 가능"

보안업계에 따르면 이 과정은 프로그램 구조를 이용해 이뤄집니다. 보안업체 큐비트시큐리티의 신승민 대표는 "개발자가 API를 호출해 패킷(데이터 전송 단위)에 특정 문자열을 보내면 API가 데이터베이스(DB)에서 해당하는 정보를 찾아서 응답하도록 설계된 구조"라고 설명했습니다.

'API는 이용자 요청에 응답한다'는 프로그램의 원칙적 특성을 악용한 셈입니다. 이를 통하면 해커가 일반 카카오톡 이용자에게 공개되선 안되는 DB에 대해서도 접근할 수 있습니다.

이번에 문제가 된 해킹 툴은 카카오톡의 '로코 프로토콜'의 보안 취약점을 활용했습니다. 로코 프로토콜은 12년째 카카오톡 메시지 전송에 쓰이는 규칙입니다. 2011년 카카오톡 메시지 전송량이 급증하자 카카오가 개발해 도입했죠. 메시지 전송에 쓰이는 패킷 사이즈를 줄여 전송할 수 있게 한 게 특징입니다.

데브톡을 통해 문제를 제기한 개발자는 "(카카오톡에) 위조 클라이언트로 로그인하는 악성 유저가 늘고 있고, 일부 채팅방에선 이를 이용해 해킹을 하는 수준까지 이르렀다"며 "(채팅방을) 나간 유저들의 프로필로 찾아가 다시 방에 초대하는 등의 행위도 보인다"고 썼습니다.

그는 이어 "같은 프로토콜을 12년 넘게 사용하는 카카오의 문제라 생각한다"며 "이러한 문제는 시급히 개선돼야 한다"고도 강조했습니다.

이 경고에 대해 당시 카카오 데브톡 관리자는 "우리는 API, SDK를 안내한다"며 "번거롭겠지만 고객 센터에 제보하라"고 응대했습니다. 신 대표는 "통상 개발 과정을 끝낸 후나 이후 업데이트 과정에서 민감한 정보를 찾는 API 명령어 등을 삭제한다"며 "이 조치가 없으면 취약점을 비집고 들어오는 보안 공격을 받을 수 있는 것"이라고 말했습니다.

문제를 제기한 글은 현재는 카카오의 조치로 비공개로 전환됐습니다. 카카오 관계자는 "데브톡에 해당 글이 올라왔던 것은 사실"이라며 "일부 내용은 오해가 있었고 이후 관련 조치를 했다"고 말했습니다. 그는 "글을 올린 개발자에게도 (카카오가) 따로 연락을 취해 소통했다"고 덧붙였습니다.

정부가 조사에 착수하자 데브톡엔 한 이용자가 이 글에 등장하는 사람이라고 주장하며 "그냥 지인의 전화번호를 입력해서 해킹을 하는척 했을 뿐"이라는 글을 올렸는데요. 이 주장의 진위는 확인할 수 없었습니다. 원본 글쓴이와는 아이디가 달랐고요.

12년째 같은 프로토콜…취약점 노출돼

IT업계에 따르면 이 개발자가 제기한 보안 문제는 하루이틀 얘기가 아닙니다. 데브톡에 지난 1월 올라온 글만이 문제가 아니라는 겁니다.

유튜브나 마케팅 정보 공유 웹사이트만 해도 최소 2년 전부터 카카오톡의 로코 프로토콜을 악용한 '로코봇'을 홍보하는 동영상과 글 등이 다수 올라와 있습니다.
지난해 상반기 유튜브에 올라온 로코프로토콜 악용 동영상
지난해 상반기 유튜브에 올라온 로코프로토콜 악용 동영상
일부 동영상엔 카카오톡 오픈채팅방의 익명 ID를 확보해 실제 프로필과 상태 메시지 등을 알아내는 과정이 담겨있습니다. "주식·코인방 등의 광고 영업에 로코봇을 쓸 사람은 연락하라"는 안내문과 함께입니다. 보안 취약점을 악용한 이들이 위조 클라이언트 불법 거래를 해왔다는 얘기입니다.
지난해 상반기 유튜브에 올라온 로코프로토콜 악용 동영상
지난해 상반기 유튜브에 올라온 로코프로토콜 악용 동영상
익명을 요구한 한 IT업계 관계자는 "주식, 해외선물, 코인, 도박 등 주제에 대한 오픈채팅방을 무작위 홍보하는 이른바 '뿌튀업자'들이 상당 기간 로코 프로토콜의 취약점을 활용해왔다"며 "오픈채팅방의 개인정보까지 빼돌릴 수 있다면 카카오톡 플랫폼을 넘어 전화와 문자 등으로도 불법 도박 권유 등을 할 수 있을 것"이라고 말했습니다.

"전화번호와 ID는 따로 저장" vs "그래도 다 털려"

카카오는 시스템 구조상 오픈채팅방을 통해 익명 이용자의 개인정보 조회까지는 할 수 없다는 입장이다. 카카오 관계자는 "오픈채팅방 회원 식별번호에 대해 일부 보안 취약점이 있기는 했다"며 "다만 이를 통해 알아낼 수 있는 것은 톡 유저 아이디(식별값) 뿐이고, 별도 DB에 저장하는 전화번호까지는 알 수 없는 구조"라고 했습니다.

하지만 보안업계의 시각은 전혀 다릅니다. 카카오톡 ID와 전화번호가 서로 다른 DB에 저장돼 있어도 해커가 한 번에 빼갈 수 있다는 얘기입니다.

한 보안업체 최고기술책임자(CTO)는 "기업은 DB를 통상 나눠 운영하고, API는 명령어에 따라 분산된 각 DB에서 원하는 데이터를 취합해 이용자에게 갖다주는 역할을 한다"며 "해커가 API 취약점을 악용했다면 DB 분산 여부는 정보 유출 가능성 차단에 아무런 의미가 없다"고 잘라 말했습니다.

정부는 이를 고려해 카카오 오픈채팅방 개인정보 유출 가능성에 대해 조사에 착수했습니다. 과학기술정보통신부와 한국인터넷진흥원(KISA)가 카카오톡의 오픈채팅방 보안 취약점과 불법행위 여부 등을 따져볼 예정입니다. KISA가 외부 전문가를 포함한 취약점 조사단을 꾸리고 카카오와 공동 조사를 협의하고 있습니다.

개인정보보호위원회도 이날 카카오톡 오픈채팅방의 개인정보 유출과 관련 조사에 착수했다고 밝혔습니다.

카카오 관계자는 "현재까지 오픈채팅방에 대한 개인정보 유출 피해 사례는 접수된 바가 없다"며 "정부 조사에 적극 협조해 실제 정보 침해 행위가 일어났는지 확인할 것"이라고 말했습니다.

카카오에 따르면 작년 말 기준 카카오톡의 국내 월간활성이용자(MAU)는 4777만9000명에 달합니다. 해외를 포함한 글로벌 이용자는 5348만명이 넘습니다.

한 IT 개발자는 "개발 커뮤니티에 보안 취약점 하나가 알려지만 온갖 해커들이 달려들기 십상이라 시간을 지체하면 피해가 커지기 쉽다"며 "일부는 금전적 이득을 위해, 일부는 자신들의 커뮤니티 내 명성을 쌓거나 단순 재미를 위해 각자 악용법을 나누기 때문"이라고 말했습니다. 그는 "'국민 앱' 수준으로 사용자가 많은 카카오톡에 대해선 보안 취약점을 드러내려는 이들이 특히 더 몰렸을 것"이라고 덧붙였습니다.

선한결 기자 always@hankyung.com