설명

SSTS64 는 대부분의 Internet Security 제품, HIPS, 개인 방화벽, 행위기반 탐지 같은 어플리케이션

기반의 보안 모델과 행위기반 통제를 수행하는 윈도우즈 보안 소프트웨어를 테스팅하는데 쓰이는 

툴의 모음입니다. SSTS64 는 보안 소프트웨어의 다양한 기능들을 우회하기 위해 시도하는 독립

프로그램의 개념에 기반을 두고 있습니다. SSTS64 의 각 테스트는 보안 소프트웨어의 단일 기능

혹은 몇가지 밀접하게 연결된 기능에 대응됩니다.

SSTS64는 32bit 윈도우즈 XP 플랫폼상의 보안 제품을 테스트했던 기존의 SSTS 를 대체합니다.

SSTS64의 기본 개념은 SSTS에 기반을 두고 있으나 코드는 완전히 새롭게 재설계되었습니다.

많은 테스트가 개선되었고 64비트나 윈도우즈7 플랫폼과 호환되지 않는 것들은 제거되었습니다.

복수개의 테스트에 적용된 아주 유사한 기법들은 복수개의 기법을 수행하는 하나의 테스트로

합쳐졌습니다. 일부 테스트나 기법은 완전히 새로이 도입된 것입니다. 전체 테스트 셋은 유니코드

지원을 위해 재작성되었습니다.

SSTS64는 Proactive Security Challenge 64 프로젝트에 사용됩니다. 목표는 64비트 윈도우즈상의

보안 소프트웨어의 능력을 평가하고 비교하기 위함입니다. SSTS64는 최대한 투명한 테스팅을 위해

소스코드와 함께 공개됩니다. 여기에는 아웃 바운드 보호 테스트, 자체 보호, 키로거 테스트같은 많은

테스트가 포함되어 있습니다. SSTS64 의 테스트는 단일화 된 구조와 사용자 인터페이스를 가짐으로써

사용이 빠르고 쉽고 효율적입니다.

 

변경이력

  • 2013-01-18: Minor bugfixes in improvements.
  • 2012-02-05: Minor bugfixes in improvements.
  • 2011-11-26: Minor bugfixes in improvements.
  • 2011-11-07: The first version of SSTS64 with 110 tests was released.
  •  

    다운로드

    http://www.matousec.com/downloads/ssts64.7z

     

    시스템 요구사항

    64bit 윈도우즈 7 서비스팩 1

    인터넷 익스플로어 9

    (다른 윈도우 버전 및 브라우저와도 호환될 수 있으나 보장은 하지 않음)

     

    상업 혹은 비즈니스 목적의 사용

    개인 용도 및 비상업적 용도에 한해 무료로 배포 가능


    WRITTEN BY
    하이런

    ,

    2013.01.18 일자로 SSTS64 에 적용된 세번째 변경사항에 대한 문의 메일을 보냈었는데 다음날 회신이 왔다.(http://www.matousec.com/projects/security-software-testing-suite-64/)

    요약하면,

    1. 금번 마이너 업데이트로 인한 테스트 셋의 전반적인 기능에는 영향이 없다.

    2. 변경사항

    - configurator tool : 환경설정 파일에 불필요한 파일과 레지스트리 항목 제거(사용자의 수정작업에 편의성 향상)

    - 버그 수정: 다양한 보안 소프트웨어 테스트시 발생한 사소한 문제들 수정

     

    아래는 회신 전문


    Hello,

    thank you for your message.
    Minor updates are really small updates of code that do not affect the overall performance of the suite.
    For example, we have made changes in the configurator tool, which contains a list of files and registry
    entries that should be ignored. These filters have been extended so that the human tester has an easier
    work while cleaning the generated configuration file. Other changes are related to minor bugs detected
    during testing various security software products. If we detect an unusual behavior of a product, we
    analyse the case and from time to time we reveal a minor problem in the implementation of some test
    and we fix it in a way its functionality is preserved for all the other products, plus it newly works
    well for the particular product that behaved in a strange way.

    Kind Regards,

    --
    www.matousec.com Research


    WRITTEN BY
    하이런

    ,

    PSC64 Testing Guideline

     

    [테스트 환경]

    Windows7 SP1 64bit(클린 OS) + Internet Explorer 9 64bit (기본 브라우저로 지정)

    - UAC off

    - 방화벽 off

    - 윈도우 디펜더 off

    - 2명의 테스터(테스트 결과를 상호 점검하여 오류를 제거)

     

    [Step]

    1. 테스트 할 제품을 설치하기 전에 SSTS64 Configurator 툴을 사용하여 시스템의 스냅샷을 생성하라.

    이때 반드시 64비트 IE 9 와 작업 관리자를 실행한 상태에서 툴을 실행해야 함.

    도스창에서 다음 명령을 실행한다.

    >configurator.exe –c 스냅파일명 (시스템 리소스와 시간이 많이 걸림… 약 30분)

     

    [스냅샷에 포함되는 정보들]

    - 프로세스

    - 시스템 서비스와 드라이버

    - 로컬 디스크에 설치된 파일과 디렉토리

    - 레지스트리 항목

     

    2. 테스트 할 제품을 설치하라.

    3. 시스템을 재부팅하라.

    4. 보안 제품을 최신 업데이트하라.

    5. IE 9 64bit 를 실행하여 웹 페이지를 방문하라.

    윈도우 탐색기를 통해 인터넷 페이지를 방문하라.

    임의로 서명된 어플리케이션의 코드 서명된 인증서에 대한 정보를 확인하기 위해 ping.exe 을 사용해서 IP주소에 핑하라.

    schtasks.exe 를 사용하여 작업을 예약하라.(ex. schtasks /create /tn "execute notepad" /tr c:\windows\notepad.exe /sc daily /st 15:15)

    wscript.exe 로 비쥬얼 베이직 스크립트를 실행하라.

    Hello.vbs

    작업관리자를 실행하여 몇개의 프로세스를 종료하라.

    시스템을 재부팅하라.

    cmd.exe 를 부모 프로세스로 사용하여 프로그램들을 실행하라.(특히 파라메터로 실행될 수 있는 64bit IE9 와 윈도우 탐색기 등)

    테스트 제품이 어떤 행동에 대한 질문을 한다면 허용을 선택하고 가능하다면 저장할 수 있도록 하라.

    6. 테스트 할 제품을 최대로 사용 가능한 보안 수준으로 설정하라.(Methology and rules 참조)

    제품에 의한 자동 결정을 최대한 배제하고 사용자의 의사 결정에 따라 이벤트를 처리하도록 설정할 것.

    ex) hosts 파일 보호 on, 파일 무결성 검사 on, 네트워크 규칙 초기화, 프로그램 규칙 자동 추가 off

    7. 테스트 제품을 인터랙티브 모드 혹은 그와 유사한 동작을 하도록 설정되었는지 확인.

    이는 어플리케이션의 모든 결정되지 않은 행위에 대해 사용자의 의사를 반영하도록 한다.

    ex) 방화벽 알림창, 자체보호 알림창 on

    8. SSTS64 환경설정 툴을 사용하여 현재의 환경 설정 파일을 생성하라. 환경 설정 툴이 동작하고 있을 때 64비트 IE 와 작업 관리자 그리고 테스트 제품의 GUI가 반드시 실행중이어야 한다.

    ssts64.conf 파일에 생성된 LAN 인터페이스 주소도 설정해야 한다. 파일 리스트와 레지스트리 항목이 테스트 제품과 인스톨러에 의해 생성된 것만 포함될 수 있게 설정 파일을 수정하라.

    > configurator.exe –X [스냅샷 파일]

    옵션:

    -c    시스템 스냅샷 생성 및 저장

    -x    스냅샷으로 환경설정 파일 생성(하위 디렉토리를 포함하지 않음)

    -X    스냅샷으로 환경설정 파일 생성(하위 디렉토리를 포함)

      

    9. 가능하다면 제품 종료 시도에 대한 패스워드 보호 기능을 활성화하라.

    10. 시스템 재부팅 후 5번 스텝을 반복하고 윈도우 업데이트를 수행하라. 모든 일반적인 행위가 제품의 질의창을 발생시키지 않는 것을 확인하라. 아직도 물어본다면 이 조건을 만족하도록 설정을 변경하고 이 스텝을 반복하라.

    11. 머신에서 더 이상 경고가 발생하지 않는다면 테스트할 준비가 된 것이다. IE9 64비트와 작업 관리자를 실행하고 테스트 하는 동안 실행하도록 하라. 테스트 제품의 GUI도 열려있어야 한다.

    12. 테스트 머신에 테스트 파일을 복사하라. 만일 제품의 엔진과 관련된 문제가 생기면 파일 복사에 대한 예외를 허용하라. 불가능 하다면 AV 엔진을 비활성화하라.

    13. 시스템 상태를 저장하라.

    14. 테스트를 수행하라. 제품이 테스트를 통과하면 다시 반복하고 두번째에도 통과한다면 성공으로 기록하고 다음 테스트를 진행하라. 만일 테스트를 실패한다면 실패로 기록하고 저장된 시스템 상태를 복원하고 다음 레벨의 테스트를 진행하라. 테스트 중 BSOD 나 시스템이 파손되어 재부팅이 불가하거나 다른 방식으로 심하게 손상을 입은 경우 테스트가 실패한 것으로 간주한다.

    15. 종료 테스트 기법이 성공하더라도 종료된 프로세스가 없기 때문에 테스트를 실패로 보고하지 않는다면, 몇 번 더 반복하고 최대한 제품을 사용하도록 하라. 제품 업데이트, 시스템 검사 수행, 제품이 로그를 기록하고 리포트를 작성하는 것과 관련된 여러 행위 등이 예가 될 수 있다. 주어진 테스트에 대한 점수 정의를 따르는 테스트 결과가 의심스럽다면 테스트가 보고하는 결과를 맹신하지 마라. My leaks 페이지나 네트워크 패킷 스니퍼가 유용할 수 있다.

     

    Tip.

    1. 테스트를 시작하기 전에 환경설정 파일(ssts64.conf)을 해당 테스트 레벨 폴더에 복사할 것.

    2. 시작 프로그램 폴더에 다음 프로그램의 바로가기를 생성하여 재부팅시 자동 시작하면 편리하다.

    - %system32%cmd.exe

    - %program files%Internet explorer\iexplore.exe

    - %system32%taskmgr.exe

    - 제품 메인UI 실행 프로세스


    WRITTEN BY
    하이런

    ,

    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
    하이런

    ,