본문 바로가기

테스팅

[테스팅] 2023년 테스팅 사례 공유 - 강동0000 소스코드 보안 취약점 진단 테스팅 지원

2023년 고품질 SW개발 컨설팅 및 테스팅 지원 사업 테스팅 사례 공유 합니다.

(재)전주정보문화산업진흥원의 SW품질역량센터에서는

2011년 부터 전라북도 ICT/SW기업을 대상으로 품질 향상을 위한 컨설팅 및 테스팅을 지원하고 있습니다.

 

목차

     

    1. 테스팅 개요

    - 기업명 : 000 00

    - 기업주소 : 전라북도 전주시 ***

    - 테스팅 내용 :  강동00000 소스코드 보안 취약점 진단 테스팅

    구 분 제품 개요
    제품명(모듈명) 강동00000 소스코드 보안 취약점 진단 테스팅
    제품설명 강동00000 대표 홈페이지

     

    - 테스팅 목적 : 기업 개발 제품의 소스코드에 대한 보안 취약점 테스트를 통한 보안 취약점 진단 및 가이드를 진행하고, 보안 품질 강화를 통해서 고객에게 고품질 제품을 전달하기 위한 테스팅을 목표

     

    2. 테스팅 일정

    수 행 일 정 컨설팅 내용 담 당 자
    2023.4.3. 테스팅 신청 000 차장(나0000)
    2023.4.12. 테스팅 신청서 접수 김영찬 선임
    2023.8.1. 스패로우 설치 및 가이드
    소스코드 분석 및 가이드
    김영찬 선임
    000 연구원(0000)
    2023.8.11. 보고서 작성 김영찬 선임

     

    3. 테스팅 결과 요약

    본 테스팅의 지원 내용은 다음과 같습니다.

     

    1) 시험 환경

    No 구 분 기본정보
    1 사용 도구 SPARROW SCE
    2 프로그래밍언어 Java, JSP
    3 테스트 서버 OS Windows Server 2009
    4 분석 유형 소스코드 시큐어 코딩 분석

     

    2) 시험 장소

    기업 본사 내에 시험진

     

    3) 점검 항목

    점검 항목은 분석하여 검출하는 기준으로서 품질 (‘Security’) 품질 특성 기반으로 252개 항목을 설정함

     

     

    순번 타입 체커 위험도 항목 내용
    1 Quality USE_OF_SOCKETS 2 EJB 규격에는 bean내부에서 서버 소켓(ServerSocket)을 직접 사용하여 클라이언트에 서비스를 제공하는 것을 금지하고 있습니다.
    2 Code Convention BAD_THROW.FORBIDDEN_EXCEPTION 3 허용된 예외 클래스 외의 예외 객체를 던지는 경우를 검출합니다.
    3 Quality BAD_CALL.FORBIDDEN 5 사전에 정의된 금지된 메소드를 호출하는 경우를 검출합니다.
    4 Quality DIRECT_MANAGEMENT_OF_CONNECTIONS 2 연결 직접 관리 DriverManager.getConnection을 호출하는 경우를 검출합니다.
    5 Quality DIRECT_USE_OF_SOCKETS 2 소켓을 직접 사용하는 경우를 검출합니다.
    6 Quality USING_SYSTEM_EXIT 2 VM을 종료시키는 System.exit()과 같은 메소드를 호출하는 경우 Denial of Service(DOS) 공격의 진입로를 만들어 줍니다.
    7 Quality LEAK.RESOURCE.PHP 1 특정 자원이 할당이 되었지만 자원 회수가 되지 않은 경우를 검출합니다.
    8 Quality RESOURCE_LEAK 1 특정 자원이 할당이 되었지만, JVM의 가비지콜렉터에 의해서 빠르게 자원 회수가 되지 않을 경우에 발생합니다.
    9 Quality RESOURCE_LEAK_CSHARP 1 특정 자원이 할당이 되었지만, 자원 회수가 되지 않았을 경우에 발생합니다.
    10 Quality USE_AFTER_RELEASE.RESOURCE.PHP 1 자원을 반환한 후에 다시 사용하는 경우를 검출합니다.
    11 Code Convention INFINITE_RECURSIVE_CALL 2 재귀의 순환횟수를 제어하지 못하여 무한 재귀 상태일 경우 메모리나 스택등의 자원을 계속해서 할당 받기 때문에 성능 저하 및 의도치 않은 시스템 종료를 초래할 수 있습니다.
    12 Code Convention OVERRIDE_HASHCODE_AND_EQUALS 2 hashCode() 메소드와 equals() 메소드를 오버라이딩할 때, 모두 오버라이딩 하지 않은 경우를 검출합니다.
    13 Code Convention UNCONTROLLED_RECURSION.OBJC 2 재귀 호출 함수에 제어문이 없어서 무한 재귀 호출에 빠질 위험이 있는 수 있습니다.
    14 Quality FORWARD_NULL 1 레퍼런스 변수의 널 확인을 하고 나서, 나중에 역참조되는 경우 발생합니다.
    15 Quality FORWARD_NULL_CSHARP 1 레퍼런스 변수의 널 확인을 하고 나서, 나중에 역참조되는 경우 발생합니다.
    16 Quality NULL_DEREFERENCE.PHP 1 널인 변수를 참조하는 경우를 검출합니다.
    17 Quality NULL_RETURN 1 널 값이 반환되는 경우 널 확인을 하지 않고 역참조하는 경우 발생합니다.
    18 Quality NULL_RETURN_CSHARP 1 널 값이 반환되는 경우 널 확인을 하지 않고 역참조하는 경우 발생합니다.
    19 Quality NULL_RETURN_STD 1 Java standard library들 중에 널을 반환할 가능성이 있는 메소드들로부터 값을 특정 변수에 할당한 뒤, 이 변수의 널 확인을 하지 않고 바로 역참조하는 경우에 발생합니다.
    20 Quality NULL_RETURN_STD_CSHARP 1 C# library 중에 널을 반환할 가능성이 있는 메소드들로부터 값을 특정 변수에 할당한 뒤, 이 변수의 널 확인을 하지 않고 바로 역참조하는 경우에 발생합니다.
    21 Quality NULL_RETURN_USR 1 사용자가 작성한 library들 중에 널을 반환할 가능성이 있는 메소드들로부터 값을 특정 변수에 할당한 뒤, 이 변수의 널 확인을 하지 않고 바로 역참조하는 경우에 발생합니다.
    22 Quality NULL_RETURN_USR_CSHARP 1 사용자가 작성한 library들 중에 널을 반환할 가능성이 있는 메소드들로부터 값을 특정 변수에 할당한 뒤, 이 변수의 널 확인을 하지 않고 바로 역참조하는 경우에 발생합니다.

    .... 일부 생략함

     

    4) 결과 요약

    본 소스코드 품질 테스팅은 강동0000을 대상으로 진행하였음. 품질에 대한 영향도 평가 기준에 따라 안전결함 주의보 확인.

    영향도 설 명
    위험 Level 1 ~ Level5 까지 21개 이상 결함이 발생할 경우. 시스템에 잠재적인 이슈로 인해 추후에 비즈니스 영역에 피해를 미칠 위험성이 존재
    주의 Level 1 ~ Level5 까지 10개 이상 ~ 21개 이내 결함이 발생할 경우. 시스템에 잠재적인 이슈로 인해 추후에 결함이 발생할 수 있는 상태
    안전 Level 1 ~ Level5 까지 10개 이내 결함이 발생할 경우. 서비스에 큰 영향을 미치지 않고 중요하지 않은 품질 정보가 노출된 상태

    [표 7] 영향도 평가 기준

     

     

    소스코드 통계

    - 소스 파일 개수 총 3,327, 빌드 라인 수 718,378라인

    Top 10 이슈 검출 파일

     

    이슈분포

    - Level 1에서 37, Level 2에서 13, Level 3에서 2,740, 위험도가 낮은 수준인 Level 4에서 5, Level 5에서 0개 이슈 검출

     

    Top 10 이슈 검출 체커

    체커 타입

     

     

     

    김영찬 (소프트웨어 품질 전문가)

    (재)전주정보문화산업진흥원(JICA)

    소프트웨어 개발자로 10년간 발로 코딩 하다가 한계를 느끼고, 

    2015년부터 소프트웨어 품질에 몸을 담고 기업을 돕고 있음

    email.  sweng@jica.or.kr  / tel. 063-281-4113

    주업무 : 소프트웨어 품질 컨설팅, 테스팅,  KOLAS 기술책임자, 개발자 네트워크 운영

    자격

      - SP, CMMI, VSE(ISO 29110), ISMS(ISO 27001) 인증 심사원

      - AIT, ISTQB FL, CSTS, 29119 외 다수