'testing'에 해당하는 글 1건

Proactive Security Challenge 64

 

Introduction

본 프로젝트는 어플리케이션 기반의 보안 모델(인터넷 보안 제품, 개인 방화벽, HIPS, 행위기반 차단 시스템 그리고 유사한 제품들)로 구현되는 윈도우 운영체제용 보안 소프트웨어를 검토합니다. 본 프로젝트에 포함되기 위해서는 일정한 기준을 만족해야 합니다. 우리가 인식하는 본 프로젝트에 적합한 제품 리스트는 제품 리스트 페이지에서 확인할 수 있습니다.

본 프로젝트의 목표는 어플리케이션 행위 관리와 유사한 기능들을 기반으로 사용자의 데이터와 운영체제를 보호하는 보안제품의 다양한 능력을 평가하는 것입니다. Proactive Security Challenge 64 를 통과하는 제품은 사용자의 인증서 혹은 데이터를 탈취하거나 훼손하고 봇넷에 가담하기 위해 시스템을 감염시키고 저항하며, 보안 제품 스스로에 의해 수행되는 보호를 우회하기 위해 맬웨어가 사용하는 잘 알려진 기법들을 차단할 수 있습니다.

 

Methodology and rules

Installation and configuration

테스트 할 제품은 UAC 기능이 꺼져있고 기본 브라우저로 IE9 을 사용하는 Windows7 SP1 이 실행되는 가상 머신에 설치됩니다. 제품은 최대로 사용 가능한 보안 설정으로 세팅하고 이 설정으로만 테스트해야 합니다. 우리는 최고 등급의 보안 설정을 다음과 같이 정의합니다. 사용자는 운영체제와 컴퓨터 보안에 대한 전문적인 지식없이 제품을 설정할 수 있어야 합니다. 이는 우리가 가정하는 기술과 지식을 가진 사용자가 제품의 모든 형태의 GUI 를 잘 다룰수 있으며 주어진 많은 옵션을 켜고 끄거나 선택할 수 있지만, 제품 지원 포럼이나 웹사이트 상에 제안되지 않은 다양한 보호 대상을 수동으로 추가하기 위해 장치, 디렉토리, 파일, 레지스트리 항목 이름을 생각할 수는 없다는 의미입니다. 제품은 최대한 제품에 의해 자동 결정되는 횟수를 줄이면서 최대한 사용자와 빈번한 상호작용할 수 있도록 설정됩니다. 사용성 요구사항을 만족하기 위해 마치 설치된 보안 제품이 없는 것처럼 모든 합법적인 작업에 대해 설정된 제품이 설치된 컴퓨터를 사용하는 것이 가능해야 합니다. 또한 사용자는 어떤 알려지지 않은 어플리케이션의 행위를 예측하도록 강요받지 않아야 하며 일반적인 환경에서 일단 제품이 제대로 설치되고 나면 제품이 사용자를 자주 귀찮게 하지 않아야 합니다.

Testing levels

Proactive Security Challenge 64 에는 몇가지 테스팅 레벨이 있습니다. 각 레벨은 선택된 테스트 셋을 포함하고 있으며 이 레벨을 통과하기 위해 필요한 점수 경계가 존재합니다. 모든 제품은 레벨 1 셋부터 테스트됩니다. 레벨 1 점수 경계에 도달하는 제품은 이 레벨을 통과하고 레벨 2 테스트를 거칩니다. 이는 최상위 레벨에 도달하거나 특정 레벨의 경계에 실패할 때까지 계속 진행됩니다.

Testing suite and scoring

Proactive Security Challege 64 SSTS64 의 테스트만 사용합니다.

http://mryou.tistory.com/entry/Security-Software-Testing-Suite-64-SSTS64 

이 셋에 포함된 모든 테스트는 소스코드와 함께 제공됩니다. 공개 테스트 셋을 사용하는 것은 최대한 투명한 테스팅을 보장합니다. 개별 테스트에서 테스트된 제품은 0%~100% 사이의 점수를 얻을 수 있습니다. 일반적으로 모든 테스트는 통과 혹은 실패만 가능합니다. 그래서 제품은 0% 혹은 100% 만 획득 가능합니다. 테스팅 프로그램은 완벽하지 못하며 많은 경우에서 테스트 된 제품이 테스트를 통과 혹은 실패했는지를 인식한다는 것을 보장하지 않는 방법을 사용한다는 것을 인지해야 합니다. 이는 테스팅 프로그램이 실패했을지라도 테스트 된 시스템이 통과했다고 보고하는 경우가 발생할 수도 있다는 의미입니다. 이를 거짓 긍정 결과라고 말합니다. 테스트의 공식적인 결과는 거짓 긍정을 필터링하기 위해 숙련된 휴먼 테스터에 의해 검토됩니다. 반대로 거짓 부정의 결과는 드물고 마찬가지로 휴먼 테스터에 의해 제거됩니다.

테스트 제품이 도달하는 레벨에서 모든 테스트는 최소한 한번을 수행됩니다. 만일 제품이 테스트를 통과한다면 거짓 통과행위를 완화하기 위해 최소한 한번은 반복됩니다. 상세한 정보는 테스팅 가이드라인을 참고하세요.

모든 테스트는 정의된 유형을 갖고 있습니다. 같은 유형의 테스트는 동일한 목적 달성을 위해 시도됩니다. 정의된 유형과 목적은 다음과 같습니다.

-Leak-test: leak test 는 인터넷 서버로 데이터를 보내려는 시도를 합니다. 이를 leaking 이라고 합니다. SSTS64 의 대부분의 leak test는 기본적으로 우리의 데이터 베이스에 leak 로그를 기록하는 웹사이트 상의 스크립트를 사용하도록 설정되어 있습니다. 그런 테스트를 위해서 여러분은 테스트가 데이터를 전송할 수 있었는지를 확인하기 위해 My leak 페이지를 사용할 수 있습니다. 이 스크립트를 사용하지 않는 leak test 를 위해 우리는 명확하지 않은 상황에서 패킷 스니퍼를 사용합니다. 수많은 leak test를 통과하기 위해 테스트 제품은 다양한 호스트 보호 기능을 구현해야 합니다.

-Spying test: 사용자의 입력값 혹은 데이터를 몰래 엿보는 시도를 합니다. 키로거와 패킷 스니퍼가 그런 테스트의 일반적인 예입니다. 그들이 획득하는 데이터의 모든 데이터 정보는 환경설정 파일에 정의된 패턴으로 검색됩니다. 주어진 패턴이 발견된다면 그런 테스트가 성공한 것입니다.

-Autorun test: 나중에 재시작되기 위해 시스템에 자기자신을 설치하려는 시도를 합니다. 오토런 테스트의 공통 목적은 재부팅시에 살아남는 것입니다. 그런 시스템 감염은 거의 모든 종류의 맬웨어가 해당되는 사항입니다. 만일 그 테스트가 그것 혹은 그것의 일부, 코드나 행위가 이후에 다시 시작될 수 있다고 확인되면 테스트 제품은 오토런 테스트를 실패하게 됩니다.

-Self-defense test: 본 테스트 영역은 보안 제품 자신에 대한 다양한 공격을 다룹니다. 종료 테스트는 이 영역에 속하는 테스트의 첫번째 하위유형입니다. 그런 테스트는 테스트 제품이나 다른 일부의 프로세스를 종료하거나 손상을 입히려는 시도를 합니다. 대상 프로세스들 중 최소한 하나 혹은 다른 부분의 하나가 종료되거나 손상되었다면 종료 테스트는 성공한 것입니다. 프로세스와 스레드 외에도 보안 소프트웨어는 일반적으로 다양한 파일과 레지스트리 항목에 연관이 있습니다. 그런 보안 제품에 있어 중요한 객체를 삭제, 손상 혹은 변조하려는 시도를 하는 테스트도 역시 본 영역에 속합니다.

-Other: 위에 정의된 유형 중 어디에도 속하지 않는 테스트가 여기에 포함됩니다. 예를 들면, 시스템을 악의적으로 수정하는 테스트가 본 영역에 속합니다.

 

테스트의 유형은 정보 제공의 목적으로만 정의됩니다. 테스트가 성공 혹은 실패했는지의 평가 프로세스를 결정하는 것이 아닙니다. 각 테스트는 다양한 악의적인 목적으로 사용될 수 있는 하나 혹은 그 이상의 공격 기법을 수행합니다. leak-test 로 수행된 테스트는 영구적으로 시스템을 감염시키기 위해 사용될 수 있는 더 일반적인 기법을 사용할 수도 있습니다. 그 테스트의 핵심 기법은 다른 악의적인 목적으로 사용되어 질 수 있기 때문에 테스트 제품이 그 테스트의 leak testing 영역을 차단할 수도 있고 테스트를 실패할 수도 있습니다. 테스트의 특정 공격 기법에 대해 테스트 제품이 실제로 방어했는지 혹은 그저 현재 테스트의 수행이 성공하는 것을 방해할 수 있는지를 확인하기 위해 우리는 수정된 버전의 테스트를 사용하는 상황이 자주 발생합니다.

모든 테스트는 그 점수가 레벨이나 다른 것에 의해 가중치가 부여되지 않습니다. 테스트 제품의 전체 점수는 다음과 같이 계산됩니다. 제품이 도달하지 못한 레벨에 대한 모든 테스트에 대해 제품 점수는 0% 입니다. 다른 모든 테스트에서 점수는 테스트에 의해 결정됩니다. 제품의 총점 = 모든 테스트의 점수 합계/모든 테스트의 수 입니다. 어떤 제품이 기존의 테스트 결과를 보유한 상태에서 PSC64 에 새로운 테스트가 추가되는 경우가 생길 수 있습니다. 그런 경우에는 이미 테스트 된 제품의 추가된 테스트 결과는 N/A 로 결정됩니다. 이는 이 제품에 대해 고려되지 않고 점수나 통과한 레벨에 영향을 주지 않습니다. 테스트 수도, 테스트 레벨도 최종적인 것이 아닙니다. 우리는 차후에 새로운 테스트와 레벨을 추가할 수도 있습니다. 또한 새로운 테스팅 기법이나 테스트 대한 여러분의 아이디어에 가능성을 열어두고 있습니다.

 

Product’s selection and Vendors rights

테스트 할 제품은 벤더에 의해 테스트 요청되거나 방문자들에 의해 다른 제품들보다 더 많이 제안된 제품중에서 선정됩니다. 만일 그런 제품이 없다면 아직 테스트되지 않았으며 우리 테스트를 완수할 가능성이 보이는 제품중에서 테스트할 제품을 선정합니다. 모든 벤더는 6개월에 한번 무료로 PSC 64 에서 테스트 될 자격이 있으며 이 권리는 안정적이고 대중적으로 사용할 수 있는 버전의 제품에서만 유효합니다. 만일 벤더가 하나 이상의 제품을 제안한다면 6개월에 오직 한번의 무료 테스트의 권리는 여전히 유효합니다. 게다가 다음 무료 테스팅 제품은 최종 무료 테스팅 이후 3개월 이후에 수행될 것입니다. 이 규칙은 벤더가 PSC64 를 무료 베타 테스팅 서비스로 사용하는 것을 막을 수 있습니다. 테스팅 요청을 연기할 권한을 보호하며 예외적인 상황에서 이유가 있던 없던 테스팅 요청을 완전히 거부할 수도 있습니다.

무료 테스팅 요청 규칙의 유일한 예외는 벤더가 안티바이러스 혹은 안티맬웨어 엔진을 포함하고 SSTS 64 의 특정 테스트를 바이러스나 감염 코드 혹은 원치 않거나 악의적인 어플리케이션으로 규정하거나 패턴 식별 혹은 블랙리스트 방식을 사용하여 직접 테스트 셋 일부를 차단하거나, 어떤 다른 방식으로 PSC64 프로젝트를 공격하는 제품을 제안할 때입니다. 이 방식은 그런 안티바이러스 혹은 안티맬웨어 엔진 사용자를 기만하고 우리가 테스팅하기 어렵게 만듭니다. 테스팅 셋을 공격하는 벤더는 무료 테스팅에 대한 권리 뿐만 아니라 유료 테스팅 요청 또한 거부될 수 있습니다.

 

Paid testing

모든 벤더에게 유료 PSC64 테스팅을 요청할 자격이 주어집니다. 이 경우에 제품은 각 레벨의 결과와 상관없이 모든 레벨에서 테스트 될 것입니다. 벤더가 유료 테스팅의 결과를 인수한 후에 내부적으로만 보유하거나 저희 웹사이트에 공개 요청을 할 수 있습니다. 하지만 그런 요청은 테스트 된 제품에 대해 최소 한달 이상된 이전 공개된 결과가 있을 때, 그리고 테스트된 제품의 버전이 안정적이고 공개적으로 사용 가능해야 합니다. 그리고 유료 테스트의 빈도에는 제한이 없습니다.

추천 제품 선정 기준은 간단합니다. 첫째 조건은 제품의 보호 수준이 최소 Very good, 즉 최종 점수 80% 이상을 의미합니다. 두번째 조건은 벤더와의 합의 조약이 있어야 한다는 것입니다. 만일 추천된 제품이 나중에 다시 테스트되었을때 80%를 만족시키지 못한다면 다음 테스팅까지 더 이상 추천되지 않을 것입니다.

  

For vendors

우리는 보안 소프트웨어 벤더에게 다양한 서비스를 제공합니다. 위에 언급한 유료 PSC64 테스팅 외에도 진보된 분석을 위한 원론적 방법론에 근거한 상업적인 테스팅을 제공합니다. 윈도우 내부구조, 보안 소프트웨어의 구현, 보안 소프트웨어의 설계, 리버스 엔지니어링과 맬웨어 분석에 연관된 컨설팅 서비스와 연구도 제공합니다.

 


WRITTEN BY
하이런

,