
글로벌 웹 서비스를 위한 계층형 보안 아키텍처
웹서비스를 글로벌하게 운영하면 다양한 지역의 사용자뿐 아니라 자동화된 스캔과 비정상적인 접근도 함께 증가합니다. 따라서 글로벌 서비스에서는 애플리케이션 개발뿐 아니라 네트워크, 웹 서버, 보안 계층을 함께 고려한 구조가 필요합니다. 대다수 중대형 웹서비스의 경우 백엔드는 스프링부트(SpringBoot) 기반의 JAVA 언어를 주로 사용하며, 프론트엔드는 과거 php/jsp에서 2022년 이후로는 React나 Vue.js등 SPA가 대세를 이루고 있습니다. 스프링부트(SpringBoot)로 백엔드를 웹서비스를 개발했다고 가정했을경우 결과물(jar, war등)은 WAS(Web Applcation Server)에 탑재해서 실행 되겠지만, 안정적인 서비스를 위하여 ModSecurity(웹방화벽), Fail2Ban(침입 방지)등 다양한 보안 소프트웨어도 필연적으로 연동하여야 합니다. 위 그림은 오픈소스 보안 기술을 활용한 일반적인 웹 서비스 보안 구성 예시입니다. 그림에서와 같이 소프트웨어 개발과는 별개로 인프라, 네트워크, 서버(Linux), 정보보안(Information Security)도 서비스 구성을 위한 핵심 요소이므로 글로벌 서비스 출시를 위해서는 반드시 관심을 가져야 할 것 입니다. 위에서 언급한 보안 소프트웨어들과 OpenStreetMap을 연동하여 침입을 시도하는 IP 주소에 대해서 그려 본 세계지도입니다. 보안 소프트웨어를 연동한 지 며칠 지나지 않았음에도 여러 국가에서 비정상적인 접근과 공격 시도가 발생하고 있음을 확인할 수 있습니다. ModSecurity와 Fail2Ban을 연동하여 공격성 IP 주소에 대해 글로벌 서비스 차단 위의 세계지도는 Fail2Ban 와 ModSecurity에서 생성한 로그정보를 기반으로 구성한 것입니다. 아래 사이트에서 정보를 참고해주세요 - OWASP ModSecrurity - https://modsecurity.org/ - Fail2Ban - https://github.com/fail2ban - OpenStreetMap - https://www.openstreetmap.org/ 보안은 하나의 제품이 아니라 계층입니다 글로벌 서비스의 보안은 특정 솔루션 하나로 완성되지 않습니다. 네트워크, Reverse Proxy, WAF, 접근 제어, 애플리케이션, 모니터링 등 여러 계층이 서로 보완할 때 공격에 대한 대응력을 높일 수 있습니다. 중요한 것은 모든 공격을 완벽하게 막는다고 가정하는 것이 아니라, 각 계층에서 위험을 줄이고 이상 징후를 지속적으로 관찰할 수 있는 구조를 만드는 것입니다.
