본문 바로가기
I T/Linux

리눅스 log 파일 디렉토리별 의미

by 루솨 2015. 8. 30.
*** utmp, utmpx
  - 시스템에 현재 로그인한 사용자들에 대한 상태를 기록
  - wtmp, wtmpx와 파일 포맷은 동일하나 ump(x)에는 현재 시스템에 대한 정보가 남고 wtmp(x)에는 누적된 정보가
    남는다는 것이 가장 큰 차이점
  - /var/run (Linux) 혹은 /var/adm, /etc/ (Solaris) 등에 위치하며 바이너리 형태로 저장되어 vi 편집기 등으로는
    읽을 수 없다
  - utmp(x) 파일은 기본적으로 사용자 이름, 터미널 장치 이름, 원격 로그인 시 원격 호스트 이름, 사용자 로그인한
    시간 등을 기록하는데, utmp(x) 파일은 텍스트 파일이 아니므로 일반 편집기로는 내용을 정확히 확인하기 곤란
    who, w, whodo, users, finger 등의 명령어를 사용하여 관련된 정보를 알아낼 수 있다
  - 'w'는 utmp(x)를 참조하여 현재 시스템에 성공적으로 로그인한 사용자에 대한 snapshot을 제공해 주는 명령으로
    해킹 피해 시스템 분석 시에 반드시 실행해 보아야 하는 명령어

*** wtmp, wtmpx
  - 사용자들의 로그인-아웃 정보
  - 바이너리 형태이며, 지금까지 사용자들의 로그인, 로그아웃 히스토리를 모두 누적형태로 저장하고 있으며,
    시스템의 셧다운, 부팅 히스토리까지 포함하고 있어, 해킹 피해 시스템 분석 시 역시 중요란 로그
    'last' 명령을 이용하여 그 내용을 확인할 수 있다

*** sulog
  - 대부분의 UNIX 시스템에 남는 로그파일이며 사용자가 su(switch user)란 명령어를 사용한 기록이 남게 된다
  - 날짜 및 시간, 성공(+)/실패(-), 사용한 터미널 이름, from 사용자, to 사용자 등의 정보가 포함
  - 'su' 명령은 다른 사용자의 ID로 로그인하는 것과 동일한 효과를 가지므로 로그인 정보를 기록하는 utmp/wtmp
    파일과 연동하여 분석할 필요가 있다
  - 'su' 명령어를 이용하여 다른 사용자로 전환하게 되면 su 명령어를 수행한 사용자의 UID가 변환된 사용자의 UID로 변경
    하지만, 이러한 내역은 utmp/wtmp 파일에 반영되지 않는다
  - 'su - ID'와 같이 하면 다른 사용자로의 변환뿐만 아니라 그 사용자의 사용 환경으로 완전하게 변환하게 되므로
    해당 사용자의 로그인 쉘과 똑같이 사용 가능하게 된다
  - 만일, 공격자가 일반 사용자 권한으로 침입한 후 su 명령을 이용하여 root 권한을 흭득한 후 여러 가지 작업을
    하였을 경우 sulog를 통하여 특정 사용자에서 superuser로의 변환시도를 살필 필요가 있다
  - vi와 같은 편집기를 이용하여 수잡으로 확인

*** syslog, secure
  - 사용자 인증과 관련된 로그 및 커널, 데몬들에서 생성된 모든 로그를 포함
  - rsh, rlogin, ftp, finger, telnet, pop3 등에 대한 접속 기록 및 접속 실패 기록 등 시스템의 보안과 밀접한
    관계에 있는 로그이며 어떠한 정보가 어떠한 depth로 남는가는 시스템의 /etc/syslog.conf에서 정의한 것에 따라 다름
  - 보안사고가 발생할 경우 가장 먼저 백업하여야 하며 가장 먼저 분석을 시도하여 하는 로그파일로써,
    예를 들어 버퍼오버플로우 공격을 시도한 경우 이에 관련된 로그가 남는 유일한 파일
  - Linux 계열에서는 secure 로그로 남으며, 두 로그 다 마찬가지로 syslog 데몬에 의해서 생성되는데,
    secure 로그 쪽이 타 UNIX의 syslog보다 보안과 관련된 상세한 정보가 남음
  - vi 등의 편집기 및 grep 툴을 사용하여 분석

*** loginlog, failedlogin, btmp
  - Solaris를 포함한 시스템 V 계열의 유닉스에서 실패한 로그인 시도를 기록하는 파일로서 기본적으로 생성되지는 않으며,
    수동으로 생성해 주어야 하는 로그파일
  - 일반적으로 시스템 V 계열의 유닉스에서는 사용자가 5번째 로그인 시도에 실패하면 시스템에서 강제로 접속을 끊게 되는데
    loginlog 파일에는 날짜 및 시간, 로그인 터머널 이름, 사용자 Id 등이 text로 기록되므로, vi 편집기 등으로 확인
  - Linux와 HP-UX에서는 loginlog 파일에 해당하는 btmp 로그파일이 이 역할을 대신하며, AIX에는
    failedlogin 파일이 이러한 기능을 수행하는 로그
  - btmp, failedlogin 역시 바이너리 파일로써 수작업으로 읽을 수는 없으며, 단 Linux에서는 btmp 파일은 바이너리
    파일이지만 이 내용을 확인하기 위해서는 'lastb'라는 명령어를 사용하여 분석

*** shutdownlog
  - HP-Ux에만 있는 로그로써, 시스템의 shutdown, reboting, halt 등과 같은 내역이 기록
  - 어느 사용자가 시스템상에 어떤 조취를 취했는지 나타나므로, 시스템이 해커에 의해 리부팅되었거나 셧다운되지는
    않았는지를 파악하고자 할 때 한 번쯤 살펴보아야 할 로그
  - 운영과 관련된 중요한 정보들도 남아 있게 되는데 커널 패닉이 발생하여 리부팅이 일어난 경우
    'reboot after panic'이란 flag와 함께 로그파일에 기록되므로, 장애추적에 유용한 정보로 활용할 수 있다

*** access_log, error_log
  - 웹서버에서는 어느 사이트에서 시스템에 접속하였으며, 어느 파일이 다운로드 되었는지에 대한 기록이 access_log
    파일에 기록되고, 존재하지 않는 파일에 대한 접근 등의 에러에 대해서는 error_log에 기록
  - 웹서버에 대한 공격은 주로 CGI 프로그램에 집중되어 있는데, 취약한 CGI 프로그램에 대한 공격 로그도 이들
    로그파일에 기록
  - 웹관련 로그는 보안의 관점으로도 충분한 분석이 이루어져야 함
  - Apache 웹서버 로그는 물론 WebLogic, Netscape Enterprise Web server, NCSA 웹서버 로그, 웹스피어,
    IIS Web 서버 로그 등 다양한 Web Server 들이 존재하는데 이들의 로그포맷이 미묘하게 차이가 있으므로
    포맷들을 익혀두는 것이 필요

*** lastlog
  - 각 사용자가 가장 최근에 로그인한 시간과 접속장소가 기록되는 파일로서 사용자가 시스템에 로그인 할 때마다 갱신
  - 동일한 사용자에 대해서는 이전 내용을 overwrite 함으로써 갱신하게 되는데 이 로그 파일은 wtmp(x), utmp(x) 등
    사용자와 관련된 로그와 병행하여 함께 분석하여야 하는 파일
  - utmp, wtmp 파일과 함께 로그인 프로그래에 의해 사용자 인증 후 기록되는 로그파일로써 바이너리 파일로 저장
  - IBM AIX의 lastlog의 경우에는 타 UNIx에 비하여 보다 많은 정보가 담겨 있으며 text file 포맷이라는 점의 차이 있음

*** messages
  - timestamp, 호스트명, 프로그램명, 메시지 내용 등이 기록되는데, 메시지 내용에는 su 실패에 대한 로그,
    특정 데몬이 비활성화된 로그, 부팅시에 발생된 에러 등 다양한 로그들을 포함
  - syslog facility에 의하여 남는 로그로 /etc/syslog.conf 에서 어떻게 설정이 되어 있느냐에 따라 남는 정보의 종류가
    달라짐
  - syslog와 마찬가지로 보안사고가 발생시에 가장 먼저 분석을 하여야 하는 파일

*** xferlog
  - ftp 데몬을 통하여 송수신되는 모든 파일에 대한 기록이 남는데, 디폴트로는 로그가 남지 않으며
    /etc/inetd.conf 에서 ftp stream tcp nowait root /usr/sbin/tcpdin.ftpd -l -a와 같이 -l 옵션을 주었을 때만 로그 생성
  - 어떤 종류의 ftp 데몬을 사용하느야에 따라 생성이 되지 않을 수도 있다
  - 송수신 자료와 시간, 송수신을 수행한 원격 호스트, 송수신된 파일의 크기, 송수신된 파일의 이름,
    파일의 송수신 모드, 특수 행위 플래그, 전송 방향, 로그인한 사용자의 종류 등을 포함
  - wtmp(x) 및 utmp(x)와 병행하여 분석하는 것이 필요

*** pacct
  - 시스템에 들어온 사용자가 어떤 명령어를 실행시키고 어떤한 작업을 햇는지에 대한 사용 내역 등이 기록
  - 사용자가 직접 읽을 수 없는 바이너리 파일로 사용자가 수행한 단일 명령어의 모든 정보를 기록하고 있다.
    이 내용은 'lastcomm'이나 'acctcom' 명령어에 의하여 확인할 수 있다. 따라서, 해킹 피해 시스템의 피해 정도와
    백도어 설치여부 등을 파악하기 위해서는 이 로그가 필수적
  - 사용자별로 사용한 명령어를 구분하는 데는 유용하게 사용될 수 있지만, 사용된 명령어의 argument와 그 명령어가
    시스템 내 어느 파일시스템의 어느 디렉토리에 실행되었는지는 기록되지 않으므로 공격자들의 행위를 추적하기에는
    부족한 점이 많다. 이러한 단점은 사용자 history가 남는 .history, .bash_history, .sh_history와 함께 분석하여
    보완할 수 있다
  - 기본적으로 남지 않도록 설정되어 있지 않으므로 관리자가 accounting 명령을 하도록 설정하여야 함
  - 유닉스 종류에 따라 'startup' 혹은 'accton' 명령어를 사용하여 설정하도록 한다
  => 로깅 시작 시
  # /usr/lib/acct/accton /var/adm/pacct
 또는
 # /usr/sbin/acct/accton /var/adm/pacct 명령으로 시작
 => 로깅 중단 시
 # /usr/lib/acct/accton # /usr/sbin/acct/accton

*** history
  - 각 사용자별로 수행한 명령을 기록하는 파일로써, sh, csh, tcsh, ksh, bash 등 사용자들이 사용하는 쉘에 따라
    .sh_history, .history, .bash_history 등의 파일로 기록
  - 해킹 피해 시스템 분석시 불법 사용자 계정이나 root 계정의 history 파일을 분석하면, 공격자가 시스템에
    접근한 후 수행한 명령어들을 확인할 수 잇다는 점에서 매우 중요한 파일
  - 이 파일의 장점은 acct/pacct 파일에서 기록되지 않는 명령어의 argument나 디렉토리의 위치까지 기록이 가능하므로
    공격자의 행위를 추적하는데 대단히 유용한 정보가 될 수 있다.

*** sialog
  - Compaq Tru64는 로그파일들이 일반 타 UNIX에 남는 것과 좀 다른데, 같은 파일명을 사용하더라도 타 UNIX와는
    로그포맷이 다른 것이 대부분
   _ wtmpx는 /var/adm에 존재(포맷은 다름)
 _ pacct는 /var/adm에 존재(포맷은 다름)
 _ messages는 /var/adm에 존재(syslog 공통 포맷)
 _ loginlog는 /var/adm에 존재(공통 포맷)
 _ lastlog는 /var/adm에 존재(포맷은 다름)
  - Compaq Tru64 OS에는 sulog와 authlog가 없는 대신 sialog가 /var/adm에 남는다
  - SIA(Security Integration Architecture)라는 독특한 보안체계가 있기 때문에 일반적인 System V 계열과는 차이가 있다.
    물론 Compaq Tru64 OS에서도 System V 계열에 공통으로 있는 TCB(Trusted Computing Base) 보안체계를 따르고는 있다.

로그파일 분석을 통한 침입자 추적은 흔히 실패로 돌아가는 경우가 많다. 침해사고 분석시 가장 많이 경험하게 되는 것은
로그파일에 무수히 많은 스캔공격, 침입흔적을 발견하게 되는 경우이다.
이럴 경우 추적하고 있는 침입자 대상이 없어지는 것과 마찬가지가 된다. 또 다른 경우에는, 해당 침해사고와 관련된
침입자의 흔적만 없고 다른 침입자들의 흔적만이 가득히 쌓여있는 경우를 많이 발견한다.
그리고 또 다른 경우네는 공격 흔적은 있는데 공격자의 소스 IP가 남지 않는 공격로그가 있다.

**** 로그파일에 접근하는 방법
  - 시스템의 침입 흔적을 먼저 찾아내고 침입 시간대를 가능한 한 근접하게 추측한다.
    그리고 로그파일에서 해당 시간대의 로그를 찾아 확인하는 방법
  - 항의 메일에 기록된 시간대(로그나 시간정보가 있을 경우에)를 가지고 로그파일로부터 확인을 한 뒤에 시스템을
    분석하는 방법

만약 로그파일에 공격 흔적이 남아 있다면(공격자가 로그를 지우지 않았고 로그에 남는 형태의 공격일 경우메나 해당)
침입방법과 공격 시스템의 IP 주소를 얻을 수 있다.
파일시스템 분석을 통하여 침입자가 시스템에서 무엇을 했는지, 어떻게 침입햇는지에 대하여 추측할 수 있으며,
로그파일을 통해 해당 시스템에 침입해온 방법과 공격 시스템의 IP를 정확히 확인할 수 있는 것


'I T > Linux' 카테고리의 다른 글

리눅스 1G 파일 만들기 [ dd 명령어 ]  (0) 2015.12.01
apache authentication 설정!!  (0) 2015.10.07
wireshark 패턴  (0) 2015.08.30
pxe,kickstart 를 이용한 원격 OS 설치  (0) 2015.08.30
100기가 쓰레기 파일 생성 [dd 명령어]  (0) 2015.08.30