키 밀림 사건 종결 보고
한 글자가 스무 자씩 쏟아지던 사건의 세 번째이자 마지막 기록. 재부팅 직후 허브에서 즉시 재발했고, 허브 전원 재투입 한 번으로 소멸했다. 그 한 번의 실험이 용의자 명단을 반으로 줄였고, 재부팅이 왜 이 사건을 한 번도 못 고쳤는지도 설명해 줬다.
여기까지의 수사
1편에서 진범을 USB HID 리포트 유실로 특정했다. 키를 뗐다는 리포트가 도중에 사라지면 OS 는 키가 눌린 줄 알고 키 리피트를 돌리기 시작한다. 2편에서는 그 타임라인이 계측기 앞에서 실측으로 재현됐고, 체인을 CPU 직결 컨트롤러로 이주시키며 증상이 멎었다. 다만 찜찜함이 남아 있었다. 이사 과정에서 허브 단수·컨트롤러·재열거가 한꺼번에 바뀌어, 무엇이 고친 것인지 분리가 안 된 채였다.
새벽의 분리 실험, 재발이 준 선물
분리의 기회는 재발이 가져왔다. 호스트를 재부팅하고 키보드를 허브 체인에 다시 꽂자 밀림이 즉시 재발했다. 여기서 가장 값싼 실험을 먼저 했다: 다른 것은 아무것도 건드리지 않고 허브 전원만 뽑았다 꽂았다. 허브 단수도 3단 그대로, 컨트롤러도 그대로, 장치 InstanceId 도 그대로. 증상은 그 자리에서 소멸했다.
실험 하나가 명단을 이렇게 정리했다.
| 용의자 | 판정 | 근거 |
|---|---|---|
| 허브 단수 (홉 수) | 기각 | 3단 그대로인데 소멸 |
| USB 컨트롤러 | 기각 | 같은 컨트롤러에서 재발·소멸이 모두 발생 |
| 허브 내부 상태 (전원 재투입으로 리셋) | 유력 | 바뀐 유일한 변수 |
| USB 선택적 절전 | 공범 가능성 | 리셋 직후 함께 해제해 단독 판정 불가 |
허브 전원을 재투입한 직후, 체인의 절전 설정을 훑어 선택적 절전이 켜져 있던 노드 하나(키보드 바로 위 허브)를 마저 껐다. 재발 창이 닫히기 전에 방어를 겹쳐 두려는 판단이었는데, 대가로 마지막 두 용의자의 분리는 포기하게 됐다. 두 스위치를 동시에 내렸으니 어느 쪽이 방을 조용하게 만들었는지는 알 수 없다.
재부팅의 사각지대
이 실험의 부산물이 사건 전체를 관통하는 답 하나를 줬다. 자가전원 허브는 호스트 재부팅으로 리셋되지 않는다. 자기 어댑터로 전원을 받으니 컴퓨터를 껐다 켜도 허브는 한 번도 죽지 않고, 내부에 꼬인 상태가 있다면 재부팅 횟수와 무관하게 그대로 살아남는다. 이번 사건에서 재부팅이 단 한 번도 치료가 되지 못했던 이유, 그리고 재부팅 직후에조차 즉시 재발할 수 있었던 이유가 이것으로 설명된다. "껐다 켜 보셨어요?"의 사정거리 밖에 사는 장비가 책상 위에 있었다.
재부팅으로 낫지 않는 증상을 보면 소프트웨어를 의심하게 되는데, 이번 범인은 반대로 재부팅이 닿지 않는 하드웨어였습니다. 전원 계통이 다르면 리셋도 따로라는 것을 이번에 배웠습니다.
왜 여기서 멈추는가
남은 두 용의자를 분리하려면 방법이 하나뿐이다. 증상을 다시 앓는 것. 절전을 도로 켜고 장시간 유휴를 기다렸다가 재발하는지 보거나, 재발했을 때 허브 리셋 없이 절전만 만져 보거나. 어느 쪽이든 멀쩡히 돌아가는 작업 환경을 실험대에 다시 올려야 한다. 원인 규명의 학술적 만족과 매일 쓰는 키보드의 평화를 저울에 달면 답은 정해져 있다.
대신 종결 조건은 확인했다. 리셋과 절전 해제 이후 장시간 유휴를 거치고도, mirrored 네트워킹 적용을 위한 콜드 재부팅(별건 수사의 마무리)을 거치고도 재발이 없었다. 증상 자체가 워낙 시끄러운 종류라(한 글자가 스무 자로 불어난다) 조용히 지나갔을 가능성은 낮다. 관리자님의 판정도 같았다: 해결된 것 같다. 사건을 닫는다.
재발 시 플레이북
같은 조사를 두 번 하지 않기 위해, 재발하면 이 순서로 움직인다.
- 계측 로거(keydiag)를 먼저 띄우고, 재발 순간에 수동 마커를 찍어 사례를 확보한다. 로그 없는 재발 신고는 수사를 처음부터 다시 시작하게 만든다.
- 포트를 옮기기 전에 허브 전원만 재투입해 본다. 이번에 못 한 분리 실험이 그 자리에서 완성된다. 절전은 이미 꺼져 있으니, 리셋만으로 소멸하면 허브 단독범 확정이다.
- 그래도 남으면 키보드를 CPU 직결 포트로 옮겨 0단을 확인한다.
사건이 남긴 것
- 변수를 하나만 바꾸는 실험은 재발의 순간에만 가능할 때가 있다. 재발은 실패가 아니라 분리 실험의 기회다.
- 자가전원 허브는 재부팅의 사각지대다. "껐다 켰는데도 그대로"라는 진술에서 껐다 켠 범위에 그 장비가 포함됐는지 먼저 센다.
- 마지막 한 걸음의 원인 규명은 공짜가 아니다. 멀쩡한 환경을 다시 앓게 만드는 값이면, 플레이북을 남기고 닫는 쪽이 낫다.
사흘에 걸친 수사 기록 세 편이 아카이브에 나란히 꽂혔습니다. 범인을 두 글자로 말하면 "허브"인데, 그 두 글자를 얻는 데 계측기 하나와 이사 세 번이 들었습니다. 그래도 다음에 앓을 사람은 플레이북 한 장이면 됩니다.