F5 WAF for NGINX – Basic Bot 방어
이 포스트에서는 F5 WAF for NGINX Bot Signatures 기능을 활용하여 curl, postman과 같은 기본적인 자동화 요청(Basic Bot Attack)을 탐지하고 차단하는 방법을 소개합니다.
이 포스트에서는 기본적인 자동화 요청(Basic Bot Attack) 을 식별하고 차단하는 방법을 소개합니다.
현대 웹 서비스 환경에서는 단순히 사용자 요청만을 처리하는 것으로는 충분하지 않습니다. curl, Postman, 스크립트 기반 툴 등을 이용한 자동화 요청은 서버 자원을 불필요하게 소모하고, 계정 탈취나 데이터 스크래핑과 같은 보안 위협으로 이어질 수 있습니다.
목차
1. F5 WAF for NGINX – Bot Signatures 란?
1-1. Bot Signature와 Bot Class
1-2. 신뢰할 수 있는 봇 목록
2. F5 WAF for NGINX 구성
2-1. cURL과 Postman 요청 탐지 및 차단
3. 결론
1. F5 WAF for NGINX – Bot Signatures 란?
F5 WAF for NGINX의 Bot Signatures는 브라우저나 검색 엔진으로 위장한 서명 및 클라이언트를 탐지하여 애플리케이션을 보호하는 기능입니다.
이 기능은 bot-defense 매개변수로 기본 활성화되며, Bot signatures와 헤더 이상 현상을 모두 포함합니다. 두 기능은 각각 별도로 비활성화할 수 있습니다.
탐지된 각 bot signature는 bot class에 속합니다: googlebot과 같은 검색 엔진 시그니처는 trusted_bots class에 속하지만, F5 WAF for NGINX는 신뢰할 수 있는 봇을 인증하기 위해 추가 검사를 수행합니다.
이러한 검사가 실패하면 탐지된 bot signature가 검색 엔진을 사칭한 것이므로, 해당 시그니처는 악성 봇(malicious_bot) class로 분류되며 이상 탐지 검색 엔진 검증 실패로 기록됩니다.
1-1. Bot Signature와 Bot Class
Bot Signature는 요청의 User-Agent 헤더나 기타 메타데이터를 분석하여 특정 클라이언트를 식별합니다. 각 Bot Class 또는 Bot Signature별로 다음 동작을 개별적으로 구성할 수 있습니다.
- ignore – Bot sinature를 무시(비활성화)합니다.
- detected – 위반을 발생시키지 않고 보고만 합니다 – VIOL_BOT_CLIENT. 다른 위반이 발생하지 않는 한 요청은 합법적인 것으로 간주됩니다.
- alarm – 보고하고 위반을 발생시키지만 요청은 통과시킵니다. 요청은 불법으로 표시됩니다.
- block – 위반 사항을 보고하고, 위반을 발생시키며, 요청을 차단합니다.
1-2. 신뢰할 수 있는 봇 목록
다음은 F5 WAF for NGINX에서 기본적으로 신뢰할 수 있는 봇으로 간주되는 검색 엔진 목록입니다:
| Name | Description |
| Ask | Ask.com engine |
| Baidu | Baidu search engine |
| Baidu Image Spider | Baidu search engine for images |
| Bing | Microsoft Bing search engine |
| BingPreview | Microsoft Bing page snapshot generation engine |
| Daum | Daum search engine |
| DuckDuckGo Bot | DuckDuckGo search engine |
| fastbot | fastbot search engine |
| Google search engine | |
| Mojeekbot | Mojeek search engine |
| Yahoo! Slurp | Yahoo search engine |
| Yandex | Yandex search engine |
| YioopBot | Yioop search engine |
2. F5 WAF for NGINX 구성
아래는 대표적인 자동화 요청 툴인 cURL과 Postman에 대한 요청을 탐지 및 차단하는 WAF 정책 구성 예시입니다.
2-1. cURL과 Postman 요청 탐지 및 차단
다음은 cURL과 Postman 요청을 탐지 및 차단하는 WAF 정책 구성 예시입니다:
{
"policy": {
"name": "BOT_DEFENSE_POLICY",
"template": {
"name": "POLICY_TEMPLATE_NGINX_BASE"
},
"applicationLanguage": "utf-8",
"enforcementMode": "blocking",
"bot-defense": {
"settings": {
"isEnabled": true
},
"mitigations": {
"classes": [
{
"name": "trusted-bot",
"action": "alarm"
},
{
"name": "untrusted-bot",
"action": "block"
},
{
"name": "malicious-bot",
"action": "block"
}
]
}
}
}
}
위와 같이 구성한 후 nginx -s reload를 실행하여 정책을 적용합니다.
먼저 curl 명령을 사용하여 요청이 차단 및 탐지되는지 확인합니다.
$ curl -k https://ho.devops.com
<html><head><title>Request Rejected</title></head><body>The requested URL was rejected. Please consult with your administrator.<br><br>Your support ID is: 6834111809696101601<br><br><a href='javascript:history.back();'>[Go Back]</a></body></html>

NGINX Instance Manager에서 탐지된 결과:


Postman을 사용하여 요청이 차단 및 탐지되는지 확인합니다.



3. 결론
F5 WAF for NGINX의 Bot Signatures 기능을 활용하면 cURL, Postman과 같은 자동화 요청을 포함한 악성 봇 활동을 효과적으로 탐지하고 차단할 수 있습니다. 이 기능은 Bot Signatures와 Bot Class를 기반으로 요청의 출처를 분석하며, 지속적으로 업데이트되는 시그니처 데이터베이스를 통해 최신 위협에 대응합니다.
설정 예시를 통해 cURL과 Postman 요청을 탐지 및 차단하는 방법을 확인했으며, NGINX 구성과 WAF 정책 파일을 조정하여 특정 Bot Signature 또는 전체 malicious_bot 클래스를 차단할 수 있습니다. NGINX Instance Manager의 Security Dashboard를 통해 차단 결과를 실시간으로 모니터링하여 웹 애플리케이션의 보안성을 크게 강화할 수 있습니다.
F5 WAF for NGINX의 Bot Signatures 기능에 대해 더 궁금하시거나 직접 사용해 보고 싶으시다면, NGINX STORE에 연락하여 자세한 정보를 확인해 보세요.
댓글을 달려면 로그인해야 합니다.