095. 계정 · 인증 보안 — Wazuh 인증 커스텀 룰과 상관 룰

changseop lee·5일 전

시스템 보안 · 취약점 › B. 계정 · 인증 보안 강화 · 45/50편 (전체 095/450)
학습 단계: 5단계 · SOC 관제 연계
실습 표기: 이 글의 명령어·출력·로그는 로컬 VMware 테스트 VM(Rocky Linux 9 / Ubuntu 22.04) 기준의 「실습 예시」이며, IP·계정·호스트명은 가상의 값입니다.

선행 학습

1. 개념

044편의 기본 룰을 부모로 삼아, B영역에서 분석한 인증 이상을 커스텀 룰셋으로 정리합니다. A영역(100xxx)에 이어 B영역은 101000~101999 대역을 씁니다.

룰 유형
 단일 조건 : 기본 룰 + 맥락 (비관리망·업무외·서비스계정)
 빈도      : frequency/timeframe (brute-force 횟수, 스프레이 계정 수)
 상관      : if_matched_sid/group (돌파=실패후성공, 탈취=다범주결합)

그룹 체계 (상관 룰이 참조)
 authentication / privilege / account / persistence / account_compromise

2. 왜 중요한가

  • 분석(051~043편)을 룰로 옮겨야 자동 탐지가 됩니다. 사람이 매번 로그를 뒤질 수는 없습니다.
  • 빈도·상관 룰은 단일 로그로는 안 보이는 패턴(돌파·스프레이·다범주 결합)을 잡습니다.
  • 그룹을 일관되게 붙여야 상관 룰(돌파·탈취)이 동작합니다(047편 원칙).

3. 핵심 명령어 / 설정

B영역 커스텀 룰 요약(101000~101999)입니다.

ID탐지그룹레벨편
101000관리계정 비관리망 로그인authentication10051
101010/101011passwd 비정상 홈/해시, UID 재사용account12052
101020/101021잠금 해제, 약한 해시account10/11053
101030/101031특권 그룹 추가, 그룹 비밀번호privilege12/10054
101050/101060sudo 급증, sudo 셸privilege10/11056·057
101070/101071su 실패 반복, 서비스계정 suprivilege10/11058
101100/101110/101111opasswd 삭제, PAM 모듈/설정 변조pam11/13/12061·063
101120/101130계정 잠금, 다계정 잠금authentication10/12064·065
101140/101150authorized_keys 변경, 서비스계정 키ssh/persistence12/13066·067
101180/101190invalid user, 계정 열거authentication5/10070·071
101200/101210/101220brute 돌파, 스프레이, 돌파authentication13/12/13072·073·074
101240/101250다축 이탈, 다출발지authentication11/12077·078
101260/101270비정상 계정 생성, 셸 부여account/persistence12079·080
101340/101350상승 후 정찰, sudo 실패(민감)privilege9/11087·088
101370다범주 탈취 결합(상관)account_compromise14089

4. 실습 (실습 예시)

# 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'

5. 정상 상태

입력: Failed(220) 후 Accepted (devops, 192.168.56.77)
출력: id '101220' level '13' description 'brute-force 이후 ... 로그인 성공(돌파)'
      groups: '[... authentication, account_compromise]'
$ ossec.log: (오류 없음)

샘플 로그가 의도한 커스텀 룰에 매칭되고, 룰 로딩 오류가 없는 상태가 정상입니다.

6. 이상 상태

$ ossec.log
wazuh-analysisd: ERROR: Invalid regex ... rule '101210'
  • 스프레이 룰(101210)의 different_user 미지원·정규식 오류로 로딩 실패 → 해당 파일 전체 미적용 가능
  • 047편과 같이, 배포 전 wazuh-logtest·테스트 서버 검증이 필수
  • 미지원 조건은 SIEM 집계로 대체(073편)

7. 로그 분석 (분석 방법)

빈도·상관 룰이 단일 룰을 묶는 예시입니다(가상의 예시).

101180(invalid user, level 5) × 10회/2분  → 101190(계정 열거, level 10)
5716(실패) × 다수 + 5715(성공)             → 101220(돌파, level 13)
101200/101030/101260 (다범주) × 같은 계정  → 101370(탈취 결합, level 14)
계층역할
단일 룰개별 사실
빈도 룰반복 패턴(열거·brute)
상관 룰흐름·결합(돌파·탈취)

낮은 레벨 단일 룰들이 모여 높은 레벨 상관 룰로 격상되는 구조입니다.

8. SOC 관제 포인트

  • B영역 룰은 101000 대역 + 범주 그룹으로 통일합니다.
  • 빈도·상관 룰이 참조하는 그룹을 개별 룰에 빠짐없이 붙입니다.
  • 미지원 조건(different_user 등)은 SIEM 집계로 대체하고, 모든 룰은 배포 전 검증합니다.

9. 탐지 규칙

<!-- /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로 검증합니다.

10. 대응 방법

  1. 초기 확인 — 각 분석 유형의 샘플 로그로 커스텀 룰 매칭을 검증합니다.
  2. 범위 확인 — 룰 로딩 오류·과다·0건 룰을 점검합니다(047편).
  3. 증거 확보 — 룰 파일(git)·검증 결과를 보존합니다.
  4. 차단/조치 — 오류 룰 수정·롤백, 미지원 조건은 SIEM 집계로 대체합니다.
  5. 재발 방지 — 101000 대역·범주 그룹 체계와 주간 룰 점검을 운영합니다.

11. 핵심 정리

구분핵심 내용
ID 대역B영역 101000~101999
그룹authentication/privilege/account/persistence/account_compromise
룰 유형단일(맥락) · 빈도(brute·열거) · 상관(돌파·탈취)
검증wazuh-logtest → 테스트 → 배포
면접 포인트"낮은 레벨 단일 룰이 빈도·상관으로 묶여 높은 레벨 Incident가 된다"

12. 다음 편 예고

다음 편 096. 계정 · 인증 보안 — ELK 인증 대시보드 구성 에서는 룰 결과를 한눈에 보는 ELK 인증 대시보드 구성을 다룹니다.


이전 편: 094. 계정 · 인증 보안 — Wazuh 인증 기본 룰 해석
📚 시리즈 전체 보기: 시스템 보안 · 취약점

profile
코드에 숨겨진 위협을 읽고 AI로 보안의 미래를 설계합니다. 프론트엔드 개발 경험을 자산 삼아 더 견고하고 지능적인 보안 운영 시스템을 구축해 나가는 과정을 기록합니다

0개의 댓글