그래도, CC 인증을 다루고자 하는 건, 나름대로 일하면서 느낀 것과 생각을 다룸으로써 보다 나 스스로에게 정리할 시간을 주기 위한 것이라는 점을 덧붙이고 싶습니다.
전자신문, 보안뉴스 같은 곳에서 종종 "A사의 방화벽 XX가 EAL4 등급 CC 인증을 받았다"라는 내용의 기사가 뜹니다. EAL4라는 말도 낯설거니와, 도대체 CC 인증이라니 이게 무슨 소리일까요? 언뜻 봐서는 방화벽이 무슨 인증을 취득했다라는 소리로 밖에는 안들릴 겁니다. 앞으로 저런 기사를 보면 이렇게 생각하세요: "A사에 XX라는 방화벽 제품이 있는데, CC라는 정보보호제품 보안성 평가 기준에서 정한 평가 보증 등급 4 수준의 인증을 받았다."
CC인증 = IT 제품의 보안성 평가에 사용되는 국제 표준
CC는 Common Criteria의 줄임말이며, 국제 표준 ISO/IEC 15408로 제정된 정보보호제품의 보안성 평가 기준을 의미합니다. CC는, 컴퓨터 보안과 관련된 IT 제품의 보안성을 평가하는 국제 표준이라고 생각하시면 됩니다.
알아두세요: CCRA - CC 상호 인정 협약
CC 인증에 대한 국제상호인정협정(CCRA, Common Criteria Recognition Agreement)에 따라, CC 인증을 사용하는 국가에서는 CC에 따라 보안성을 평가 받은 IT 제품에 대해 서로 인증 효력을 인정해주게 되어 있습니다. CCRA 가입국은 크게 CC 인증서 수용국과 CC 인증서 발행국(현재 12개국 - 호주, 뉴질랜드, 캐나다, 프랑스, 독일, 일본, 대한민국, 네델란드, 노르웨이, 스페인, 스웨덴, 영국, 미국)으로 구분됩니다. 우리나라는 CC 인증서 발행국이군요. :-)
CC 이전에는 국가, 또는 대륙마다 각각 서로 다른 보안성 평가 기준을 갖고 있었습니다. 오렌지북으로 알려진 미국 국방부의 TCSEC, 그리고 독일, 프랑스, 네덜란드, 영국이 함께 제정한 ITSEC, 캐나다의 CTCSEC 등이 바로 그것입니다. 우리나라에는 국정원에서 시작한 K4 인증이 있었습니다.
국가/대륙간 보안성 평가 규격이 달랐기 때문에 IT 제품을 수출하려면 수출국의 보안성 평가 기준에 따라 평가받아야 했는데, 보안성 평가는 엄청난 비용이 발생하게 되고, 국가마다 기준이 다르다는 어려움을 겪게 됩니다. 결국, 보안성 평가 기준을 통합하자는 의견이 제기되어 TCSEC, ITSEC, CTCSEC을 바탕으로 CC가 탄생하게 된 것입니다.
CC는 지속적인 검토를 통해 업데이트되고 있습니다. (CC의 개정은 CCMB에서 진행합니다.) 우리나라에서 사용되고 있는 CC는 2.3 버전과 3.1 버전입니다. 2.3 버전은 2009년부터는 사용이 중지되고 3.1 버전으로 이행해야 합니다. (그러고보니 벌써 버전 4가 논의되고 있다는 군요.)
CC 인증을 소개하면서 CEM을 다루지 않을 수 없겠네요. CC에 따라 개발된 IT 제품의 평가 방법론을 CEM (Common Evaluation Methodology)이라고 합니다. CEM도 국제 표준이며, 국제 표준 번호는 ISO/IEC 18405입니다. CC에 따라 평가하는 기관은 반드시 CEM을 준수하여 평가하도록 되어 있습니다.
CC 인증에 따라 평가하고 인증하는 기관들
현재 우리나라에는 3개의 평가 기관 (한국정보보호진흥원 KISA, 산업기술시험원 KTL, 한국시스템보증 KOSYAS)과 1개의 인증기관 (국가정보원 IT 보안인증사무국)이 있습니다. 평가기관은 문자 그대로 보안성 평가를 수행하는 기관을 의미하고, 인증기관은 국내에서 수행되는 CC 보안평가 스킴을 총괄하는 역할을 수행하면서 평가기관이 수행한 평가 결과를 최종 승인하는 기관을 의미합니다. 인증기관은 CC 인증서 발행국당 1개가 있습니다. 예외적으로, 호주와 뉴질랜드는 1개의 인증기관에서 모두 포괄합니다. CC 인증 평가기관과 인증기관은 인증 과정과 결과의 객관성을 보증하기 위해 국제 표준(ISO/IEC 17025, 또는 BS EN 45011)에서 요구하는 기준을 획득하고 준수해야한다는 까다로운 조건이 붙습니다. =_=;a
평가보증등급 (EAL, Evaluation Assurance Level)
평가보증등급(EAL)은 CC에 따라 정의된 보안성 평가 보증 등급(Evaluation Assurance Level)을 의미합니다. 평가 보증 등급은 1부터 7까지 모두 7 등급으로 구성되어 있습니다. 7 등급이 가장 높은 등급입니다. 그러나 아직까지 EAL7 등급을 받은 IT 제품은 없습니다. 전 세계에서 현존하는 가장 높은 등급은 EAL5+입니다. 국내에서는 아직까지 EAL5+를 받은 제품은 없습니다. 그런데, '+'가 왜 붙었는지 말씀을 안드렸군요. 그건 나중에 설명드리기로 하겠습니다. 다만, 평가등급 숫자(4가 1보다 크죠?)가 클수록 보다 엄격한 기준으로 깊이있게 보안성을 평가했다는 의미로 받아들이시면 됩니다.
알아두세요: CEM과 EAL
CEM은 평가보증등급에 따라 IT 제품의 보안성 평가를 위해 IT 제품 개발자에게 요구하는 보증 증거의 범위와 서술 수준(보증요구사항, SAR, Security Assurance Requirement)을 정의하고 있습니다.
잠깐! 보증 증거라구요? 무엇이 보증증거일까요? 제품 설명서, 각종 개발문서, 제품 수명주기 계획 및 형상관리 증거(형상관리? 그냥 그런 것이 있다고 넘어가세요 ^.^), 제품의 구조 분석자료, 각종 시험서 등이 보증증거입니다.
평가보증등급이 높아질수록 보증요구사항이 까다로워지기 때문에 개발자는 매우 고달파집니다. 예를 들어, 상용보안제품에서 일반적으로 EAL4가 최상위 평가수준으로 간주합니다. 그런데 EAL4가 되면 CC 버전 3.1은 모듈수준에서 시험서를 작성해야하기 때문이지요...
평가보증등급이 높을 수록, IT 제품의 보안성을 더 신뢰할 수 있습니다. 그렇지만, 과연, "평가보증등급이 높을 수록 더 좋은 것일까?"하는 의문의 여지가 있습니다.
평가보증등급을 결정짓는 중요한 요소는, IT 제품이 수용한 보호프로파일(PP, Protection Profile)과/또는 보안목표명세서(Security Target)입니다. (PP는 일종의 제안요청서(RFP), ST는 일종의 IT 제품의 제안서에 해당한다고 생각하세요.) PP와 ST는 모두 CEM에 명시된 평가보증등급 기준에 따라 작성되고, 제품이 사용되는 환경, 보안 위험 요소, 보안목적, 보안요구사항 등을 명시하도록 되어 있습니다. 따라서, CC 인증을 취득한 제품의 구입을 고려한다면, 반드시, 해당 제품의 ST를 확인해보고 제품의 도입이 사용 목적과 사용 환경에 적합한지 확인해야 합니다.
CC의 전체적인 구조
CC는 모두 3개 부분으로 구성되어 있습니다.
파트 1 (소개 및 일반모델)은 CC의 기본 프레임워크와 보호프로파일(PP, Protection Profile), 보안목표명세서(ST, Security Target)이라는 CC의 기본 문서에 대해 다룹니다. PP와 ST는 보안성 평가에서 매우 중요한 시작점입니다. ST가 보안성 평가의 절반을 차지한다는 이야기도 있을 정도입니다.
알아두세요: ST가 중요한 이유
ST는 제품 구현에 종속적인 보안기능요구사항을 정의한 문서입니다. (PP는 제품 구현에 독립적인 보안기능요구사항을 정의한 문서) 보안기능요구사항을 정의하기 위한 전제조건으로, IT 제품이 사용될 환경과, 환경에서 발생할 수 있는 위협, 그리고 유의사항 등을 다룹니다. 여기에서 도출된 위협에 대해 환경과 IT 제품이 어떻게 대응해야 하는가에 대한 요구사항을 ST에서 서술합니다.
특히, IT 제품에 대해 요구되는 보안 기능에 대한 요구 사항들이 명시되어 있기 때문에, ST는 IT 제품의 기능 평가의 기준이 됩니다. ST도 보안성 평가의 대상이기 때문에, ST에서 명시한 모든 사항들도 면밀하게 검토가 이루어집니다. 즉, 시작이 좋아야 끝이 좋다고, ST가 훌륭하지 않으면 보안성 평가가 어려워집니다.
IT 제품의 구매자 입장에서, ST를 읽다보면 이 제품이 사용될 수 있는 환경과 제품의 보안 기능을 이해할 수 있게 되므로 매우 유용한 문서입니다. 다만, 매우 추상적인 문장들이 많아서 어느 정도 IT 지식이 있어야 읽을 수 있다는 것이... -_-; 저도 CC 인증쪽에서 일을 합니다만, 읽다보면 외계어 같다는 느낌이 들 때가 많습니다.
파트 2 (보안기능요구사항)는 IT 제품에 요구되는 각종 보안 기능과 관련된 요구사항의 정의에 사용됩니다. PP와 ST는 파트2에서 정의된 보안기능요구사항(SFRs, Security Functionality Requirements)을 참조하여 작성됩니다. 즉, 파트2는 파트1에서 정의된 PP, ST와 같은 문서에서 가장 중심이 되는 내용을 기술할 때 사용합니다.
보안기능요구사항은 동일한 요구사항에 대해 계층화하거나 세분화함으로써 PP/ST 작성자가 선택하여 사용할 수 있도록 구성되어 있습니다. 다양한 요구사항을 기술할 수 있도록 매우(!) 추상적인 진술들이 많기 때문에, 각 보안 기능요구사항에 대한 부록이 달려 있을 정도입니다. 부록은 각 보안기능요구사항이 어떤 상황에서 사용되어야 하는지 사용 시 주의사항등을 다룹니다. IT 제품은 반드시 PP/ST에서 기록된 보안기능요구사항을 구현해야 합니다.
파트 3 (보증요구사항)는 보안성을 평가할 때 요구되는 평가 범위와 평가 수준에 대하여 등급(이것이 EAL입니다.)을 정하고, 등급에 따라 IT 제품의 보안성 평가에 사용할 보증요구사항(SARs, Security Assurance Requirements)을 정의하고 있습니다. CEM은 파트 3에서 명시된 보증요구사항에 대한 검증방법을 다룹니다. 보안성 평가를 수행하는 평가자의 입장에서 CEM은 보안성 평가의 바이블이 됩니다. CEM에서는 파트 3에서 명시된 요구 사항 하나가 하나의 평가 작업 단위가 됩니다.
평가보증등급이 높아질 수록 보증요구사항으로 요구하는 자료가 많아지고 평가기간도 길어집니다. 당연히, 비용도 적잖게 들어갑니다. 제품의 복잡도가 클수록 더욱 그렇죠.
글을 줄이며
이렇게 해서 CC 인증의 기본 개념에 대해 간략히 정리해보았습니다. 간략히 쓴다는게 쓰다보니 길어졌습니다. 앞으로는 CC 인증에 관련된 내용을 꾸준히 포스팅하도록 하겠습니다.