그리드 컴퓨팅은 컴퓨팅 구성요소, 운영체제, 정책 결정과 환경에 관한 이질성을 극복하게 도와준다. 그러나 보안 이슈는 그리드가 광범위한 IT 가상화 해결책으로써 채택되는 것을 방해한다. 그래서 우리는 이러한 이슈들을 다루기 위한 해결책들을 개발해야만 한다.
분산 컴퓨팅 공동체안에서 작업은 협업의 문제와 자연스러운 데이터 공유, 계산 문제를 다루는 그리드 기술을 가져온다. 그리드 컴퓨팅에서 지역적으로 분산된 이질적 리소스들은 통합된 전체로써 가상화 된다. 결과적으로, 그리드 컴퓨팅은 리소스 공유와 가상화를 통해 수많은 이익을 제공한다. 커다란 잠재력 덕택으로 엔터프라이즈 IT 공동체들은 그리드 컴퓨팅 가능성에 고무적이다. 그러나 연구자와 전문가들은 보안 이슈와 영향에 걱정한다. 전통적인 보안 이슈와 더불어 그리드는 이질성, 온디맨드, 분산 성질때문에 보안 챌리지들을 제공한다.
그리드 컴퓨팅의 진화는 전형적인 행보를 따르고 있다. 대학에서 시작해서 엔터프라이즈 공동체로 서서히 움직이고 있다. 이러한 진화 패러다임은 개념이 이론으로 부터 시작하고 후에 살제로 증명하기 때문에 장점들을 가진다. 그러나, 다른 분산 컴퓨팅 시스템에서 (인터넷) 보안 이슈는 주요 관심사라는 것을 알고 있다. 그리드 컴퓨팅에서 대부분 보안 이슈 또는 관심사는 과학 컴퓨팅과 같은 틈새 영역을 다룬다. 전자 과학 공동체는 데이터와 계산을 많이 해야하는 과학 애플리케이션을 수행하기 위한 대부분 현재 그리드 구현을 개발해오고 있다. 그러나, 그리드 컴퓨팅은 엔터프라이즈로 채택되다면 광범위하게 성공할 것이다. 엔터프라이즈에서 보안은 관리자, 구현자, 개발자를 위한 주요 관심사이다. 그래서 우리는 기존 그리드 보안 이슈와 대응책의 전반적인 분석이 필요하다. 그러한 분석은 현재 거의 없다. 이 논문은 그리드 보안 이슈와 해결책을 분류하고 미래에 대한 가이드라인을 제공하여 빈곳을 채우는데 목표를 두고 있다.
그리드 컴퓨티 보안 분류
첫쨰, 이 논문에서 과도하게 사용될 몇몇 용어를 보자.
호스트는 일반적으로 PC와 서버를 포함하는 컴퓨터 시스템을 가리킨다. 그리드 리소스는 그리드안에서 컴퓨팅 또는 데이터 요소이다. 호스트와 리소스간 주요 차이는 호스트는 그리드안에 가입할 수 있고 컴퓨팅 리소스가 된다. 마지막으로, 크리덴션(자격정보)은 티겟 또는 토큰이다. (사용자를 식별하고 승인 또는 인증하는데 사용된다.) 그림 1은 호스트, 아키텍쳐 또는 자격정보 레벨로써 분류된 그리드 보안 이슈들을 보여준다.
호스트-레벨 이슈들은 호스트들(PC를 포함)이 그리드에 가입된 온디맨드 그리드 시스템에 부응한다. 이 시스템은 로컬 과 리모트 잡을 가진다. 로컬은 호스트에서 시작되는 반면에 리모트는 외부 그리드 시스템으로 부터 시작되고 호스트에서 실행된다. 보안 이슈는 로컬과 리모트 리모트 잡들은 메모리와 CPU 리소스를 공유할 때 일어난다. 이 때 잠재적 로컬 데이터 망가짐과 로컬 잡 굶주림을 야기한다.
아키텍쳐-레벨 이슈들은 그리드 아키텍쳐에 속하는 관심사를 다룬다. 사용자는 어떻게 그리드간 서로 다른 정책들을 맵핑할지에 관심이 있고 그리드의 이질성과 사용자 레벨의 가상화에 대한 약속 덕택에 그러한 매핑 정책들은 매우 중요한 이슈이다. 다른 이슈들은 그리드 시스템안에 DOS 공격을 포함한다. 기밀성, 무결성, 인증과 같은 정보 보안 이슈.
크리덴셜-레벨 이슈는 다중 시스템들이 사용자들이 그들을 접근하는 다양한 크리덴셜을 요구하기 때문에 그리드 컨텍스트에서 매우 중요하다. 우리는 그리드 컨텍스트에 적용할수 있는 다양한 크리덴션 시스템들을 간단히 알아본다.
다음 섹션에서는 좀더 자세히 알아본다.
호스트-레벨 이슈와 해결책
호스트가 그리드에 자신을 가입시킬때 마다 호스트의 안전에 관한 일들이 발생한다. 우리는 데이터 보호와 잡 굶주림아래 호스트-레벨 이슈들을 분류할 수 있다.
데이터 보호
호스트가 그리드에 가입될 때 마다, 주요 일은 호스트 이전에 존재한 데이터 보호에 관한 것이다. 이러한 것은 잡을 제출하는 호스트가 잡을 실행하는 호스트를 신뢰하지 못하거나 알지 못한다는 사실에 유래한다. 후자에서, 잡은 시스템을 망가트리는 바이러스 또는 웜일 수 있다. 우리는 네가지 주유 타입들 안에 이러한 이슈에 대한 해결책을 분류할 수 있다.
애플리케이션-레벨 샌드박싱, 가상화, 사용자-공간 센드박싱, 융통성있는 커널
애플리케이션 레벨 샌드박싱
애플리케이션 레벨 샌드박싱 또는 proof-carry code (PCC)는 신뢰할수 없는 코드를 안전하게 실행하는데 사용된다. PCC 시스템에서, 코드 수령자는 안전한 실행을 보장하는 규칙의 집합을 가진다. PCC는 안전한 규칙들(또는 정책들)을 따라야하고 이러한 컴플라이언스의 공식적인 증명을 수행해야만 한다. 전체 시스템안에서 프로그램들은 부정조작이 안된다.
PCC의 주요 장점
코드 생산자는 코드의 안전성 증명에 대한 책임이 있다.
암호, 서드 파티이 요구 되지 않는다.
위험한 코드가 실행되는 것을 잠재적으로 막는다.
그러나 애플리케이션 제공자는 PCC 규칙을 따라야한다. 이는 PCC가 큰 스케일에 배치되는것을 가로막는다. 이 해결책또한 이미 이용할 수 있는 수많은 기존 코드들을 수정하도록 요구된다.
가상화
고립화를 제공하는 다른 방법은 가상화를 통해서 하는 것이다. 가상 머신 생성은 단일 머신을 환영을 제공한다. Hosted Virtualization와 Paravirtualization은 대중적인 기술이다.
Hosted-virtualization 모델에서 다중 운영체제 (게스트 OS라고 불림) 가 호스트 운영체제의 애플리케이션으로써 실행한다. 일반적으로, 이 모델은 호스트 OS의 수정이 요구되지 않고 다중 리다이렉션이 일어나기 때문에 모델의 성능에 상당한 영향을 준다. 가장 인기있는 hosted-virtualization 해결책은 VMware GSX 서버이다. VMWare는 다양한 가상화 오버헤드를 줄이기 위한 많은 독점의 최적화를 사용한다. 이러한 최적화에 불구하고, GSX 서버의 오버헤드는 애플리케이션에 따라 상당히 높다. 이러한 단점은 paravirtualization 모델 개발을 이끌었다. (그러나 hosted-virtualization 모델은 매우 인기 있다.)
paravirtualization 모델에서는 가상화가 OS를 변경하고 재컴파일하여 OS 안에 포함된다. hosted-virtualization기반 시스템에 비해 상당히 좋은 성능을 가진다. 캠브리지 대학에서 Xen을 개발함.
그러나 xen을 포함한 paravirtualization 해결책을 큰 스케일에 채택하는데 가장 큰 방해요소는 그들 대부분이 IA-32 아키텍쳐 기반이기 때문에 가상화 능력이 부족하다. (IA-32아키텍쳐는 가상화 할수 없는 최소 17개의 인스트럭션을 가진다.) 그래서, IA-32 아키텍쳐 기반 커널은 Xen의 가상화 특징을 알수 있도록 컴파일 되어야만 한다. 인텍은 가상화 기술을 개발하고 있다. Intel VT는 더 나은 관리 능력에 따라 프로세서들에 가상화 특징을 알릴 수 있다.
사용자-공간 샌드박싱
고립화를 만들기 위한 다른 매커니즘은 시스템 콜을 가로채는 것이다. (샌드박싱)