Study_Note

security test 본문

CSTS

security test

12월7일생 2024. 8. 13. 11:24
728x90

반응형

보안성 테스트 (Security Test)

보안성은 시스템이 정보와 데이터를 보호하는 정도를 의미하며, 다음과 같은 다섯 가지 부특성을 포함합니다.

  • 기밀성(Confidentiality) : 접근 권한이 있는 사람만이 데이터에 접근할 수 있도록 하는 정도.
  • 무결성(Integrity) : 시스템 또는 구성 요소가 무단으로 접근되거나 변경되지 않도록 보호하는 정도.
  • 부인 방지성(Non-repudiation) : 사건 및 행위 후 이를 부인하지 못하도록, 행위와 사건을 입증할 수 있는 정도.
  • 인증성(Authenticity) : 사건 및 행위의 실제 행위자를 증명할 수 있는 정도.

시스템의 보안성을 검증하는 주요 방법 중 하나는 침입 테스트(Penetration Test)입니다. 침입 테스트는 해커의 관점에서 소프트웨어 시스템의 취약점을 찾아내는 방법으로, 주로 경험이 풍부한 전문가들이 수행합니다. 이들은 과거에 사용된 다양한 침입 시나리오를 이용해 소프트웨어의 취약점을 찾아내고 해결책을 제시합니다. 그러나 침입 테스트에서 취약점이 발견되지 않았다고 해서 시스템의 보안성이 완전히 확보되었다고 단언할 수는 없습니다. 모든 침입 시나리오를 미리 테스트하는 것이 현실적으로 불가능하고, 새로운 침입 시나리오가 계속해서 개발될 수 있기 때문입니다.

 

ISO/IEC 25010

ISO/IEC 25010ISO/IEC 25010은 소프트웨어 제품 품질 모델 및 품질 측정에 관한 국제 표준입니다. 이 표준은 ISO/IEC 25000 계열(일명 SQuaRE 시리즈)의 일부로, 소프트웨어 제품 품질 평가를

staedtler1207.tistory.com

침입 테스트(Penetration Testing)

시스템의 보안 취약점을 식별하고 이를 악용할 가능성을 평가하기 위해 실제 공격자의 관점에서 시스템을 테스트하는 방법입니다. 침입 테스트는 다양한 방식으로 수행될 수 있으며, 주로 다음과 같은 방법들을 포함합니다.

  • 블랙박스 테스트(Black Box Testing)
    • 설명 : 테스트 수행자가 시스템에 대한 내부 정보 없이 외부 사용자처럼 접근하여 취약점을 탐색하는 방법입니다. 실제 해커의 접근 방식과 유사합니다.
    • 장점 : 내부 정보 없이 공격을 시도하므로, 외부 공격자에게 시스템이 어떻게 노출되는지를 현실적으로 평가할 수 있습니다.
    • 단점 : 내부 구조를 모르는 상태에서 진행되므로, 발견할 수 있는 취약점의 범위가 제한적일 수 있습니다.
  • 화이트박스 테스트(White Box Testing)
    • 설명 : 테스트 수행자가 시스템의 소스 코드, 아키텍처, 내부 네트워크 구조 등 모든 정보를 가지고 테스트를 수행하는 방법입니다. 
    • 장점 : 시스템의 내부를 깊이 있게 분석할 수 있어, 숨겨진 취약점까지 탐색할 수 있습니다. 
    • 단점 : 내부 정보가 필요한 만큼 테스트 과정이 복잡하고, 많은 시간이 소요될 수 있습니다.
  • 그레이박스 테스트(Gray Box Testing)
    • 설명 : 블랙박스와 화이트박스 테스트의 중간 형태로, 테스트 수행자가 시스템의 일부 정보(예: 네트워크 다이어그램, API 문서 등)를 알고 있는 상태에서 테스트를 수행합니다.
    • 장점 : 시스템에 대한 부분적인 지식을 활용하여, 보다 효과적으로 취약점을 찾을 수 있습니다.
    • 단점 : 시스템에 대한 완전한 정보가 없기 때문에, 일부 취약점은 놓칠 가능성이 있습니다.
  • 외부 테스트(External Testing)
    • 설명 : 외부 공격자가 시스템에 접근할 때 발생할 수 있는 취약점을 찾기 위해 외부 네트워크에서 시스템을 테스트하는 방법입니다.
    • 장점 : 외부에서의 공격 경로를 평가할 수 있어, 실제 침입 시도를 시뮬레이션하는 데 유용합니다.
    • 단점 : 내부 네트워크나 시스템 내부의 취약점은 탐지할 수 없습니다.
  • 내부 테스트(Internal Testing)
    • 설명 : 내부 사용자가 시스템에 접근할 때 발생할 수 있는 취약점을 찾기 위해 내부 네트워크에서 시스템을 테스트하는 방법입니다.
    • 장점 : 내부 사용자나 내부에서 발생할 수 있는 위협을 평가할 수 있습니다.
    • 단점 : 외부 공격에 대한 테스트는 포함되지 않기 때문에, 외부 침입 시도의 취약점을 파악하는 데는 한계가 있습니다.
  • 표적 공격 시뮬레이션(Targeted Testing)
    • 설명 : 조직 내 보안 팀과 협력하여, 실제 공격자가 특정 목표를 대상으로 공격을 시뮬레이션하는 방법입니다. "레드팀-블루팀" 방식으로도 불립니다.
    • 장점 : 실제 상황과 유사하게 공격 시나리오를 구성할 수 있으며, 보안 팀의 대응 능력을 평가할 수 있습니다.
    • 단점 : 복잡한 시나리오와 상호 협력이 필요하여, 실행이 어려울 수 있습니다.
  • 사회공학(Social Engineering)
    • 설명 : 인간의 심리적 약점을 이용하여, 비밀번호나 기밀 정보를 얻기 위한 방법입니다. 피싱, 스피어 피싱, 전화 사기 등의 방식이 포함됩니다.
    • 장점 : 기술적인 보안 외에도, 조직의 보안 문화와 직원의 보안 인식을 평가할 수 있습니다.
    • 단점 : 직원들에게 부정적인 영향을 미칠 수 있으며, 테스트의 윤리적 측면도 고려해야 합니다.
  • 물리적 보안 테스트(Physical Security Testing)
    • 설명 : 물리적 접근을 통해 시스템이나 데이터에 대한 물리적 침입 가능성을 테스트하는 방법입니다.
    • 장점 : 데이터 센터, 서버룸, 오피스 등의 물리적 보안 상태를 평가할 수 있습니다.
    • 단점 : 실제 물리적 손상 위험이 존재하므로, 신중하게 계획해야 합니다.
  • 자동화 도구 사용
    • 설명 : 침입 테스트 도구를 사용하여 자동으로 시스템의 취약점을 스캔하고 분석하는 방법입니다. Netsparker, Burp Suite, OWASP ZAP 등 다양한 도구가 있습니다.
    • 장점 : 반복적이고 표준화된 테스트를 빠르게 수행할 수 있습니다.
    • 단점 : 자동화된 도구가 모든 취약점을 발견할 수 없으며, 인간의 해석이 필요한 경우도 많습니다.

침입 테스트는 이러한 다양한 방법들을 활용하여 시스템의 보안성을 철저히 평가하고, 발견된 취약점을 해결하여 보안을 강화하는 데 목적이 있습니다.

 

또 다른 보안성 검증 방법으로는 정적 분석(Static Analysis)이 있습니다. 이 방법은 보안성이 높은 소프트웨어가 준수해야 할 코딩 규칙을 정의하고, 정적 분석 도구를 통해 소스 코드가 이러한 규칙을 준수하는지 검사하는 방식입니다.

 

static analysis vs dynamic analysis

정적분석(Static Analysis) vs 동적분석(Dynamic Analysis) 모든 공학 분야에서, 건물을 수백 층으로 손톱만한 전자 회로까지, 우리는 설계의 정확성을 확인하기 위해 테스트를 진행합니다. 이는 해당 분야

staedtler1207.tistory.com

 

CWE(Common Weakness Enumeration)

소스 코드에 존재할 수 있는 신뢰성 및 보안성과 관련된 코딩 규칙 목록을 정의한 것입니다. 그중 CWE-685는 C 언어로 작성된 소스 코드에 관한 규칙 목록으로, 'stack overflow', 'buffer overflow', 'null pointer dereference' 등을 포함하며, CWE-659는 C++ 언어에 관한 규칙 목록으로, 'uncaught exception', 'declaration of catch for generic exception' 등을 포함합니다. CWE-660은 Java 언어와 관련된 규칙 목록으로, 'direct use of unsafe JNI', 'public clone() method without final' 등을 포함합니다. 이러한 CWE 코딩 규칙은 실제로 방위사업청에서 제시한 '무기체계 소프트웨어 개발 및 관리 매뉴얼'의 무기체계 연구개발사업에 관한 보안성 시험 부분에서 CWE-658, CWE-659, CWE-660 등을 바탕으로 정적 시험을 수행하도록 명시되어 있습니다.

 

CWE - Common Weakness Enumeration

Community Engagement Artificial Intelligence Working Group  Join AI WG Hardware CWE Special Interest Group  Join HW CWE SIG Root Cause Mapping Working Group  Join RCM WG User Experience Working Group  Join UE WG CWE Board  Read meeting minutes More in

cwe.mitre.org

 

'CSTS' 카테고리의 다른 글

portability test  (1) 2024.08.27
maintainability test  (0) 2024.08.26
reliability test  (0) 2024.08.12
usability test  (0) 2024.08.09
compatibility test  (0) 2024.08.08