080. 계정 · 인증 보안 — 계정 변경(usermod) 이벤트 분석

changseop lee·3일 전

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

선행 학습

1. 개념

계정을 새로 만들지 않고 기존 계정을 바꾸는 것도 흔한 공격 방식입니다. 기존 계정은 이미 신뢰받고 있어 눈에 덜 띕니다. usermod의 어떤 옵션이 쓰였는지로 의도를 읽습니다.

usermod 변경 유형과 위험
 -s /bin/bash   셸 부여      : 서비스 계정에 로그인 능력 (A영역 003편)
 -d /new/home   홈 변경      : 홈 탈취·비정상 경로
 -u 0 / -o      UID 변경     : 권한 상승(UID 0)
 -aG wheel      그룹 추가    : 특권 획득 (054편)
 -L / -U        잠금/해제    : 휴면 계정 재활성화 (053편)
 -e / -f        만료 변경    : 지속성 (060편)
 -l newname     이름 변경    : 추적 회피

2. 왜 중요한가

  • 서비스 계정에 셸을 주거나 UID를 0으로 바꾸면, 기존 계정이 즉시 백도어가 됩니다.
  • 변경은 생성보다 로그가 단순해(한 줄) 놓치기 쉽습니다. 변경 유형별로 위험도를 매겨야 합니다.
  • 여러 변경이 한 계정에 연속으로 일어나면(셸 + 그룹 + 만료 해제) 지속성 확보 과정입니다.

3. 핵심 명령어 / 설정

확인명령
변경 로그`sudo grep -E 'usermod
audit 변경sudo ausearch -k identity -i | grep usermod
셸 변경change user ... shell from ... to ...
그룹 추가add '계정' to group '...'(054편)
속성 현황getent passwd 계정, chage -l 계정

4. 실습 (실습 예시)

LOG=/var/log/secure        # Ubuntu: /var/log/auth.log
# 1) usermod 관련 이벤트 유형별
sudo grep -E 'usermod|change user|add .* to group|lock user|unlock user' $LOG | tail -20

# 2) 셸을 nologin→로그인 셸로 바꾼 서비스 계정
sudo grep 'change user' $LOG | grep -E "shell from '\S*nologin' to '\S*sh'"

# 3) audit로 usermod 옵션·주체 확인
sudo ausearch -k identity -i --start today 2>/dev/null | grep -A1 'comm="usermod"' | tail

5. 정상 상태

Oct  2 10:20:01 rocky9-web01 usermod[13101]: change user 'intern02' shell from '/bin/bash' to '/sbin/nologin'

관리자가 업무 시간에, 퇴사자 계정을 잠그거나 셸을 제거하는 방향(보안 강화)의 변경이면 정상입니다.

6. 이상 상태

Oct  2 02:15:40 rocky9-web01 usermod[11431]: change user 'apache' shell from '/sbin/nologin' to '/bin/bash'
Oct  2 02:16:10 rocky9-web01 usermod[11440]: add 'apache' to group 'wheel'
Oct  2 02:16:30 rocky9-web01 usermod[11445]: change user 'backup' shell from '/sbin/nologin' to '/bin/bash'
$ sudo ausearch -k identity -i | grep usermod
... auid=devops ... comm=usermod ...
  • 서비스 계정 apache에 셸 부여 + wheel 그룹 추가 → 기존 계정을 특권 백도어로 전환
  • 휴면 backup에도 셸 부여 → 여러 계정을 백도어화
  • 모두 새벽·탈취 계정(devops)이 수행 → 지속성 확보 과정(여러 백도어 준비)

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

변경이 권한 확대로 이어지는 흐름입니다(가상의 예시 로그).

02:15:40 usermod: change user 'apache' shell ... to '/bin/bash'   (로그인 가능화)
02:16:10 usermod: add 'apache' to group 'wheel'                   (sudo 권한)
02:20:05 sshd: Accepted publickey for apache from 192.168.56.77   (017편 심은 키로 로그인)
02:21:00 sudo: apache : USER=root ; COMMAND=/bin/bash             (특권 사용)
단계의미
셸 부여로그인 가능하게
wheel 추가sudo 권한 획득
로그인변경된 계정 사용
sudo root권한 확대 완성

변경(usermod) → 로그인 → 권한 사용의 3단 연결이 백도어화를 증명합니다.

8. SOC 관제 포인트

  • usermod 이벤트를 변경 유형별 위험도로 분류합니다(셸 부여·UID 0·특권 그룹·잠금 해제 = 높음).
  • 한 계정에 여러 변경이 연속되거나, 서비스 계정 대상이면 우선순위를 높입니다.
  • 변경 → 로그인 → 권한 사용 연결을 세션·auid로 추적합니다.

9. 탐지 규칙

<group name="local,syssec_b,account,persistence,">
  <rule id="101270" level="12">
    <match>change user</match>
    <regex type="pcre2">shell from '\S*(nologin|false)' to '\S*(ba|z|k)?sh'</regex>
    <description>서비스/비로그인 계정에 로그인 셸 부여(백도어화)</description>
  </rule>
  <rule id="101271" level="10">
    <if_group>audit</if_group>
    <match>comm="usermod"</match>
    <regex type="pcre2">-u 0|-o</regex>
    <description>usermod로 UID 0/중복 UID 변경</description>
  </rule>
</group>

054편(그룹 추가 101030), 053편(잠금 해제 101020)과 같은 그룹으로 묶어, 한 계정의 다중 변경을 상관 탐지합니다.

10. 대응 방법

  1. 초기 확인 — 변경된 계정·변경 유형·주체·시간과 이후 로그인·권한 사용을 확인합니다.
  2. 범위 확인 — 같은 주체가 변경한 다른 계정, 다른 서버의 동일 변경을 확인합니다.
  3. 증거 확보 — usermod 로그·audit, passwd/group FIM, 이후 행위 로그를 보존합니다.
  4. 차단/조치 — 변경을 원복(셸 nologin·그룹 제거·UID 복원)하고 해당 계정을 조치합니다.
  5. 재발 방지 — usermod 유형별 탐지 룰과 다중 변경 상관을 운영합니다.

11. 핵심 정리

변경 유형위험
셸 부여(nologin→sh)서비스 계정 로그인 가능화
UID 0/-o권한 상승
그룹 추가(wheel 등)특권 획득(054편)
잠금 해제·만료 변경휴면 재활성화·지속성(053·060편)
면접 포인트"기존 계정 변경은 신규 생성보다 눈에 덜 띈다"

12. 다음 편 예고

다음 편 081. 계정 · 인증 보안 — 그룹 구성원 변경과 권한 확대 탐지 에서는 권한이 그룹을 통해 퍼지는 그룹 구성원 변경과 권한 확대 탐지를 다룹니다.


이전 편: 079. 계정 · 인증 보안 — 신규 계정 생성 탐지와 검증
📚 시리즈 전체 보기: 시스템 보안 · 취약점

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

0개의 댓글