리눅스

typkdev·2024년 10월 9일

리눅스의 utmp, wtmp, btmp 파일들은 사용자 로그인 활동과 관련된 정보를 기록하는 중요한 로그 파일들입니다. 이 파일들의 이름은 약어로, 각각 다음과 같은 의미를 가집니다:

utmp (User Terminal)

  • 현재 시스템에 로그인한 사용자의 상태 정보를 기록합니다[1][3].
  • /var/run/utmp 위치에 저장됩니다[3].
  • w, who, finger 등의 명령어로 내용을 확인할 수 있습니다[1][3].

wtmp (Write Terminal)

  • 사용자의 로그인, 로그아웃, 시스템 재부팅 등의 히스토리 정보를 기록합니다[1][2].
  • /var/log/wtmp 위치에 저장됩니다[2][3].
  • last 명령어로 내용을 확인할 수 있습니다[1][2].

btmp (Bad Terminal)

  • 로그인 실패 정보를 기록합니다[1][3].
  • /var/log/btmp 위치에 저장됩니다[3].
  • lastb 명령어로 내용을 확인할 수 있습니다[1][3].

이 파일들은 모두 바이너리 형식으로 저장되어 있어 일반적인 텍스트 편집기로는 읽을 수 없습니다[2]. 대신 각각의 파일에 대해 지정된 명령어를 사용하여 내용을 확인할 수 있습니다.

이러한 로그 파일들은 시스템 관리자가 사용자 활동을 모니터링하고, 보안 문제를 탐지하며, 시스템 사용 패턴을 분석하는 데 매우 유용한 정보를 제공합니다[2][4].

Citations:
[1] https://dukkoong.tistory.com/6
[2] https://linuxhandbook.com/utmp-wtmp-btmp/
[3] https://noil0816.tistory.com/105
[4] https://hippogrammer.tistory.com/288


loginlog와 sulog는 리눅스 시스템에서 사용자 인증 및 권한 상승과 관련된 로그 파일입니다. 각각의 의미와 용도는 다음과 같습니다:

loginlog

loginlog 파일은 일반적으로 사용자 로그인 시도에 대한 정보를 기록합니다. 하지만 이 파일은 모든 리눅스 배포판에서 기본적으로 사용되지는 않습니다. 대신 많은 시스템에서는 /var/log/auth.log나 /var/log/secure 파일이 이와 유사한 역할을 합니다.

sulog

sulog는 su(substitute user) 명령어의 사용 기록을 저장하는 로그 파일입니다[1][4].

주요 특징:

  • 위치: 일반적으로 /var/log/sulog에 위치합니다.
  • 목적: 시스템에서 su 명령어를 통한 사용자 전환 시도를 모두 기록합니다.
  • 내용: 각 su 실행에 대해 날짜, 시간, 결과, 포트, 실행한 사용자, 전환하려는 사용자 등의 정보를 포함합니다.

sulog 파일의 예시 형식:

SU 날짜 시간 결과 포트 사용자-새사용자
  • 날짜: mm/dd 형식 (월/일)
  • 시간: HH/MM 형식 (24시간제)
  • 결과: 성공 시 '+', 실패 시 '-'
  • 포트: su 명령이 실행된 터미널 장치 이름
  • 사용자: su 명령을 실행한 사용자 ID
  • 새사용자: 전환하려는 사용자 ID

이 로그 파일들은 시스템 관리자가 사용자 활동을 모니터링하고, 보안 문제를 탐지하며, 권한 상승 시도를 추적하는 데 매우 유용합니다. 특히 sulog는 루트 권한 획득 시도를 감시하는 데 중요한 역할을 합니다.

Citations:
[1] https://docs.oracle.com/cd/E36784_01/html/E36882/sulog-4.html
[2] https://www.plesk.com/blog/featured/linux-logs-explained/
[3] https://man7.org/linux/man-pages/man1/login.1.html
[4] https://stackoverflow.com/questions/63706907/su-log-file-location
[5] https://linuxhandbook.com/utmp-wtmp-btmp/


PAM(Pluggable Authentication Modules)은 리눅스 시스템에서 사용되는 유연하고 모듈화된 인증 프레임워크입니다. PAM의 주요 특징과 포렌식 관점에서의 중요성을 자세히 설명하겠습니다.

PAM의 주요 특징

  1. 모듈화된 인증

    • PAM은 다양한 인증 메커니즘을 모듈 형태로 제공합니다[1].
    • 시스템 관리자는 각 서비스에 대해 독립적으로 인증 정책을 구성할 수 있습니다[1].
  2. 구성 파일

    • PAM 설정은 주로 /etc/pam.d/ 디렉토리에 있는 파일들로 관리됩니다[1].
    • 각 서비스별로 별도의 설정 파일이 존재합니다.
  3. 모듈 타입

    • auth: 사용자 인증을 담당[4]
    • account: 계정의 유효성 검증[4]
    • password: 비밀번호 설정 및 변경 관리[4]
    • session: 세션 관리[4]
  4. 제어 플래그

    • required, requisite, sufficient, optional 등의 플래그로 모듈의 중요도와 처리 순서를 결정합니다[4].
  5. 유연한 인증 정책

    • 다양한 인증 방식(비밀번호, 생체인식, 토큰 등)을 조합하여 사용할 수 있습니다.

포렌식 관점에서의 PAM

  1. 로그 분석

    • PAM은 인증 시도와 결과를 로그로 기록합니다.
    • /var/log/auth.log 또는 /var/log/secure 파일에서 PAM 관련 로그를 확인할 수 있습니다.
    • 이 로그들은 불법적인 접근 시도나 권한 상승 공격을 탐지하는 데 중요한 역할을 합니다.
  2. 접근 제어 정책 분석

    • /etc/pam.d/ 디렉토리의 설정 파일들을 분석하여 시스템의 인증 정책을 파악할 수 있습니다.
    • 비정상적인 설정 변경이 있었는지 확인할 수 있습니다.
  3. 타임라인 분석

    • PAM 설정 파일의 수정 시간을 확인하여 인증 정책 변경의 타임라인을 구성할 수 있습니다.
  4. 계정 잠금 정책 확인

    • pam_tally2.so 모듈을 사용한 계정 잠금 정책을 분석하여 브루트포스 공격 방어 메커니즘을 확인할 수 있습니다[4].
  5. 세션 정보 분석

    • PAM 세션 모듈이 기록하는 정보를 통해 사용자의 로그인/로그아웃 시간, 사용한 서비스 등을 파악할 수 있습니다.
  6. 비정상적인 모듈 탐지

    • /lib/security 또는 /usr/lib/security 디렉토리에 있는 PAM 모듈들을 검사하여 악성 모듈이 삽입되었는지 확인할 수 있습니다[1].
  7. 권한 상승 분석

    • su, sudo 등의 PAM 설정을 분석하여 권한 상승 정책과 그 사용 내역을 파악할 수 있습니다.
  8. 인증 우회 탐지

    • PAM 설정에서 인증을 우회할 수 있는 취약한 설정이 있는지 확인할 수 있습니다.

PAM은 리눅스 시스템의 인증 메커니즘의 핵심이므로, 포렌식 조사 시 PAM 관련 설정과 로그를 철저히 분석하는 것이 중요합니다. 이를 통해 시스템의 보안 상태, 인증 정책, 그리고 잠재적인 보안 위협을 종합적으로 평가할 수 있습니다.

Citations:
[1] https://prolinux.kr/38
[2] https://docs.redhat.com/ko/documentation/red_hat_enterprise_linux/7/html/system-level_authentication_guide/pluggable_authentication_modules
[3] https://takudaddy.tistory.com/304
[4] https://fastsecurity.tistory.com/16
[5] https://www.igloo.co.kr/security-information/%EB%A6%AC%EB%88%85%EC%8A%A4-pam-%EB%AA%A8%EB%93%88%EC%9D%98-%EC%9D%B4%ED%95%B4/

profile
좋아한다 지엽적 연구를, 갖는다 끊임 없는 의문을

0개의 댓글