2022년 고품질 SW개발 컨설팅 및 테스팅 지원 사업 테스팅 사례 공유 합니다.
(재)전주정보문화산업진흥원의 SW품질역량센터에서는
2011년 부터 전라북도 ICT/SW기업을 대상으로 품질 향상을 위한 컨설팅 및 테스팅을 지원하고 있습니다.
본 테스팅 사례는 농업0000 시스템 소스코드 시큐어 코딩 분석을 지원한 사례입니다.
목차
1. 테스팅 개요
- 기업명 : 000 소프트
- 기업주소 : 전라북도 전주시 ***
- 테스팅 내용 : 농업0000 정보 시스템 소스코드 시큐어 코딩 분석 테스팅 지원
- 테스팅 목적 : 기업 개발 제품의 소스코드에 대한 보안성 테스트를 통한 보안 취약점 진단 및 가이드를 진행하고, 보안성을 강화를 통해서 고객에게 고품질 제품을 전달하기 위한 테스팅을 목표
2. 테스팅 일정
수 행 일 정 | 컨설팅 내용 | 담 당 자 |
2022년 4월 8일(금) | 테스팅 요청 및 신청서 접수 | 기업담당자 |
2022년 4월 8일(금) ~ 2022년 4월 21일(목) |
시큐어 코딩 테스팅 | 기업담당자 테스터(JICA) |
2022년 4월 22일(금) | 테스팅 보고서 작성 | 테스터(JICA) |
3. 테스팅 결과 요약
본 테스팅의 지원 내용은 다음과 같습니다.
1) 시험 환경
No | 구 분 | 기본정보 |
1 | 사용 도구 | SPARROW SCE |
2 | 프로그래밍언어 | 자바 |
3 | 테스트 서버 OS | Windows Server 2009 |
4 | 분석 유형 | 소스코드 보안 약점 |
2) 시험 장소
신청 기업 내에서 소스코드 분석 수행
3) 점검 항목
점검 항목은 분석하여 검출하는 기준으로서 품질 및 보안 (‘Quality’, ‘Security’) 품질 특성 기반으로 266개 항목을 설정함
순번 | 분류 | 체커 | 위험도 | 항목 내용 |
1 | Security | RELIANCE_ON_DNS_LOOKUPS_IN_A_SECURITY_DECISION | 2 | DNS 서버는 스푸핑 공격 대상이기 때문에 DNS명에 의존할 경우, 공격자가 DNS를 수정하여 공격자 IP주소로 도메인명을 지정할 수 있습니다. |
2 | Security | SECURITY.CALL.REMOVE.LOOP | 3 | Loop 에서 바로 컬렉션의 아이템을 삭제 할 경우를 검출 합니다. |
3 | Security | SECURITY.CALL.THROWS.FINALLY | 3 | 메소드에서 throw 한 예외들에 대한 예외처리를 하지 않았을 경우를 검출 합니다. |
4 | Security | SECURITY.CALL.UNLOCK | 2 | unlock() 메소드를 finally 블럭 내에서 호출 하지 않은 경우를 검출합니다. |
5 | Security | SECURITY.LOOP_VARIABLE_FINAL | 3 | For 문에서 인스턴스를 초기화 할때 타입 앞에 final 한정자가 있는지를 검사합니다. |
6 | Security | SECURITY.METHOD.LOCALE | 2 | 문자열에 toUpperCase(), 또는 toLowerCase()를 할 때 locale 설정이 없을 경우를 검출 합니다. |
7 | Security | SECURITY.METHOD.OVERRIDE | 2 | 지정한 메소드가 public 이지만 final 이 아닐 경우를 검출합니다. |
8 | Security | SECURITY.METHOD.OVERRIDE.CLONEABLE | 1 | clone() 메소드에서 오버라이딩이 가능한 메소드가 호출 될 경우를 검출합니다. |
9 | Security | SECURITY.METHOD.OVERRIDE.GETPERMISSIONS | 1 | URLClassLoader 를 상속받은 클래스의 getPermissions 오버라이딩 함수에서 super.getPermissions 를 호출하지 않는 경우를 검출합니다. |
10 | Security | SECURITY.METHOD.OVERRIDE.STATIC | 3 | 상속하는 클래스에 오버라이딩 메소드가 public 정적일 경우를 검출 합니다. |
11 | Security | SECURITY.METHOD.PROTECTED | 2 | 메소드가 protected 한정자를 갖지만 하위 클래스에서 public 으로 오버라이딩 할 경우를 검출합니다. |
12 | Security | LEFTOVER_DEBUG_CODE.TOBE.JS | 4 | 디버깅 목적으로 삽입된 코드를 검출합니다. |
13 | Security | FORMAT_STRING | 3 | System.out.format() 을 사용할 때 포맷 스트링을 사용하지 않거나 자료형과 맞지 않는 포맷 스트링을 사용하였을 경우를 검출합니다. |
14 | Security | WEAK_PASSWORD_ALGORITHM.STRING | 3 | 소스 코드 내에 취약한 암호화 알고리즘 사용을 검출합니다. |
15 | Security | DO_NOT_COMPARE_OR_INSPECT_THE_STRING_REPRESENTATION_OF_FLOATING_POINT_VALUES | 2 | 실수 값을 문자열 표현을 통해 비교하거나 검사하면 안됩니다. |
16 | Security | FORBIDDEN.INSECURE_RANDOM.JS | 3 | 보안에 취약한 random 함수를 사용하였을때 검출합니다. |
17 | Security | SECURITY.CALL.SECURITY_CHECK | 1 | 지정한 메소드 내에 보안 검사를 하는 메소드 호출이 있는지를 확인 합니다. |
18 | Security | INSUFFICIENT_SESSION_ID.CONFIG | 3 | 짧은 세션 ID를 사용하면 위험합니다. |
19 | Security | SECURITY.CALL.REFLECTION | 1 | 클래스, 메소드, 필드에 접근 권한을 설정할 수 있는 reflection 을 사용하였을 경우를 검출합니다. |
20 | Security | SECURITY.IMPROPER_RESTORATION_ON_FAILURE | 3 | try 블록에서 예외를 throw하고, 그 아래에서 필드에 값을 할당 하는 경우를 검출합니다. |
21 | Security | SECURITY.SYNCHRONIZE.ORDER | 1 | 설정하고 해제하는 잠금 들이 같은 순서로 진행 될 경우 deadlock 이 발생할 수 있습니다. |
22 | Security | SET_HTTP_ONLY_COOKIES.WEB.CONFIG | 2 | httpCookies의 httpOnlyCookies는 true로 설정되어야 합니다. |
23 | Security | XSS.WARNING | 4 | 외부에서 입력한 문자열을 특정 조건부 필터링 등을 사용하여 결과 페이지를 생성할 경우 접속자의 권한으로 부적절한 스크립트가 수행되어 정보 유출될 수 있습니다. |
.....
* 모두 표기할 수 없어서 일부만 기재하였습니다.
4) 결과 요약
○ 본 소스코드 품질 테스팅은 ‘농업0000 정보 시스템’을 대상으로 진행하였음. 품질에 대한 영향도 평가 기준에 따라 ‘안전’ 결함 주의보 확인.
영향도 | 설 명 |
위험 | Level 1 ~ Level5 까지 21개 이상 결함이 발생할 경우. 시스템에 잠재적인 이슈로 인해 추후에 비즈니스 영역에 피해를 미칠 위험성이 존재 |
주의 | Level 1 ~ Level5 까지 10개 이상 ~ 21개 이내 결함이 발생할 경우. 시스템에 잠재적인 이슈로 인해 추후에 결함이 발생할 수 있는 상태 |
안전 | Level 1 ~ Level5 까지 10개 이내 결함이 발생할 경우. 서비스에 큰 영향을 미치지 않고 중요하지 않은 품질 정보가 노출된 상태 |
○ 소스코드 통계
- 소스 파일 개수 405개, 빌드 라인 수 131,512라인
○ Top 10 이슈 검출 파일
○ 이슈분포
- Level 1에서 38개, Level 2에서 3개, Level 3에서 10개, 위험도가 낮은 수준인 Level 4에서 8개, 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 외 다수
'테스팅' 카테고리의 다른 글
[테스팅] GS인증 테스팅 무료로 지원해드립니다 (0) | 2023.07.11 |
---|---|
[테스팅] 전라북도 소프트웨어 테스팅 지원 서비스 (수시 접수) (0) | 2023.07.11 |
2022년 테스팅 사례 공유 - CMS 솔루션 소스코드 정적 분석 테스팅 지원 (0) | 2023.04.14 |
2022년 테스팅 사례 공유 - 한방0000 제품 관리자 서버 보안성 테스팅 (0) | 2023.04.14 |
2022년 테스팅 사례 공유 - 한방0000 제품 기능 적합성 테스팅 (0) | 2023.04.14 |