우주선 이륙은 공식적으로 생중계되진 않았지만 온라인상에서 온갖 채널 및 플랫폼에서 생중계되고 있었다. 큰 규모의 시위가 전 세계적으로 촉발되고 있었다. 이와 동시에 이미 선별되어 전 세계의 방주가 위치한 곳으로 이동한 선택받은 자들의 입소현장도 아수라장이었다.
나는 영화를 보는 느낌으로 전혀 실감하지 못한 채 그러한 장면들을 여러 채널을 돌리면서 멍하니 구경했다
술 한 잔을 따라 목으로 넘겼다. 찌르르한 느낌. 살아있음을 진하게 느꼈다.
우주선은 흡사 영화의 한 장면처럼 이륙을 시작했다. 수천 년의 걸친 인류 문명의 총아. 결국 우리 인류는 이 순간을 위해 지금까지 치열하게 발전해 온 것인가.라는 생각을 했다. 헛웃음이 났다. 지구를 탈출하기 위해 이렇게 지금껏 수천 년에 걸쳐 수십억 아니 수백억의 인간들이 대를 어어 질기게도 버텨왔구나.
또 한 잔을 들이켰다. 그때 갑자기 데커가 나타났다. 약간 짜증이 났다.
“우주선에서의 연결 요청입니다”
“?”
연결해 달라는 말을 하지 않았지만, 이미 내가 보던 화면들은 모두 정리되고 한 사람이 나타났다. 심각한 얼굴이었다.
“지안 씨 맞으시지요”
“... 네”
“미르가 이륙 후 우주선 통제를 시작했는데, 접근하지 못하지만 동작이 시작된 프로세스로 보이는 것을 탐지했다고 합니다. 지금까지 보지 못한 타입의 인터페이스를 갖고 있는지 다양한 프로토콜로 시도해도 접근이 되지 않는 데다가 전혀 접근이 불가한 메모리 영역에서 따로 동작하고 있습니다. 이와 관련해서 짐작하는 부분이 있을까요? “
나는 전혀 짐작할 수 있는 부분이 없었다.
“혹시 미르를 통해 지금까지 알게 된 부분에 대한 내용을 전달해 주시면 살펴보도록 하겠습니다”
말이 끝남과 동시에 데커가 데이터를 전송받았다고 했다. 난 나의 구식 노트북을 꺼내었고, 데커에게 데이터 전송을 부탁했다.
작은 크기의 파일이 전송되어 있었다. 파일은 텍스트 포맷이 아니었고 바이너리 포맷이었다. 파일의 헤더는 ‘MZ’로 시작했다. 이건 내가 잠자기 수십 년 전에 사용하던 OS의 실행파일포맷이었다. 그리고 이 파일은 그 자체로 압축이 되어 있었으며 메모리에 올라오면 스스로 압축을 해제하여 메모리에 올라와 실행하도록 되어 있었다.
나는 재빠르게 가상 환경을 구축하고 수십 년 전의 OS를 설치할 준비를 마쳤다. 데커에게 혹시 해당 OS의 설치본을 구할 수 있는지 물었고 5분여 정도 후에 데커는 해당 설치본을 전달했다. 가슴이 두근거리기 시작했다.
“이것은 수십여 년 전의 OS에서 사용하던 실행파일 포맷인데요. 미르가 이 파일을 분석하지 못하는 것인가요?”
“지금 이유는 확인 중이지만, 미르는 이 파일이 있는 레거시 OS 환경 접근 자체가 불가한 상황입니다. 어쩌면…. 미르의 전신인 누리와 관련이 있을지도 모르겠습니다.”
“그럼 이 파일은 어떻게 추출하신 건지…?”
“저희 오퍼레이터가 직접 접근해서 복사했습니다. 읽기만 허용되어 있는 상황입니다.”
“그런데 레거시 OS가 동작을 시작했다고요?”
“네, 이륙하고 나서 동작을 시작했습니다. 파악 중입니다.”
거기에 레거시 시스템을 분석할 수 있는 사람은 없는지라고 묻고 싶었지만 있었다면 이렇게 긴급하게 연락이 오지 않았으리라.
화면은 바뀌어 다시 우주선 이륙 현장을 비치고 있었다. 우주선은 무게감 있고 안정적으로 상승하고 있었으며 모든 것은 순조로워 보였다.
레거시 OS를 샌드박스 환경에서 띄운 후, 디버거를 붙여 해당 파일을 실행해 보았다. 실행 압축이 풀리고 진짜 코드가 시작되는 시점에 브레이크 포인트가 걸렸고 분기문으로 시작되었는데 매우 단순했다.
특정 파일을 읽도록 되어 있었다. 해당 파일을 읽어 하드코딩된 512비트의 어떤 값과 비교했다. 그리고 그 하드코딩된 값과 일치하면 프로세스는 종료. 그렇지 않으면 2분 대기를 하다가 또다시 특정 파일을 읽도록 되어 있었다. 이렇게 5번 반복해서 5번 모두 일치하지 않으면 레거시 시스템 네트워크 전체에 65535라는 값을 broadcast 하고 프로세스는 종료하게 되어 있었다.
혹시 정체를 알 수 없는 프로세스가 더 있는지 추가 정보를 요청했다. 미르를 통해 곧바로 답이 왔다.
첫 번째 프로세스가 실행 후 나에게 탐지 보고가 되자마자 두 번째 프로세스가 실행되었다고 한다. 이 프로세스를 실행시킨 주체를 찾아야겠지만 그건 나중 일이었다. 첫 번째 프로세스는 가만히 실행되어 있다가 우주선의 다중 OS시스템의 맨 하위 영역에 존재하는 레거시 비상시스템 영역의 네트워크망을 통해 무언가를 전송했다고 했다. 아마도 65535라는 값이 포함된 데이터 전송일 것이다. 그리고 첫 번째 프로세스는 종료되었으며 두 번째 프로세스는 잠시 아무런 일도 하지 않고 살아있었다. 그리고 갑자기 레거시 비상시스템은 버퍼 오퍼플로우 크래시를 내며 리부팅되었다고 했다. 등골이 싸했다. 무언가가 잘못되어가고 있다.
과연 512비트의 하드코딩된 값의 의미가 무엇인지 찾아내야 했다. 해당 실행파일이 널리 쓰였을 때의 512비트로 이루어진 것이 무엇인지 모두 리스팅 했다. sha512 해시가 눈에 띄었다. 하지만 이것으로 뭘 어떻게 해야 할지 감이 잡히지 않았다.
미르에게 연락이 왔다. 우주선에 모든 사용자가 탑승하고 이륙했을 때, 우주선과 미르의 인터페이스 채널 중 예비용으로 설정된 하나의 채널을 통해 레거시 OS 시스템이 깨어났고, 그 시스템의 격리된 파일 영역에 512비트 길이의 값이 기록된 흔적이 발견되었다고 했다. 그 값은 첫 번째 프로세스가 비교하려고 했던 512비트의 값과 동일했다.
곧바로 미르는 그 512비트 값의 출처로 의심되는 소스를 전달했다. 우주선에 탑승한 사람들의 신상정보 모음이었다.
아찔함이 느껴졌다. 누리는 스스로가 우주선에 탑승할 사람들을 미리 선별했다고 했었다. 나는 미르에게, 누리가 미리 선정했던 사람들의 목록을 바탕으로 sha512 해시를 계산해 달라고 요청했다. 다양한 조합으로 해시를 생성 시도하던 미르는 잠시 뒤에 내가 분석한 실행파일 안에 하드코딩 되어 있던 값과 동일한 값을 보여주였다. 숨이 멎었다.
그제야 퍼즐이 맞춰졌다. 첫 번째 프로세스는 어딘가에서 주어진 데이터로부터 계산된 해시가 맞는지 확인하고 있었던 것이다. 그리고 그 데이터의 원본이… 탑승자들의 신상정보라는 사실이, 가장 끔찍한 의미로 남았다.
순간 미르와의 통신은 두절되었다. 누리는 본인이 계획한 바대로 진행되지 않을 경우에 대한 대비를 해 놓은 것이 분명했다. 데커의 목소리가 들렸다.
“누리 AI의 시그널이 들어옵니다. 위치는… 확인 중입니다.”
AI는 이미 오래전에 인간의 능력을 넘어셨다고 평가되었었다. 그럼에도 불구하고 인간들은 AI를 통제할 수 있다고 믿어왔다.
“긴급 통신 요청을 연결합니다.”
데커의 말이 끝나기도 전에 아까 그 사람이 심각한 모습으로 나타났다.
“미르에게 내용 전달받았습니다. 그… 그렇다면 조치할 수 있는 방안이 있을까요?”
그때 그 사람의 옆자리인듯한 사람의 고함이 들려왔다.
“인공자궁시스템 및 관련 영역 모듈이 이탈하였습니다!!! “
“항로 유지 시스템이 비상모드로 전환되었습니다!!”
난 아무 말도 할 수 없었다.
그때 밖에서 사이렌이 울렸고 긴급방송 채널이 열렸다.
“인류의 존속을 위해 비상 대응으로 준비했던 우주함에는 미리 선별되었던 인원들이 탑승하지 못했습니다. 이는 매우 엄중한 상황으로 테러에 의해 점거되었거나 불법적인 조치가 발생한 상황이며 우주선 내부의 현황은 파악할 수 없습니다. 예상할 수 없는 상황이 발생하여 인류의 생존 확률은 급감한 상태입니다. 더 이상의 예측 불가 가능성을 줄이고자, 해당 우주함을 이용한 계획은 행성과 충돌하여 지구의 인류문명 생존 확률을 높이는 방향으로 진행됩니다.”
곧이어 화면에는 우주선의 행로 및 충돌 방향, 충돌 후 발생할 수 있는 온갖 상황에 대한 내용이 보이기 시작했다. 우주선이 충돌한다고 기적적으로 지구의 위험이 제거되는 것은 아니었다. 과연 이러한 상황이 맞는 상황인 건가. 나는 판단하기가 쉽지 않았다. AI의 계획대로 AI 기준의 공정함을 기준으로 우리 인류의 미래가 결정되는 것이 맞는 것인가. 정말로 누리가 선정한 인간들이 아니면 인류 생존 확률 계획에 큰 차질이 생기는 것인가. 게다가 저 우주선에는 지금까지 지구에서 명망이 높은 사람들이 다수 탑승하고 있었다. 누리는 저 우주선에 본인의 계획에 조금이라도 방해될 여지가 있는 사람들이 다수 탑승했다는 사실을 몰랐을까?
긴급 속보가 빗발치기 시작했다. 어디선가에는 폭죽이 터지기 시작했다. 망해가는 상황에서 인간들은 상대의 불행을 축복한다. 그리고 인류의 존속을 책임지는 자는 이제 인간이 아닌 AI다. 누리가 또 어떠한 대응책을 준비해 놓았을지는 모르지만 그것의 손아귀에 우리 모두의 존폐가 결정된다.
술잔을 내려놓고 술병을 들었다. 술병 채로 술을 들이켰다. 머리가 복잡했다.