본 글은 구글의 Google Cloud Platform Blog에 올라온 'Titan in depth: Security in plaintext'를 바탕으로 작성된 글임을 밝힙니다.
갓구글. 너희들은 못하는 것이 무엇이냐. 구글의 알파벳 기업구조는 정말 다양한 사업을 하며 구글이 이끄는 문화를 만들어가고 있다.[1] 매번 그러하듯 아무렇지 않게 자신들의 연구와 그 결과물을 내놓곤 하는데 무엇하나 뒤떨어지는 것이 없다. 그들을 여기까지 만들어준 검색엔진 물론, 로봇, 무인 자동차, 스마트 도시, 안드로이드 등 만 봐도 충분히 이해가 되리라. 그래서 인지, 구글이 잡은 분야는 '구글'이 잡았으니 투자 가치에서도 높게 평가되며, 앞으로 주목해야 하는 분야다라는 이야기가 나올 정도다.[2] 그렇게 정말 각기 다른 다양한 분야에서 자신들만의 서비스로 길을 터고 있는 그들이 공통적으로 신경쓰는 것이 있다. 바로 '보안'이다. 그들의 소프트웨어, 서비스를 지켜주고, 고객의 데이터 등을 지켜줄 수 있는 보안 기술은 그들도 놓치고 싶지 않은 아니, 필수적으로 생각하는 부분이다. 그렇다면 이번엔 어떻게 그들의 보안을 만들어서 자신들의 서비스와 소프트웨어를 지켜나가려는 것일까. 구글이 내놓은 솔루션은 바로 보안 칩인 타이탄이다. 즉, 구글의 의도는 하드웨어적으로 보호수단을 만들어 소프트웨어를 지키자는 것이다.
구글은 그들의 메인 상품인 ‘검색엔진’을 시작으로 관련 사이트를 운영하면서 차츰 성장해왔다. 그리고 2015년 그들의 더 큰 성장에 큰 발판이 되어줄 사업을 사직하니, 그것이 바로 기업 알파벳의 자회사가 된 것이다.[3] 이는 그들의 경영방침이 큰 영향을 주었다. 네트워크에서 돌아다니는 수 많은 데이터에 누구나 쉽게 접근을 할 수 있도록 데이터를 수집하는 것도 체계화시키자는 것이다. 구글의 경영방침은 실제로 그들에게 원동력이 되어주었고 회사의 모토, 세상을 바꾸기 위한 의기투합이 되었다.[4] 구글의 알파벳은 2년도 되지 않아 빛을 발하기 시작하였고, 그들의 생각이 옳았다라는 것을 보여줬다. 구글의 무인 자동차는 혁신이었고, 구글의 인공지능은 오픈소스 텐서플로우가 주축이 되어 자신들이 주도하는 인공지능 시스템을 만들어 갔다.[5] 특히나 구글은 데이터를 관리하는 면에서는 작년부터 두각을 보이고 있는데, 그 중 Google Cloud는 기존에 MS와 아마존의 클라우드 경쟁에서 또 다른 신흥강자로 급부상하고 있다.[6]
구글의 수 많은 사업 중 하나인 Google Cloud는 파일이나 이메일 첨부파일을 저장하고, 사진을 드라이브에 바로 백업 하는 등 데이터를 저장하고 관리할 수 있는 서비스를 제공한다. 더불어, Google Cloud는 머신러닝과 데이터 분석, 보안, 관리의 편의성을 기반으로 하여 다른 클라우드 서비스보다 차별화된 포인트를 개발해나가고 발전해오고 있다.[7] 특히나 구글은 클라우드 보안에 주력을 기울여 상처가 났을 때 소독하고 밴드를 붙이는 수준이 아니라 항체부터 제대로 심어주는 것 같은 보안을 만들어나가기 위해 노력하고 있다.[8] 즉, 네트워크만 보호하는 것이 아니라 시스템을 처음부터 끝까지 제대로 보호하는 시스템을 만들겠다는 것이다. 물론 컴퓨터 보안에서 완벽하고 절대적인 것은 없다. 하지만 그들의 입장에서 '보안'은 기초 공사에서부터 추가되어야 한다는 것이다. 그렇게 해서 나온 것이 구글의 보안 칩 타이탄(TITAN)이다.
구글의 보안 칩 타이탄의 용도는 펌웨어 스택을 제어하거나, OS 이미지를 제어하고 관리하는 하드웨어 펌웨어에 ‘보안’을 입힌 것이다. 즉, 펌웨어를 통해 하드웨어 위에 올려진 소프트웨어, 데이터를 좀 더 안전하게 관리하겠다는 일종의 물리적 보안 서비스를 제공하는 것이다. 좀 더 사전적으로 정의하자면, 타이탄은 구글이 처음부터 설계한 하드웨어 보안 요구 사항이나 여러 공격 시나리오를 미리 염두에 둔 상태에서 이를 감안하여 설계하고 만든 보안칩으로 보호기능이 있는 저전력의 마이크로 컨트롤러다. 따라서, 펌웨어 변조나 혹은 알 수 없는 공격이 올 때, 구글의 보안 칩 타이탄은 루트킷을 통한 펌웨어 변조를 하드웨어 적으로 감시하며, 타이탄이 내장된 하드웨어 위에 어느 소프트웨어가 있어도 일정 수준의 보안 서비스를 제공한다는 것이다.
사용 시나리오를 들어 타이탄을 살펴보자. Google Cloud에서는 여러 서버가 있고, 각 서버에는 수 많은 사용자가 맞물려 존재한다. 이 때, Google Cloud에 A, B, C, D의 서버가 존재하고 그 중 A가 공격을 당했다고 치자. 그리고 공격자는 A에 서버에 침투하여 루트킷을 통해 서버의 펌웨어를 변조했다고 보는 것이다. 이때, 타이탄이 장착된 서버에서는 부팅 할 때마다 하드웨어적으로 서버 A의 펌웨어가 변조가 되었는지 확인하여 무결성을 검증하기 때문에 예상되지 않은 문제가 생겼는지 확인한다는 것이다. 이는 이런 기능을 가지고 펌웨어의 변조를 사전에 보호하고 방어하려는 목적으로 타이탄의 가장 큰 기능이라고 볼 수 있다. 또 다른 사용 예시로, 만약 공격자가 A 서버의 펌웨어를 변조하여 장악한 후, 다른 B, C, D의 서버를 공격하게 될 경우, 타이탄이 내장된 서버에서는 타이탄 각각이 고유한 특성을 가지고 있기 때문에 이러한 공격 흐름을 추적할 수 있다.
정리하자면 우리가 네트워크 통신 구조를 설명하거나 컴퓨터 구조를 생각할 때 여러 계층 밑에는 항상 하드웨어가 존재했다. 따라서, 만약 하드웨어 위에 있는 소프트웨어가 보안에 구식이라 하여도 더 기본적이고 근본적인 하드웨어 수준에서 보안을 감시한다면 최소한의 보안 수준을 유지할 뿐만 아니라 더 근본적으로 보호할 수 있을 것이라는 것이 타이탄의 큰 그림이다. 그렇다면 타이탄은 어떤 방식으로 보안 기능을 실행할까. 먼저 서버의 설계자가 의도한대로 만든 부트의 순서를 미리 칩에 명시해 놓고, 매 부팅시마다 이를 체크하여 무결성을 검증하는 것이 큰 그림에 방법이다. 이때 만약 펌웨어가 변조되어 있다면, 사전에 명시된 내용에 차이가 있을 것이고 이를 통해 침입의 흔적을 탐지해내는 것이다. 또한, 타이탄은 인정된 인증 기관에서 제공한 고유한 ID를 각각 타이탄에 부여하여 여러 개의 타이탄의 고유성을 나타내고, 혹시 모를 공격으로부터 대비할 수 있도록 제작되었다. 이러한 기능은 펌웨어 칩에 '보안'이라는 기능을 입혔고, 더불어, 구글 자신들의 서비스에 맞게 설계된 구조에서 적합한 보안 서비스를 제공하므로 보안성을 더 높일 수 있지 않을까 예상해보고 있다.
결국 타이탄 칩은 부트 프로세스를 보호할 수 있는 칩으로 개발자가 설계한 방식으로 동작을 하기 위해 이러한 순서를 명시적으로 설계하여 만든 전용 엔티티로 보호하는 것이다. 이를 통해, 하드웨어 기반의 신뢰성을 보장하여 상태를 검증할 수 있는 것이 타이탄의 첫 번째 특징이다. 그리고 시스템의 펌웨어 혹은 소프트웨어 구성 요소를 검증하여 신뢰성을 제공하는 등 무결성 검증하는 것이 타이탄의 두 번째 특징이요. 하드웨어 기반의 시스템에 ID를 설정하여 시스템에서 수행 된 모든 변경 사항에 대한 부인 방지 및 감사 추적을 보장하는 것이 타이탄의 세 번째 특징이다. 특히, 타이탄의 이러한 특징들은 루트에 접근하는 내부자가 수행하는 작업이 악의적인지 여부를 식별하는 데 도움이 되며, 타이탄의 하드웨어 구조를 자신들의 기기, 시스템에 맞게 설계하였기 때문에 조금 더 안정화될 것으로 예상한다.
현재 구글의 타이탄 칩은 아직 실무에 반영되 것은 아니나 구글은 이러한 기능을 담은 칩을 개발하였고, 앞으로 시스템을 만들어 적용해 나갈 것이라고 밝혔다. 그들이 생각하는 데이터 보안이 어느정도의 수준을 바라보고 있을 것인지는 알 수 없다. 하지만 타이탄서부터 차근차근, 무언가를 계속 만들어가고 적용해 나간다면 더 안정화되고 더 높은 보안성을 가진 서비스를 제공할 수 있지 않을까 기대해 본다.