안녕하세요! WAF 환경에서 Discourse를 사용하려고 하는데, 오직 메시지 버스 POST 요청에서만 403 오류가 발생하고 있습니다. 이것이 Discourse에 특화된 문제는 아니라는 점은 이해하고 있지만, 지난 하루 동안 많은 시도를 해보았음에도 불구하고 왜 특정하게 메시지 버스 요청에서만 403 오류가 발생하는지 이해가 되지 않습니다. 추측이나 아이디어가 있다면 알려주시면 감사하겠습니다. 감사합니다.
에러 메시지:
좋아요, 문제를 해결했어요! 여기에 기록해 둘게요. 혹시 미래에 같은 문제를 겪는 사람이 있을까 봐요:
저는 BunkerWeb을 사용하고 있었는데, 이 도구의 백엔드 애플리케이션 중 하나가 Modsecurity를 사용하고 있었습니다. 그런데 해당 modsecurity 코어 세트 규칙이 메시지 버스 POST 요청을 SQL 인젝션 공격으로 오인하고 있었습니다.
ModSecurity: Warning. Matched "Operator `Rx' with parameter `(?i:(?:^[\W\d]+\s*?(?:(?:alter\s*(?:a(?:(?:pplication\s*rol|ggregat)e|s(?:ymmetric\s*ke|sembl)y|u(?:thorization|dit)|vailability\s*group)|c(?:r(?:yptographic\s*provider|edential)|o(?:l(?:latio|um)|nve (1040 characters omitted)' against variable `ARGS_NAMES:/delete' (Value: `/delete' ) [file "/usr/share/bunkerweb/core/modsecurity/files/coreruleset/rules/REQUEST-942-APPLICATION-ATTACK-SQLI.conf"] [line "426"] [id "942360"] [rev ""] [msg "Detects concatenated basic SQL injection and SQLLFI attempts"] [data "Matched Data: /delete found within ARGS_NAMES:/delete: /delete"] [severity "2"] [ver "OWASP_CRS/3.3.4"] [maturity "0"] [accuracy "0"] [tag "application-multi"] [tag "language-multi"] [tag "platform-multi"] [tag "attack-sqli"] [tag "paranoia-level/1"] [tag "OWASP_CRS"] [tag "capec/1000/152/248/66"] [tag "PCI/6.5.2"]
아래와 같이 ModSec 규칙에 예외를 추가했습니다.
SecAction "id:10000,phase:1,nolog,pass,t:none,ctl:ruleRemoveById=942360
그리고 문제가 해결되었습니다! 이 정보가 여러분 대부분에게는 도움이 되지 않을 수도 있지만, 앞서 말했듯이 누군가에게는 도움이 될지도 모릅니다. 감사합니다!