PHP - ModSecurity 란 무엇이며 왜 필요한가?
현재 모든 공격의 70% 이상이 웹 애플리케이션에서 수행됩니다.
아래 URL은 XSS(Cross-Site Scripting), 클릭재킹 공격, MIME 혼동공격, 최신 브라우저의 XSS 위험 등 해커 공격을 방지하는 데 도움이 되는 정보를 제공하는 곳입니다.
https://peteris.rocks/blog/exotic-http-headers/?utm_source=bypeople
웹 애플리케이션 방화벽은 보호 수준을 높이고 공격이 웹 기반 소프트웨어 프로그램에 도달하기 전에 탐지 및 방지하는 외부 보안 계층을 구축하기 위해 배포되는 오픈소스로 Apache, Nginx 및 IIS와 같은 다양한 웹 서버에서 지원하는 오픈 소스 웹 기반 방화벽 애플리케이션 (또는 WAF)입니다.
이 모듈은 다양한 공격으로부터 웹 애플리케이션을 보호하도록 구성됩니다. ModSecurity 는 단순하고 복잡한 작업을 모두 수행할 수 있는 유연한 규칙 엔진을 지원합니다. 다음과 같은 다양한 규칙이 있는 CRS (Core Rule Set)와 함께 말이죠.
- 크로스 웹 사이트 스크립팅
- 나쁜 사용자 에이전트
- SQL 주입
- 트로이 목마
- 세션 하이재킹
- 기타 악용
가장 일반적인 오류
mod_security 규칙에 의해 트리거 되는 가장 일반적인 오류는 “403” 오류입니다.
단순히 서버에 대한 액세스 권한이 없음을 나타냅니다. 오류가 발생한 정확한 링크에 따라 경로가 다를 수 있습니다.
예를 들어 GET 으로 전송할 때는 아무런 문제가 없던 것이 POST로 전송하였을 때 403오류가 나타날 수 있고, 파일 업로드를 전송하였을 때만 작동할 수도 있습니다. POST 값에 위험한 HTML 태그를 전송하였을 때 미리 감지하여 차단하는 것입니다.
<?php
// 아무 문제가 없이 전송됩니다.
$_POST['name'] = "안녕 하보니";
// 위험을 감지하고 차단합니다.
$_POST['name'] = "<html><head><script>...</script></head><body>...</body></html>";
?>
ModSecurity는 백그라운드에서 작동하며 모든 페이지 요청은 악의적인 요청을 필터링하기 위해 다양한 규칙에 따라 확인됩니다. 사이트를 해킹하는 유일한 목표로 웹 사이트 소프트웨어의 취약점을 악용하기 위해 실행된 것일 수 있습니다.
때로는 잘못된 웹 사이트 코딩으로 인해 mod_security가 특정 요청이 실제로 합법적이지만 악성이라고 잘못 판단할 수도 있습니다. 이 경우 여전히 403 오류가 발생합니다.
참고 : 403 Forbidden 오류 외에도 404 Not Found 또는 500 Internal Server Error 오류가 나타날 수 있습니다.
mod_security에 의해 트리거 문제가 발생하면 차단을 우회하는 유일한 방법은 서버에서 이 규칙을 화이트리스트에 올리는 것입니다.
mod_security 블록을 감지하는 몇 가지 간단한 단계는 다음과 같습니다.
- 특정 작업 / 요청을 수행할 때 웹 사이트 프런트 엔드 또는 백엔드에 지정된 오류 중 하나가 표시됩니다. 403 금지됨, 500 내부 서버 오류, 404 찾을 수 없음.
- 오류를 재현하는 방법은 일반적으로 항상 동일합니다 (mod_security가 특정 활동만 차단하는 한).
- 웹 사이트 프런트 엔드 / 백엔드의 다른 기능은 정상적으로 유지됩니다.
참고 : mod_security 규칙이 웹 사이트에서 너무 자주 트리거되면 해당 IP 주소가 서버 방화벽에 의해 차단됩니다.
출처: https://www.namecheap.com/support/knowledgebase/article.aspx/9542/22/what-is-modsecurity-and-why-do-we-need-it/
0 댓글