F5 WAF for NGINX – Server Side Request Forgery 방어
이 포스트에서는 F5 WAF for NGINX 를 활용하여 Server Side Request Forgery(SSRF) 공격을 탐지하고 차단하는 방법을 소개합니다.
현대 웹 서비스 환경에서는 단순히 사용자 요청만을 처리하는 것으로는 충분하지 않습니다. SSRF 공격은 악의적인 사용자가 서버 내부 네트워크에 접근하거나, 민감한 데이터를 노출시키는 등의 보안 위협을 초래할 수 있습니다. F5 WAF for NGINX의 정책 설정을 통해 이러한 공격을 효과적으로 방어할 수 있습니다.
목차
1. F5 WAF for NGINX – SSRF란?
1-1. SSRF 공격의 개요
2. WAF for NGINX 구성
3. 결론
1. F5 WAF for NGINX – SSRF 란?
Server Side Request Forgery(SSRF)는 공격자가 웹 애플리케이션의 서버를 이용해 내부 네트워크의 리소스에 접근하거나, 외부로 요청을 보내도록 유도하는 공격 기법입니다. 이를 통해 공격자는 서버가 접근할 수 있는 내부 시스템이나 민감한 데이터를 탈취할 수 있습니다.
F5 WAF for NGINX는 SSRF 공격을 탐지하기 위해 요청의 URL, 헤더, 파라미터 등을 분석하여 의심스러운 요청을 식별합니다. 이를 통해 신뢰할 수 없는 요청을 차단하거나 경고를 발생시킬 수 있습니다.
1-1. SSRF 공격의 개요
SSRF 공격은 일반적으로 다음과 같은 방식으로 이루어집니다:
- 내부 리소스 접근: 공격자가 서버가 접근할 수 있는 내부 IP 주소(예: 127.0.0.1, 192.168.x.x)로 요청을 유도합니다.
- 외부 요청 위장: 공격자가 외부 서비스로 요청을 보내 민감한 데이터를 노출시키거나, 서버를 중개자로 활용합니다.
- 메타데이터 노출: 클라우드 환경에서 인스턴스 메타데이터 엔드포인트에 접근해 민감한 정보를 탈취합니다.
F5 WAF for NGINX는 이러한 패턴을 탐지하기 위해 시그니처 기반 탐지와 비정상적인 요청 분석을 결합하여 SSRF 위협을 방어합니다.
2. F5 WAF for NGINX 구성
아래는 SSRF 공격을 탐지하고 차단하기 위한 WAF 정책 구성 예시입니다.
{
"policy": {
"name": "SERVER_SIDE_REQUEST_FORGERY",
"template": {
"name": "POLICY_TEMPLATE_NGINX_BASE"
},
"applicationLanguage": "utf-8",
"enforcementMode": "blocking",
"signature-sets": [
{ "name": "Other Application Attacks Signatures", "block": true, "alarm": true }
]
}
}
위와 같이 구성한 후 nginx -s reload를 실행하여 정책을 적용합니다.
SSRF 공격을 테스트하기 위해 curl 명령을 사용하여 의심스러운 요청을 보냅니다.
$ curl -k https://ho.devops.com?url=http://169.254.169.254
<html><head><title>Request Rejected</title></head><body>The requested URL was rejected. Please consult with your administrator.<br><br>Your support ID is: 287356006321262733<br><br><a href='javascript:history.back();'>[Go Back]</a></body></html>root@master:/etc/nginx/conf.d/okr/10#
NGINX Instance Manager에서 탐지된 결과를 확인하여 SSRF 요청이 기록되었는지 확인합니다.


위와 같이 SSRF attempt 시그니처에 해당되어 요청이 차단된 것을 확인할 수 있습니다.
3. 결론
F5 WAF for NGINX를 활용하면 SSRF 공격을 효과적으로 탐지하고 차단할 수 있습니다. 이 기능은 시그니처 기반 탐지와 요청 분석을 통해 의심스러운 요청을 식별하며, 지속적으로 업데이트되는 시그니처 데이터베이스를 통해 최신 위협에 대응합니다.
설정 예시를 통해 SSRF 요청을 탐지하고 차단하는 방법을 확인했으며, NGINX 구성과 WAF 정책 파일을 조정하여 특정 위반 항목(예: VIOL_URL, VIOL_PARAMETER)을 강화할 수 있습니다. NGINX Instance Manager의 Security Dashboard를 통해 차단 결과를 실시간으로 모니터링하여 웹 애플리케이션의 보안성을 크게 강화할 수 있습니다.
F5 WAF for NGINX의 SSRF 방어 기능에 대해 더 궁금하시거나 직접 사용해 보고 싶으시다면, NGINX STORE에 연락하여 자세한 정보를 확인해 보세요.
댓글을 달려면 로그인해야 합니다.