Top Coder RAW novel - Chapter (73)
탑 코더-73화(73/303)
# 73
잃어버린 코인
장민이 묵고 있는 방도 스위트 룸.
그곳에서 들은 내용은 크라운 회장이 승호에게 했던 제안과 크게 다르지 않았다.
“비낸스에서 관리하던 코인이 없어졌다. 그걸 다시 찾을 수 있게 도와 달라는 말씀이십니까.”
장민이 고개를 끄덕였다. 딱딱하게 굳어진 표정에서 사태의 심각성을 알 수 있었다.
“없어진 바이트 코인만 오천여 개. 현 시가로 450억 정도가 됩니다.”
바이트 코인.
블록체인 기술에 대한 결과물로 나온 코인은 현재 한 개당 900만 원 정도의 시세를 이루고 있었다.
없어진 코인이 오 천 개.
시가로 450억.
아직은 감조차 오지 않는 금액이었다.
“만약 범인을 찾아내고, 코인 까지 되찾을 수 있다면 아까 말씀 드린 50억을 드리겠습니다.”
크라운 회장이 약속한 50억.
거기에 이 사람이 말한 일까지 완료하면 50억.
합치면 100억이었다.
천만 달러에 달하는 돈.
카지노에서 잭팟을 터트렸을 때 받을 수 있는 금액이었다. 승호가 자세를 고쳐 앉았다. 장민이 빠르게 말을 이었다.
“이번 대회에서 우승하신 분께 일을 맡기려고 처음부터 체크포인트 대회를 관심 있게 지켜봤습니다. 최초 50억까지 생각하지는 않았지만 승호씨의 실력을 보고 결정하게 됐습니다.”
전혀 나쁠 것 없는 제안이었다. 승호는 미소가 비집고 나오려는 걸 참았다.
“좋게 봐주셔서 감사합니다.”
“그럼 승낙하신 걸로 알겠습니다.”
승호가 고개를 끄덕였다.
“지금 부터는 저희 엔지니어가 상세하게 설명 드리겠습니다.”
장민이 폰을 들어 어딘가로 전화를 걸자 문을 열고 수명의 엔지니어가 방으로 들어왔다.
“최초 시작은 인사팀에 들어온 경력직 엔지니어 채용원서였습니다. 채용원서와 함께 들어온 신규 악성코드가 PC를 잠식 했습니다.”
악성코드가 감염되는 가장 기본적인 형태였다. 승호가 엔지니어를 보며 말했다.
“어떤 형태인지 알 수 있을까요?”
승호 앞에 앉아 있던 엔지니어가 노트북을 펼쳤다.
“여기에 옮겨 두긴 했습니다. 그런데······.”
머뭇거리던 엔지니어가 조심스럽게 입을 열었다.
“관련 파일이 손상된 상태라 어떤 방식으로 작동하는지 까지는 분석하기 힘들 겁니다. 복구를 위해 여러 방법을 사용해 보았지만··· 결국 실패 했습니다.”
승호는 노트북에 설치된 스파이웨어를 분석하며 입을 열었다.
“이게 최초 해당 직원의 PC에 설치되었고, 이후 관리자 페이지 패스워드가 유출해 갔다는 말씀이시죠?”
엔지니어가 고개를 끄덕였다.
“맞습니다.”
승호가 고개를 갸웃 거렸다.
“그런데 이상하네요. 제가 알기로 대부분의 거래 시스템에는 이상거래 현상을 감지하는 장치가 있을 텐데요.”
“그게··· 안타깝게도 감지하지 못했습니다. 한 번에 많은 양을 빼간 것이 아니라 0.3, 0.5 때로는 한 개. 그런 식으로 아주 소량의 코인을 여러 지갑에 분산해 이동시켰습니다. 사용된 주소만 수 백 개. 어쩌면 더 있을 지도 모르지만 지금 까지 알아낸 바에 의하면 이 정도입니다.”
승호는 대화를 나누면서도 키보드를 멈추지 않았다. 모니터에는 이미 손상된 파일이 어셈블리 코드 형태로 열려있었다. 손상되었다는 말은 사실이었고, 중간 중간 명령어가 깨져 알 수 없는 문자열 형태로 표현되어 있었다. 승호가 입맛을 다시며 물었다.
“흐음··· 그 주소에 저장된 코인은요?”
“대부분의 주소에서 코인이 빠져나갔습니다. 아직 남아 있는 주소도 있지만 매우 소량입니다.”
“어차피 지갑주소의 소유주가 누군지 특정할 수 없으니 범인을 잡을 수도 없겠군요.”
설명을 하던 엔지니어가 고개를 끄덕였다.
“현 상황에서는 코인이 빠져나간 마지막 주소만 알고 있을 뿐입니다. 악성코드에서 시스템 감시 로그를 전부 지워서 다른 정보를 찾을 수도 없어요.”
승호가 난감한 듯 두 손에 깍지를 끼었다. 현재까지 주어진 단서는 지갑 주소와 노트북에 설치된 스파이웨어가 다였다. 단서가 많은 수록 추적은 쉬워진다.
현재는 추적이 어려운 상황. 승호가 물었다.
“코인의 이동 경로는 파악된 겁니까? 지갑에서 지갑으로 이동한 경로. 그게 있다면 도움이 될 것 같은데.”
“그 정보도 있습니다.”
엔지니어가 또 다른 내용을 화면에 띄웠다. 이동 경로는 생각보다 복잡했다.
1에서2로.
2에서 3으로.
다시 3에서 1로.
생각보다 영리한 놈들인지 자금 세탁처럼 코인을 세탁했다. 승호는 왜 50억이나 주는지 알 것 같았다.
“주소와 연결된 거래소 계정 정보는 요?”
“FBI와 연계해 몇 가지 정보는 찾아냈습니다. 저희가 알아낸 바에 의하면 큰 의미 없는 정보였습니다. 아마 가상 계정을 만든 것 같습니다.”
“그 데이터도 주시면 한 번 확인해 보겠습니다.”
“해당 데이터도 노트북에 엑셀 형태로 넣어두었습니다.”
승호가 까칠하게 돋아낸 턱수염을 만지작거렸다.
“완전히 새로운 형태의 스파이웨어군요. 그래서 백신 프로그램에도 걸리지 않았고······.”
엔지니어의 안색이 급격히 어두워졌다.
“코인이 빠져 나갈 때 까지 스파이웨어가 있다는 사실 조차 몰랐으니까요.”
“탈취된 어드민 비번이 어디로 전송됐는지는 파악 됐습니까?”
“악성코드들이 파괴된 것만이 아니라 관련 시스템 로그가 전부 삭제된 상태였습니다. 목적지 IP를 찾는데는 실패 했습니다.”
엔지니어의 어깨가 축 쳐졌다. 아마 자신의 일에 대한 책임감 때문이리라.
“흐음··· 그러면 일단 스파이웨어 복구부터 시작해야겠군요. 이걸 복구하면 이 스파이웨어가 어디로 정보를 보내는지 알 수 있을 테고, 어쩌면 그 놈과 연결이 될 수도 있을 테니까요.”
“저희도 같은 생각으로 몇 번 시도해 봤지만 실패 했습니다.”
승호가 기지개를 켜며 말했다.
“제가 하면 또 다를 수 있으니까요.”
그리고 키보드 위에 손을 얹었다.
***
비낸스 수석 아키텍처인 알버트는 미심쩍은 눈으로 승호를 살폈다.
체크포인트 우승자.
그 타이틀이 없었다면 무슨 말도 안 되는 소리를 하냐며 당장 반박했을 것이다.
‘스파이웨어를 복구 한다고?’
관련된 몇몇 파일은 삭제되어 있었고, 이미 존재하는 파일들도 정체를 알 수 없는 바이러스에 감염 되어 있었다. 복구를 시도 하다 오히려 엔지니어들의 컴퓨터가 웜에 감염되어 폐기 처분시켜야 할 정도였다.
그런 스파이웨어를 복구 한다니. 팔짱을 낀 채 탐탁지 않은 눈으로 바라 볼 수밖에.
그러나 그런 시선은 승호가 실행시킨 통합개발 툴을 보는 순간 조금 바뀌었다.
‘어셈블러로 코딩을 한다······.’
강승호라는 이름의 동양인 청년이 노트북에 설치한 건 세계 최대 소프트업체인 나노 소프트에서 무료로 배포하는 비주얼 어셈블러.
이제는 찾아보기 힘든 어셈블리 코딩을 할 때 사용하는 툴이었다. 청년은 거침없이 코딩을 해나갔다. 저 내용이 맞는지 틀린지는 알 수 없었지만 하나 만은 확실했다.
뭔가 하고 있다.
알버트의 시선에 자그마한 기대감이 서렸다.
“나란히, 나란히 나란히······.”
승호는 자신도 모르게 동요 ‘나란히 나란히’를 중얼 거렸다. 눈 앞에서 줄지어 움직이는 0과 1을 보면서 떠오른 노래였다. 노래를 흥얼거리던 승호가 이곳이 어딘지를 깨닫고 급히 입을 닫았다.
‘날 미친놈이라 생각하진 않겠지.’
그런 걱정이 슬며시 일었다. 이런 잡생각을 할 만큼 승호는 여유가 넘쳤다. 그럴 수밖에 없었다. 스파이웨어 자체가 아주 가벼운 프로그램이었다. 승호는 이진수의 세계에서 해당 프로그램의 얼개를 확인했다.
그리고 난후.
-스파이웨어를 실행시킨다.
-오류가 발생하며 죽어버린다.
-그 시점의 문제를 0과1의 세계에서 파악한다.
-문제를 해결해 코드에 반영한다.
해당 작업을 반복했다. 한, 두 번 하다 보니 손에 익었고 점점 속도가 빨라지는 중이었다. 그렇게 보낸 시간이 한 시간을 넘었다. 승호가 기지개를 켜며 자리에서 일어났다.
으드득.
손 마디마디와 어깨에서 관절들이 부딪치며 비명 음을 토했다.
툭.
손에 걸리는 느낌에 승호가 황급히 팔을 내렸다.
“윽.”
“아, 죄송합니다.”
알버트가 턱을 문지르며 손사래를 쳤다.
“아, 아닙니다.”
“이제 거의 끝났습니다. 스파이웨어 원형을 만들었으니. 이걸 돌려 보면 당시에 어떤 일이 일어난 건지 알 수 있을 겁니다. 잘 하면 IP나 도메인을 알아 낼 수도 있고요.”
“벌써 완성 된 겁니까?”
“네. 이제 마무리 작업만 남았습니다.”
승호가 다시 모니터를 보며 작업에 열중했다. 그렇게 수십 분이 흐르고, 승호의 컴퓨터에서 스파이웨어가 실행되었다.
***
FBI 사이버범죄 대응 서비스부.
스페셜 에이전트로 근무하고 있는 에단은 비낸스로부터 넘겨받은 스파이웨어를 테스트 서버에서 실행시켰다.
“어디 보자······.”
스파이웨어는 서버에 존재하는 수많은 파일들 중에서 사용자 권한 에 관련된 파일들만을 집중적으로 검색했다. 뿐만 아니라 인터넷 브라우저를 켜는 순간 입력되는 정보들을 수집했다. 에단은 FBI에서 자체 제작한 분석 툴에서 흘러나오는 로그를 유심히 살펴보았다.
순간.
Connecting xk1j●■▼◇◎.pp.xx11······.
어딘가로 접속을 시도하는 메시지가 분석 툴에서 흘러나왔다. 그러나 암호화가 되어 있어 어디로 접속하려는 건지 알 수 가 없었다. 에단이 손바닥을 비비며 음흉한 미소를 지었다.
“이 자식들이 암호화 전문가님 앞에서 잔 대가리를 굴리네.”
MIT Computer Security.
그 중에서도 암호 학 전공을 한 사람이 바로 에단이었다. 거길 졸업하고, FBI의 스페셜 에이전트로 취직.
벌써 5년째 이곳에서 일하고 있는 중이었다.
“비대칭 그 중에서도 디피-헬만 키 교환 방법을 사용한 모양이지만 나한테는 안 되지.”
에단은 연신 쉬지 않고 입을 놀렸다. 일을 할 때 그 만의 특징이었다. 작금의 문제를 해결 하는 것이 즐거운지 입 꼬리는 잔뜩 하늘위로 올라가 있었다. 그렇게 수분이 흐르고.
에단이 탁 소리와 함께 엔터를 눌렀다.
Connecting 124.121.xxx.xxx
그러자 화면에 특정 IP 주소가 나타났다. 에단은 바로 해당 IP 주소를 FBI의 전용 검색 창에 넣고 검색 버튼을 눌렀다.
-검색중입니다······.
전 세계에서 사용되는 IP4(xxx.xxx.xxx.xxx 형태의 IP) 주소의 개수는 43억 개. 그 중 대부분이 미 FBI를 비롯해 CIA, 국토안보부가 동시에 관리하는 데이터베이스에 저장되어 있었다.
데이터의 양이 많았기에 검색에 시간이 걸렸다. 해당 데이터베이스에는 IP 정보만 저장되어 있는 게 아니었다.
해당 IP가 어디에서, 어떤 통신사에서 사용하고 있는지.
가입자는 누군 인지.
과거사고 이력이 있는지 등등.
관련된 무수한 정보가 함께 저장되어 있었다. 그랬기에 더 오랜 시간이 소요되었다.
그렇게 수 십초가 지나고.
드디어 결과 창에 관련내용이 나타났다.
-CASE 1. PS 개입 정황 의심. 나스닥 해킹-CASE 2. PS 개입 정황 의심. NASA 기밀문서 접근-CASE 3. PS 개입 정황 의심. 펜타곤 국방문서 접근.
······.
그 뒤로도 케이스는 쭉 이어졌다. 대부분이 테러조직 PS와 관련된 이슈.
자신이 처리할 일이 아니라고 생각한 에단이 사무실에 설치된 보안 전화기의 수화기를 들었다.