본문 바로가기
운영체제 (LNX,WIN)

Wazuh 활용한 방화벽 룰셋 모니터링 및 SCA 관리 체계

by 날으는물고기 2025. 2. 22.

Wazuh 활용한 방화벽 룰셋 모니터링 및 SCA 관리 체계

Architecture - Getting started with Wazuh · Wazuh documentation

Wazuh를 사용하여 iptables 룰셋 변경 감지와 Security Configuration Assessment(SCA)를 통합하여 서버의 보안 상태를 점검하고, 변경 사항을 중앙에서 모니터링 및 관리하며, 이상 상태에 대한 알림을 설정하고 대응하는 전체 프로세스 체계로 각 단계별 설정 및 예시입니다.

시스템 개요

목표

  1. iptables 룰셋 변경을 실시간으로 감지하고, 중앙 로그로 수집 및 경고(Alert) 생성.
  2. SCA 룰셋을 활용해 주기적으로 시스템 보안 상태를 점검하고, 정책 위반(Failed)을 탐지.
  3. 모든 이벤트를 중앙에서 관리하고 비정상 상태에 대한 알림과 대응 조치를 수행.

구성 요소

  1. Wazuh Agent
    • 각 서버에서 iptables 및 SCA 데이터를 수집.
  2. Wazuh Manager
    • 중앙에서 데이터를 분석하고 경고를 생성하며, 알림을 전송.
  3. Elastic Stack
    • Kibana 대시보드를 통해 로그와 경고를 시각화.
  4. 알림 시스템
    • 이메일, Slack, 웹훅 등을 통해 실시간 알림.

모니터링 프로세스

1) 파일 무결성 검사(FIM) 설정

  1. iptables 룰셋 파일 모니터링
    • 주요 파일 경로: /etc/sysconfig/iptables, /etc/iptables/rules.v4
    • /var/ossec/etc/shared/default/agent.conf 파일 수정
      <syscheck>
          <files>/etc/sysconfig/iptables</files>
          <files>/etc/iptables/rules.v4</files>
      </syscheck>
  2. 룰셋 변경 감지
    • 룰셋 파일이 변경될 때 이벤트가 발생하며, 로그는 다음 위치에 저장
      /var/ossec/logs/alerts/alerts.json

2) 로그 기반 iptables 변경 감지

  1. iptables 변경 시 로그 기록
    • /etc/rsyslog.conf에서 로그 레벨 설정
      iptables -A INPUT -j LOG --log-prefix "IPTables-Change: " --log-level 4
    • /var/log/syslog 또는 /var/log/messages로 로그 기록.
  2. Wazuh 로그 수집
    • /var/ossec/etc/ossec.conf 파일에 로그 경로 추가
      <localfile>
          <log_format>syslog</log_format>
          <location>/var/log/syslog</location>
      </localfile>
  3. 경고 규칙 설정
    • /var/ossec/ruleset/rules/0165-firewall_rules.xml 수정
      <rule id="100002" level="10">
          <decoded_as>syslog</decoded_as>
          <description>iptables rule changed</description>
          <group>firewall</group>
          <match>IPTables-Change:</match>
      </rule>

SCA 관리 프로세스

1) SCA 룰셋 정의

  1. 룰셋 작성
    • /var/ossec/ruleset/sca/에 XML 파일 작성
      <check id="check_secure_password_policy">
          <description>Ensure secure password policy is applied</description>
          <type>command</type>
          <command>grep -E '^PASS_MAX_DAYS|^PASS_MIN_DAYS' /etc/login.defs</command>
          <condition>contains</condition>
          <value>PASS_MAX_DAYS 90</value>
          <result>failed</result>
      </check>
  2. 룰셋 활성화
    • /var/ossec/etc/ossec.conf에 SCA 설정 추가
      <sca>
          <enabled>yes</enabled>
          <path>shared/sca-rules/</path>
      </sca>

2) 정기 점검 수행

  1. 점검 주기 설정
    • /var/ossec/etc/ossec.conf의 SCA 섹션에서 점검 간격 설정
      <sca>
          <enabled>yes</enabled>
          <interval>86400</interval> <!-- 하루 간격 -->
      </sca>
  2. 점검 결과 확인
    • SCA 로그: /var/ossec/logs/sca/<agent_id>/sca.log
    • 경고 로그: /var/ossec/logs/alerts/alerts.json

3) 중앙 관리 및 알람

  1. 경고(Alert) 생성
    • /var/ossec/ruleset/rules/sca_rules.xml에 규칙 추가
      <rule id="100003" level="7">
          <field name="sca.check_result">Failed</field>
          <description>SCA policy violation detected</description>
          <group>sca</group>
      </rule>
  2. 알림 설정
    • 이메일 알림
      <global>
          <email_notification>yes</email_notification>
          <email_to>admin@example.com</email_to>
          <smtp_server>smtp.example.com</smtp_server>
          <email_from>wazuh@example.com</email_from>
      </global>
    • Slack 알림
      export SLACK_WEBHOOK_URL="https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX"

Kibana 대시보드와 통합

  1. Kibana 설정
    • Wazuh 데이터를 Elastic Stack과 연동하여 시각화.
    • 주요 모니터링 항목
      • iptables 변경 이벤트
      • SCA 점검 결과 (Passed/Failed 비율)
      • 시간별 보안 이벤트 추이
  2. 대시보드 예시
    • iptables 이벤트: 변경된 룰셋 상세 내역.
    • SCA 결과: 각 서버별 정책 준수 상태.

전체 명령어 및 옵션 요약

  • FIM 설정: /var/ossec/etc/shared/default/agent.conf 수정.
  • 로그 수집: iptables 로그 추가 및 /var/ossec/etc/ossec.conf에 경로 추가.
  • SCA 룰셋: /var/ossec/ruleset/sca/ 경로에 XML 정의.
  • 알람 설정: /var/ossec/ruleset/rules/ 경로에 규칙 추가.

 

이를 통해 Wazuh를 사용한 중앙 집중식 보안 관리 체계를 구현할 수 있습니다. 리눅스 서버에서 iptables 규칙 변경을 모니터링하고, 이를 중앙에서 통합 관리하며, 비정상적인 상황이 발생했을 때 실시간으로 알림을 보내 대응할 수 있는 환경을 구축하는 방법입니다.

전체 시스템 개요

  • 각 서버에서 iptables 규칙 변경 사항을 실시간으로 감지.
  • 변경 사항 및 비정상적인 이벤트를 중앙의 Wazuh 서버로 수집.
  • 경고를 생성하여 이메일, Slack, 웹훅 등을 통해 알림.
  • 중앙 대시보드에서 모든 이벤트를 모니터링하고 분석.

구성 요소 및 주요 기능

1. Wazuh 에이전트

  • 각 서버에서 실행되며, iptables 규칙 변경 및 관련 이벤트를 수집.
  • 파일 무결성 검사(FIM)와 로그 수집 기능을 통해 iptables 이벤트를 감지.

2. Wazuh 매니저

  • 에이전트에서 수집된 데이터를 중앙으로 관리.
  • 규칙 기반 경고를 생성하고 알림을 발송.
  • 대시보드를 제공하여 이벤트를 실시간으로 분석 가능.

3. 통합 알림 시스템

  • 이메일, Slack, 웹훅 등 다양한 알림 방식 지원.
  • 비정상적인 이벤트 발생 시 즉각적으로 관리자에게 알림 전달.

구축 단계

1. Wazuh 에이전트 설치

  1. 각 서버에 Wazuh 에이전트 설치
    curl -s https://packages.wazuh.com/4.x/install.sh | sudo bash
  2. 에이전트를 Wazuh 매니저에 등록
    sudo /var/ossec/bin/agent-auth -m <Wazuh_Manager_IP>
    sudo systemctl restart wazuh-agent

2. iptables 관련 변경 감지 설정

방법 1: 파일 무결성 검사 (FIM)

  • iptables 규칙이 저장된 파일을 모니터링하여 변경 시 이벤트 생성.
  1. 파일 무결성 검사 대상 추가
    /var/ossec/etc/shared/default/agent.conf에 다음 내용을 추가
    <syscheck>
      <directories>/etc/sysconfig</directories>
      <files>/etc/sysconfig/iptables</files>
      <files>/etc/iptables/rules.v4</files>
    </syscheck>
  2. FIM 변경 사항 확인
    변경 사항은 /var/ossec/logs/alerts/alerts.json에 기록되며, 이를 대시보드에서 확인 가능.

방법 2: 로그 기반 감지

  • iptables 명령 실행 시 시스템 로그를 모니터링하여 변경 감지.
  1. iptables 변경 시 로그 설정
    iptables 규칙 추가
    iptables -A INPUT -j LOG --log-prefix "IPTables-Change: " --log-level 4
  2. Wazuh 로그 수집 설정
    /var/ossec/etc/ossec.conf에 로그 파일 경로 추가
    <localfile>
      <log_format>syslog</log_format>
      <location>/var/log/syslog</location>
    </localfile>
  3. 규칙 파일 수정
    /var/ossec/ruleset/rules/0165-firewall_rules.xml에 아래와 같은 규칙 추가
    <rule id="100001" level="10">
      <decoded_as>syslog</decoded_as>
      <description>IPTables Rule Change Detected</description>
      <group>iptables,</group>
      <match>IPTables-Change:</match>
      <firedtimes>1</firedtimes>
      <frequency>1</frequency>
    </rule>

3. 중앙 로그 수집 및 비정상 이벤트 처리

중앙 로그 수집

  • Wazuh 매니저는 각 서버에서 수집한 로그를 중앙으로 통합.
  • Elastic Stack(ELK)을 연동하여 시각화 및 분석 가능.

비정상 이벤트 처리

  1. 비정상 이벤트 정의
    • iptables 규칙 변경 외에도 불필요한 연결 시도나 특정 패턴의 로그를 비정상으로 정의.
    • 예: 외부 IP의 반복적인 SSH 접근 시도.
  2. 규칙 설정
    • Wazuh 내장 규칙 또는 커스텀 규칙을 사용하여 비정상 이벤트에 경고 생성.
  3. 경고 관리
    • 경고는 Wazuh 대시보드의 "Alerts" 섹션에서 확인 가능.
    • 심각도에 따라 경고 레벨을 조정하여 관리.

4. 알림 설정

이메일 알림

  1. /var/ossec/etc/ossec.conf에 이메일 알림 설정 추가
    <global>
      <email_notification>yes</email_notification>
      <email_to>admin@example.com</email_to>
      <smtp_server>smtp.example.com</smtp_server>
      <email_from>wazuh@example.com</email_from>
    </global>

Slack 알림

  1. Slack 웹훅 생성
    • Slack의 앱 설정에서 새 웹훅 URL을 생성.
  2. /var/ossec/integrations/slack 파일 설정
    export SLACK_WEBHOOK_URL="https://hooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX"

Webhook 알림

  • 외부 API 또는 자동화 도구(n8n 등)로 이벤트를 전달.

5. Wazuh 대시보드 사용

대시보드 모니터링

  1. 주요 모니터링 항목
    • iptables 규칙 변경 이벤트.
    • 비정상적인 접근 시도.
    • 주요 트렌드와 이벤트 발생 빈도.
  2. 시각화
    • Elastic Stack(ELK)과 연동하여 Kibana 대시보드에서 그래프 및 통계 확인.

사례별 대응 프로세스

  1. iptables 규칙 변경 감지
    • Wazuh 경고 생성 → 이메일/Slack 알림 발송 → 관리자 확인 후 조치.
  2. 비정상적인 접근 시도
    • SSH 접근 시도 증가 감지 → 경고 생성 → IP 차단 스크립트 자동 실행.
  3. 이벤트 기반 자동화
    • Wazuh 경고를 n8n과 같은 도구로 전달 → 알림 및 대응 자동화.

장점과 확장성

장점

  • 중앙 관리로 이벤트 모니터링 및 분석 효율성 향상.
  • 파일 무결성 검사(FIM)와 로그 기반 감지로 높은 정확도 제공.
  • 다양한 알림 방식으로 즉각적인 대응 가능.

확장성

  • Wazuh를 다른 보안 도구(예: SIEM, EDR)와 연동하여 추가적인 보안 기능 제공.
  • Elastic Stack과 통합하여 로그 데이터의 분석 및 검색 기능 강화.

 

Wazuh는 iptables 규칙 변경을 포함한 시스템 이벤트를 효과적으로 모니터링하고, 이를 기반으로 경고와 알림을 통해 보안 사고에 신속히 대응할 수 있는 중앙 집중화된 관리 솔루션입니다. 이를 통해 보안 관리자는 리소스를 절약하고, 다수의 서버를 효율적으로 통제하며, 비정상적인 상황에 대한 대응력을 강화할 수 있습니다.

728x90

댓글