Linux 로그 경로 정리 · 18/50 · Part 2. RHEL / Rocky Linux 로그 경로

선행 학습 → 13. /var/log/secure 분석 · 기초 50. 보안관제 실습 - 로그에서 공격 흔적 찾기
이번 글 → Rocky Linux 인증 이벤트 추적
이어서 → 19. Rocky Linux 서비스 이벤트 추적

1. 들어가며

인증 이벤트는 따로 보면 평범합니다. "로그인 성공", "sudo 사용", "계정 생성" — 각각은 운영 중에도 흔합니다. 하지만 같은 세션 안에서 순서대로 일어나면 계정 탈취 후 권한 상승과 백도어 설치라는 공격 흐름이 됩니다.

핵심 요약

  • 연결 키: PID(secure), 세션 번호(logind/audit ses), auid(audit), TTY(sudo, useradd from=)
  • 흐름: SSH Login → sudo → su → passwd → useradd
  • secure 로 뼈대를 만들고 audit으로 "로그인한 원래 사람"을 확정한다.

2. 핵심 개념

연결 키어디에 있나역할
sshd PIDsshd[4101]로그인 ~ 세션 종료 묶기
TTYsudo ... TTY=pts/1, useradd ... from=/dev/pts/1같은 터미널에서 이어진 행위
sesaudit ses=12, logind New session 12한 로그인 세션 전체
auidaudit auid=1001sudo/su 이후에도 바뀌지 않는 최초 로그인 사용자

3. 로그 생성 구조

인증 이벤트 타임라인

SSH Login  sshd[4101] Accepted password for deploy   (secure)   ── ses=12, auid=1001 부여 (audit)
   ↓
sudo       sudo[4150] deploy : TTY=pts/1 ; COMMAND=/bin/bash (secure)  ── audit: auid=1001 uid=0
   ↓
su         su: session opened for user X by deploy   (secure)  ── audit: auid 유지
   ↓
passwd     passwd: password changed for sysbackup   (secure)
   ↓
useradd    useradd: new user: name=sysbackup ... from=/dev/pts/1 (secure) ── audit ADD_USER, auid=1001

4. 실제 로그 경로

/var/log/secure                   뼈대 (sshd, sudo, su, passwd, useradd)
/var/log/audit/audit.log          USER_LOGIN, USER_CMD, ADD_USER, EXECVE (auid 확정)
journalctl _COMM=sshd / _COMM=sudo 파일 변조 시 대조
/var/log/wtmp (last -F)           세션 시작/종료

5. 명령어 실습

S=/var/log/secure; U=deploy; IP=203.0.113.45

# 1) 해당 IP·계정의 인증 흐름을 시간순으로
grep -E "$IP|$U" $S | grep -E 'Accepted|session opened|sudo|su:|useradd|usermod|passwd' 

# 2) sudo/useradd 에 남은 TTY 로 같은 터미널 행위 묶기
grep -E 'TTY=pts/1|from=/dev/pts/1' $S

# 3) audit 으로 최초 로그인 사용자(auid) 기준 조회
ausearch -ua $(id -u $U) -ts today -i | grep -E '^type=(USER_LOGIN|USER_CMD|ADD_USER|EXECVE)' | head -20
aureport --login -ts today -i | tail -5

# 4) 세션 시작/종료 교차 확인
last -F $U | head -3

6. 로그 예시

실제 실행 결과 — Rocky Linux 9.8 · root@rocky9-lab — 인증 이벤트 추적

위 이미지는 Rocky Linux 9.8 실습 환경의 실제 실행 결과입니다.

아래는 실습 시나리오 로그(가상 데이터) 를 이번 글의 방법으로 정렬한 결과입니다.

[실습 시나리오 로그 · 가상 데이터 · /var/log/secure]
02:14:52 sshd[4101]: Accepted password for deploy from 203.0.113.45 port 51188 ssh2
02:14:52 sshd[4101]: pam_unix(sshd:session): session opened for user deploy(uid=1001)
02:15:30 sudo[4150]:   deploy : TTY=pts/1 ; PWD=/home/deploy ; USER=root ; COMMAND=/bin/bash
02:16:40 useradd[4210]: new user: name=sysbackup, UID=1002, ... shell=/bin/bash, from=/dev/pts/1
02:16:48 passwd[4215]: pam_unix(passwd:chauthtok): password changed for sysbackup
02:24:10 sshd[4101]: pam_unix(sshd:session): session closed for user deploy

7. 로그 필드 분석

시각이벤트연결 근거판단
02:14:52비밀번호 로그인PID 4101실패 42회 뒤 성공 (13편)
02:15:30root 셸TTY pts/1, 38초 후즉시 권한 상승
02:16:40계정 생성from=/dev/pts/1같은 터미널 → 같은 세션
02:16:48비밀번호 설정8초 후백도어 계정 완성
02:24:10세션 종료PID 4101세션 지속 9분 18초

audit의 auid=1001 이 sudo 이후 root 행위에도 유지되므로 "root가 계정을 만들었다"가 아니라 "deploy로 로그인한 사람이 root 권한으로 계정을 만들었다" 고 기술할 수 있습니다.

8. 보안관점

정상의심
로그인 → 특정 관리 명령 sudo로그인 1분 내 sudo /bin/bash
계정 생성은 IAM 절차·업무시간원격 세션에서 새벽 계정 생성 + 즉시 비밀번호 설정
su 대상이 서비스 계정su 실패 반복 후 성공

9. SOC 관점

  • Wazuh 실측(47편): 이 흐름은 40112(실패 후 성공, level 12) → 5403(첫 sudo) → 5902(사용자 추가, level 8) → 40501(공격 후 사용자 추가, level 15)로 이어집니다.
  • Triage: level 15 경보 하나만 봐도 이 타임라인 전체를 재구성해야 한다.
  • Response: 계정 잠금(usermod -L)·세션 종료 전 증거 보존 → 백도어 계정 비활성화 → 비밀번호 로그인 차단 검토.

10. 실습 체크리스트

[ ] PID / TTY / ses / auid 연결 키 설명
[ ] 계정·IP 기준 인증 흐름 정렬
[ ] TTY 로 같은 터미널 행위 묶기
[ ] ausearch -ua 로 auid 기준 조회
[ ] 타임라인 표 작성 (시각·이벤트·근거·판단)
[ ] Wazuh 경보 흐름과 대응 연결

11. 핵심 정리

  • 인증 이벤트는 순서와 세션 연결로 의미가 생긴다.
  • secure 의 PID·TTY로 뼈대를, audit의 auid로 주체를 확정한다.
  • auid는 sudo/su 이후에도 최초 로그인 사용자를 가리킨다.
  • 로그인 → 셸 획득 → 계정 생성이 수 분 안에 일어나면 강한 침해 신호다.
  • 대응 전에 타임라인과 증거를 먼저 확보한다.

12. 다음 편 연결

구분글
◀ 이전 글17. Rocky Linux 로그 경로 종합 정리
▶ 다음 글19. Rocky Linux 서비스 이벤트 추적
시리즈Linux 로그 경로 정리 전체 보기
선행 시리즈리눅스 시스템 기초 · 파일 · 권한 · 사용자 관리 · 서비스 · 프로세스 관리 · Linux 시스템 보안 기초
profile
코드에 숨겨진 위협을 읽고 AI로 보안의 미래를 설계합니다. 프론트엔드 개발 경험을 자산 삼아 더 견고하고 지능적인 보안 운영 시스템을 구축해 나가는 과정을 기록합니다

0개의 댓글