LabHub

폐쇄망 현장 — 방산·국방 도메인 · 인터넷이 없는 곳에서 조사하기 · 이론

폐쇄망은 도구를 뺏는 것이 아니라 순서를 바꾼다

LabHub 에서 이어서 보기

한 줄 요약

폐쇄망에서 어려운 것은 도구가 없다는 사실이 아니라, 밖에서 늘 하던 조사 순서가 통째로 무효가 된다는 사실이다.

왜 이게 필요했나

바깥 현장에서 낯선 오류를 만나면 우리가 실제로 하는 일의 순서는 이렇습니다. 오류 메시지를 복사한다. 검색한다. 같은 증상을 겪은 사람의 글을 읽는다. 제안된 명령을 붙여넣는다. 안 되면 도구를 하나 더 설치한다. 이 다섯 단계가 몸에 배어 있어서, 우리는 그것을 '조사' 라고 부르지도 않습니다. 그냥 일하는 방식입니다.

방산·공공 국방 현장에 들어가면 이 다섯 단계가 한꺼번에 사라집니다.

여기서 처음 들어간 사람이 가장 많이 하는 실수는 '없는 것을 아쉬워하며 시간을 쓰는 것' 입니다. 30분쯤 지나서야 이 안에서는 그 방법이 안 된다는 것을 깨닫고, 그때부터 다시 시작합니다. 하루에 이런 30분이 서너 번 쌓이면 상주 일정이 통째로 밀립니다.

어떻게 동작하나

폐쇄망 조사는 순서가 반대입니다. 밖에서는 증상에서 출발해 지식으로 갑니다. 안에서는 가진 것에서 출발해 증상으로 갑니다.

첫째, 시작하기 전에 가진 것의 목록을 만듭니다. 어떤 명령이 설치돼 있는지, 로그가 어디에 몇 개 있는지, 형상 변경 기록이 남는지, 설정 파일이 어디에 있는지. 이 목록이 그날의 조사 반경입니다. 목록 없이 시작하면 반경 밖의 방법을 계속 시도하게 됩니다.

둘째, 없다는 사실을 증거와 함께 못박습니다. "인터넷이 안 되는 것 같다" 와 "curl 이 종료 코드 28로 죽는다" 는 다른 문장입니다. 앞의 것은 나중에 누군가 다시 시도하게 만들고, 뒤의 것은 그 논의를 끝냅니다. 폐쇄망에서 나오는 보고서에는 되는 것보다 안 되는 것을 더 정확하게 적어야 합니다.

셋째, 상관관계로 원인을 좁힙니다. 오류 코드의 의미를 검색할 수 없으니, 안에 있는 서로 다른 두 개의 기록을 시간축에 나란히 놓는 것이 거의 유일한 방법이 됩니다. 응용 로그의 첫 실패 시각과 형상 변경 기록의 적용 시각. 그 간격이 3분이면 그것이 근거입니다. 간격이 사흘이면 근거가 아닙니다. 이 판단은 지식이 아니라 데이터 두 벌과 시계로 합니다.

넷째, 재현 가능하게 씁니다. 안에서 만든 조사 스크립트는 밖으로 못 나가지만 안에는 남습니다. 다음 사람이 같은 것을 다시 만들지 않게 하려면, 그 자리에서 파일로 남겨야 합니다. 머릿속에 있는 것은 상주가 끝나는 날 함께 나갑니다.

현장에서 만나는 모습

보안 서약과 매체 통제가 일과를 바꿉니다. 출입할 때 개인 저장매체는 맡기고 들어갑니다. 코드를 반입하려면 인가된 매체에 담아 반입 심사를 거쳐야 하고, 심사에는 시간이 걸립니다. 그래서 현실적으로는 안에서 처음부터 짜는 경우가 많습니다. 밖에서 완성해 온 100줄짜리 스크립트보다, 안에서 즉석에서 만들 수 있는 20줄짜리가 더 쓸모 있다는 뜻입니다. 손에 익은 도구를 줄이고 표준 도구만으로 일하는 연습이 여기서 값을 합니다.

작업이 끝나면 매체를 반납합니다. 작업 중에 만든 중간 산출물은 대개 밖으로 나가지 않습니다. 그러니 '나갈 것' 과 '안에 남을 것' 을 처음부터 나눠서 만들어야 합니다. 다 만들고 나서 무엇을 내보낼지 고르기 시작하면, 그때는 이미 민감한 값이 곳곳에 섞여 있습니다.

한 번 당한 것 하나. 폐쇄망에서 조사한 결과를 정리해 나가려다, 요약본 안에 남아 있던 내부 호스트명 하나 때문에 반출 심사에서 반려된 적이 있습니다. 요약본을 세 번 읽었는데도 못 봤습니다. 사람은 자기가 쓴 글에서 자기가 남긴 것을 못 봅니다. 그때부터는 눈으로 읽지 않고, 원본에서 기계적으로 뽑은 금지 토큰 목록으로 대조합니다.

이어서 읽을 것

지금까지가 '안에서 어떻게 찾는가' 였다면, 바로 뒤에 오는 글은 '찾은 것을 어떻게 내보내는가' 입니다. 원본 로그는 한 줄도 나가지 못하는데 본사 개발팀에는 원인을 전달해야 하는 상황에서, 무엇을 남기고 무엇을 지울지 정하는 것이 왜 기술인지를 다룹니다. 그다음 실습에서 두 글의 내용을 한 번에 손으로 밟습니다.