오픈소스 인사이트
home
오픈소스 기술 동향
home

브라우저 보호만으로는 기업 전체의 인증서 문제가 해결되지 않는다

이 글은 Sonatype 공식 블로그의 A Protected Browser Doesn't Mean Your Enterprise Is Remediated을 에스코어가 공식 파트너로서 한국어로 번역한 콘텐츠입니다.

에스코어 인사이트

eMudhra 인증서 사고 대응은 브라우저 업데이트만으로 끝나지 않습니다. 운영체제와 별도로 인증서 신뢰 저장소를 관리하는 개발 도구와 런타임이 남아 있을 수 있기 때문입니다.
•
Java, Node.js, Python, Go, Git 등 도구별 신뢰 저장소와 설치 버전을 확인하고 실제 연결 검사 결과를 함께 검토합니다.
•
CI 실행 환경, 컨테이너 이미지, 운영 서버는 단말 진단 결과와 구분해 별도로 조사합니다.
•
변경 전 의존 서비스의 인증서 체인을 점검하고, 변경 후 TLS 연결 및 점검 결과를 확인합니다.

Sonatype 원문 번역

브라우저 보호만으로는 기업 전체의 인증서 문제가 해결되지 않는다

브라우저의 보호 조치는 eMudhra 인증기관 사고에 대응하는 중요한 첫걸음이었습니다. 그러나 기업에는 더 어려운 질문이 남아 있습니다. 영향을 받은 인증서 체인을 여전히 신뢰하는 다른 도구와 환경은 무엇일까요?
도구마다 인증서의 신뢰 여부를 판단할 때 참조하는 저장소가 다를 수 있습니다. 어떤 도구는 운영체제의 신뢰 저장소를 사용하고, 다른 도구는 자체 제공 인증서 목록이나 Java JDK의 cacerts처럼 런타임별 저장소를 이용합니다. 따라서 같은 컴퓨터에서도 브라우저, 개발 도구, 런타임마다 인증서 신뢰 동작이 다를 수 있습니다. 한 저장소를 업데이트한다고 다른 저장소까지 바뀌지는 않습니다.
따라서 eMudhra 사고에 대응하려면 소프트웨어 공급망 전반을 점검해야 합니다. 조직은 인증서 신뢰 설정이 어디에 있는지 찾아내고, 조치가 필요한 시스템을 식별하며, 개발자와 빌드 프로세스가 실제로 사용하는 도구까지 업데이트가 적용됐는지 확인해야 합니다.

도구별 신뢰 대상을 먼저 확인해야 한다

Sonatype의 오픈소스 프로그램 오피스(OSPO) 글로벌 디렉터 Paul Horton은 Unix 계열 컴퓨터에서 일부 개발 도구를 점검할 수 있도록 오픈소스 eMudhra Audit and Fix 스크립트를 만들었습니다.
eMudhra Audit and Fix 스크립트 실행 화면
이 스크립트는 Java, Node.js, Python, Go, Git 등의 도구와 시스템 인증서 번들, 그 밖의 구성요소를 점검합니다. 지원되는 경우 영향을 받은 중간 인증기관으로 이어지는 인증서 체인을 사용하는 두 테스트 호스트에 실제 HTTPS 요청을 보내고, 대조 대상으로 GitHub 연결도 확인합니다. 이를 통해 인증서 거부와 네트워크 접근 불가 같은 다른 연결 문제를 구분할 수 있습니다. 일부 도구 버전은 사고 관련 참고 자료에 기재된 수정 버전과도 비교합니다. 실제 연결 검사와 버전 검사 결과가 일치하지 않으면 실제 연결 검사 결과를 우선합니다.
기본 점검 모드에서는 컴퓨터에 설치·변경·삭제 작업을 수행하지 않습니다. 대신 임시 검사 프로그램을 만들고 일반적인 HTTPS 요청을 보냅니다. 이 요청에는 파일 내용이 포함되지 않습니다. 네트워크 검사가 적합하지 않은 환경에서는 --no-network 옵션으로 연결 검사를 건너뛰고 버전 검사만 수행할 수 있습니다.
조직은 점검 결과를 활용해 조치가 필요한 도구를 찾고 다음 조사 대상을 결정할 수 있습니다. 다만 점검 결과는 개선 작업의 출발점일 뿐, 조직 내 모든 시스템이 보호되고 있다는 증거는 아닙니다.

점검 결과를 개선 조치로 연결하기

스크립트의 출력 결과는 다음과 같은 작업에 활용할 수 있습니다.
•
개발자 단말에서 영향을 받았거나 영향을 받았을 가능성이 있는 도구 식별
•
각 도구의 설치 방식 및 사용 중인 신뢰 저장소 확인
•
관련 운영체제, 런타임 또는 애플리케이션 공급업체의 업데이트 적용
•
검사 재실행과 추가 조치가 필요한 시스템의 기록
스크립트에는 지원되는 일부 변경을 적용하는 선택적 --fix 모드도 있습니다. 이 모드는 각 변경 작업을 수행하기 전에 사용자에게 확인을 요청합니다. 지원되는 도구를 업그레이드하거나 시스템 또는 런타임의 신뢰 저장소를 변경하는 작업 등이 포함될 수 있습니다. 실행하기 전에 README와 제안된 작업을 검토해야 합니다. --dry-run 옵션을 사용하면 실제 변경 없이 조치 내용을 미리 확인할 수 있습니다. 가능하다면 공급업체의 업데이트를 우선 적용하고, 임시 대응책을 사용해야 한다면 해당 신뢰 저장소에 의존하는 시스템과 서비스에서 충분히 테스트해야 합니다.

스크립트가 확인할 수 없는 범위도 알아야 한다

스크립트는 실행 중인 컴퓨터를 점검합니다. 원격 호스트, 컨테이너 또는 프로젝트별 의존성을 검사하지는 않습니다. 점검 범위는 지정된 도구와 설치 경로로 제한됩니다. 일부 도구는 실제 연결 검사 대신 버전 검사만 수행합니다. 따라서 개발자 단말의 결과만으로 CI 실행기, 컨테이너 이미지, 운영 서버 또는 다른 직원의 컴퓨터 상태까지 판단할 수는 없습니다.
조직은 이러한 환경을 별도 조사 대상으로 다뤄야 합니다. 컨테이너 이미지, 빌드 에이전트, 관리형 시스템은 각각에 적용되는 운영 절차와 공급업체 권고에 따라 업데이트하고 검증해야 합니다. Sonatype 제품의 업데이트와 제품별 지침은 최신 도움말 문서를 참고해야 합니다.
eMudhra 사고는 브라우저 상태만으로 기업 전체의 대응 완료 여부를 판단할 수 없는 이유를 보여줬습니다. 인증서 신뢰 저장소가 여러 도구와 환경에 분산되어 있으므로 각각의 담당자와 상태 검증 방법이 필요합니다. Paul Horton의 스크립트는 이러한 환경의 일부를 실제로 점검하는 데 도움이 됩니다. 그러나 전체 대응을 마치려면 더 폭넓은 자산 목록, 공급업체 업데이트, 후속 검사가 필요합니다.
이 스크립트는 Sonatype Nexus Community 프로젝트의 일부입니다. 의견을 남기거나 개발에 기여하려면 해당 프로젝트의 기여 가이드라인을 참고해 참여할 수 있습니다. 커뮤니티 프로젝트이므로 Sonatype의 공식 기술지원 대상은 아닙니다.
eMudhra 사고의 배경과 Sonatype의 대응에 관해서는 앞서 게시된 블로그 글을 참고하십시오.
에스코어는 Sonatype 공식 파트너로서 소프트웨어 공급망 보안 및 오픈소스 거버넌스 구축을 지원합니다. 도입이나 구축이 필요하시면 언제든 문의해 주세요. 지원 솔루션: Nexus Repository · Repository Firewall · Lifecycle · Sonatype Guide