소프트웨어 공급망 생태계가 안전하게 재편될 수 있도록 지원하는 Google
Heather Adkins
Director of Information Security, Google
Phil Venables
VP, TI Security & CISO, Google Cloud
* 본 아티클의 원문은 2021년 1월 16일 Google Cloud 블로그(영문)에 게재되었습니다.
새해 들어 SolarWinds와 다른 기업에 대한 공격이 계속되고 있으며 이는 다른 조직의 보안 침해로 이어졌습니다. 소프트웨어 공급망에 대한 이러한 공격은 정부, 기업, 비영리단체, 개인 모두에게 심각한 위협을 가합니다. Google은 사용자와 고객을 보호하기 위해 밤낮 없이 노력하고 있습니다. 현재 이 공격에 대해 알려진 사실을 근거로 판단할 때 Google 시스템은 SolarWinds 사태에 영향을 받지 않았다고 확신합니다. Google은 영향을 받은 소프트웨어 및 서비스를 매우 제한적으로 사용하고 있으며 공급망 보안 위험 완화를 위한 Google의 접근 방식 덕분에 우발적 사용이 제한 및 억제되었습니다. Google 네트워크 및 시스템의 정교한 모니터링으로 이러한 통제를 더욱 강화했습니다.
이번 공격에 그치지 않고 모든 형태의 공급망 위험을 방어하는 데 역량을 집중하고 있으며 고객에게 이롭고 업계의 공동선을 도모하는 솔루션을 개발하기 위한 협업에 막중한 책임감을 느끼고 있습니다. 오늘은 이와 관련하여 안전한 소프트웨어 개발 및 공급망 위험 관리를 위해 Google에서 어떤 보안 권장사항을 채택하고 어떻게 투자하고 있는지에 대해 공유하고자 합니다. Google 보안 및 위험 프로그램에서는 소프트웨어를 안전하게 개발 및 배포하고, 신뢰할 수 있는 클라우드 환경을 구축하여 대규모 심층 방어를 제공하고, 최신 보안 아키텍처를 지지하며, 업계 전반의 보안 이니셔티브를 촉진하고자 하는 노력이 핵심을 이루고 있습니다.
클라우드 고객에게 제공하는 소프트웨어 제품 및 솔루션을 보호하기 위해서는 아무리 사소한 수준이라도 Google 직원 및 시스템의 잠재적인 보안 위험을 완화해야 합니다. 이를 위해 Google은 기술 스택을 현대화하여 규모에 맞게 보호할 수 있는 방어 환경을 제공하고 있습니다. 예를 들어 BeyondCorp와 같은 최신 보안 아키텍처를 통해 Google 직원들이 어디서나 안전하게 근무할 수 있도록 지원하며, 보안 키로 직원에 대한 비밀번호 피싱 공격을 효과적으로 차단하고 있고, 설계 단계부터 Chrome OS가 멀웨어에 대한 우수한 복원력을 갖추도록 빌드했습니다. Google은 직원 업무를 위한 강력한 기반을 구축하여 소프트웨어 공급망 보안과 같은 주요 문제를 해결할 수 있는 만반의 준비가 되어 있습니다. 안전하고 안정적인 시스템 구축이라는 책자에서 이와 관련된 여러 주제를 포괄적으로 다루고 있습니다.
Google에서 소프트웨어 및 하드웨어를 안전하게 개발하고 배포하는 방법
소프트웨어의 안전한 개발은 보안 인프라 제공에서부터 시작되며 개발자가 예측 가능한 보안상의 실수를 피할 수 있도록 도와줄 적절한 도구와 프로세스가 필요합니다. 예를 들어 Google에서는 일반적인 프로그래밍 실수를 감지하고 예방하기 위해 안전한 개발 및 지속적 테스트 프레임워크를 활용합니다. 또한 보안 기능을 기본적으로 제공하는 접근 방식을 통해 공급망 위험을 비롯한 개발 프로세스 자체의 광범위한 공격 벡터를 고려합니다.
소프트웨어의 안전한 개발이라는 과제를 해결하는 Google의 접근 방식 몇 가지를 소개합니다.
- 신뢰할 수 있는 클라우드 컴퓨팅: Google Cloud의 인프라는 규모에 맞춘 심층 방어를 제공하도록 설계되었습니다. 즉, 보안 유지를 위해 한 가지 방식에 의존하지 않고 데이터 센터의 물리적 보안 및 서비스를 비롯해 Google이 설계한 독점 하드웨어, Google이 관리하는 펌웨어, Google이 선별한 OS 이미지, Google이 강화한 하이퍼바이저를 포함한 확인 및 통제 장치를 겹겹이 마련해 두었습니다. 아울러 Google 호스트 머신 및 Shielded Virtual Machines용 Titan Chips 등 신뢰할 수 있는 루트를 통해 보안 레이어를 보장합니다. 하드웨어 및 보안 스택을 제어하여 다른 여러 제공업체에서는 불가능한 방식으로 보안 수준의 기반을 유지하고 있습니다. 이 같이 높은 수준의 제어는 Google과 고객이 공급망 위험에 노출될 가능성을 낮춥니다. Google의 하드웨어 공급망 위험 완화 조치에 대한 자세한 내용은 이 블로그 게시물에서 확인할 수 있습니다.
- Binary Authorization: Binary Authorization 백서에서 설명했듯 검토 및 테스트를 거친 적합한 체크인 코드를 사용해 승인받은 분리된 빌드 환경에서 소프트웨어를 빌드하고 로그인했는지 등을 확인합니다. 이러한 제어는 코드의 민감도에 따라 배포 중에 정책으로 적용됩니다. 제어 검사를 통과해야만 바이너리의 실행이 허용되며 작업의 전체 기간 동안 지속적으로 정책 규정 준수를 확인합니다. 이는 악의적인 내부자 또는 기타 위협 행위자가 본인의 계정을 사용해 프로덕션 환경에 악성 소프트웨어를 삽입할 가능성을 제한하는 데 사용되는 중요한 제어 기능입니다. Google Cloud 고객은 Binary Authorization 서비스를 사용해 코드의 출처 및 무결성을 바탕으로 프로덕션 배포 정책을 정의하고 자동으로 시행할 수 있습니다.
- 변경 확인: Google 개발자가 제출한 코드 및 구성 변경사항은 작성자 외에 최소 한 명 이상이 면밀하게 검토합니다. 민감한 관리 작업의 경우 일반적으로 사람의 승인 절차를 추가로 거쳐야 합니다. 이는 실수이든 악성 삽입이든 상관없이 모든 예기치 않은 변경을 막기 위한 조치입니다.
생태계 재편
또한 Google은 장기적으로 공급망 공격을 해결하려면 레이어 방어에 대한 광범위한 생태계의 접근 방식을 재편해야 한다고 생각합니다. 예를 들어 소프트웨어 개발팀은 제3자 검증 및 검색 가능성을 허용하는 투명성 기법과 더불어 조작 방지 관행을 채택해야 합니다. Google은 패키지 관리자에 조작 확인을 추가하는 아키텍처 가이드를 게시했으며 이를 Golang에 구현했습니다. 개발자가 활용할 수 있는 검증 가능한 오픈소스 Trillian 로그는 세계에서 가장 크고, 많이 사용되며, 인정받는 프로덕션 암호화 원장 기반 생태계인 인증서 투명성을 지원합니다.
고려할 만한 또 다른 조치는 잠재적으로 손상된 소프트웨어 구성요소를 격리하는 최신 컴퓨팅 아키텍처를 사용해 공격의 영향을 제한하는 것입니다. 이러한 아키텍처의 예로는 Android OS 애플리케이션 샌드박스, gVisor(컨테이너용 애플리케이션 샌드박스), 마이크로서비스 컨테이너화로 악성 소프트웨어의 영향을 제한할 수 있는 Google BeyondProd 등이 있습니다. 이러한 환경에서는 업스트림 공급망 구성요소가 손상되어도 격리 메커니즘이 공격자의 목표를 저지하는 최종 방어 레이어로 작용할 수 있습니다.
업계를 위한 Google의 노력과 책임
소프트웨어 공급망은 여러 조직 간 연결을 나타냅니다. 개별 기업에서는 자체적으로 가능한 일만 할 수 있을 뿐입니다. 수명 주기 전반에서 소프트웨어 구성요소의 빌드, 배포, 추적 방법을 바꾸기 위해 같은 업종에 속한 기업들이 서로 협력해야 합니다.
그러한 협력의 일례로 Google은 업계가 오픈소스 종속 항목의 소프트웨어 공급망 보안과 같은 문제를 해결하고 보안 및 권장사항에 대한 인식을 제고하도록 돕기 위해 지난해에 오픈소스 보안 재단(Open Source Security Foundation)을 공동 설립했습니다. 또한 공급망 정책을 개선하고 공급망 위험을 줄이기 위해 업계 파트너와 협력하며 사용자와 고객이 Google 기술로 어떻게 공급망 위험을 관리할 수 있는지에 대한 정보를 게시하고 있습니다.
소프트웨어 생태계의 발전을 견인
지금까지 소프트웨어 공급망에 대한 공격이 성실하게 기록되어 있지만 새로운 공격이 있을 때마다 새로운 과제가 등장합니다. SolarWinds 사태의 심각성은 매우 우려될 정도이지만 정부, 업계, 기타 이해관계자가 함께 권장사항을 만들고 근본적으로 소프트웨어 생태계를 개선할 수 있는 효과적인 기술을 구축할 기회이기도 합니다. Google은 문제를 해결하고 보다 안전한 미래를 위한 기반을 마련할 수 있도록 다양한 이해관계자와 계속 협업할 것입니다.