시스템 보안 · 취약점 › B. 계정 · 인증 보안 강화 · 45/50편 (전체 095/450)
학습 단계: 5단계 · SOC 관제 연계
실습 표기: 이 글의 명령어·출력·로그는 로컬 VMware 테스트 VM(Rocky Linux 9 / Ubuntu 22.04) 기준의 「실습 예시」이며, IP·계정·호스트명은 가상의 값입니다.
044편의 기본 룰을 부모로 삼아, B영역에서 분석한 인증 이상을 커스텀 룰셋으로 정리합니다. A영역(100xxx)에 이어 B영역은 101000~101999 대역을 씁니다.
룰 유형
단일 조건 : 기본 룰 + 맥락 (비관리망·업무외·서비스계정)
빈도 : frequency/timeframe (brute-force 횟수, 스프레이 계정 수)
상관 : if_matched_sid/group (돌파=실패후성공, 탈취=다범주결합)
그룹 체계 (상관 룰이 참조)
authentication / privilege / account / persistence / account_compromise
B영역 커스텀 룰 요약(101000~101999)입니다.
| ID | 탐지 | 그룹 | 레벨 | 편 |
|---|---|---|---|---|
| 101000 | 관리계정 비관리망 로그인 | authentication | 10 | 051 |
| 101010/101011 | passwd 비정상 홈/해시, UID 재사용 | account | 12 | 052 |
| 101020/101021 | 잠금 해제, 약한 해시 | account | 10/11 | 053 |
| 101030/101031 | 특권 그룹 추가, 그룹 비밀번호 | privilege | 12/10 | 054 |
| 101050/101060 | sudo 급증, sudo 셸 | privilege | 10/11 | 056·057 |
| 101070/101071 | su 실패 반복, 서비스계정 su | privilege | 10/11 | 058 |
| 101100/101110/101111 | opasswd 삭제, PAM 모듈/설정 변조 | pam | 11/13/12 | 061·063 |
| 101120/101130 | 계정 잠금, 다계정 잠금 | authentication | 10/12 | 064·065 |
| 101140/101150 | authorized_keys 변경, 서비스계정 키 | ssh/persistence | 12/13 | 066·067 |
| 101180/101190 | invalid user, 계정 열거 | authentication | 5/10 | 070·071 |
| 101200/101210/101220 | brute 돌파, 스프레이, 돌파 | authentication | 13/12/13 | 072·073·074 |
| 101240/101250 | 다축 이탈, 다출발지 | authentication | 11/12 | 077·078 |
| 101260/101270 | 비정상 계정 생성, 셸 부여 | account/persistence | 12 | 079·080 |
| 101340/101350 | 상승 후 정찰, sudo 실패(민감) | privilege | 9/11 | 087·088 |
| 101370 | 다범주 탈취 결합(상관) | account_compromise | 14 | 089 |
# 1) 룰 파일 분리
ls /var/ossec/etc/rules/ | grep syssec_b
# syssec_b_auth.xml syssec_b_account.xml syssec_b_privilege.xml ...
# 2) 각 분석 샘플 로그로 검증
sudo /var/ossec/bin/wazuh-logtest # 071·072·074 샘플 입력 → 101190/101200/101220 매칭 확인
# 3) 적용
sudo systemctl restart wazuh-manager
sudo tail -20 /var/ossec/logs/ossec.log | grep -iE 'error|rules'
입력: Failed(220) 후 Accepted (devops, 192.168.56.77)
출력: id '101220' level '13' description 'brute-force 이후 ... 로그인 성공(돌파)'
groups: '[... authentication, account_compromise]'
$ ossec.log: (오류 없음)
샘플 로그가 의도한 커스텀 룰에 매칭되고, 룰 로딩 오류가 없는 상태가 정상입니다.
$ ossec.log
wazuh-analysisd: ERROR: Invalid regex ... rule '101210'
different_user 미지원·정규식 오류로 로딩 실패 → 해당 파일 전체 미적용 가능wazuh-logtest·테스트 서버 검증이 필수빈도·상관 룰이 단일 룰을 묶는 예시입니다(가상의 예시).
101180(invalid user, level 5) × 10회/2분 → 101190(계정 열거, level 10)
5716(실패) × 다수 + 5715(성공) → 101220(돌파, level 13)
101200/101030/101260 (다범주) × 같은 계정 → 101370(탈취 결합, level 14)
| 계층 | 역할 |
|---|---|
| 단일 룰 | 개별 사실 |
| 빈도 룰 | 반복 패턴(열거·brute) |
| 상관 룰 | 흐름·결합(돌파·탈취) |
낮은 레벨 단일 룰들이 모여 높은 레벨 상관 룰로 격상되는 구조입니다.
<!-- /var/ossec/etc/rules/syssec_b_auth.xml 발췌 -->
<group name="local,syssec_b,authentication,">
<rule id="101190" level="10" frequency="10" timeframe="120">
<if_matched_sid>5710</if_matched_sid>
<same_source_ip />
<description>단일 출발지의 다수 비존재 계정 시도(계정 열거)</description>
<mitre><id>T1589.002</id></mitre>
</rule>
<rule id="101220" level="13">
<if_sid>5715</if_sid>
<if_matched_sid>5720</if_matched_sid>
<same_source_ip /><same_user />
<match>Accepted password</match>
<description>brute-force 이후 password 로그인 성공(돌파)</description>
<mitre><id>T1110</id></mitre>
</rule>
</group>
<mitre> 태그로 ATT&CK 기법(T1110 brute force 등)을 연결하면 대시보드에서 기법별 탐지를 볼 수 있습니다. same_* 조건은 wazuh-logtest로 검증합니다.
| 구분 | 핵심 내용 |
|---|---|
| ID 대역 | B영역 101000~101999 |
| 그룹 | authentication/privilege/account/persistence/account_compromise |
| 룰 유형 | 단일(맥락) · 빈도(brute·열거) · 상관(돌파·탈취) |
| 검증 | wazuh-logtest → 테스트 → 배포 |
| 면접 포인트 | "낮은 레벨 단일 룰이 빈도·상관으로 묶여 높은 레벨 Incident가 된다" |
다음 편 096. 계정 · 인증 보안 — ELK 인증 대시보드 구성 에서는 룰 결과를 한눈에 보는 ELK 인증 대시보드 구성을 다룹니다.
이전 편: 094. 계정 · 인증 보안 — Wazuh 인증 기본 룰 해석
📚 시리즈 전체 보기: 시스템 보안 · 취약점