OSSEC으로 구축하는 호스트 기반 침입 탐지와 자동 대응

OSSEC의 HIDS 구조와 파일 무결성 검사, 로그 분석, Active Response 설정을 정리한 호스트 보안 운영 가이드

2026-08-14 · 최초 발행 2025-06-04

호스트에서 계속 움직이는 침입 탐지 체계

OSSEC은 호스트 기반 침입 탐지 시스템(HIDS)이다. 시스템 무결성 모니터링, 로그 분석, 실시간 경고를 한 체계 안에서 제공하며, 일회성 점검이 아니라 데몬으로 계속 실행된다. 파일 변경, 인증 실패, 애플리케이션 로그처럼 호스트에서 발생하는 이벤트를 감시하고, 규칙에 따라 경고와 대응을 연결하는 방식이다.

주요 기능은 다음과 같다.

  • 주요 시스템 파일의 변경을 감지하는 파일 무결성 검사
  • 시스템과 애플리케이션 로그의 실시간 모니터링
  • 위협 발견 시 이메일 알림 전송
  • 탐지된 이벤트에 대응하는 Active Response 규칙
  • 여러 시스템을 단일 관리 지점에서 다루는 중앙 관리

서버와 에이전트가 나누는 역할

OSSEC은 서버-에이전트 구조를 사용한다. 에이전트는 대상 시스템의 로그와 이벤트를 수집해 서버로 보내고, 서버는 분석 엔진·규칙 데이터베이스·디코더를 이용해 이벤트를 판별한다. 분석 결과는 이메일 알림, 로그 저장소, Active Response로 이어질 수 있다.

서버 컴포넌트OSSEC 서버에이전트 1에이전트 2에이전트 n이메일 알림로그 저장소Active Response분석 엔진규칙 데이터베이스디코더

서버(Manager)는 에이전트가 보낸 데이터를 수집하고 분석하는 중앙 관리 시스템이다. 에이전트(Agent)는 모니터링할 시스템에 설치되어 로그와 이벤트를 전달한다. 분석 엔진은 규칙을 기준으로 위협을 탐지하며, Active Response는 IP 차단이나 프로세스 종료 같은 자동 대응을 수행한다.

지속 감시 도구로서의 차이

OSSEC은 chkrootkit처럼 필요할 때 실행하는 검사 도구와 성격이 다르다. 파일 상태와 로그를 상시 관찰하고, 경고나 자동 대응까지 이어지는 운영 체계를 지향한다.

특징 OSSEC chkrootkit Tripwire
작동 방식 데몬 상시 실행 수동 실행 도구 주기적 검사
파일 무결성 실시간 모니터링 수동 검사 주기적 검사
로그 분석 지원 미지원 제한적 지원
실시간 알림 지원 미지원 제한적 지원
능동적 대응 자동화 지원 미지원 미지원
중앙 관리 다중 시스템 지원 개별 시스템만 제한적 지원

설치할 때 정하는 운영 형태

Linux 시스템에서 서버 설치는 다음 흐름으로 진행한다.

# 필요 패키지 설치
apt-get install build-essential make gcc

# OSSEC 다운로드 및 압축 해제
wget https://github.com/ossec/ossec-hids/archive/3.6.0.tar.gz
tar -zxvf 3.6.0.tar.gz
cd ossec-hids-3.6.0

# 설치 스크립트 실행
./install.sh

설치 과정에서는 목적에 맞춰 서버(manager), 에이전트, 로컬 모드를 선택한다. 서버 모드는 중앙 관리 시스템용이며, 에이전트 모드는 감시 대상 시스템에 설치한다. 로컬 모드는 단일 시스템에서 독립적으로 실행할 때 사용한다.

이메일 경고는 다음과 같이 설정할 수 있다.

<global>
  <email_notification>yes</email_notification>
  <email_to>admin@example.com</email_to>
  <smtp_server>smtp.example.com</smtp_server>
  <email_from>ossec@example.com</email_from>
</global>

운영 중 자주 확인하게 되는 경로는 /var/ossec/etc/ossec.conf의 메인 설정, /var/ossec/rules/의 탐지 규칙, /var/ossec/logs/alerts/alerts.log의 경고 로그, /var/ossec/bin/의 바이너리와 실행 파일이다.

규칙으로 탐지 기준을 조정한다

OSSEC 규칙은 어떤 이벤트를 어떤 심각도로 처리할지 정의한다. 기본 규칙은 상위 규칙 ID를 참조하고, 로그의 문자열과 정규식을 조합해 조건을 만든다.

<rule id="100001" level="5">
  <if_sid>5716</if_sid>
  <match>^login$|^ssh</match>
  <regex>failed|invalid</regex>
  <description>SSH 로그인 실패</description>
</rule>

환경별 정책은 /var/ossec/rules/local_rules.xml에 사용자 정의 규칙으로 추가하거나 수정할 수 있다. 다음 예시는 특정 IP에서의 접근 시도를 탐지한다.

<!-- 특정 IP에서의 로그인 시도 차단 -->
<rule id="100100" level="10">
  <if_sid>5710</if_sid>
  <match>192.168.1.100</match>
  <description>금지된 IP에서 접근 시도</description>
</rule>

규칙을 반영하려면 서비스를 재시작한다.

/var/ossec/bin/ossec-control restart

탐지 이후를 Active Response에 연결하기

Active Response는 경고를 내는 데서 그치지 않고, 탐지된 위협에 따라 자동 조치를 실행하도록 구성하는 기능이다. IP 차단, 프로세스 종료, 서비스 재시작이나 중지 같은 대응을 규칙에 연결할 수 있다.

<!-- ossec.conf 파일 내 설정 -->
<command>
  <name>firewall-drop</name>
  <executable>firewall-drop.sh</executable>
  <expect>srcip</expect>
  <timeout_allowed>yes</timeout_allowed>
</command>

<active-response>
  <command>firewall-drop</command>
  <location>local</location>
  <level>7</level>
  <timeout>600</timeout>
</active-response>

이 설정은 심각도 레벨 7 이상의 경고가 발생하면 해당 IP를 방화벽에서 10분(600초) 동안 차단한다.

적용 가능한 상황으로는 짧은 시간에 반복되는 SSH 로그인 실패의 IP 차단, SQL 인젝션·XSS 공격 패턴 탐지 후 세션 차단, 중요 시스템 파일 변경 뒤 특정 서비스의 자동 재시작 또는 중지가 있다.

로그 소스를 명시해 감시 범위를 넓힌다

OSSEC은 시스템 로그, 인증 로그, 웹 서버 로그, 데이터베이스 로그, 사용자 정의 애플리케이션 로그를 분석 대상으로 삼을 수 있다. 예를 들어 /var/log/messages, /var/log/syslog, /var/log/auth.log, /var/log/secure와 Apache·Nginx의 액세스 및 에러 로그, MySQL·PostgreSQL의 쿼리 및 에러 로그가 대상이 될 수 있다.

인증 로그와 Apache 접근 로그를 등록하는 설정은 다음과 같다.

<localfile>
  <log_format>syslog</log_format>
  <location>/var/log/auth.log</location>
</localfile>

<localfile>
  <log_format>apache</log_format>
  <location>/var/log/apache2/access.log</location>
</localfile>

중앙 관리가 필요한 환경에서의 활용

금융 기관에서는 실시간 파일 무결성 모니터링으로 랜섬웨어 공격 초기 단계를 탐지하고, 로그인 실패 패턴 분석으로 계정 탈취 시도를 막는 데 OSSEC을 활용할 수 있다. 중요 설정 파일의 변경을 즉시 알리고 다수 서버를 중앙에서 관찰해 관리 효율을 높이는 방식이다.

대규모 웹 호스팅 환경에서는 여러 웹 서버의 공격 패턴을 자동 식별·차단하고, 고객 웹사이트의 무단 변조를 탐지해 자동 복구 절차에 연결할 수 있다. 비정상 트래픽 패턴을 감지하는 DDoS 공격 조기 경보 체계도 같은 맥락에서 구성할 수 있다.

OSSEC Web UI는 알림과 로그를 확인하는 기본 웹 인터페이스이며, Kibana와 Elasticsearch는 로그 분석·시각화 조합으로 사용할 수 있다. Grafana는 대시보드 기반 모니터링과 알림 관리를 지원하고, Wazuh는 OSSEC 기반 확장 플랫폼으로 고급 분석과 관리 기능을 제공한다.

경고 품질과 운영 복원력을 함께 관리한다

초기 설정에서는 오탐(False Positive)이 발생할 수 있으므로, 환경에 맞게 규칙을 조정하고 화이트리스트를 구성해 불필요한 알림을 줄여야 한다.

대규모 환경에서는 로그 분석 부하와 에이전트 수에 맞춰 서버 리소스를 확보해야 한다. 설정과 규칙은 정기적으로 백업하고, 서버 장애에 대비한 페일오버 구성도 검토 대상이다. 새로운 위협에 대응할 수 있도록 규칙을 갱신하고 탐지 패턴을 개선하는 작업 역시 운영의 일부다.

OSSEC은 파일 무결성 검사, 로그 분석, 실시간 알림, 자동 대응을 묶어 호스트 보안 운영에 활용할 수 있는 오픈소스 도구다. 기존 보안 인프라와 연동하고 확장할 수 있어, 사후 대응보다 조기 탐지와 예방에 무게를 두는 환경에서 적용할 수 있다.

OSSECHIDS호스트 보안파일 무결성로그 분석능동적 대응