공동현관 비밀번호를 아는 침입자

2화: 매주 목요일의 택배
공동현관 바닥의 택배 상자는 비어 있었지만, 물건이 사라진 시간은 정확히 알 수 없었다. 오세경은 분실 신고를 낸 세대에 다시 연락해 최근 한 달간 사라진 물건의 종류와 발견 시각을 확인했다. 우산, 슬리퍼, 유모차 덮개. 모두 값이 크지 않았고 세대 안으로 들어간 흔적도 없었다.
입주자 대표 윤정미는 그 목록을 보며 “이건 절도가 아니라 누가 장난하는 거예요”라고 말했다. 세경은 분실이 반복되면 불안이 커진다고 답했다. 정미는 입주민 단체방에 의심되는 사람을 올리자는 주민들의 요구를 막고 있었다. 자기 집 앞에 낯선 장갑이 놓였던 일이 마음에 걸렸지만, 괜한 사람을 몰아세우고 싶지는 않았다.
“그럼 누가 가져간 거죠?”
“아직 몰라요. 물건이 없어진 시각도 정확하지 않습니다.”
세경은 공동현관 로그 중 해당 시간대 입력 시각만 따로 뽑아 경수에게 전달했다. 호수와 카드 사용자 정보는 제외했다. 로그에는 매주 목요일 새벽 2시 13분에 문이 열린 기록이 반복됐다. 키패드 입력은 없고, 도어 센서만 열림으로 표시됐다. 이전 세 주에도 같은 시각의 로그가 있었다.
“그때마다 택배 분실 신고가 있었네요.” 정미가 말했다.
“택배기사가 정기적으로 이 시간에 오면 그럴 수 있어요.” 세경은 택배사 안내문을 확인했다. “배송 시간은 오전 다섯 시 이후로 계약돼 있습니다.”
경수는 점검용 장비를 키패드에 연결했다. 센서의 전압이 안정적이지 않아 문이 닫힌 상태에서도 열림 신호가 튈 수 있다고 했다. 그러나 정확히 매주 목요일 같은 시각에만 반복되는 건 이상했다. 펌웨어 업데이트 기록은 한 달 전 새벽 2시 10분, 보안업체의 원격 서버에서 실행된 것으로 나타났다.
“업체에서 정기 점검한 거라면 왜 관리실 승인 로그가 없죠?” 세경이 물었다.
경수는 답하지 않았다. 그는 작업 요청서가 있었을 거라고 했지만 파일을 찾지 못했다. 세경은 계약서에 따라 작업 내역 제출을 요청했다. 경수는 “내가 찾아보겠습니다”라고 했다. 그의 말투는 어제보다 조심스러웠다.
그날 목요일, 세경과 경수는 공동현관을 멀리서 지켜보기로 했다. 주민들의 동의 없이 특정 입주민을 감시하지 않도록 카메라는 기존 공용부 화면만 사용했다. 경비원 기석은 현관에서 떨어진 관리실 창가에 앉아 출입을 확인했다. 정미는 직접 현장을 보겠다고 했지만, 세경은 그녀가 화면을 찍어 단체방에 올리지 않겠다는 약속을 받고 동행을 허락했다.
새벽 2시 12분, 공동현관 앞에는 아무도 없었다. 2시 13분이 되자 도어 센서가 열림으로 바뀌었다. 유리문은 움직이지 않았다. 2시 14분, 밖에서 택배기사 정유라가 손수레를 끌고 다가왔다. 그녀는 문 앞에 상자를 한 개 내려놓고, 공동현관을 열지 않은 채 사진을 찍었다.
“저분은 등록된 배송기사예요.” 기석이 말했다.
유라는 문을 두드리지 않고 돌아가려 했다. 정미가 밖으로 나가려 하자 세경이 손을 막았다. “먼저 상황을 물어봐요. 겁을 주면 안 됩니다.”
세경은 현관을 열고 유라에게 다가갔다. “이 시간에 배송을 하시는 이유를 여쭤봐도 될까요?”
“목요일마다 반품 상자를 여기 두라고 연락받았어요. 관리실에서 승인한 줄 알았습니다.”
“어느 세대에서 요청했습니까?”
유라는 배송 앱을 확인했지만, 요청 주소는 공용현관까지만 표시되어 있었다. 연락처는 자동 중계번호였고, 세대 호수는 없었다. 그녀는 배송 완료 사진을 보여 주었다. 상자는 문 안으로 들어간 적이 없었다. 지난주에도 같은 위치에 놓고 갔다고 했다.
“그럼 지난주 상자가 안으로 움직인 건 누군가 당긴 걸까요?” 정미가 물었다.
유라는 자신은 끈을 쓰지 않았다고 했다. 그녀는 상자를 놓고 사진을 찍은 뒤, 문이 열리는 소리를 듣지 못했다. 세경은 배송기록을 제출해 달라고 강요하지 않았다. 대신 경찰이나 택배사에 요청이 오면 제공할 수 있는지 동의를 물었다. 유라는 현장 확인에 협조하겠다고 했다.
상자 겉면에는 반품 라벨이 붙어 있었다. 받는 곳은 이미 폐점한 택배 대리점이었다. 정미는 “누가 쓸모없는 상자를 매주 가져오게 하는 거죠?”라고 말했다. 세경은 라벨 사진만 보관하고 상자를 임의로 열지 않았다. 내용물이 위험할 가능성은 낮아 보였지만, 발송인이 확인되지 않았다.
경찰은 상자를 수거하지 않고, 우선 라벨과 배송 기록을 확보했다. 상자는 택배사의 분실물 관리 절차에 따라 보관하기로 했다. 배송 앱에는 같은 중계번호로 목요일마다 상자가 한 개씩 등록되어 있었다. 발송지 정보는 비어 있었고, 주문 계정은 해지된 세대에서 생성된 임시 계정이었다.
그 세대는 3년 전 이사한 입주민의 주소였다. 당시 관리실은 비밀번호를 바꿨지만, 공동현관의 방문자 코드는 폐기하지 않았다. 경수는 자신이 설치를 맡았던 시기라며 자료를 확인하겠다고 했다. 세경은 그의 말을 듣고, 바로 책임을 묻지 않았다. 먼저 코드 목록과 폐기 기록을 대조해야 했다.
세경은 기존 세대의 기록을 열람할 권한이 없었기 때문에, 현재 입주자에게 연락해 공용 코드 재발급 사실만 안내했다. 그 집에는 어린아이와 조부모가 살고 있었다. 입주자는 “우리가 쓰던 임시 코드를 다른 사람에게 알려 준 적은 없다”고 했다. 택배기사가 여러 번 방문했지만 세대 안으로 들어오게 한 적은 없었다.
“이전 세입자 연락처를 알려 드릴 수는 없어요.” 입주자가 말했다. “그 사람 때문에 저희 기록까지 뒤지는 건 싫습니다.”
세경은 주소 변경이나 이전 세대의 개인정보를 요구하지 않았다. “그럴 필요 없습니다. 현관 코드가 폐기됐는지만 확인하겠습니다.”
입주자는 그 말에 조금 안심했지만, 최근 아이가 현관 앞에 놓인 상자를 집 안으로 가져온 일이 있다고 덧붙였다. 상자에는 이름이 없었고, 가족은 택배인 줄 알고 열었다. 안에는 비어 있는 물병과 낡은 우산이 있었다. 우산은 분실 신고된 물건과 모양이 달랐다.
세경은 입주자에게 상자를 버리지 말라고 하지 않았다. 이미 버렸다면 위치를 추궁하지도 않았다. 물건이 남아 있다면 경찰에 신고할지 본인이 결정하도록 설명했다. 입주자는 사진 한 장만 찍어 보내겠다고 했다. 세경은 그 사진을 경찰에게 전달하기 전에 다시 동의를 받았다.
사진 속 우산 손잡이에는 단지의 오래된 관리 스티커가 붙어 있었다. 그 스티커는 4년 전 보수 공사 때 사용하던 색이었다. 경수는 그 시기에 공동현관 키패드를 교체했고, 업체가 현장 점검용 코드를 여러 개 생성했다고 했다. 당시 코드 회수표는 종이로만 보관되어 있었고, 한 장이 누락돼 있었다.
“그 코드가 아직 작동할 수 있나요?” 정미가 물었다.
“키패드가 재설정될 때 폐기했어야 합니다. 기록만으로는 장치에 남았는지 알 수 없어요.” 경수가 답했다.
세경은 공동현관을 임시 잠금 모드로 바꾸되, 휠체어와 응급 출동이 가능하도록 경비원이 상시 대기하도록 조정했다. 주민들이 불편을 겪는 시간은 줄이지 않으면서, 코드 재설정 동안 방문 기록을 더 확인할 수 있도록 했다. 정미는 임시 조치가 오래가면 노약자에게 불편하다고 걱정했고, 세경은 이틀 안에 현장 재설정을 마치겠다고 약속했다.
경수는 키패드 교체 작업에 직접 참여하기로 했다. 다만 기존 시스템을 초기화하면 과거 로그가 지워질 수 있어, 먼저 원본 데이터를 경찰과 관리실 공동 저장소에 백업해야 했다. 그는 작업 순서를 종이에 적고, 세경에게 하나씩 설명했다. 이번엔 “제가 설치했으니 믿어 주세요”라는 말을 하지 않았다.
한도윤은 저녁에 관리실을 찾아왔다. 단체방에 자신의 이름을 올린 게시글이 삭제됐다고 했다. 그는 사과를 요구하지 않았다. 대신 새벽 귀가 때 경비실이 문을 열어 주는 임시 절차를 알려 달라고 했다. 세경은 주민 카드 태그를 권하고, 가족 방문 코드를 임시로 발급하는 방법을 안내했다. 도윤은 “그럼 제 귀가 기록도 남겠네요”라고 말했다.
“네. 공용 출입 기록으로 남습니다. 불편하면 카드 태그 대신 인터폰을 쓰셔도 됩니다.”
“제가 선택할 수 있게 말해 주셔서 고맙습니다.”
그는 단체방에 자신은 조사에 협조할 뿐이라는 짧은 글을 올렸다. 세경은 게시글을 지우라고 요구하지 않았다. 그가 자신의 목소리로 해명할 권리가 있었다.
밤이 되자 경수는 펌웨어 업데이트 로그를 찾아왔다. 보안업체 계정으로 원격 접속한 뒤 센서 테스트를 실행했지만, 테스트 결과는 저장되지 않았다. 작업자는 본인이 아니라 다른 팀의 직원이었다. 그 직원은 이미 퇴사해 연락처가 없었다.
“그때 방문자 코드를 전부 폐기했어야 했습니다.” 경수가 말했다. “제가 체크리스트를 놓쳤어요.”
세경은 그 사실을 기록하고, 주민들에게 공개할 범위를 정미와 상의했다. 책임자를 이름으로 공개하는 대신, 미사용 코드가 남아 있어 임시 코드를 재정비한다고 공지하기로 했다. 경수는 공지에 자신의 실수도 포함해 달라고 했지만, 세경은 경찰이 연관성을 확인하기 전까지 단정하지 않기로 했다.
다음 목요일을 기다리기 전, 관리실은 방문자 코드를 모두 재발급했다. 택배기사와 방문객 동선은 새 카드 태그로 전환했다. 각 세대에는 선택 가능한 인터폰 안내를 붙였다. 정미는 주민회의에서 개별 출입 로그를 공개하지 않기로 합의했다. 불안은 남았지만, 추측이 이름으로 번지는 일은 줄었다.
그날 새벽 2시 13분, 센서가 다시 열림 표시를 보였다. 이번에는 문이 실제로 조금 열렸다. 경비원 기석이 현장으로 달려가자 문 안쪽 바닥에 낡은 방문자 코드 카드가 하나 떨어져 있었다. 카드에는 해지된 세대 번호 대신, 관리실장의 개인 출입 코드가 적혀 있었다.