본문으로 건너뛰기
로그인 둘러보기
보안·개인정보 · 윈도우즈 유틸 · 인터넷·네트워크·원격

modsecurity (Install)

0

ModSecurity는 오픈 소스 크로스 플랫폼 웹 애플리케이션 방화벽(WAF) 엔진입니다. Apache, IIS, Nginx 웹 서버를 위해 설계되었으며, 강력한 이벤트 기반 프로그래밍 언어를 사용하여 웹 애플리케이션에 대한 다양한 공격으로부터 보호하고 HTTP 트래픽 모니터링, 로깅 및 실시간 분석을 제공합니다.

Apache 모듈로깅보안 규칙오픈소스웹 방화벽

소개

ModSecurity는 오픈 소스 크로스 플랫폼 웹 애플리케이션 방화벽(WAF) 엔진입니다. Apache, IIS, Nginx 웹 서버를 위해 설계되었으며, 강력한 이벤트 기반 프로그래밍 언어를 사용하여 웹 애플리케이션에 대한 다양한 공격으로부터 보호하고 HTTP 트래픽 모니터링, 로깅 및 실시간 분석을 제공합니다.

상세정보

프로그램 소개

ModSecurity는 OWASP 프로젝트로 관리되는 오픈 소스 웹 애플리케이션 방화벽(WAF) 엔진입니다. Apache, IIS, Nginx와 같은 주요 웹 서버 플랫폼에서 작동하며, ModSecurity SecRules 형식의 규칙을 로드하고 해석하여 웹 애플리케이션을 보호합니다.

이 프로그램은 HTTP 트래픽을 모니터링하고 로깅하며 실시간 분석을 수행하여 SQL 인젝션, 크로스 사이트 스크립팅(XSS)과 같은 다양한 웹 공격으로부터 시스템을 방어하는 데 목적이 있습니다.

주요 기능

ModSecurity는 다음과 같은 핵심 기능을 제공합니다.

  • 웹 애플리케이션 보호: SecRules 규칙을 기반으로 HTTP 요청 및 응답을 분석하여 악의적인 트래픽을 차단하고 웹 애플리케이션을 보호합니다.
  • 다중 플랫폼 지원: Apache, Nginx, IIS와 같은 다양한 웹 서버 플랫폼과의 통합을 위한 커넥터 아키텍처를 제공합니다.
  • 고성능 처리: Apache 의존성을 제거하여 플랫폼 독립성을 높이고 성능을 향상시켰습니다.
  • 감사 로깅: HTTP 트래픽을 모니터링하고 로깅하며, 향후 JSON 형식의 감사 로그를 기본 지원할 예정입니다.
  • 강력한 규칙 언어: ModSecurity SecRules 형식의 규칙을 사용하여 세밀한 보호 정책을 정의할 수 있습니다.

다운로드·설치 방법

ModSecurity는 소스 코드를 직접 빌드하여 설치하거나 Chocolatey 패키지를 통해 Windows에 설치할 수 있습니다.

Windows에서 Chocolatey를 통한 설치

Chocolatey 패키지 관리자를 사용하면 ModSecurity를 간편하게 설치할 수 있습니다. Chocolatey가 설치된 Windows 시스템에서 다음 명령을 실행합니다.

  • choco install modsecurity

이 명령은 ModSecurity MSI 설치 프로그램을 사용하여 필요한 파일을 시스템에 설치합니다.

소스 코드 빌드 (Unix 계열)

소스에서 직접 빌드하려면 다음 단계를 따릅니다.

  • 저장소를 클론합니다: git clone https://github.com/owasp-modsecurity/ModSecurity
  • 서브모듈을 초기화합니다: git submodule update --init --recursive
  • 빌드 프로세스를 시작합니다: ./build.sh, ./configure, make, sudo make install

각 배포판별 빌드 방법은 프로젝트 위키의 Compilation Recipes 페이지에서 확인할 수 있습니다.

기본 사용법/명령어

ModSecurity는 라이브러리로 사용되며, C++ 또는 C 인터페이스를 통해 애플리케이션에 통합됩니다. 기본 사용 흐름은 다음과 같습니다.

  • ModSecurity 인스턴스를 생성합니다.
  • Rules 인스턴스를 생성하고 규칙 파일을 로드합니다.
  • Transaction 객체를 생성하여 HTTP 연결, URI, 요청/응답 헤더 및 본문을 처리합니다.
  • 干预(intervention)이 발생하는지 확인하여 보호 조치를 적용합니다.

C++와 C 언어에 대한 간단한 사용 예시는 프로젝트 저장소의 examples 서브폴더에서 확인할 수 있습니다.

이런 경우에 유용합니다

ModSecurity는 다음과 같은 상황에서 유용합니다.

  • 웹 서버(Apache, Nginx, IIS)에서 실행되는 웹 애플리케이션을 보호해야 하는 경우
  • SQL 인젝션, XSS 등 일반적인 웹 공격으로부터 시스템을 방어해야 하는 경우
  • HTTP 트래픽을 실시간으로 모니터링하고 분석해야 하는 경우
  • 맞춤형 보호 규칙을 정의하여 특정 웹 애플리케이션 환경에 맞는 보안 정책을 수립해야 하는 경우

지원 환경·시스템 요구사항

ModSecurity는 다음 환경을 지원합니다.

  • 운영체제: Windows, Linux, macOS, FreeBSD 등
  • 웹 서버: Apache, Nginx, IIS
  • 프로그래밍 언어: C++17 기준
  • 필수 의존성: Flex, Bison, YAJL, PCRE2(기본)/PCRE
  • 선택적 의존성: libinjection(XSS/SQL 감지), curl(SecRemoteRules), LMDB(영구 저장), Lua(스크립팅), XML 라이브러리, MaxMind DB API(GeoIP)

최신 버전·업데이트

Chocolatey 패키지 버전은 2.9.1입니다. 프로젝트의 최신 릴리스 정보 및 업데이트는 GitHub 저장소의 릴리스 페이지에서 확인할 수 있습니다.

제한 사항·확인 사항

  • ModSecurity v3 라이브러리(libmodsecurity)는 웹 서버 커넥터와 별도로 유지 관리됩니다. 각 커넥터(Nginx, Apache, IIS)는 별도의 GitHub 프로젝트로 관리됩니다.
  • 과거 GeoIP C API(libGeoIP)는 더 이상 유지 관리되지 않으며, MaxMind DB API(libmaxminddb)를 사용하는 것이 권장됩니다.
  • 보안 관련 문제는 공개적으로 보고하지 말고 [email protected]로 문의해야 합니다.
  • ModSecurity의 개발 후원은 Trustwave에서 2024년 7월 1일까지 제공됩니다.

시스템 요구사항

C++17 컴파일러, Flex, Bison(Yacc), YAJL(JSON 로깅 및 테스트 프레임워크용)이 필수이며, libXML2는 XML 요청 파싱 시 선택적으로 사용됩니다. 정규식 처리를 위해 PCRE2가 기본 사용되며, legacy PCRE도 지원됩니다.