개인 또는 라우팅할 수 없는 IP 주소는 일반적으로 가정 또는 회사 네트워크 내에서 사용되며 일반적으로 해당 네트워크 외부의 누구에게도 알려지지 않습니다.

 

[공격피해]

사이버 범죄자는 피해자가 사용 중인 사설 IP 주소 범위를 식별하여 추가 정보 수집을 지원하여 잠재적인 손상으로 이어질 수 있습니다.

'보안 > 취약점' 카테고리의 다른 글

Allowed HTTP methods  (0) 2022.04.22
Insecure cookie  (0) 2022.04.22
Missing 'X-Frame-Options' header  (0) 2022.04.22
Spring 라이브러리 보안 취약점  (0) 2022.04.11
보안에 필요한 필수 헤더의 누락  (0) 2022.03.11

이 헤더는 사용자의 눈에 보이지 않는 영역을 추가하여 사용자는 의도한대로 버튼을 누르지만 실제로는 다른 곳을 클릭하게 만드는 Clickjacking을 방지 할 수 있는 옵션입니다. 페이지 내부에 심어질 수 있는 iframe과 같은 곳에 접근을 제어하는 옵션으로 설정 가능

X-Frame-Options : DENY (모든 표시를 거부)
X-Frame-Options : SAMEORIGIN (동일한 출처에 대한 것만 표시)
X--Frame-Options : ALLOW FROM http://www.aaa.com (http:www.aaa.com에 대해서만 허용)

'보안 > 취약점' 카테고리의 다른 글

Insecure cookie  (0) 2022.04.22
Private IP address disclosure  (0) 2022.04.22
Spring 라이브러리 보안 취약점  (0) 2022.04.11
보안에 필요한 필수 헤더의 누락  (0) 2022.03.11
Password field with auto-complete 취약점 설명  (0) 2022.03.10

테스팅하는 목적 및 품질 특성을 염두에 두고, 소프트웨어 시스템을 검증하는 일련의 테스트 활동을 말한다.

 

테스트 유형은 다음과 같은 특정한 테스트 목적에 중점을 둔다.

- 소프트웨어가 수행하는 기능에 대한 테스팅

- 호환성, 신뢰성, 사용성과 같은 비기능적인 품질 특성 테스팅

- 소프트웨어나 시스템의 구조나 아키텍처에 대한 테스팅

- 변경 내용에 관련된 테스팅, 예를 들어, 결함에 대한 수정이 이루어졌는 지에 대한 확인 테스팅과 의도하지 않은 변경을 찾는 리그레션 테스팅

 

기능적 그리고 구조적 테스팅은 소프트웨어의 모델을 이용하거나 필요한 경우 이러한 모델을 생성해 가면서 테스팅하는 것이다. 예를 들어, 기능적 테스팅은 프로세스 흐름 모델, 상태 전이 모델이나 평문 언어 명세 등을 이용하여 테스팅할 수 있고, 구조적 테스팅은 제어 흐름 모델이나 메뉴 구조 모델 등을 이용하여 테스팅할 수 있지만, 이러한 산출물들이 개발단계에서 의미있게 도출하지 않았다면 리스크가 높은 업무에 한해서 테스터가 직접 이러한 산출물들을 만들어 내면서 테스트를 설계하는 것이다.

 

2.3.1 기능 테스팅

 

실행되어야 하는 서브시스템 또는 컴포넌트의 기능은 요구사항명세, 유즈케이스 또는 기능적인 명세와 같은 개발 산출물에 기술되어 있거나, 문서화되지 않을 수 있다. 여기서 기능은 시스템이 수행하는 그 "무엇"을 의미한다.

 

기능 테스팅은 문서화되어 있거나 테스터가 알고 있는 기능과 특징, 그리고 그것들과 특별한 시스템과의 상호 운용성을 고려하여 수행하며 모든 테스트 레벨에서 수행될 수 있다. 예를 들어, 컴포넌트 테스트 레벨에서의 기능 테스팅은 컴포넌트 명세를 기반으로 한다.

 

기능 테스팅은 명세기반기법을 이용해 소프트웨어나 시스템의 기능에서 테스트 조건과 테스트 케이스를 도출하고, 소프트웨어의 외부적인 행동을 고려한다.

 

ISO/IEC 9126에서는 기능성이라는 품질 특성에 적합성, 정확성, 준수성, 상호운용성, 보안성 등의 부특성을 포함시키고 있다.

 

보안성 테스팅은 악의적인 코드와 같은 외부로부터의 위협을 감지해 내는 것과 관련이 있는 기능(방화벽)을 확인한다.

- 보안정책 확인

- 시스템으로 침투하는 보호되지 않는 진입점(트랩도어) 파악

- 가용성, 무결성, 기밀성, 부인방지 등의 보안 관련 평가

 

상호운용성 테스팅은 하나 또는 여러 개의 명시된 컴포넌트나 시스템이 서로 상호작용하는 소프트웨어 제품의 능력을 평가하는 것이다.

 

 

 

 

2.3.2 비기능 테스팅

......

 

2.3.3 구조적 테스팅

......

 

2.3.4 확인(재)/리그레션 테스팅

......

 

'품질 > 품질통제' 카테고리의 다른 글

필통 사용성 평가  (0) 2022.11.20
SW결함 심각도별 분류  (0) 2022.05.17
테스트케이스 작성법  (0) 2022.04.01
품질자동화 Redmine 형식  (0) 2022.01.19
Redmine Feedback 품질자동화 양식  (0) 2022.01.13

Spring Cloud CVE-22963, Spring4Shell CVE-22965

 

웹 프레임워크에서 발견

가장 인기 높은 개발 프레임워크인 스프링(Spring)에서 제로데이 취약점이 발견

 

Spring Cloud Function (CVE-2022-22963)

대상: Spring Cloud Function 3.1.6v, 3.2.2v, 더 오래된 이전 버전도 영향 있음.

설명: 악성 Spring Expression에 의한 Spring Cloud Function의 원격 코드 실행

Spring Cloud Function 버전 3.1.6, 3.2.2 및 이전 지원되지 않는 버전에서 라우팅 기능을 사용할 때 사용자가 특수하게 조작된 SpEL (Spring Expression Language injection)을 라우팅 표현식으로 제공할 수 있어 원격 코드 실행 및 로컬 리소스 액세스가 발생할 수 있음.

 

Spring Cloud Function은 특정 런타임에서 비즈니스 로직을 분리할 수 있는 기술입니다. SpEL은(Spring Expression Language)은 Spring에서 사용하는 표현 방식으로 런타임에 개체 그래프 쿼리 및 작업을 수행할 때 주로 사용합니다.

 

=>이번 취약점은 SpEL 주입과 관련한 원격 코드의 실행을 애플리케이션이 신뢰할 수 없는 사용자 입력 코드 표현식을 사용하여 결과적으로 안전하지 않은 실행에 대한 CVE가 발견된 것.

 

Spring Cloud Functions는 Log4j 라이브러리만큼 널리 사용되지 않지만 보안 전문가들은 이 새로운 취약점으로 인해 많은 위협 행위자가 향후 몇 년 동안 암호화폐 채굴, 디도스, 랜섬웨어 캠페인을 시작할 것으로 예상.

 

조치 방안:

- Spring Cloud Function 3.1.7, 3.2.3으로 업그레이드

- WAF에서의 방어

 

Spring Framework RCE 취약점 (CVE-2022-22965), Spring4Shell in Spring Core

대상: JDK 9+에서 실행되는 Spring MVC 또는 Spring WebFlux 애플리케이션, 모든 버전의 Spring Core

설명: JDK 9+에서 데이터 바인딩을 통한 Spring Framework RCE

JDK 9++에서 실행되는 Spring MVC 또는 Spring WebFlux 애플리케이션은 데이터 바인딩을 통한 원격 코드 실행(RCE)에 취약할 수 있습니다. 특히 Tomcat에서 WAR 형태로 배포되는 경우입니다.

- Spring Boot 실행 가능한 jar, 즉 기본값으로 배포되는 경우 익스플로잇에 취약하지 않습니다

 

이것은 모든 Spring 프로젝트가 잠재적으로 영향을 박기 때문에 CVE-2022-22963보다 영향력이 클 것으로 예상됨.

 

취약점 대상:

- JDK 9+ 이상

- 서블릿 컨테이너로서의 Apache Tomcat 사용

- WAR로 패키징

- spring-webmvc 또는 spring-webflux 사용

 

대상 Spring framework 버전

- 5.3.0 ~ 5.3.17

- 5.2.0 ~ 5.2.19

 

조치방안:

- 5.3.18+ 상위 버전 업그레이드

- 5.2.20+ 상위 버전 업그레이드

- WAF에서의 방어

 

 

 

==> 테스트 시

최종적으로 사용할 Spring MVC는 DispatcherServlet을 시작으로 다양한 객체들이 상호작용하며 클라이언트의 요청을 처리한다.

 

1) Url을 분석해 적절한 컨트롤러를 찾아줌.

2) 컨트롤러에서 필요한 메소드를 불러줌

3) 컨트롤러의 결과 데이터를 뷰로 전달해줌

4) 적절한 뷰를 찾아줌

 

 

[참고 url]

https://blog.naver.com/witchcmo01/222688715410
https://blog.naver.com/vuswl6015/222691292691
https://blog.naver.com/sehyunfa/222688398555
https://blog.naver.com/shinequasar/222472441997
https://blog.naver.com/dlwodud978/222344845105
https://blog.naver.com/snowman0107/222349312313

 

제로데이 Spring4Shell 취약점 탐지와 대응

2022년 3 월 31일 Jeff Costlow Spring4Shell로 알려진 중요한 제로데이 취약점(CVE-2022-22965)이 ...

blog.naver.com

 

 

2022년 ICT상반기 인턴이 테스트케이스 작성 전 스터디한 내용 공유합니다.

 

 

'품질 > 품질통제' 카테고리의 다른 글

SW결함 심각도별 분류  (0) 2022.05.17
테스트 유형  (0) 2022.04.20
품질자동화 Redmine 형식  (0) 2022.01.19
Redmine Feedback 품질자동화 양식  (0) 2022.01.13
주간 품질측정 진행 목적 및 진행 방향  (0) 2022.01.11

품질점검케이스 No.  11 프로젝트

 

기능품질점검 진행히스토리 2021년 하반기부터 작성.

 

 

V2.3.3-2.7.7 log4j 제거된 임시 패치
 2021/12/20 ~ 12/21                      품질 점검 1차 "적합" 결함 2항목 major 1, minor 1 
- 특이사항: 기존 버전에서 발생된 항목 

2021/12/24         품질 점검 2차 "적합"                             결함 0항목 

V2.3.3-2.7.7(en)
 2021/12/12오후 ~ 12/17오전           품질점검 1차 "적합"  major 3, minor 7

 - 특이사항: Major 결함으로 예상되는 3항목 발견됐지만 처리완료, 검토예정, 미구현 예상
 

클라이언트에서 GET, POST 이외의 method 로

작업 요청 시 보안문제가 발생할 수 있으며

 

PUT, DELETE 등의 method 로 인해 파일 변조 및 

삭제를 당하는 등 악의적인 이용으로 피해가 발생할 수 있습니다.

 

 

HTTP Method 란?

 

 - HTTP 메서드는 서버가 http 요청을 어떻게 처리하는지 지시해주는 필드이며

   서버는 HTTP method 에 Reuqest-URI 에 대해 다른 동작을 수행할 수 있습니다.

   우리가 흔희 아는 GET POST 를 말합니다.

 

Method 종류

 

 

  • GET

 - Request-URI 요청에 필요한 정보를 모두 담는다

 - 재요청이 잦은 경우 유용 ( ex : 새로고침 )

 

 

  • POST

 - 요청에 필요한 정보들을 body 필드에 숨긴다.

 - 길이 제한 없으며 정보가 노출되지 않도록 사용한다.

 - Text 및 binary 데이터 전송 가능하다

 

 

  • DELETE

 - Request-URI 정보 삭제

 

 

  • PUT

 - 요청에 동봉된 정보를 저장한다.

 

 

  • OPTIONS

 - Request-URI 통신에 대한 정보 제공

 - 어떤 method 기능을 제공하는지 체크

 - URI 에 대한 기능적인 체크 동작 수행

 - Request-URI 에는 body 필드 정의하지 않아도 된다.

 

 

  • HEAD

 - 요청에 대한 응답 body 를 return하지 않고 헤더 정보만 return

 - 요청에 대한 유효성, 접근성을 확인할 때 사용

 

 

  • CONNECT

 - SSL tunneling 에 사용되는 method

 

 

  • TRACE

 - 클라이언트로부터 수신한 메시지를 응답에 포함시킨다.

 - TRACE 메서드 요청에는 요청 정보를 포함하는 URI 를 사용하면 안된다.

 

+ Recent posts