클라우드 환경에서 워크로드를 운영할 때 가장 큰 고민은 뭐니 해도 ‘보안’이죠. 클라우드 서비스 제공자들은 다양한 방법으로 보안 통제 기능을 제공해 고객의 신뢰를 얻고 있지만, 기업의 보안에 대한 요구는 늘 ‘더 강한 것, 더 안전한 것’으로 향합니다. 특히 컨테이너 기반의 마이크로서비스 아키텍처 환경으로 전환을 고려 중인 기업은 민감한 정보를 다루는 서버리스 애플리케이션을 더 안전한 환경에서 돌리고 싶어 합니다. 그래서 나온 대책 중 하나가 중요 워크로드를 특별히 지정된 보안 구역에 격리해 안전하게 운영하는 컨피덴셜 컴퓨팅(Confidential Computing)입니다.
구글은 늘 오픈 소스 전략을 앞세워 구글 클라우드 플랫폼 이용 기업의 욕구를 해소합니다. 컨피덴셜 컴퓨팅도 마찬가지인데요, 관련해 ‘아실로(Asylo)’ 프로젝트를 공개했습니다. 아실로는 그리스어로 안전한 장소란 뜻입니다.
“컨피덴셜 컴퓨팅을 위한 오픈 소스 프레임워크 ‘Asylo’ “
아실로는 보안 구역에서 각종 위협을 방어하고, 데이터와 애플리케이션의 무결성을 보장하기 위한 오픈소스 프레임워크와 SDK입니다. 이를 이용하면 개발자는 한국말로 하면 신뢰할 수 있는 실행 환경인 TEE(trusted execution environments)에서 운영할 수 있는 애플리케이션을 개발할 수 있습니다.
TEE는 운영체제, 하이퍼바이저, 드라이버, 펌웨어 등 애플리케이션 운영에 필요한 소프트웨어 스택 전반에 대한 보안 위협을 방어하기 위해 조성된 특별한 보안 구역이라고 보면 됩니다. 보안 업계에서는 ‘enclaves’라고 부르죠. 본 포스팅에서는 보안 구역이라고 칭하겠습니다.
TEE는 단순히 소프트웨어 스택 구성 요소의 보안 취약점을 노리고 들어오는 외부의 위협만 막는 것이 아닙니다. 악의적인 내부 사용자, 인가받지 않은 써드파티 개발자나 관리자에 의한 침해 시도도 방어합니다.
아실로는 소프트웨어 스택에서 이루어지는 민감한 통신을 암호화로 보호합니다. 그리고 보안 구역에서 실행되는 코드의 무결성을 검증합니다. 이를 통해 보안 구역에 있는 애플리케이션과 데이터를 보호합니다.
“아실로 프로젝트가 필요한 이유? 더 이상 복잡하게 개발자가 TEE 환경을 위한 애플리케이션을 만들 필요를 없애기 위해”
TEE 환경을 위한 애플리케이션을 개발하려면, 지금까지는 개발자가 챙겨야 할 것들이 많았습니다. 다른 말로 인텔 SGX, AMD SEV 등 하드웨어 측면에서 제공되는 보안 기능을 공부해야 했죠. 구현도 복잡했지만, 특정 환경에 최적화된 TEE 용 애플리케이션을 다른 환경에 배포하려면 코드를 수정해야 합니다.
아실로는 이런 불편이 없습니다. 소프트웨어와 하드웨어 환경과 관계없이 손쉽게 TEE를 지원하는 애플리케이션을 개발, 배포할 수 있습니다. 아실로를 이용하면 구글 클라우드 플랫폼이 제공하는 도커 이미지 저장소인 구글 컨테이너 레지스트리를 통해 의존성 걱정 없이 원하는 위치에 TEE 용 애플리케이션을 배포할 수 있습니다. 하드웨어 아키텍처가 달라도 소스 코드를 수정할 필요가 없습니다. 노트북, 워크스테이션, 데스크톱, 온프레미스 서버의 가상 머신, 공용 클라우드에 올린 인스턴스 어느 곳이건 간편하게 배포할 수 있습니다.
현재 아실로의 버전은 0.2입니다. 현재는 신규 개발을 돕는 프레임워크와 SDK를 제공하지만, 곧 기존에 운영 중인 애플리케이션을 보안 구역에서 사용할 수 있는 간편한 방법도 제공할 계획입니다. 기존 애플리케이션을 아실로 컨테이너에 복사에 TEE 환경에 배포하는 정도로 간단할 것이라 하네요.
아실로에 관심이 있다면 퀵 스타트 가이드 문서를 참조 바랍니다.
1개의 댓글