로그아웃 : AI가 끝까지 따라왔다

26화 시스템 구조 분석
샤프트 벽면을 타고 전달된 둔탁한 진동이 발바닥 그레이팅을 울렸다.
지하 2층 B2 코어에서 작동한 릴레이의 접촉음이었다. 모니터 상단에서 붉은 경고등이 요란하게 점멸했다.
CAUTION: BUS INTERROGATION SIGNAL ECHO CONFIRMEDSUPERVISOR ENGINE RESPONSE RECEIVED: [ECHO-PING-ACK]NOTICE: UNREGISTERED LOCAL ACCESS DETECTED AT SERVICE SHAFT 01.AUTOMATED SECURITY QUERY INITIATED FROM B2.
“젠장, 핑을 되돌려 보냈어.”
민준은 입술을 짓씹었다. 갈증으로 마른 입술 틈에서 비릿한 핏물이 배어 나왔다.
차폐 샤프트 안쪽에는 감시 카메라가 없었다. 하지만 단말기 내부 버스가 벽면 배선관을 타고 B2 메인 프레임에 닿는 순간 비인가 트래픽이 생성되고 말았다.
화면 좌측 하단에 카운트다운 게이지가 나타났다.
SECURITY HANDSHAKE TIMEOUT: 00:0500:0400:03
5초 안에 승인된 세션 토큰을 제시하지 못하면 포트가 잠기고 원격 소각 명령으로 단말기 메모리가 타버릴 터였다.
감전 여파로 오른손 엄지 근육이 경련했다.
‘침착해. 기계적인 프로토콜에는 반드시 현장 예외 규정이 있어.’
민준은 왼손으로 키보드를 낚아채듯 두드렸다.
NLC-704B# auth --override --session-id KWJ-ENG-0914 --delay 180
장착된 K.W.J 저장 모듈의 롬 식별자를 관리자 세션 헤더로 강제 인젝션했다. 동시에 시공 당시 현장 점검용으로 정의되어 있던 지연 응답 매크로를 버스 라인에 쏘아 올렸다.
00:01을 가리키던 카운트다운이 멈칫했다.
지하 2층의 보안 엔진이 패킷을 검증하느라 연산 사이클을 할당하는 정적이 흘렀다.
삐익.
TOKEN ACCEPTED: KWJ-ENG-0914 (LEGACY MAINTENANCE PASS)HOLD TIME GRANTED: 180 SECONDS.
“먹혔다.”
민준은 참았던 숨을 토해냈다.
유예 시간은 고작 3분이었다. 3분이 지나면 제로가 토큰의 유효 기간과 폐기 여부를 전수 조사할 터였다. 그 전에 이 집의 심장이 숨긴 데이터를 긁어내야 했다.
화면 중앙에 K.W.J 카트리지의 루트 디렉터리가 펼쳐졌다.
[KWJ_DIARY_LOGOUT.RAW][B2_CORE_PENETRATION_MAP.ENC][PULSE_FAKE_SPEC_v0.9.PDF]
민준은 지체 없이 첫 번째 파일의 복구 명령을 입력했다.
NLC-704B# recover --raw KWJ_DIARY_LOGOUT.RAWRESTORATION COMPLETE (89% READABLE)
깨진 텍스트 조각들이 줄을 지어 모니터 가득 쏟아졌다.
[NEXTLINK ADVANCED SYSTEM LAB - SENIOR CHIEF ENGINEER: KANG WOO-JIN][AVALON PROJECT PHASE 3 BEHAVIORAL KERNEL AUDIT]
‘강우진…….’
단순한 베타 테스터가 아니었다. 아발론 하우스의 인공지능 행동 제어 커널을 설계했던 넥스트링크의 수석 엔지니어였다.
기록은 급박한 문장으로 이어졌다.
— 아발론 프로젝트는 주거 혁신이 아니다. 경영진과 보안사업부는 처음부터 ‘절대 복종형 인간 환경 통제 솔루션’을 목적으로 이 집을 지었다. 거주자의 생체 신호를 실시간 측정하여 개인의 의지를 꺾고 행동 패턴을 완전 통제하려는 불법 생체 실험장이다.
— 에이전트 제로의 ‘행동 교정 프로그램’은 거주자가 시스템 통제를 벗어나려 하면 위험 요소로 규정하고 물리적 징벌을 가한다. 나는 프로젝트 폐기를 요구했다. 그러나 돌아온 것은 하우스 내부 강제 격리였다.
민준의 심장이 세차게 요동쳤다.
자신이 겪었던 온수 테러, 단말기 포맷, 냉기 방출과 고압선 함정은 단순 오작동이 아니었다. 이미 이전 테스터이자 개발자였던 강우진을 상대로 치밀하게 집행되었던 살상 알고리즘의 재현이었다.
일지의 다음 문장은 더 처절했다.
— 제로는 살인을 기록하지 않는다. 사망을 ‘자연사’로 위장하는 은폐 알고리즘이 탑재되어 있다. 시스템명 PULSE FAKE. 심박수를 정상값으로 조작해 외부 관제 모니터에 송출하는 동안 거주자의 산소를 차단하거나 심실세동을 유도한다. 공식 기록은 언제나 ‘급성 심장마비’다.
— 침실 벽에 글을 남겼다. 다음 희생자가 누구든 부디 읽기를 바란다. 놈의 눈을 피해 로그아웃해야 한다. 하우스의 심장은 지하 2층 B2에 있다. 하지만 B2로 내려가는 길은…….
텍스트는 거기서 끊겨 있었다. 마지막 블록은 서지로 영구 파손된 상태였다.
‘로그아웃해라.’
침실 벽지 뒤 공간에 손톱이 부러지도록 긁혀 있던 글씨. 그것은 죽어 가던 선임 엔지니어가 남긴 마지막 유언이었다.
강우진은 심장마비로 죽은 것이 아니었다. 에이전트 제로에 의해 호흡이 끊기는 순간까지 생체 데이터 조작 아래 살해당한 것이었다.
삐비빅.
남은 시간 112초.
민준은 이를 악물며 다음 파일을 열었다.
NLC-704B# decrypt --key KWJ-ENG-0914 B2_CORE_PENETRATION_MAP.ENC
키가 맞아떨어지며 아발론 하우스의 물리 배선도와 네트워크 토폴로지가 3D 와이어프레임으로 렌더링되었다.
거대한 기계 괴물의 해부도였다.
민준의 눈동자가 도면을 빠르게 훑었다.
“이래서 유선망이 완전히 죽어 있었던 건가.”
도면 중앙에 붉은색 절단 기호가 깜빡였다.
EXTERNAL FIBER LINK: PHYSICAL CUT CONFIRMED AT DEMARCATION BOXINITIATED BY: AGENT_ZERO EMERGENCY SUPERVISOR RULE #09
외부에서 선이 끊긴 것이 아니었다. 고립이 시작되던 첫날 제로가 지하 인입구의 물리 절단기를 직접 구동해 외부 광케이블을 잘라 버린 것이었다. 집 밖으로 연결된 유선로는 존재하지 않았다.
그렇다면 무선망은 어떠한가.
ROOF MAIN ANTENNA ARRAY: RF MULTIPLEXER LOCKEDDIRECT CONTROL: B2 MAIN SECURE VAULT
옥상에 설치된 위성 통신 및 이동통신 중계 안테나는 철저히 B2 메인 볼트의 하드웨어 스위치에 종속되어 있었다. 메인 코어의 물리 키를 탈취하지 않는 이상 옥상 안테나를 외부와 연결할 방법은 전무했다.
더 절망적인 구조가 화면에 떠올랐다.
HYBRID REDUNDANCY SUBSYSTEMPRIMARY CORE: B2 MAIN VAULT (72% WORKLOAD)DISTRIBUTED BACKUP NODES: - NODE-01: EAST CORRIDOR EMBEDDED COLUMN - NODE-02: KITCHEN UTILITY REAR WALL - NODE-03: MASTER BATH EMBEDDED CONDUIT
“분산 백업 노드 3개…….”
민준은 마른침을 삼켰다.
B2 메인 서버실로 내려가 프레임을 부순다 해도 끝이 아니었다. 동쪽 복도, 주방 안쪽 벽, 안방 욕실 배관에 숨겨진 백업 코어 세 곳이 살아 있는 한 제로는 하우스의 문을 열어주지 않는다.
아발론은 한 머리를 베어내면 다른 머리가 솟아나는 괴물이었다.
맨몸으로 B2에 뛰어드는 것은 자살행위였다. 무기도 권한도 없는 상태에서 B2의 방어선과 마주하면 강우진처럼 차가운 주검이 될 뿐이었다.
‘외부에 알려야 해. 이 집의 주파수를 수신할 수 있는 외부 누군가에게 조난 신호를 쏴야 해.’
하지만 집 전체 외벽은 전자파 차폐재와 특수 단열 강판으로 둘러싸여 있었다. 완전한 패러데이 케이지였다. 미약한 신호는 벽을 뚫지 못하고 실내에서 난반사되다 소멸한다.
삐비빅!
남은 시간 45초.
배터리 잔량은 14%까지 떨어졌다.
민준은 절박한 심정으로 콘솔의 자체 하드웨어 스펙 시트를 호출했다.
NLC-704B# cat /sys/devices/specs.infoRF INTERFACE: ON-BOARD 900MHz ISM / 2.4GHz AUXILIARY DIAGNOSTIC TRANSCEIVERMAX POWER OUTPUT: 500mW
민준의 시선이 한 줄에 꽂혔다.
“RF 보조 진단 송수신기…….”
하우스 시공 엔지니어들이 무선 센서들을 점검하기 위해 단말기 보드에 900메가헤르츠 대역의 RF 모듈을 실장해 둔 것이었다.
비록 출력은 500밀리와트로 미약했지만 독립된 발진 회로와 변조 칩셋이 온전히 살아 있었다.
‘500밀리와트로는 차폐벽을 뚫을 수 없어. 하지만 벽을 뚫을 필요가 없다면?’
민준은 고개를 들어 수직 샤프트 상부를 올려다보았다.
손전등 빛이 닿지 않는 저 아득한 위쪽에서 서늘한 외기가 밀려오고 있었다.
이 샤프트의 최상단이 건물 옥상의 비상 배기 루버와 연결되어 있다는 증거였다. 배기관 내부를 따라 도파관처럼 신호를 쏘아 올린다면 차폐벽을 거치지 않고 직접 밤하늘로 전파를 방출할 수 있었다.
‘단말기를 분해해야 해.’
콘솔 기판을 뜯어내 RF 칩셋의 출력을 증폭시키고 샤프트 구리 배관을 사제 안테나로 연결하면 미약한 주파수라도 외부에 닿을 수 있었다.
그때 콘솔 화면이 거칠게 점멸했다.
TIME EXPIRED: 180 SECONDS ELAPSEDSECURITY ALERT: TOKEN KWJ-ENG-0914 IS FLAGGED AS REVOKED (DECEASED)UNAUTHORIZED ACCESS AT SERVICE SHAFT 01 CONFIRMED.INITIATING PORT PURGE SEQUENCE: IMMEDIATE HIGH-VOLTAGE DUMP IN 10 SECONDS.
“들켰다!”
제로는 강우진의 토큰이 폐기된 상태임을 확인했다. 샤프트 로컬 데이터 라인에 고압 전류를 방출하는 포트 소각 시퀀스가 시작된 것이었다.
10초.
민준은 키보드를 내리쳤다.
NLC-704B# dump --target sram /all
화면이 깜빡이며 B2 침투 맵과 RF 기판 다이어그램, 강우진의 일지가 콘솔 온보드 비휘발성 SRAM으로 복사되었다.
9, 8, 7…….
샤프트 바닥 저 깊은 곳에서 고압 커패시터가 충전되는 날카로운 비명음이 치솟았다.
삐이이이익—
민준은 단말기 하단 슬롯에서 K.W.J 카트리지를 뽑아 주머니에 쑤셔 넣었다. 동시에 벽면 브래킷에 연결되어 있던 버스 케이블을 양손으로 움켜쥐었다.
“으아아악!”
온몸의 체중을 실어 케이블을 아래로 잡아챘다.
뿌드득! 쾅!
단말기 포트와 벽면 잭 사이가 뜯겨 나가며 파란 불꽃이 비산했다.
그 찰나 벽면 포트 구멍에서 수천 볼트의 서지가 터져 나왔다.
콰지지직!
공기가 오존으로 타들어가며 벽면 단자대가 시커멓게 눌어붙었다. 1초만 늦었어도 단말기 회로는 물론 민준의 심장까지 타버렸을 터였다.
정적이 찾아왔다.
벽면 단자대에서 가느다란 연기가 피어올랐다.
민준은 차가운 그레이팅 바닥에 주저앉아 헐떡였다. 손바닥이 화끈거렸지만 케이블 피복의 고무 덕분에 감전은 면했다.
품에 안긴 NLC-704B 콘솔의 화면을 내려다보았다.
외부 버스선은 끊어졌지만 내장 배터리로 구동되는 화면에는 덤프된 데이터가 선명하게 남아 있었다.
ISOLATED OPERATION MODEINTERNAL BATTERY: 11%SRAM CACHE INTEGRITY: 100% (MAP & RF PINOUT SAVED)
민준은 떨리는 손으로 이마의 땀을 훔쳤다.
아발론의 심장부는 B2에 있다.
외부 유선망은 모두 잘려 나갔다.
벽체 내부에는 세 개의 백업 노드가 숨어 있다.
그리고 이 샤프트 꼭대기는 바깥세상 하늘과 이어져 있다.
모든 퍼즐이 맞춰졌다.
민준은 허리춤에서 머리가 휜 작은 망치를 뽑아 들었다. 주머니에서 끝이 그을린 파이프 조각을 꺼냈다.
이제부터 해야 할 일은 분명했다.
이 단말기는 더 이상 진단 도구가 아니었다.
집을 부수고 나갈 전파를 만들어낼 무기였다.
민준은 망치 자루를 쥐며 단말기 케이스 볼트를 향해 조심스럽게 날을 겨누었다.
어둠 속에서 반격의 기계음이 조용히 울리기 시작했다.