154. 권한 변경 이상 — 권한 변경 정상 기준선 만들기

changseop lee·2026년 10월 7일

시스템 보안 · 취약점

목록 보기
154/450

시스템 보안 · 취약점 › D. 권한 변경 이상 징후 · 4/50편 (전체 154/450)
학습 단계: 권한 모델·기본 개념
실습 표기: 이 글의 명령어·출력·로그는 로컬 VMware 테스트 VM(Rocky Linux 9 / Ubuntu 22.04) 기준의 「실습 예시」이며, IP·계정·호스트명은 가상의 값입니다.

선행 학습

1. 개념

"이상한 권한 변경"을 탐지하려면 먼저 "정상적인 권한 변경" 을 정의해야 합니다(A영역 02편 기준선 개념의 권한 변경 버전). 정상 권한 변경은 배포·설치·설정 작업에서 특정 패턴으로 일어납니다.

권한 변경 기준선 요소
 주체   : 누가 바꾸나 (배포 계정·관리자·패키지)
 대상   : 어떤 파일 (웹루트·설정·배포 경로)
 방향   : 완화인가 강화인가 (644→755 정상 / 644→777 의심)
 맥락   : 패키지 설치·배포·변경관리와 일치하나
 빈도   : 평소 얼마나

정상 예: 배포 시 웹루트 755, 패키지 설치 시 바이너리 755
이상 예: 바이너리에 SUID, 중요 파일 world-writable, 비관리 계정의 변경

2. 왜 중요한가

  • 기준선이 없으면 모든 권한 변경이 똑같이 보여 이상을 판별할 수 없습니다. "이 변경이 평소 패턴인가?"는 기준선이 있어야 답합니다.
  • 권한 변경은 배포·패키지 작업에서 대량 발생하므로(정상), 이를 기준선으로 제외해야 오탐을 줄입니다(D46 정탐/오탐).
  • 기준선은 A영역 04편(권한 매트릭스)과 결합해 "기대 권한 + 정상 변경 패턴"을 함께 관리합니다.

3. 핵심 명령어 / 설정

기준선 요소산출
주체perm_change의 auid별 빈도
대상변경 대상 경로 분포
방향완화/강화 비율
맥락패키지·배포 로그와 시각 대조
기대 권한A영역 04편 매트릭스

4. 실습 (실습 예시)

# 권한 변경 기준선 산출 (분석 방법, 최근 로그)
# 1) 주체별 권한 변경 빈도
sudo ausearch -k perm_change -i --start week-ago 2>/dev/null | grep -oE 'auid=[^ ]+' | sort | uniq -c | sort -rn

# 2) 대상 경로 분포
sudo ausearch -k perm_change -i --start week-ago 2>/dev/null | grep -oE 'name="[^"]+"' | sort | uniq -c | sort -rn | head

# 3) 기준선 저장 (주체·대상·시각)
sudo ausearch -k perm_change -i --start week-ago 2>/dev/null | grep -E 'auid=|name=' | ... > /root/baseline/perm-profile-$(date +%F).txt

5. 정상 상태

[권한 변경 기준선 — 실습 예시]
주체: admin1(배포, 업무시간) 42, root(패키지) 15
대상: /var/www/html/* (배포), /usr/lib/* (패키지 설치)
방향: 완화 없음(644→755 수준), SUID 신규 0
맥락: 전부 배포(CHG)·dnf 로그와 일치

권한 변경이 배포·패키지 작업에 집중되고, SUID 신규·중요 파일 완화가 없는 상태가 정상 기준선입니다.

6. 이상 상태

기준선 수집 중 이미 이상이 드러나기도 합니다.

주체: admin1 42, devops 8 (평소 0)
대상: /usr/bin/find, /etc/passwd (기준선에 없던 대상)
방향: 644→4755(SUID), root→devops(소유권)
맥락: 변경관리·패키지 로그 없음
  • devops의 권한 변경(평소 0) + 바이너리 SUID + 중요 파일 소유권 → 기준선 이탈
  • 깨끗한 기간 데이터로 기준선을 만들어야 하므로, 이 이상치는 제외하고 조사합니다.

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

기준선은 이후 탐지의 비교 대상이 됩니다(활용 예시).

[기준선] 권한 변경 주체 {admin1, root}, 대상 {웹루트, /usr/lib}, SUID 신규 0
[신규 변경] devops가 /usr/bin/find에 SUID 설정
 비교: 주체 NEW(devops), 대상 NEW(바이너리), 방향 SUID → 3축 이탈 → 높은 이상
축기준선신규판정
주체admin1/rootdevops신규
대상웹루트/lib바이너리이탈
방향강화SUID위험

8. SOC 관제 포인트

  • 권한 변경 기준선(주체·대상·방향·맥락)을 산출해 이상 탐지의 비교 대상으로 둡니다.
  • 배포·패키지의 정상 권한 변경을 기준선으로 제외해 오탐을 줄입니다(D46).
  • 기준선은 A영역 04편 권한 매트릭스와 결합해 관리합니다.

9. 탐지 규칙

권한 변경 기준선은 룰보다 SIEM 집계·예외에 적합합니다.

# Kibana: 권한 변경 주체·대상 분포 (지난 30일)
rule.groups:"perm_change"  → Terms(data.audit.auid) × Terms(data.audit.file.name)

# 기준선 밖 주체·대상 탐지(개념)
→ 배포 계정·패키지 외 주체의 권한 변경, 기준선 밖 대상 → Alert

Wazuh에서는 배포·패키지 계정을 CDB 리스트로 두고 "목록 밖 주체의 권한 변경"을 탐지하는 방식이 실용적입니다(D46).

10. 대응 방법

  1. 초기 확인 — 깨끗한 기간 데이터로 권한 변경 기준선(주체·대상·방향)을 산출합니다.
  2. 범위 확인 — 수집 구간의 이상치(SUID·중요파일·비관리 주체)를 가려 조사합니다.
  3. 증거 확보 — 기준선 파일을 날짜별로 보존·관리합니다.
  4. 차단/조치 — 기준선을 탐지 룰·예외로 배포하고 주기적으로 갱신합니다.
  5. 재발 방지 — 권한 변경 기준선을 A영역 매트릭스와 함께 운영합니다.

11. 핵심 정리

요소기준선 내용
주체배포·관리·패키지 계정
대상웹루트·설정·배포 경로
방향완화 vs 강화(SUID=위험)
맥락패키지·배포·변경관리 일치
면접 포인트"정상 권한 변경(배포·패키지)을 기준선으로 — 이탈이 이상 징후"

12. 다음 편 예고

다음 편 155. 권한 변경 이상 — 권한 상승 경로와 권한 변경의 관계 에서는 권한 변경과 상승 경로의 관계를 정리하는 권한 상승 경로와 권한 변경의 관계를 다룹니다.


이전 편: 153. 권한 변경 이상 — 권한 변경 감사의 기반 구성(auditd perm)
📚 시리즈 전체 보기: 시스템 보안 · 취약점

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

0개의 댓글