폐쇄망 현장 — 방산·국방 도메인 · 인터넷이 없는 곳에서 조사하기 · 이론
반출 심사 — 지우는 일이 아니라 고르는 일
한 줄 요약
반출용 요약은 원본을 지워서 만드는 것이 아니라 빈 파일에서 시작해 필요한 사실만 옮겨 적어 만드는 것이고, 그 차이가 사고와 무사고를 가른다.
왜 이게 필요했나
폐쇄망 안에서 원인을 찾았다고 일이 끝나지 않습니다. 그 결과를 본사 개발팀에 전달해야 수정본이 만들어지고, 수정본이 있어야 다음 반입이 됩니다. 그런데 전달하려면 심사를 통과해야 하고, 심사는 "이것이 나가도 되는가" 를 사람이 판단합니다.
여기서 두 종류의 실패가 있습니다.
너무 많이 남긴 실패. 로그를 그대로 내보내려다 반려됩니다. 로그에는 계정, 사번, 내부 호스트명, 내부 IP, 파일 경로가 들어 있습니다. 하나하나는 사소해 보이지만 밖에서 모아 놓으면 조직 구성과 망 구조가 됩니다. 반려는 그나마 나은 결과입니다. 통과했는데 나중에 발견되는 것이 최악입니다.
너무 많이 지운 실패. 걱정이 앞서 숫자와 코드까지 뭉개 놓으면, 받는 쪽이 아무 판단도 할 수 없습니다. "성능 문제로 보입니다" 만 적힌 요약은 나가나 안 나가나 같습니다. 그러면 결국 전화로 다시 설명하게 되고, 전화로 설명하다 보면 결국 지운 값을 말로 옮기게 됩니다. 통제는 무력해지고 기록은 남지 않습니다.
어떻게 동작하나
이 둘을 동시에 피하는 방법은 방향을 바꾸는 것입니다.
지우지 말고 고르십시오. 원본을 열어 민감한 부분을 지워 나가면, 지우다 만 것이 반드시 하나 남습니다. 남은 하나는 아무리 다시 읽어도 안 보입니다 — 이미 처리했다고 생각하는 문서를 사람은 검사하듯 읽지 못합니다. 대신 빈 파일에서 시작해 판단에 필요한 사실만 옮겨 적으면, 옮겨 적지 않은 것은 애초에 없습니다.
무엇이 들어 있는지부터 셉니다. 고르기 전에 종류별 목록을 만듭니다. 계정 8개, 사번 8개, 호스트명 3개, 내부 IP 3개, 연락처 1개, 작업자 식별자 4개. 이 목록이 나중에 자기 검증의 기준이 됩니다. 목록 없이 시작하면 한 종류를 통째로 놓치고, 놓친 종류는 찾고 있지 않기 때문에 끝까지 안 보입니다. 그리고 심사 대상은 로그 파일 하나가 아닙니다 — 형상 변경 기록에 담당자 연락처가 한 줄 들어 있는 것처럼, 같이 보던 다른 파일에 다른 종류가 숨어 있습니다.
검증은 눈이 아니라 목록으로 합니다. 원본에서 기계적으로 뽑은 금지 토큰 목록으로 요약본을 대조하고, 일치 건수가 0인지 봅니다. 고정 문자열로 대조해야 합니다 — 정규식으로 읽히면 점이 아무 글자나 되어 엉뚱한 곳이 걸리거나 반대로 놓칩니다.
그리고 그 목록 자체는 나가지 않습니다. 금지 토큰 목록은 민감한 값만 모아 놓은 파일입니다. 반출 디렉터리에 같이 넣어 두면 정작 가장 위험한 파일이 나가게 됩니다. 실제로 있었던 일이고, 그래서 반출 디렉터리에는 심사받을 것만 둔다는 규칙이 생겼습니다.
현장에서 만나는 모습
남길 것의 기준은 '이것이 없으면 받는 쪽이 판단을 못 하는가' 입니다. 오류 코드는 남깁니다 — 없으면 무슨 실패인지 모릅니다. 건수는 남깁니다 — 없으면 규모를 모릅니다. 형상 변경 식별자는 남깁니다 — 그것이 원인을 지목한 근거입니다. 반면 어느 계정이 그 요청을 보냈는지는 원인과 무관합니다. 노드 이름도 마찬가지입니다. "3대 모두에서 발생했다" 는 사실이면 판단에 충분하고, 그 3대의 이름은 필요 없습니다.
무결성도 함께 나갑니다. 심사받은 파일과 실제로 나가는 파일이 같다는 것을 확인할 수단이 있어야 합니다. 요약본의 SHA-256 을 신청서에 적고 해시 파일을 함께 둡니다. 요약을 한 글자라도 고쳤으면 해시도 다시 계산해야 합니다 — 이 한 줄을 빠뜨려 심사를 두 번 받은 적이 있습니다.
신청서도 함께 나가는 문서입니다. 요약은 깨끗한데 신청서에 담당자 연락처를 적어 놓는 경우가 놀랄 만큼 자주 있습니다. 대조는 나가는 모든 파일에 겁니다.
다음 실습에서 할 것
앞의 조사에서 얻은 사실을 반출 가능한 형태로 만듭니다. 종류별로 세고, 빈 파일에서 시작해 요약을 쓰고, 원본에서 뽑은 금지 토큰 27개로 대조해 일치 0건을 확인하고, 목적·포함·제외·검증·무결성·승인 여섯 절을 갖춘 반출 신청서를 씁니다. 마지막에 반출 디렉터리 안에 심사 대상이 아닌 파일이 하나도 없는지까지 확인합니다.