OAST는 Out-of-band Application Security Testing의 약자로, 이름 그대로 Out-of-Band(OOB) 상호작용을 통해 취약점을 식별하는 보안 테스팅 기법입니다. OOB 상호작용 자체는 취약점이 아니지만, 이를 통해 서버로부터의 외부 통신을 유도하여 Blind 계열의 취약점(Blind RCE, Blind XSS, Blind SSRF 등)을 탐지하거나 민감한 정보를 외부로 유출시키는 데 매우 효과적으로 사용됩니다.
이 글에서는 OAST의 핵심 원리와 공격 및 방어 기법에 대해 정리합니다.
What is OAST?
OAST는 외부 서버(OAST 서버)와의 상호작용(Interaction)이 발생하는지를 확인하여 취약점을 판단하는 방식입니다. 공격자는 취약점이 존재할 것으로 예상되는 지점에 OAST 서버의 고유 주소를 포함한 페이로드를 삽입합니다. 만약 애플리케이션이 해당 페이로드를 처리하는 과정에서 OAST 서버로 네트워크 요청(e.g., DNS Query, HTTP Request)을 보내면, 공격자는 이를 탐지하여 취약점의 존재를 확신할 수 있습니다.
이러한 특성 때문에 DAST(Dynamic Application Security Testing) 솔루션인 ZAP, Burp Suite 등에서 핵심 스캔 기능으로 채택하고 있으며, OAST를 사용할 때 스캐너의 탐지율이 크게 향상됩니다.
sequenceDiagram participant Attacker participant Target Server participant OAST Server Attacker->>+Target Server: Sends payload with OAST domain<br>(e.g., 'ping unique-id.oast.server') Note right of Target Server: The application executes the command,<br>triggering an out-of-band interaction. Target Server->>+OAST Server: DNS Query for 'unique-id.oast.server' OAST Server-->>-Target Server: DNS Response Attacker->>OAST Server: Polls for interactions OAST Server-->>Attacker: Reports interaction from Target Server's IP
Core Reaction Methods
DNS Reaction
OAST의 가장 핵심적인 상호작용은 DNS를 통해 이루어집니다. 대부분의 운영 환경은 보안 정책상 서버에서 외부로 나가는 Outbound 트래픽을 기본적으로 차단하고, 필요한 경우에만 예외적으로 허용합니다. 이 때문에 일반적인 HTTP Callback 방식은 방화벽에 의해 차단될 확률이 높습니다.
하지만 DNS Query는 서버가 직접 외부로 요청하는 것이 아니라, 내부 또는 외부의 DNS Resolver를 통해 전파됩니다. 이 과정은 일반적인 Outbound 방화벽 정책의 영향을 받지 않는 경우가 많아, 외부 통신이 차단된 환경에서도 상호작용을 탐지할 수 있는 신뢰도 높은 채널이 됩니다.
graph TD subgraph Target Infrastructure A[Vulnerable Application] --> B{Outbound Request}; B -->|HTTP/HTTPS Request| C[Firewall]; C -->|DENY Default| D[Internet]; B -->|DNS Query| E[Internal/External DNS Resolver]; end subgraph Internet F[OAST Server]; end E --> F; style D stroke:#f00,stroke-width:2px,stroke-dasharray: 5 5 style C fill:#445,stroke:#333,stroke-width:2px
HTTP/Other Reaction
만약 DNS Query 이후에 HTTP, SMTP 등 다른 프로토콜의 상호작용까지 관찰된다면, 이는 해당 프로토콜에 대한 Outbound 통신이 허용된 상태임을 의미합니다. DNS 상호작용이 취약점의 존재 유무를 "식별"하는 데 중점을 둔다면, HTTP 및 다른 프로토콜 상호작용은 이를 활용한 실제적인 "공격"과 직접적인 관련이 있습니다.
이 채널을 통해 내부 시스템의 정보를 외부로 유출시키거나, SSRF를 이용해 내부망의 다른 시스템을 스캔하는 등 더 심각한 위협으로 이어질 수 있습니다.
Offensive techniques
Protocols
OAST는 다양한 프로토콜을 지원하여 테스터에게 더 풍부한 정보를 제공합니다. DNS와 HTTP가 기본이지만, 다른 프로토콜 지원은 특정 환경이나 취약점을 식별하는 데 큰 도움이 됩니다.
- HTTP/HTTPS
- DNS
- SMTP
- LDAP
- NTLM
- SMB
- FTP
- Etc..
Provider
다양한 Public/Private OAST 서비스가 존재하며, 기능과 지원 도구가 조금씩 다릅니다.
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
Caido
Caido에서는 기본적으로 제공되진 않지만 QuickSSRF
란 플러그인을 통해 사용하실 수 있습니다. 특별히 더 추가되는 OAST Client가 없다면 제가 만들어서 공유하고 이 문서도 업데이트 하겠습니다.
ZAP
ZAP에서는 OAST Add-on을 통해 OAST 기능을 사용할 수 있습니다. OAST 탭에서 고유 도메인을 발급받고 Polling 할 수 있으며, Active Scan 시 OAST 페이로드가 자동으로 생성되어 테스트에 사용됩니다. ZAP은 BOAST, Interactsh, 그리고 간단한 IP 기반 Callback 서비스를 지원합니다.
Burpsuite
Burpsuite Professional에서는 Burp Collaborator 클라이언트를 통해 OAST 기능을 제공합니다. ZAP과 마찬가지로 Active Scan 시 Collaborator 페이로드를 자동으로 삽입하여 Blind 취약점을 탐지합니다.
CLI interface
CLI 환경에서는 ProjectDiscovery의 Interactsh가 가장 강력한 기능을 제공합니다. Public 서버를 이용하거나 직접 Self-hosted 서버를 구축하여 사용할 수 있습니다.
# Public server
interactsh-client
# Self-hosted server
interactsh-client -server <YOUR-SELF-HOSTED-SERVER> -token <YOUR-SECRET>
OAST in DAST
DAST 도구가 OAST를 활용하는 과정은 보통 아래와 같습니다.
- 스캔 요청마다 OAST 서비스로부터 고유한 서브도메인을 생성합니다. (e.g.,
o5rglw6hawoivfmeylovdxtqji.odiss.eu
) - 생성된 도메인을 포함한 페이로드를 타겟에 전송하여 테스트를 수행합니다.
- 일정 시간 동안 OAST 서버를 Polling하며 해당 도메인으로 상호작용이 수신되는지 확인합니다.
- 상호작용이 탐지되면 해당 요청을 기반으로 Blind 취약점이 존재하는 것으로 알 수 있습니다.
Bypass techniques
최근 Log4Shell 이슈 등으로 인해 Public OAST 서비스의 도메인이나 IP가 방화벽이나 보안 솔루션에 의해 차단되는 경우가 많아졌습니다. 이를 우회하기 위해 Self-hosted OAST 서버를 구축하거나, 잘 알려지지 않은 OAST 서비스를 사용하는 것이 효과적일 수 있습니다.
Defensive techniques
방어자 입장에서는 시스템 하드닝을 통해 OAST 공격의 영향을 최소화할 수 있습니다.
- Minimize Outbound Traffic: 서버에서 외부로 나가는 트래픽은 기본적으로 차단(Default Deny)하고, 업무상 반드시 필요한 도메인과 포트에 대해서만 허용(Allowlist)하는 정책을 적용합니다.
- Block Known OAST Services: 알려진 Public OAST 서비스의 도메인과 IP 주소를 방화벽에서 차단합니다.
Known OAST Service Address
- ZAP:
*.odiss.eu
- Burpsuite:
*.oastify.com
,*.burpcollaborator.net
- Interactsh:
*.oast.pro
,*.oast.live
,*.oast.site
,*.oast.online
,*.oast.fun
,*.oast.me
- CVSS Advisor:
*.c5.rs
,*.ssrf.cvssadvisor.com
Tools
- 🌐 ZAP OAST (public/private)
- 🌐 Burpsuite Collaborator (public/private)
- 🌐 CVSS Advisor's SSRF (public)
- 🔒 Interachsh (public/private)
- 🔒 boast (private)
- 🔒 tuktuk (private)