얼마전 겪었던 조금은 황당했던 일을 통해 웹방화벽을 정리해보고자 한다
사이트에 접속시 내용확인이 안된다는 User 의 문의를 받고,
원인을 찾기위해 정말 다양한 방법으로 서버로그확인, 단축URL생성, 개발/검증계 구현했지만
원인을 찾을수없었다
힘들게 현상을 재현한 크롬화면 Console 에선 알수없는 CORS 에러만을 뱉고있었다 (구글링하면 정말 많은사람들이 어려움을 겪고있다)
No ‘Access-Control-Allow-Origin’ header is present on the requested resource. Origin ‘blablabla ’ is therefore not allowed access.”
### CORS ( Cross-Origin Resource Sharing)
간단히 말하면 보안상의 이유로 도메인이 다른 경우 호출을 제한하는 것을 말한다
이를 해결하기 위해 Spring에서 필터를 사용하여 예외를 적용하거나 크롬에서 플러그인을 추가하는 방법등이 있다
사수와 다른분들에게 조언을 구하여 내린결론은 웹방화벽으로 인해 해당
User 접속 URL 특정부분이 필터링되어 접속이 제한되고 있었다고한다 ㅠㅠ
접속이 안된다는 문의를 받아서 파라미터를 이것저것 조작(?)하면서 문제를 찾고자 했던 것인데
처음에 접속이 안된건 도대체 무슨 이유인가요??
### 웹방화벽 (Web Application FireWall)
SQL Injection, Cross-Site Scripting(XSS) 등과 같은 웹 공격을 탐지하고 차단
1세대 웹방화벽은 블랙리스트 방식과 화이트리스트를 병행
자동 온라인 업데이트 하는 블랙리스트와 달리 화이트리스트는 고객환경에 따라 관리자가 관리, 이는 관리자에게 관리부담으로
공격유형 다양화되어 성능저하되는 문제발생
2세대 웹방화벽은 모니터링을 통해 분석하여 화이트리스트 생성을 자동으로 처리해주는 것이 특징
관리자의 부담 역시 존재, 많은 성능 저하 및 오탐 이슈
3세대 웹방화벽은 지능형 웹방화벽
변종공격이 발생해도 로직기반으로 판단하여 관리자는 공격 유형별 정책관리에 집중할수 있다고
여담으로 예전에도 홈페이지를 관리하면서 크로스 도메인 문제가 발생했었는데, 표면적인 이유였고
근본적인 원인은 다른곳에 있었다… 크로스도메인을 조심하자! @.@
*WAF 설명부분은 pentasecurity 웹방화벽이란? 게시물을 참조했습니다