시스템 보안 · 취약점 › B. 계정 · 인증 보안 강화 · 33/50편 (전체 083/450)
학습 단계: 2단계 · 설정 및 점검
실습 표기: 이 글의 명령어·출력·로그는 로컬 VMware 테스트 VM(Rocky Linux 9 / Ubuntu 22.04) 기준의 「실습 예시」이며, IP·계정·호스트명은 가상의 값입니다.
휴면(dormant) 계정은 오랫동안 로그인하지 않은 계정입니다. 퇴직자·종료된 프로젝트·테스트 계정이 남은 경우가 많고, 아무도 보지 않아 공격자가 선호하는 지속성 대상입니다.
휴면 판단
lastlog : 마지막 로그인 시각 (기준: 예 90일 이상 미사용)
chage -l: 비밀번호 마지막 변경(오래 전 = 관리 안 됨)
상태 : 잠겨 있나(!), 셸이 있나
휴면 계정의 두 위험
① 방치 : 약한·오래된 비밀번호 → 탈취 대상
② 재사용 : 휴면이던 계정이 갑자기 로그인 → 탈취·내부자 신호 (053편 재활성화)
| 확인 | 명령 |
|---|---|
| 마지막 로그인 | lastlog -b 90 (90일 이상 미로그인) |
| 로그인 이력 | last -F 계정 |
| 비밀번호 나이 | sudo chage -l 계정 |
| 활성 여부 | sudo passwd -S 계정(잠금), 셸 확인 |
| 정리 | usermod -L -e 1 계정(잠금+만료) |
# 1) 90일 이상 미로그인 계정 (사람 계정)
lastlog -b 90 | awk 'NR>1 && $0 !~ /Never logged in/ {print}'
# "Never logged in"이면서 셸을 가진 계정도 확인
lastlog | awk '/Never logged in/{print $1}' | while read u; do
s=$(getent passwd "$u"|cut -d: -f7); echo "$s" | grep -qE 'sh$' && echo "$u never-logged + shell=$s"
done
# 2) 휴면이던 계정의 최근 로그인 (재사용 탐지)
# 기준선(026편)에 없던 계정이 새로 로그인했는지
sudo grep 'Accepted' /var/log/secure | grep -oE 'for [^ ]+' | sort -u
# 3) 정리 예시 (승인 후): 잠금 + 만료
sudo usermod -L -e 1 olduser
$ lastlog -b 90 | awk 'NR>1 && $0 !~ /Never/{print}'
backup pts/1 192.168.56.5 2026-06-01 10:00 (120일 전)
휴면 계정이 식별되어 잠금·만료 처리 대상 목록으로 관리되고, 재사용이 없는 상태가 정상입니다.
$ last -F backup | head -3
backup pts/1 192.168.56.77 Fri Oct 2 02:25:00 2026 still logged in
backup pts/1 192.168.56.5 Sat Jun 1 10:00:00 2026 - ...
$ sudo passwd -S backup
backup PS 2026-10-02 ... (최근 비밀번호 설정)
backup이 새벽·비관리망에서 재로그인 → 휴면 계정 재사용휴면 재사용의 흐름입니다(가상의 예시 로그).
(과거) backup 마지막 로그인: 2026-06-01 (이후 120일 침묵)
02:25:13 chpasswd: password changed for backup (053편 재활성화)
02:25:40 usermod: unlock user 'backup'
02:26:05 sshd: Accepted password for backup from 192.168.56.77
| 관찰 | 해석 |
|---|---|
| 120일 침묵 후 활동 | 휴면 → 활성 전환 |
| 재활성화(해제+비밀번호) 직후 로그인 | 준비 후 사용 |
| 비관리망 출발지 | 탈취·내부자 |
lastlog의 "갑작스러운 변화"가 핵심 신호입니다.
<group name="local,syssec_b,account,">
<!-- 과거 로그인 이력이 없던(또는 드물던) 계정의 로그인 성공 -->
<rule id="101300" level="10">
<if_sid>5715</if_sid>
<list field="dstuser" lookup="not_match_key">etc/lists/active-users</list>
<description>휴면/비활성 목록 계정의 로그인 성공</description>
</rule>
</group>
active-users CDB 리스트(최근 활성 계정)를 두고 "목록에 없는 계정 로그인"을 탐지하는 방식입니다. 리스트는 lastlog 기반으로 주기 갱신합니다. 휴면 식별 자체는 정기 점검(스크립트)으로, 재사용 탐지는 룰로 역할을 나눕니다.
| 구분 | 핵심 내용 |
|---|---|
| 휴면 식별 | lastlog 기준(예: 90일+ 미사용), Never logged in+셸 |
| 두 위험 | 방치(약한 비밀번호) / 재사용(조용한 지속성) |
| 정리 | usermod -L -e 1 (잠금+만료) |
| 재사용 탐지 | 활성 계정 목록 밖 로그인, 이상 점수(027편) |
| 면접 포인트 | "휴면 계정 재사용은 신규 생성보다 조용하다" |
다음 편 084. 계정 · 인증 보안 — 서비스 계정 관리와 로그인 차단 에서는 사람이 쓰지 않는 서비스 계정 관리와 로그인 차단을 다룹니다.
이전 편: 082. 계정 · 인증 보안 — 계정 삭제·흔적 정리 탐지
📚 시리즈 전체 보기: 시스템 보안 · 취약점