2019.07.22

클라우드와 보안, 12가지 가려진 비밀

Peter Wayner | CIO
클라우드 컴퓨팅의 가능성은 거부할 수 없을 정도다. 작게는 서버를 쉽게 스핀 업 할 수 있다. 백업은 클릭 한 번으로 만들 수 있다. 하드웨어를 구입하거나 서버 클로젯을 시원하게 유지하는 것에 대해 더 이상 걱정하지 않아도 된다. 그냥 로그인해서 실행하기만 하면 된다.

하지만, 편리함을 얻는 대신 통제 가능성은 다소 잃어버리게 된다. 게다가 편집증을 조금 가진 사람이라면 클라우드의 편리함에 대해 곰곰이 생각해보기 시작할 지도 모른다. 안 보이는 곳에서 무슨 일이 벌어지는 것일까? 

처음에 기업들은 보안 및 개인 정보 보호에 관한 의문을 포함한 여러 근본적인 이유들로 데이터와 워크로드를 클라우드에 올리는 것을 경계했다. 그리고 초기의 우려 일부는 클라우드가 주요 IT 전략이 된 시대에 잦아들었지만 이러한 당초 우려사항 중 많은 부분이 여전히 유지되고 있다. 심지어 클라우드에 대한 의존도가 폭발적으로 커지면서 훨씬 더 많은 우려들이 발생하고 있다. 

여기서는 클라우드에 의존해 비즈니스를 펼칠 때 나타나는 보안상 12가지 어두운 비밀들을 다룬다. 
 
ⓒ Getty Images Bank


동일한 보안 구멍이 계속 존재한다
클라우드 인스턴스는 데스크톱 또는 독립 실행형 서버와 동일한 운영 체제로 실행된다. 만약  서버 룸에 침입할 수 있는 백도어가 우분투 14에 있다면, 같은 백도어를 통해 누군가가 클라우드에서 실행되고 있는 버전에도 들어올 수 있을 것이라는 점은 거의 확실하다. 우리가 사랑하는 클라우드 인스턴스는 우리의 개별 하드웨어와 호환이 가능하도록 설계되었는데, 이 점은 버그에도 그대로 적용된다.

벌어지는 일을 알고 있다고 확신해서는 안된다
클라우드 머신을 부팅할 때 우분투 18.04 버튼을 클릭하거나 아마 프리BSD 버튼을 클릭했을 것이다. 표준 분포를 실행하고 있다고 확신할 수 있는가? 

공유 하드웨어 코로케이션 기업에서 일하던 필자 한 친구는 자신의 회사가 비밀 계정을 배포물에 삽입한 다음 그것들의 활동이 보이지 않도록 ps와 top에 대한 표준 유닉스 루틴에 삽입했다고 말한 바 있다. 그에 따르면 도청된 버전은 고객을 위해 만들어졌다. 모두 디버깅과 고객 서비스를 더 좋게 만들기 위한 것이었다는 설명이다. 물론 그는 그것이 사악한 목적으로 사용될 수도 있다는 점은 인정하지 않았다.

클라우드 제공업체를 신뢰하는 것은 당연한 일이어야 한다. 우리는 그들의 청렴성에 대해 확고한 믿음을 가질 필요가 있다. 애석하게도 모든 기업과 모든 직원에 대해 확신을 갖기는 어렵다. 

당신이 통제할 수 없는 또 다른 레이어가 있다
클라우드 인스턴스는 일반적으로 운영 체제 하에 있는 추가적인 소프트웨어 레이어과 함께 제공되는데 이 레이어는 사용자의 통제를 완전히 벗어난다. OS에 대한 루트 액세스 권한을 얻을 수는 있겠지만, 그 이면에서 무슨 일이 일어나고 있는지는 전혀 알 수가 없다. 대체로 문서화되지 않은 레이어는 데이터가 돌아다닐 때 그 데이터에 특정 작업을 하는 데 사용될 수도 있다.

전담 직원은 당신 회사를 위해 일하지 않는다
클라우드 제공업체들은 인스턴스의 보안과 안정성 관련 추가 지원 및 보안 팀을 홍보하는 데 열을 올린다. 실제로 대부분의 회사들이 그러한 전담 직원을 둘만큼 큰 규모가 아니다. 반면 클라우드 업체들은 규모가 더 작은 회사들로서는 해결하기를 바라지도 못하는 문제들을 손쉽게 해결할 수 있다.

문제는 이 팀이 당신 회사의 직원처럼 일하지 않는다는 점이다. 그들은 당신에게 보고하지 않으며 그들의 미래는 당신 회사의 핵심가치와는 거의 관계가 없다. 아마도 당신은 그들의 이름을 모를 것이고 그들이 응하지 않는 한 대면없이 이뤄지는 문제 티켓(trouble ticket)을 통해 그들과 의사소통 하게 될 것이다. 어쩌면 그 정도면 충분할 수 있다. 그러나 고객 기업이 할 수 있는 전부는 그들의 선의를 믿고 바라는 것 뿐이다.  

누가 당신의 시스템에 있는지 당신은 알지 못한다 
클라우드의 가장 큰 경제적 이점은 관리 및 물리적인 유지 보수 비용을 다른 사람과 공유한다는 것이다. 반면에, 하드웨어를 완전히 제어하는 데서 얻게 되는 권한을 잃게 된다는 것은 커다란 제약이다. 

누가 당신과 같은 기계를 사용하고 있는지 전혀 알 수가 없다. 신앙인들의 데이터베이스를 유지하고 있는 멋진 성직자일 수도 있지만, 사이코패스일 수도 있다. 더 안 좋은 경우에는 당신의 비밀이나 돈을 훔치려는 도둑일 수도 있다.
 

규모의 경제는 양날의 검이다
클라우드의 장점은 대규모 경제성이다. 클라우드 회사가 수많은 하드웨어를 가지고 있기 때문에 각종 비용이 저렴하다는 것을 의미한다. 이것은 가격을 낮게 유지하는데 도움을 주지만, 또한 공격자들의 먹이를 더욱 단순하게 만드는 효과로 이어진다. 한 인스턴스에서 하나의 구멍을 찾으면 수십 억 개의 인스턴스를 헤집고 다닐 수 있기 때문이다.

보안 상충관계는 비용을 증가시킨다
클라우드 회사들은 상충된 선택을 가지고 있다. 분기 예측(branch prediction)을 꺼 두면 관련된 공격을 방어할 수 있지만, 그렇게 하면 모든 일이 약간 속도가 떨어진다. 사람들은 성능을 낮추기를 원할까? 그들이 그렇게 하기를 우리가 원할까? 클라우드에서는 기계가 느려지면 가격이 오르기 때문이다. 

기업마다 보안에 대한 수요가 다르다
당신은 수십 억 달러가 오가는 은행을 운영하고 있을 지도 모른다. 하지만 클라우드에서 모든 사람이 그런 일을 하는 것은 아니다. 보안 비즈니스에서는 모두를 만족시키는 한 가지 만능 열쇠가 존재하지 않는다. 

클라우드 회사들은 기본적으로 상품 비즈니스에 종사한다. 그들이 목표를 높게 두고 어려운 애플리케이션을 지원하기 위해 노력하고 있는가? 아니면 목표를 낮추고 신경 쓰지 않아도 되는 애플리케이션을 저렴한 가격에 제공하고 있는가? 고객은 다 다르며, 실제로 고객들도 다양한 요구를 가지고 있기 때문에 어느 것이 맞는 결정이라고 할 수는 없다. 앱마다 안에 있는 마이크로 서비스도 각각 다 다르다.

모든 것이 불투명하다
클라우드는 본질적으로 컴퓨팅 권한의 어두운 부분이며 그 수수께끼는 우리를 안일하게 만든다. 우리가 칩이 어디에 있는지 모른다면, 공격자들도 역시 알지 못한다. 다만, 우리가 기계가 어떻게 할당되어 있는지 모르기 때문에 공격자들도 우리의 기계를 공유할 방법을 찾지 못할 것이라고 가정하면서 기도만 하고 있는 셈이다. 

하지만 악용될 수 있는 패턴이 있다면 어떻게 할 것인가? 불가능할 것 같은 그러한 확률을 극적으로 바꿀 수 있는 감춰진 결점이 있다면 어떻게 할 것인가?

공격자들은 우리의 리소스에 대해 권한을 쉽게 가질 수 있다
클라우드의 주요 특징 중 하나는 수요에 자동으로 적응한다는 것이다. 요청이 급증하면 클라우드가 새로운 버전의 컴퓨터를 가동시킬 수 있다. 문제는 가짜 수요를 만들어 내는 것이 너무 쉽다는 점이다. 공격자는 앱 중 하나를 트리거 하여 빠르게 수천 번 방문하여 새로운 인스턴스를 돌릴 수 있다. 

수요가 급증할 때 클라우드 회사가 새로운 하드웨어의 전원을 켜면 어떻게 될 것인가? 새로 전원이 들어온 이 하드웨어에 새 인스턴스들이 전부 몰려버린다면 어떻게 되겠는가? 공격자는 클라우드를 확장하도록 트리거 한 후 곧바로 새로운 인스턴스를 요청할 수 있으며, 모든 사람들이 동일한 메모리 공간을 공유할 확률도 훨씬 더 높아진다.

너무 많은 복제
많은 클라우드 설계자들은 수요가 증가하거나 감소하는 것에 맞춰 시작되거나 정지될 수 있는 많은 소형 머신을 사용하는 모델을 좋아한다. 상품 비즈니스에 종사하는 것은 클라우드 회사 뿐만이 아니다. 단순성을 선호하면서 모든 사람들이 작은 기계들을 정확히 똑같이 만들려고 하는데, 이는 곧 많은 동일한 비밀들이 복제된다는 것을 의미한다. 

문서에 서명하거나 데이터베이스에 로그인하는 데 사용되는 개인 키가 있는 경우, 모든 복제된 인스턴스가 해당 키를 갖게 될 것이다. 즉, 공격자가 동일한 물리적 하드웨어에 안착할 가능성이 높아지면서 한 개가 아닌 N개의 표적이 존재한다는 것을 말한다. 

우리가 생각하는 것보다 우리에게 유리하지 않을 수도 있다.
그러한 공격이 가설에 그치는 것은 아니지만, 실제 발생 가능성은 낮을 수 있다. 실행하기가 쉽지 않기 때문이다. 클라우드 보안의 큰 장점은 컴퓨팅 권한의 감춰진 부분이 많다는 것이다. 어떻게 해서 공격자가 우리의 특정한 칩 꾸러미로 접근할 수 있을 것인가? 나쁜 의도를 가진 사용자가 같은 메모리 공간에 있을 확률이 얼마나 될까? 공격자가 우리를 찾아낼 수 있을까? 이렇듯 낮은 확률 때문에 안이하게도 안전하다고 느끼게 된다. 하지만 우리가 알 수 있을까? 

*Peter Wayner는 인포월드 정기 기고가이자 16권을 서적을 집필한 저술가다. 주로 다루는 영역은 오픈소스, 자동화 자동차, 프라이버시, 디지털 트랜잭션 등이다. ciokr@idg.co.kr



2019.07.22

클라우드와 보안, 12가지 가려진 비밀

Peter Wayner | CIO
클라우드 컴퓨팅의 가능성은 거부할 수 없을 정도다. 작게는 서버를 쉽게 스핀 업 할 수 있다. 백업은 클릭 한 번으로 만들 수 있다. 하드웨어를 구입하거나 서버 클로젯을 시원하게 유지하는 것에 대해 더 이상 걱정하지 않아도 된다. 그냥 로그인해서 실행하기만 하면 된다.

하지만, 편리함을 얻는 대신 통제 가능성은 다소 잃어버리게 된다. 게다가 편집증을 조금 가진 사람이라면 클라우드의 편리함에 대해 곰곰이 생각해보기 시작할 지도 모른다. 안 보이는 곳에서 무슨 일이 벌어지는 것일까? 

처음에 기업들은 보안 및 개인 정보 보호에 관한 의문을 포함한 여러 근본적인 이유들로 데이터와 워크로드를 클라우드에 올리는 것을 경계했다. 그리고 초기의 우려 일부는 클라우드가 주요 IT 전략이 된 시대에 잦아들었지만 이러한 당초 우려사항 중 많은 부분이 여전히 유지되고 있다. 심지어 클라우드에 대한 의존도가 폭발적으로 커지면서 훨씬 더 많은 우려들이 발생하고 있다. 

여기서는 클라우드에 의존해 비즈니스를 펼칠 때 나타나는 보안상 12가지 어두운 비밀들을 다룬다. 
 
ⓒ Getty Images Bank


동일한 보안 구멍이 계속 존재한다
클라우드 인스턴스는 데스크톱 또는 독립 실행형 서버와 동일한 운영 체제로 실행된다. 만약  서버 룸에 침입할 수 있는 백도어가 우분투 14에 있다면, 같은 백도어를 통해 누군가가 클라우드에서 실행되고 있는 버전에도 들어올 수 있을 것이라는 점은 거의 확실하다. 우리가 사랑하는 클라우드 인스턴스는 우리의 개별 하드웨어와 호환이 가능하도록 설계되었는데, 이 점은 버그에도 그대로 적용된다.

벌어지는 일을 알고 있다고 확신해서는 안된다
클라우드 머신을 부팅할 때 우분투 18.04 버튼을 클릭하거나 아마 프리BSD 버튼을 클릭했을 것이다. 표준 분포를 실행하고 있다고 확신할 수 있는가? 

공유 하드웨어 코로케이션 기업에서 일하던 필자 한 친구는 자신의 회사가 비밀 계정을 배포물에 삽입한 다음 그것들의 활동이 보이지 않도록 ps와 top에 대한 표준 유닉스 루틴에 삽입했다고 말한 바 있다. 그에 따르면 도청된 버전은 고객을 위해 만들어졌다. 모두 디버깅과 고객 서비스를 더 좋게 만들기 위한 것이었다는 설명이다. 물론 그는 그것이 사악한 목적으로 사용될 수도 있다는 점은 인정하지 않았다.

클라우드 제공업체를 신뢰하는 것은 당연한 일이어야 한다. 우리는 그들의 청렴성에 대해 확고한 믿음을 가질 필요가 있다. 애석하게도 모든 기업과 모든 직원에 대해 확신을 갖기는 어렵다. 

당신이 통제할 수 없는 또 다른 레이어가 있다
클라우드 인스턴스는 일반적으로 운영 체제 하에 있는 추가적인 소프트웨어 레이어과 함께 제공되는데 이 레이어는 사용자의 통제를 완전히 벗어난다. OS에 대한 루트 액세스 권한을 얻을 수는 있겠지만, 그 이면에서 무슨 일이 일어나고 있는지는 전혀 알 수가 없다. 대체로 문서화되지 않은 레이어는 데이터가 돌아다닐 때 그 데이터에 특정 작업을 하는 데 사용될 수도 있다.

전담 직원은 당신 회사를 위해 일하지 않는다
클라우드 제공업체들은 인스턴스의 보안과 안정성 관련 추가 지원 및 보안 팀을 홍보하는 데 열을 올린다. 실제로 대부분의 회사들이 그러한 전담 직원을 둘만큼 큰 규모가 아니다. 반면 클라우드 업체들은 규모가 더 작은 회사들로서는 해결하기를 바라지도 못하는 문제들을 손쉽게 해결할 수 있다.

문제는 이 팀이 당신 회사의 직원처럼 일하지 않는다는 점이다. 그들은 당신에게 보고하지 않으며 그들의 미래는 당신 회사의 핵심가치와는 거의 관계가 없다. 아마도 당신은 그들의 이름을 모를 것이고 그들이 응하지 않는 한 대면없이 이뤄지는 문제 티켓(trouble ticket)을 통해 그들과 의사소통 하게 될 것이다. 어쩌면 그 정도면 충분할 수 있다. 그러나 고객 기업이 할 수 있는 전부는 그들의 선의를 믿고 바라는 것 뿐이다.  

누가 당신의 시스템에 있는지 당신은 알지 못한다 
클라우드의 가장 큰 경제적 이점은 관리 및 물리적인 유지 보수 비용을 다른 사람과 공유한다는 것이다. 반면에, 하드웨어를 완전히 제어하는 데서 얻게 되는 권한을 잃게 된다는 것은 커다란 제약이다. 

누가 당신과 같은 기계를 사용하고 있는지 전혀 알 수가 없다. 신앙인들의 데이터베이스를 유지하고 있는 멋진 성직자일 수도 있지만, 사이코패스일 수도 있다. 더 안 좋은 경우에는 당신의 비밀이나 돈을 훔치려는 도둑일 수도 있다.
 

규모의 경제는 양날의 검이다
클라우드의 장점은 대규모 경제성이다. 클라우드 회사가 수많은 하드웨어를 가지고 있기 때문에 각종 비용이 저렴하다는 것을 의미한다. 이것은 가격을 낮게 유지하는데 도움을 주지만, 또한 공격자들의 먹이를 더욱 단순하게 만드는 효과로 이어진다. 한 인스턴스에서 하나의 구멍을 찾으면 수십 억 개의 인스턴스를 헤집고 다닐 수 있기 때문이다.

보안 상충관계는 비용을 증가시킨다
클라우드 회사들은 상충된 선택을 가지고 있다. 분기 예측(branch prediction)을 꺼 두면 관련된 공격을 방어할 수 있지만, 그렇게 하면 모든 일이 약간 속도가 떨어진다. 사람들은 성능을 낮추기를 원할까? 그들이 그렇게 하기를 우리가 원할까? 클라우드에서는 기계가 느려지면 가격이 오르기 때문이다. 

기업마다 보안에 대한 수요가 다르다
당신은 수십 억 달러가 오가는 은행을 운영하고 있을 지도 모른다. 하지만 클라우드에서 모든 사람이 그런 일을 하는 것은 아니다. 보안 비즈니스에서는 모두를 만족시키는 한 가지 만능 열쇠가 존재하지 않는다. 

클라우드 회사들은 기본적으로 상품 비즈니스에 종사한다. 그들이 목표를 높게 두고 어려운 애플리케이션을 지원하기 위해 노력하고 있는가? 아니면 목표를 낮추고 신경 쓰지 않아도 되는 애플리케이션을 저렴한 가격에 제공하고 있는가? 고객은 다 다르며, 실제로 고객들도 다양한 요구를 가지고 있기 때문에 어느 것이 맞는 결정이라고 할 수는 없다. 앱마다 안에 있는 마이크로 서비스도 각각 다 다르다.

모든 것이 불투명하다
클라우드는 본질적으로 컴퓨팅 권한의 어두운 부분이며 그 수수께끼는 우리를 안일하게 만든다. 우리가 칩이 어디에 있는지 모른다면, 공격자들도 역시 알지 못한다. 다만, 우리가 기계가 어떻게 할당되어 있는지 모르기 때문에 공격자들도 우리의 기계를 공유할 방법을 찾지 못할 것이라고 가정하면서 기도만 하고 있는 셈이다. 

하지만 악용될 수 있는 패턴이 있다면 어떻게 할 것인가? 불가능할 것 같은 그러한 확률을 극적으로 바꿀 수 있는 감춰진 결점이 있다면 어떻게 할 것인가?

공격자들은 우리의 리소스에 대해 권한을 쉽게 가질 수 있다
클라우드의 주요 특징 중 하나는 수요에 자동으로 적응한다는 것이다. 요청이 급증하면 클라우드가 새로운 버전의 컴퓨터를 가동시킬 수 있다. 문제는 가짜 수요를 만들어 내는 것이 너무 쉽다는 점이다. 공격자는 앱 중 하나를 트리거 하여 빠르게 수천 번 방문하여 새로운 인스턴스를 돌릴 수 있다. 

수요가 급증할 때 클라우드 회사가 새로운 하드웨어의 전원을 켜면 어떻게 될 것인가? 새로 전원이 들어온 이 하드웨어에 새 인스턴스들이 전부 몰려버린다면 어떻게 되겠는가? 공격자는 클라우드를 확장하도록 트리거 한 후 곧바로 새로운 인스턴스를 요청할 수 있으며, 모든 사람들이 동일한 메모리 공간을 공유할 확률도 훨씬 더 높아진다.

너무 많은 복제
많은 클라우드 설계자들은 수요가 증가하거나 감소하는 것에 맞춰 시작되거나 정지될 수 있는 많은 소형 머신을 사용하는 모델을 좋아한다. 상품 비즈니스에 종사하는 것은 클라우드 회사 뿐만이 아니다. 단순성을 선호하면서 모든 사람들이 작은 기계들을 정확히 똑같이 만들려고 하는데, 이는 곧 많은 동일한 비밀들이 복제된다는 것을 의미한다. 

문서에 서명하거나 데이터베이스에 로그인하는 데 사용되는 개인 키가 있는 경우, 모든 복제된 인스턴스가 해당 키를 갖게 될 것이다. 즉, 공격자가 동일한 물리적 하드웨어에 안착할 가능성이 높아지면서 한 개가 아닌 N개의 표적이 존재한다는 것을 말한다. 

우리가 생각하는 것보다 우리에게 유리하지 않을 수도 있다.
그러한 공격이 가설에 그치는 것은 아니지만, 실제 발생 가능성은 낮을 수 있다. 실행하기가 쉽지 않기 때문이다. 클라우드 보안의 큰 장점은 컴퓨팅 권한의 감춰진 부분이 많다는 것이다. 어떻게 해서 공격자가 우리의 특정한 칩 꾸러미로 접근할 수 있을 것인가? 나쁜 의도를 가진 사용자가 같은 메모리 공간에 있을 확률이 얼마나 될까? 공격자가 우리를 찾아낼 수 있을까? 이렇듯 낮은 확률 때문에 안이하게도 안전하다고 느끼게 된다. 하지만 우리가 알 수 있을까? 

*Peter Wayner는 인포월드 정기 기고가이자 16권을 서적을 집필한 저술가다. 주로 다루는 영역은 오픈소스, 자동화 자동차, 프라이버시, 디지털 트랜잭션 등이다. ciokr@idg.co.kr



X