Top Coder RAW novel - Chapter (98)
탑 코더-98화(98/303)
# 98
독보적 기술
아침 10시부터 저녁 7시.
시내 소프트의 공식 적인 업무 시간이었다.
지금 시간이 저녁 8시.
대부분의 직원들이 퇴근한 시간. 창밖은 이미 어둑어둑 했다. 저녁을 먹고 돌아온 승호는 까칠하게 돋아난 수염을 만지작거리며 책상 앞에 앉았다.
‘패치는 이미 만들어 뒀고, 언제 올리는 지가 관건인데.’
오늘 하루 종일 승호의 고민이었다.
언제 패치를 공개 할지.
미국을 비롯해 다크 웹. 러시아 등의 뛰어난 실력자들이 랜섬웨어를 분석해 패치를 개발해 버리면 피해를 입는 건 아니지만 최고의 결과를 낼 수는 없었다.
‘나노 소프트에서도 곧 패치가 나올 것 같고.’
세계 최고의 OS 윈더의 개발사인 나노 소프트는 언제나 자사 OS 관련 보안 패치를 개발해 배포하는데 삼 일 이상 걸리지 않았다.
시간으로 치면 벌써 2틀째.
어쩌면 개발이 끝나고 테스트를 진행하고 있을지도 모른다.
‘100억은 너무 많았나······.’
허춘수를 통해 온 연락처에 100억이라는 금액을 제시했다. 그게 벌써 5시간 전.
아직도 중국 쪽에서 대답이 없었다.
100억.
랜섬웨어 보안패치를 개발하는 가격치고는 비싼 감이 있었다. 어차피 기다리다 보면 선의를 가진 프로그래머들이 패치를 개발해 배포하는 경우가 많았기에.
거기에 나노 소프트나 미눅스 재단 같은 곳에서도 자체적으로 패치를 개발 해 내놓는다.
모두 공짜.
그런데 자신이 해결하면 100억.
쉽지 않은 결정이리라.
“자업자득이다 생각해라.”
승호는 혼잣말을 중얼 거리며 CNN에 올라온 중국 뉴스를 확인했다.
-감염 PC 200만대. 막다른 곳에 다다른 중국. 사상 최악의 랜섬웨어 매그니토 중국 전역을 휩쓸었다.
기사에 첨부된 동영상에는 중국인들의 현지 반응이 흘러나오고 있었다.
은행에서 불편을 겪은 고객.
인터넷이 안 돼 짜증이 난 사용자.
스마트폰으로 전화 도중 갑자기 끊긴 사례.
뉴스는 다양한 사례를 다루며 현지 상황을 전하고 있었다. 뉴스를 보던 승호가 고개를 갸웃 거렸다.
“이 정도면 연락이 올 법한데······.”
그때 모르는 번호로 전화가 걸려왔다. 순간 직감적으로 느꼈다.
‘왔다.’
전화를 받아보니 역시나.
자신의 예상대로였다.
***
“연결됐습니다.”
그 말에 우추관이 전면에 나섰다.
“반갑습니다. 중국 공안 소속 우추관입니다.”
그 말을 옆에 있던 통역관이 번역해 주었다.
-네. 강승호 입니다.
그 말을 다시 번역.
약간의 딜레이가 있었지만 대화를 하는데 무리는 없었다.
“제시하신 조건은 잘 들었습니다. 100억 선 지급. 시내 소프트 홈페이지를 통한 패치 배포. 중국내 ZONE 서비스 사업 편의 제공.”
-맞습니다.
“내부 논의를 통해 제시하신 조건을 들어드리는 것으로 결론을 내렸습니다. 단 저희도 조건이 하나 있습니다.”
-네. 말씀해보세요.
“그 전에 정말 패치를 만들 수 있는 실력인지 검증이 필요합니다.”
잠시 정적이 이어졌다. 우추관이 살짝 입술을 깨물었다. 만약 협상에 실패하고, 패치가 개발되지 않는다면 더 큰 피해가 생길지도 모른다.
그러나 우추관은 패치가 성공할 경우도 생각해야 했다.
100억.
그 큰돈을 집행하는 합당한 이유가 필요했다. 승호의 실력을 검증하는 건 그 이유를 만들어가는 과정이었다.
-검증은 어떤 방식으로 진행되는 겁니까?
우추관은 미미하지만 변화된 목소리를 느낄 수 있었다.
‘기분이 나빠졌다.’
아마 자신이 같은 상황이라도 그리 기쁜 마음으로 받아들일 수는 없었을 것이다. 아쉽지만 지금은 자신이 ‘을(乙)’. 상대의 기분을 맞춰져야 했다.
“우리 쪽 직원들과 이번 랜섬웨어 관련해서 대화를 나눠 주시면 됩니다.”
-알겠습니다. ***
승호는 통화가 되는 무선 이어폰을 끼고, 중국 측과 원격 접속 연결이 된 노트북 앞에 앉았다.
“해당 랜섬웨어가 업데이트를 통해 서로 변형을 일으키고 있다는 사실까지는 다들 아실 겁니다.”
-SMB쪽 취약점을 이용한다는 사실 까지 분석 했습니다. 그런데 말씀 하신 업데이트 때문에 자체 개발한 패치가 무용지물이 되었습니다.
“그래서 윈더나 미눅스에서도 패치가 늦어지고 있는 것으로 보입니다. 서로 업데이트를 하며, 이미 알려진 혹은 알려지지 않은 취약점을 이용하고 있으니.”
-그건 알고 있지만······.
패치는 개발 하지 못했다. 그 뒷말은 들리지 않았다.
“쉽지 않았을 겁니다. 저도 어제 밤새 분석을 진행해 겨우 파악한 내용이니까요. 그 결과 저는 취약점을 방어하는 것 보다 랜섬에어를 공격 하는 방안을 고민했습니다.”
-감염되는 순간 키보드, 마우스가 전부 먹통이 되어 버립니다. 입, 출력을 할 수 없는데 공격을 한 다는 게 잘 이해가 가질 않습니다.
“말씀 하신 게 맞습니다. 매그니토는 입, 출력 장치를 무용지물로 만들고 특정 문구를 화면에 띄우도록 강제하고 있습니다. 그래서 제가 집중한 부분은 서로 업데이트를 하는 쪽.”
-아. 네트워크 카드를 말씀 하시는 겁니까?
“네. 거기에서 들어오는 입력을 받아들이고 있으니까요. 그 패킷에 접근해 변형을 일으킬 수 있다면 매그니토를 파괴 할 수 있지 않을까 생각했습니다.
잠시 정적이 흘렀다. 전화기 너머로 갑론을박이 벌어졌다.
-그 방법은 우리도 고민했다가 폐기했잖아.
-어떤 식으로 구현해야 그 사이를 간섭할 수 있다는 말이지.
-먼저 랜섬웨어 간 어떻게 통신하고 있는지부터 물어봐야 하는 건가.
반대편에서 갈팡질팡하는 소리가 들렸다. 그리고 이어진 한숨 소리.
-휴우······.
다시 전화기에서 음성이 들려왔다.
-그러니까 대표님께서 개발하시는 패치는 서로 통신하고 있는 랜섬웨어의 프로토콜에 변형을 일으켜 매그니토를 제거 할 수 있다는 말씀이신가요?
“맞습니다. 자세히 살펴보시면 매그니토는 서로 RPC(원격프로시져콜)로 서로 통신하고 있습니다. 거기에 제가 찾아낸 익스플로잇을 실행하면 한 번에 전부 제거 할 수 도 있습니다.”
한 번에 전부.
그 말에 우추관이 놀라 되물었다.
-한 번에 전부?
“물론 인터넷에 연결되어 있다는 가정 하에 말씀 드리는 겁니다.”
-······.
다시 이어진 침묵.
그리고 서로간의 갑론을박.
승호는 팔짱을 낀 채 앉아서 그들의 대화를 듣고 만 있었다.
-윈더 OS 상에서 RPC 통신은 이미 수많은 패치를 통해 탄탄한 보안성을 인정받았습니다. 그걸 뚫었다니······
-미눅스도 마찬가지에요. 더구나 DES로 암호화 되고 있는데. 슈퍼컴퓨터라면 모를까 일반 PC로 DES 암호화 내용을 복호화 하려면 최소한 며칠이 필요합니다. 랜섬웨어에 감염된 지 이제 겨우 하루인데······.
다시 전화기를 통해 공식적인 질문이 날아왔다.
-이미 윈더에서 RPC 통신 관련해서 긴급 패치를 수 도 없이 내놓았습니다. 뿐만 아니라 미눅스 OS에서도 OS 자체적으로 RPC 쪽에 DES 암호화를 적용한 걸로 아는데요.
“그걸 분석해서 어떤 프로토콜을 사용하는지 알아냈습니다. 아시다 시피 DES는 고성능 GPU를 이용해 복호화 하는 방법이 많이 나와 있으니까요. 이참에 미눅스 쪽에도 패치를 제안할 생각입니다. RPC 통신 암호화 방식을 AES로 바꾸자고.”
승호는 빈틈없이 대답했고, 질문은 번번이 가로 막혔다.
“더 이상은 패치 내용을 알려달라는 것과 다를 바 없는 것 같은데. 검증은 통과된 겁니까?”
전화기 너머로 또 다시 침묵이 흘렀다.
***
바이두.
세계 최대 인터넷 포털 업체인 포트가 중국 정부의 검열시스템 황금방패에 가로막혀 힘을 쓰지 못하는 사이 60조대의 시가총액을 자랑하는 회사로 성장한 곳.
그곳의 보안 팀에서 근무하는 리슈잉은 어제 부터 퇴근도 하지 못하고 랜섬웨어 매그니토에 대응하고 있었다. 밤샘 야근으로 리슈잉의 입이 뾰족하게 튀어나와 있었다.
“그러게 ZONE 서비스 도입하자고 몇 번을 건의 했는데 반려시키더니. 그 서비스 도입했으면 랜섬웨어 걸릴 일도 없었잖아요.”
“야, 그거 도입한다고 안 걸렸겠어? 그리고 우리가 한국 보안 솔루션을 사용한다는 게 말이 되냐.”
“한국 솔루션 못 사용할 건 또 뭡니까. 그리고 베드 패킷 자동 필터링 기능이 얼마나 뛰어난지 모르세요? 매그니토가 인터넷 망에서 부터 들어왔으니 당연히 필터 되었을 겁니다. 그러니까 선진이 엔진 S에서 기본 탑재하고 전사적 도입을 확정 한 겁니다.”
리슈잉의 열변에 상사가 씁쓸한 입맛을 다셨다.
“이미 늦었어. 어서 패치 개발할 생각이나 해.”
“어휴, 이거 도저히 답이 안 나오는 데.”
불평을 쏟아내던 리슈잉이 습관적으로 시내소프트 홈페이지에 접속했다. 벌써 수 십 번도 넘게 접속해 ZONE 서비스 관련 내용을 살펴보았기에 익숙하게 메뉴를 클릭해 나갔다.
그러다.
무의식적으로 자료실을 메뉴를 클릭했다. 나타난 게시판의 최상단에 올라온 공지사항.
“매그니토?”
영어로 된 제목은 분명 매그니토 관련 보안 패치라고 되어 있었다. 리슈잉은 혹여 글이 사라질까 재빨리 마우스를 움직여 게시 글을 클릭했다.
윈더 7 버전.
윈더 10 버전.
미눅스 버전.
······. 친절하게도 각 OS 버전별로 파일이 올라와 있었다. 리슈잉은 황급히 파일을 테스트 서버로 다운로드 받아 실행시켰다. 그 이후에 다시 랜섬웨어가 담긴 USB를 연결시켜 파일을 실행했다.
그러자.
“헐······.”
째깍째깍.
시간이 흘렀지만 감염 되었을 때 나타나는 증상은 보이지 않았다. 리슈잉은 몇 번을 더 테스트 해보고 놀란 목소리로 중얼 거렸다.
“총경리님 패치 나온 것 같은데요······.”
“뭐?”
“여기 시내소프트 홈페이지에 패치가 올라왔습니다.”
“시내 소프트? ZONE 서비스 한다는 그곳?”
“네. 거기가 보안 솔루션 회사잖아요. 거기에서 이번 랜섬웨어 관련 패치를 개발한 것 같습니다.”
“테스트 해봤어?”
리슈잉이 고개를 주억거렸다.
“다른 변형된 걸로도?”
“네. 다섯 번 테스트 해봤는데 모두 정상 작동합니다.”
그제야 상사의 얼굴에 화색이 돌았다.
“적용 시작하자.”
***
국정원 지하 벙커. B-1 룸.
국정원에 근무하는 사이버 안보 요원들이 근무하는 곳이자 사이버 안전 담당관의 평소 출근 장소였다. 빛 한 점 들어오지 않는 지하에는 고요한 가운데 키보드 두드리는 소리만 들렸다. 그 고요를 깨고 룸에 설치된 전화기가 울렸다. 전화를 끊은 요원이 담당관에게 말했다.
“중국 쪽 감염 PC가 가파르게 줄어들고 있다고 합니다.”
“결국 그렇게 됐단 말이지······.”
“저희 쪽 테스트 결과도 동일합니다. 매그니토를 차단, 제거에 탁월한 효과를 발휘하고 있습니다.”
“······.”
“역시나 일까요.”
담당관이 고개를 끄덕였다. 요원은 팔 쪽에 돋아난 닭살을 문질렀다.
“이 정도면 무서울 정도네요. 중국 전역을 공포에 몰아넣은 랜섬웨어를 하루 만에 해결 하다니··· 미국에서도 해결 하지 못했는데.”
“나도 마찬가지 심정이다.”
“각 국 정보기관에서 러브 콜이 엄청나게 오겠어요.”
담당관이 고개를 끄덕였다. 이미 FBI 쪽에서 움직임이 포착됐다. 이번 일을 계기로 중국 공안 쪽에서도 탐을 낼 것 이다. 여타 기업들은 말 할 것도 없었다.
“그래서 국장님께 건의할 생각이다.”
“국가전략자산 말씀이십니까?”
담당관이 무겁게 고개를 끄덕였다.
국가전략자산.
국가인재데이터베이스에서 관리하는 인재들. 그 들보다 한참위에서 관리되는 등급. 자산이라는 단어에서 알 수 있듯이 사람, 물건, 기술 등등 유무형의 것들을 총 망라한다.
대표적으로 박정희 정권 시절 핵무기 개발을 진두지휘한 최형섭 박사가 있었다.
핵무기.
그 단어에서 알 수 있듯이 나라의 운명에 심대한 영향력을 끼칠 수 있는 사람들을 관리하는 체계였다.
“강 대표가 오늘 보인 능력만으로도 국가전략자산으로 관리될 필요가 있다는 게 내 판단이야.”
“지금까지 사람이 선정 된 사례가 최초 한 번 밖에 없긴 하지만······.”
“이제 다들 알았겠지. 현대 시대에는 핵무기 한 발보다 1메가도 되지 않는 프로그램이 더 강력한 힘을 가질 수 있다는 걸.”
요원은 고개를 끄덕이는 것으로 대답을 대신했다.