VPN만 SSH 리스너에 도달한다면 노출은 작고 문제는 해결된 것 같다는 것은 합리적인 직감입니다. 하지만 노출은 무결성과 같지 않습니다. 전반부는 맞고 후반부는 거기서 따라 나오지 않습니다. 도달 가능성은 누가 연결을 시도할 수 있는지를 통제하고, 소프트웨어 무결성은 연결이 들어왔을 때 리스너가 무엇을 할지를 통제합니다. 게이트는 대상을 좁힐 뿐 그 뒤의 코드에 대해서는 아무것도 말하지 않습니다.

사설 포트는 더 작은 문이지 다른 자물쇠가 아니며, 그 차이가 다음에 무엇을 확인할지 결정합니다.

두 가지 통제, 두 가지 질문

네트워크 제한은 노출을 줄입니다. 그것은 허용된 사용자와 침해된 승인 클라이언트가 영향을 받는 서비스에 도달할 수 있는 상태로 남겨 둡니다. 패키지를 고치면 소프트웨어는 복구되지만, 지나치게 넓은 네트워크 권한을 좁히지는 않습니다. 각 통제는 자기 일을 하며, 하나가 빠져 있어도 다른 하나는 옳을 수 있습니다. 둘을 함께 검토하는 것은 팀이 하나가 둘을 모두 덮는다고 스스로를 설득하는 방식이며, 그것이 이 글이 다루는 구체적인 실수입니다.

VPN 엔드포인트도 소프트웨어이며 같은 의무를 집니다. 경로에 추가하면 자체적인 유지보수 의무가 생기지만, 그 뒤에 있는 어떤 것에 대한 공급망 책임을 없애지는 않습니다.

XZ 공개가 실제로 보여 준 것

2024년 삼월의 XZ/liblzma 공개는 영향을 받는 조건에서 SSH 서버 침해로 이어질 수 있는 백도어를 설명했습니다. 그것은 노출 문제만큼이나 소프트웨어 무결성 문제였고, 모든 Linux 설치가 취약한 빌드를 갖고 있었다는 증거는 아니었습니다. 범위는 영향을 받은 버전과 그것을 배포한 배포판에서 나오며, 운영체제 계열의 이름에서 나오지 않습니다.

그 구분이 사고 대응과 소문의 차이이며, 그 점에 대해 꼼꼼해질 가치가 있습니다.

포트를 닫는 것은 복구가 아니다

침해가 이미 일어났을 수 있다면, 도달 가능성을 바꾸는 것은 복구가 아닙니다. 실행된 백도어는 이미 기회를 가졌고, 방화벽 규칙은 시간을 거슬러 가지 않습니다. 호스트와 노출된 모든 자격 증명에 대해 승인된 사고 절차를 따르고, 실제로 무엇이 실행되었는지 입증하는 데 필요한 증거를 보존하십시오. 알려진 정상 미디어에서 재구축하는 것이 보통 그 대화의 일부입니다.

배포판의 현재 검증된 권고와 교정 절차도 사용하고, 헤드라인이 아니라 영향을 받은 버전 목록을 읽으십시오. 과거의 다운그레이드 명령을 무관한 환경에 복사하는 것이 수정을 새로운 노출로 만드는 방식입니다.

둘 다 따로 검토하라

두 질문을 각자의 용어로 물으십시오. 누가 리스너에 도달할 수 있으며, 그 대상이 서비스가 의도한 대상과 정확히 일치합니까? 어떤 버전의 소프트웨어가 설치되어 있고, 누가 아티팩트에 서명했으며, 조직은 나쁜 릴리스에 대해 뉴스에서 읽기 전에 어떻게 알게 됩니까? 답은 서로 다른 소유자의 서로 다른 문서에 속하며, 어떤 소유자도 다른 소유자를 대신해 답할 수 없습니다.

관리되는 플릿에서는 소프트웨어 인벤터리가 두 번째 질문을 애초에 답할 수 있게 만드는 통제입니다. 그것이 없으면 모든 공개가 기한이 붙은 고고학 프로젝트가 됩니다.

게이트는 대상을 좁힙니다. 무결성이 그 대상이 중요한지를 결정합니다.

관련 글