OAST

Out-of-band Application Security Testing

Introduction

OAST는 Out-of-band application security testing의 약자로 OOB(Out-Of-Band)를 이용한 보안 테스팅 방법을 의미합니다. OOB 자체만으로 보안 이슈가 발생하는건 아니지만, 이를 통해서 Blind 계통의 취약점(Blind RCE, Blind XSS, Blind SSRF 등)을 식별하거나 중요정보를 유출하는 등 활용도가 아주 높은 분석 방법입니다.

그리고 OAST는 ZAP, Burp 등 DAST(Dynamic Application Security Testing)에서 주요 스캔 모델로 선택되기도 하며 이는 실제로 스캔 성능에 큰 영향을 미칩니다. (탐지율 상승)

DNS Reaction

OAST의 핵심은 DNS Reaction 입니다. 서비스를 운영하는 회사들은 각 인프라 환경에 따라 다르겠지만 보통은 Outbound의 경우 기본은 차단하고 조건 또는 예외적으로 허용하는 형태의 보안 정책을 가집니다. 그래서 OAST 등으로 Reaction 요청이 발생하여도 Outbound가 차단되었기 때문에 요청을 받을 수 없는 경우가 많습니다.

다만 DNS의 경우 해당 서버에서 직접 요청하는 것이 아닌 Infra 내/외부의 Resolver를 통해서 DNS Query가 발생하기 때문에 이러한 Outbound 정책과는 별개로 DNS Reaction은 확인할 수 있는 경우가 많습니다. 그래서 전통적인 HTTP 기반의 Callback 방식보다 DNS 등을 포함하는 OAST 방식이 훨씬 더 강력합니다.

HTTP/Other Reaction

DNS Query 이후 HTTP, SMTP 등의 Reaction이 발생했다면 Outbound가 가능한 상태라고 볼 수 있습니다. DNS Reaction 이 식별 목적이 강했다면 이외 나머지 Reaction은 실제 영향력과 관련이 있습니다. 간단한게는 이를 통해서 내부 정보를 유출하거나 SSRF, XSS 등 다른 Blind 취약점으로 연결할 수 있는 포인트가 됩니다.

Offensive techniques

Protocols

HTTP/HTTPS, DNS 2개면 대부분의 요청을 처리할 수 있지만, 테스터에게 조금 더 양질을 정보를 주기 위해 SMTP, LDAP 등의 여러 프로토콜을 지원하는 경우가 있습니다. 아래는 대표적으로 사용되는 프로토콜입니다.

  • HTTP/HTTPS
  • DNS
  • SMTP
  • LDAP
  • NTLM
  • SMB
  • FTP
  • Etc..

Provider

  ZAP Burp Nuclei CLI Receiver OSS Self-Host
BOAST O X X O DNS, HTTP(S) Yes Yes
Interactsh O O O O DNS, HTTP(S), SMTP, LDAP, SMB, FTP Yes Yes
Burp Collaborator X O O O DNS, HTTP(S), SMTP No Yes
TukTuk X X X O DNS, HTTP(S), SMTP, LDAP, SMB, FTP, TCP Yes Yes

Interfaces

ZAP

ZAP에선 OAST 메뉴를 통해서 OAST 도메인을 얻고, Polling할 수 있습니다. 또한 Active Scan 시 OAST 페이로드를 자동으로 생성하고 사용하며 스캐닝을 진행합니다.

ZAP에선 BOAST, Interactsh, Callback(IP기반) 이렇게 3가지의 OAST 서비스를 사용할 수 있습니다.

Burpsuite

Burpsuite에선 Burp Collaborator를 이용하여 테스트할 수 있습니다. Tarborator란 Extension 설치 후 페이로드를 생성하고, 테스트할 수 있습니다. ZAP과 동일하게 Active Scan 시 OAST 페이로드를 자동으로 생성하고 사용하며 스캐닝을 진행합니다.

Burpsuite에선 Burp Collaborator, Interactsh 2가지의 OAST 서비스를 사용할 수 있습니다.

CLI interface

CLI 환경에선 Interactsh가 CLI client도 지원하기 때문에 이를 이용하는 것이 좋습니다. 이외에도 BOAST, TukTuk의 경우 API 형태로는 제공되기 때문에 Code(BOAST), Web(TukTuk) 으로 사용하실 수 있습니다.

# Public server
interactsh-client

# Self-hosted server
interactsh-client -server <YOUR-SELF-HOSTED-SERVER> -token <YOUR-SECRET>

OAST in DAST

DAST에서 Blind 계열의 취약점, 그리고 OOB를 통한 취약점 식별을 위해 OAST를 사용하는 경우가 있습니다. 보통 아래와 같은 순서로 동작합니다.

1) 매번 요청 시 OAST 서비스를 통해 도메인을 생성함 (e.g o5rglw6hawoivfmeylovdxtqji.odiss.eu) 2) 해당 도메인을 포함한 페이로드로 테스팅 진행 3) 지정된 시간만큼 Polling 하며 해당 도메인을 대상으로 Reaction이 있는지 체크

Bypass techniques

Defensive techniques

OAST(OOB)는 방어자 입장에선 시스템 하드닝으로 어느정도 대응할 수 있습니다. 기본적으로 OOB가 발생할 수 있는 여지를 최소한으로 줄이고, 방화벽 정책 등 네트워크적인 요소로 일부 해소할 수 있습니다.

Known OAST Service Address

  • ZAP
    • *.odiss.eu
  • Burpsuite
    • *.oastify.com
    • *.burpcollaborator.net
  • Interactsh (Web client)
    • *.oast.pro
    • *.oast.live
    • *.oast.site
    • *.oast.online
    • *.oast.fun
    • *.oast.me
  • CVSS Advisor (Web client)
    • *.c5.rs
    • *.ssrf.cvssadvisor.com

Tools

Articles