시스템 보안 · 취약점 › B. 계정 · 인증 보안 강화 · 44/50편 (전체 094/450)
학습 단계: 4단계 · 자동 점검·로그 분석
실습 표기: 이 글의 명령어·출력·로그는 로컬 VMware 테스트 VM(Rocky Linux 9 / Ubuntu 22.04) 기준의 「실습 예시」이며, IP·계정·호스트명은 가상의 값입니다.
Wazuh는 인증 관련 기본 룰을 이미 많이 제공합니다. 커스텀 룰(045편)을 만들기 전에, 기본 룰이 무엇을 이미 탐지하는지 알아야 중복·누락을 피합니다.
Wazuh 기본 인증 룰 (대표, 버전에 따라 ID·내용 상이 — logtest로 확인)
5500대: pam (pam_unix 인증 성공/실패)
5700대: sshd (5710 비존재 사용자, 5712 brute force, 5715 인증 성공, 5716 실패 ...)
5400대: sudo (5402 sudo to root, 5403 실패 ...)
5300대: su, login, 계정 관련
2900대: dpkg/계정 (Debian 계열 계정 생성 등)
룰 구조: id · level · group · if_sid(부모) · description
기본 룰을 부모(if_sid)로 삼아 조건을 좁히는 것이 커스텀 룰의 기본 패턴입니다(045편).
wazuh-logtest로 실제 매칭을 확인하는 습관이 룰 운영의 기본입니다(047편).| 도구/파일 | 용도 |
|---|---|
/var/ossec/bin/wazuh-logtest | 로그→룰 매칭 확인 |
/var/ossec/ruleset/rules/*.xml | 기본 룰(수정 금지, 참조용) |
0095-sshd_rules.xml 등 | 서비스별 기본 룰 파일 |
/var/ossec/etc/rules/local_rules.xml | 커스텀(수정 대상) |
| Wazuh 문서 Ruleset | 룰 ID·설명 참조 |
# 1) 샘플 로그로 매칭 룰 확인
sudo /var/ossec/bin/wazuh-logtest
# 입력: Oct 2 02:10:44 host sshd[1]: Accepted password for devops from 192.168.56.77 port 50110 ssh2
# 출력: Phase 3 id '5715' level '3' description 'sshd: authentication success'
# 2) 기본 룰 파일에서 인증 룰 ID·설명 보기 (참조만)
sudo grep -hE 'rule id|<description>' /var/ossec/ruleset/rules/0095-sshd_rules.xml | head -40
# 3) brute-force·sudo 룰 확인
echo 'Oct 2 02:30 host sudo: devops : TTY=pts/1 ; USER=root ; COMMAND=/bin/bash' | sudo /var/ossec/bin/wazuh-logtest
**Phase 3: Completed filtering (rules).
id: '5715'
level: '3'
description: 'sshd: authentication success'
groups: '['syslog', 'sshd', 'authentication_success']'
로그가 의도한 기본 룰(5715)에 매칭되고, 그룹·레벨을 확인할 수 있는 상태가 정상입니다. 인증 성공이 레벨 3(낮음)인 것은 정상 로그인이 많기 때문입니다.
기본 룰만으로는 부족한 경우를 식별합니다.
입력: 비관리망·새벽 devops 로그인 성공
출력: id '5715' level '3' → "성공"으로만 잡힘, 이상 로그인 맥락은 없음
→ 커스텀 룰(101171, 051편)로 '업무 외+비관리망' 조건을 더해야 이상으로 탐지됨
기본 룰과 커스텀 룰의 역할 분담 예시입니다(가상의 예시).
로그: Accepted password for devops from 192.168.56.77 (02:10)
기본 5715 (level 3) : "인증 성공" — 기록
커스텀 101171 (level 11): "업무 외+비관리망 성공" — 이상 Alert
커스텀 101220 (level 13): "돌파(실패 후 성공)" — Incident
→ 하나의 로그가 여러 룰에 매칭, 레벨이 가장 높은 것이 우선순위
| 룰 | 역할 |
|---|---|
| 기본 5715 | 사실 기록(성공) |
| 커스텀(맥락) | 이상 판정·상관 |
기본 룰은 "사실", 커스텀 룰은 "판정"을 담당하는 구조입니다.
wazuh-logtest로 기본 룰이 이미 잡는지 확인합니다.if_sid)로 재사용하고, 맥락·상관 조건만 커스텀으로 더합니다.<!-- 기본 룰을 부모로 삼아 맥락만 추가하는 패턴 (045편에서 확장) -->
<rule id="101400" level="11">
<if_sid>5715</if_sid> <!-- 기본: 인증 성공 -->
<srcip>!192.168.56.0/28</srcip> <!-- 추가: 비관리망 -->
<description>비관리망 SSH 로그인 성공(기본 5715 + 맥락)</description>
</rule>
이렇게 하면 기본 룰의 디코딩·파싱을 그대로 활용하면서 조건만 좁힐 수 있습니다. 기본 룰 파일은 절대 수정하지 않고 local_rules.xml에만 작성합니다(047편 원칙).
wazuh-logtest로 확인합니다.| 룰 대역 | 담당 |
|---|---|
| 5500대 | pam 인증 |
| 5700대 | sshd(5712 brute, 5715 성공, 5716 실패) |
| 5400대 | sudo(5402 root) |
| 커스텀 101000대 | 맥락·상관(B영역) |
| 면접 포인트 | "기본 룰=사실 기록, 커스텀 룰=이상 판정 — 기본을 부모로 재사용" |
다음 편 095. 계정 · 인증 보안 — Wazuh 인증 커스텀 룰과 상관 룰 에서는 기본 룰을 확장하는 Wazuh 인증 커스텀 룰과 상관 룰을 다룹니다.
이전 편: 093. 계정 · 인증 보안 — 인증 이벤트 타임라인 작성
📚 시리즈 전체 보기: 시스템 보안 · 취약점