본문 바로가기

Learning/└◆리눅스 서버 보안

02_로그보안 02_로그 분석 (리눅스침해사고)

로그 분석

INDEX

 

 

정보수집

1.싱글 유저모드

2./var/log/messages

3./var/log/secure

4./var/log/wtmp

5./root/.bash_history

 

사용자의 서버 활동 사항을 추적 보고서
-> 시간에 기반한 보고서가 만들어져야 한다. (MAC 분석 작업)

 

주제 (침해사고 발생)
- 오늘 중요한 파일 (/etc/passwd)이 삭제 되었다.
(ㄱ) 오늘 파일이 지워졌다.
(ㄴ) 중요한 파일(/etc/passwd)이 지워졌다.

(1) 확인작업을 위한 로그인 시도 -> 로그인이 되지 않음
(2) 싱글유저 모드로 진입 /etc/passwd 파일 직접생성 후 root 패스워드 설정 후 reboot 
(삭제된파일 복구)
(3) root계정으로 정상 로그인 후 history 목록 확인 rm -f /etc/passwd 발견
(4) last CMD 를 통해 의심되는 유저(history rm -f /etc/passwd 시간대) 찾기.
(5) cat /var/log/secure | grep user01
개인인증을 기록하는 로그파일(EX: su, telnet, ssh)

Mar 7 17:56:45 linux200 sshd[11904]: pam_unix(sshd:session): session opened for user 'user01' by (uid=0)
Mar 7 17:56:49 linux200 su: pam_unix(su-l:session): session opened for user root by 'user01' by (uid=501)
Mar 7 17:56:52 linux200 sshd[11904]: fatal: login_init_entry: cannot find user 'user01'

 

방어대책. 그래프 비교.

() User01 사용자의 su 권한 회수

() Root의 암호가 유출되었음으로 Root의 암호 변경

() Root로 스위칭하여 log 파일을 지울 수 있음으로 log 파일을 타 서버에 중복 보관

(crontab l 명령어를 통해서 아무 설정도 안되어 있음을 확인)

() 침투 사용자를 통해서 백업한 파일 회수

() 침투 사용자를 통해서 피해 사실 구체적인 확인

 

 

개요

/etc/passwd 파일 삭제로 인한 서버 접속 장애에 대한 분석

장애 발생 일자

2016년 7월 28일 목요일

장애 내용

/etc/passwd 파일 삭제로 인하여 부팅후 로그인, 원격접속시 접속 불가

점검 항목

last - 로그인 내역 확인

/var/log/secure - 권한부여와 관련된 내용의 로그

/home/user/.bash_history - 해당 유저의 명령어 입력 히스토리

/root/.bash_history - root유저 명령어 입력 히스토리

점검 내용

 

1. 로그인시도 불가능 / 싱글모드로 부팅

 

 

 

 

 

 

2. /var/log/messages

- /var/log/messages 파일을 들여다 보아 IP가 172.16.6.11인 사용자가 텔넷을 이용하여 16시 52분 33초경 접속하여
77초간 머문 후 16시 53분 50초에 접속을 종료한 것을 확인

jul 28 16:52:33 linux200 xinetd(4321) : START : telnet pid=4991 from=172;16.6.11 

jul 28 16:53:50 linux200 xinetd(4321) : EXIT : telnet status=1 pid=4991 duration=77(sec)

 

 

3. /var/log/secure

- /var/log/secure 파일에서 보면 16시 52분 46초 user01사용자가 로그인 한 것을 확인, 16시 52분 53초 su CMD를 이용하여, root 사용자로
로그인 시도

...
Jul 28 16:52:53 linux200 su pam unix(su-l :session): ssesion  opend for user root by user01(uid=500)

 

 

4. /var/log/wtmp

- last | head -10 접속기록 확인 결과 IP:182.168.6.11사용자 16시 52분~ 53분 user01로 접속을 한 흔적 발생

 

 

5. /root/.bash_history

- .bash_history를 이용하여 53분에 사용된 명령어를 검색한다. /etc/passwd파일을 삭제하고 접속을 종료한 것을 확인

 

 

분석 결과

16시 52분 33초에 IP:172.16.6.11사용자가 텔넷을 이용하여 user01로 접속 후 su 명령어를 통해 root로 로그인하여, /etc/passwd 파일을 삭제하고

빠져나갔음.

 

 

 

MAC time 분석

 

유닉스 시스템뿐만 아니라 대부분의 파일시스템은 모든 디렉토리나 파일과 관련된 시간속성(mtime, atime, ctime)을 갖는다. 그리고 이러한 시간속성은 시스템, 또는 사용자 활동(Activity)에 대한 정보 등 피해 시스템을 분석하는데 매우 중요한 정보를 제공한다. 이러한 시간 속성을 줄여서 MAC time 이라고 한다.

- mtime(Modification) : 파일을 생성(creation)한 시간. 또는 마지막으로 파일내용을 바꾼 시간

- atime(Access) : 마지막으로 파일을 읽거나(read) 실행(execution)시킨 시간

- ctime(status Change) : 마지막으로 파일의 소유자, 그룹, 퍼미션 등이 변경된 시간, dtime이 없는 시스템에서는 ctime을 파일의 삭제시간으로 추정할 수 있다.

- dtime(Deletion) : 파일 삭제시간

 

MAC time은 공격자가 피해 시스템에서 어떠한 행동을 했는지에 대해 판단할 수 있는 자세한 정보를 제공한다. 예를 들어 공격자가 어떤 프로그램을 생성하고, 컴파일하고, 실행했는지에 대한 정보를 알 수 있으며, 어떠한 프로그램을 변조시켰는지에 대한 정보도 알 수 있다. 또한 ctimeinode 정보를 추적하게 되면 지워진 파일에 대한 정보와 내용을 복구할 수 있다. 특히, MAC time을 시간순서로 정렬해서 분석하게 되면 침임자의 일련의 행동을 추측할 수도 있게 된다.

 

MAC time을 가지고 시스템을 분석할 경우 주의할 것은 관리자가 단순히 시스템을 둘러보기만 해도 MAC time이 변경된다는 것이다. 특히, find와 같은 명령어를 사용하면 atime이 변경되기 때문에 침입자가 접근했던 경로를 얻을 수 없게 된다. , MAC time은 아주 변경되기 쉬운 정보이기 때문에, 피해 시스템을 분석하기에 앞서 분석도구를 이용해 MAC time 값을 획득하여야 한다. 가장 좋은 방법은 분석시스템을 이용하여 피해시스템을 분석하는 것이다.

 

MAC time을 이용한 분석에도 물론 한계가 따른다. 무엇보다 MAC time은 파일에 대한 최근의 마지막 변경 시간만을 간직하고 있기 때문에, 활발한 시스템 활동에 의해 쉽게 변경될 수 있다. 그리고 공격자는 touch 등의 명령이나 시스템 시간을 바꿈으로서 언제든 이러한 시간을 변경할 수 있다. 하지만 침입자가 몇몇 파일의 시간을 변조했다 하더라도, MAC time은 여전히 시스템에서 일어난 일을 분석하는데 큰 도움이 될 것이다.