081. 계정 · 인증 보안 — 그룹 구성원 변경과 권한 확대 탐지

changseop lee·5일 전

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

선행 학습

1. 개념

권한 확대(privilege escalation)의 지속성 형태는 대개 "내 계정을 특권 그룹에 넣기" 또는 "sudoers에 내 계정 규칙 추가" 입니다. 054편이 그룹 구조를, 006편이 sudoers를 다뤘다면, 여기서는 변경 이벤트를 권한 확대로 연결합니다.

권한 확대 경로
 ① 그룹 추가   : usermod -aG wheel / gpasswd -a → 재로그인 후 sudo 가능
 ② sudoers 추가: /etc/sudoers.d/에 규칙 파일 → 즉시 sudo 가능
 ③ SUID 악용  : (D영역 「권한 변경 이상 징후」에서 상세)

확인 흐름: 변경 이벤트 → 권한 부여 → 실제 사용(sudo 성공) 까지 연결

2. 왜 중요한가

  • 그룹·sudoers 변경은 계정을 새로 만들지 않고 기존 계정의 권한만 올려, 탐지를 피하려는 방식입니다.
  • 그룹 추가는 재로그인이 필요하지만 sudoers 추가는 즉시 유효하므로, 두 경로의 "사용 시점"이 다릅니다.
  • 권한 획득만으로는 피해가 없고, 실제 사용(sudo root) 으로 이어졌는지가 중요합니다.

3. 핵심 명령어 / 설정

경로탐지
그룹 추가add '계정' to group 'wheel'(054편 101030)
sudoers.d 생성/etc/sudoers.d/ FIM(A영역 006편 100130대)
sudoers 변경visudo/파일 변경, priv_conf 키
권한 사용sudo ... USER=root 성공(5402)
연결변경 주체 auid = 사용 주체

4. 실습 (실습 예시)

LOG=/var/log/secure        # Ubuntu: /var/log/auth.log
# 1) 특권 그룹 추가 + sudoers 변경 이벤트 모으기
sudo grep -E "to group '(wheel|sudo|docker|lxd)'" $LOG
sudo ausearch -k priv_conf -i --start today 2>/dev/null | grep -E 'sudoers' | tail

# 2) 권한 획득 계정이 실제 sudo를 썼는지
for u in apache devops; do
  echo "== $u"; sudo grep "sudo\[.*$u : .*USER=root" $LOG | tail -3
done

# 3) 현재 특권 보유 현황 (054·006편 교차)
getent group wheel sudo docker
sudo grep -rhEv '^\s*(#|$)' /etc/sudoers /etc/sudoers.d/* 2>/dev/null

5. 정상 상태

Oct  2 10:30:01 rocky9-web01 usermod[13201]: add 'newadmin' to group 'wheel'
$ (사용) newadmin : ... USER=root ; COMMAND=/usr/bin/dnf update

관리자가 업무 시간에 신규 관리자를 wheel에 추가하고(인사 승인), 이후 정상 업무에 sudo를 쓴 상태면 정상입니다.

6. 이상 상태

Oct  2 02:16:00 rocky9-web01 ... /etc/sudoers.d/99-sysupdate 생성 (apache NOPASSWD:ALL)
Oct  2 02:16:10 rocky9-web01 usermod[11440]: add 'apache' to group 'wheel'
$ (사용) apache : TTY=unknown ; USER=root ; COMMAND=...
$ sudo ausearch -k priv_conf -i | grep -A1 sudoers
... auid=devops ... /etc/sudoers.d/99-sysupdate ...
  • 같은 계정(apache)에 두 경로(그룹 + sudoers) 동시 부여 → 확실한 권한 확보
  • sudoers.d는 즉시 유효 → apache가 바로 sudo root 사용
  • 변경 주체 auid=devops(탈취 계정) → 탈취 → 권한 확대 흐름(A영역 049편)

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

권한 확대의 연결 고리입니다(가상의 예시 로그).

02:16:00 PATH /etc/sudoers.d/99-sysupdate CREATE (auid=devops, priv_conf)
02:16:10 usermod: add 'apache' to group 'wheel' (auid=devops)
02:21:00 sudo: apache : TTY=unknown ; USER=root ; COMMAND=/bin/bash  (5402)
단계의미
sudoers.d 생성즉시 유효한 권한 부여
wheel 추가재로그인 후에도 유효한 권한(이중화)
sudo root 성공권한이 실제로 사용됨
모두 auid=devops단일 행위자의 권한 확대

권한 "부여"와 "사용"을 연결하면 준비와 실행을 모두 증명할 수 있습니다.

8. SOC 관제 포인트

  • 특권 그룹 추가·sudoers 변경은 동일 그룹(privilege) 으로 묶어 상관 분석합니다.
  • 권한 부여 이벤트는 반드시 이후 sudo 사용과 연결해 봅니다.
  • 서비스 계정 대상 권한 부여, 한 계정에 다중 경로 부여는 최상위 우선순위입니다.

9. 탐지 규칙

<group name="local,syssec_b,privilege,">
  <!-- 권한 부여(그룹/sudoers) 후 같은 계정의 sudo root 사용 -->
  <rule id="101280" level="13">
    <if_sid>5402</if_sid>
    <if_matched_group>privilege</if_matched_group>
    <same_user />
    <description>권한 부여 직후 해당 계정의 sudo root 사용(권한 확대 완성)</description>
  </rule>
</group>

이 상관 룰은 054편(101030 그룹 추가)·006편(sudoers)·057편(101060 sudo 셸) 룰에 privilege 그룹이 공통으로 붙어 있어야 동작합니다. wazuh-logtest로 그룹·same_user를 검증합니다.

10. 대응 방법

  1. 초기 확인 — 권한 부여 경로(그룹/sudoers)·대상 계정·주체와 이후 sudo 사용을 확인합니다.
  2. 범위 확인 — 같은 주체의 다른 권한 부여, 다른 서버의 동일 변경을 확인합니다.
  3. 증거 확보 — 그룹·sudoers 변경 로그·FIM, sudo 사용 로그를 보존합니다.
  4. 차단/조치 — 비인가 권한 회수(그룹 제거·sudoers 파일 격리)와 계정 조치를 진행합니다.
  5. 재발 방지 — 권한 부여-사용 상관 룰과 특권 그룹/sudoers 감시를 운영합니다.

11. 핵심 정리

경로특성
그룹 추가재로그인 후 유효, usermod/gpasswd 로그
sudoers.d즉시 유효, 파일 FIM
확인부여 → 사용(sudo root)까지 연결
위험서비스 계정 대상, 다중 경로 동시 부여
면접 포인트"권한 부여만으로는 피해 없음 — 실제 사용 연결이 핵심"

12. 다음 편 예고

다음 편 082. 계정 · 인증 보안 — 계정 삭제·흔적 정리 탐지 에서는 흔적을 지우는 계정 삭제·흔적 정리 탐지를 다룹니다.


이전 편: 080. 계정 · 인증 보안 — 계정 변경(usermod) 이벤트 분석
📚 시리즈 전체 보기: 시스템 보안 · 취약점

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

0개의 댓글