rootkit은 비정상적으로 서버를
공격하여 해킹을 하였을 때 이후에 보다 쉽게 접속을 하기 위해 백도어나 트로이잔 목마 프로그램을 설치하여 시스템에 숨겨놓은
프로그램을 의미한다.
대부분의 해킹 사고가 발생하였다면 무조건 재설치가 우선되어야 하지만 다양한 파일 무결성 검사나 또는
루트킷 체킹 프로그램(chkrootkit)을 이용하여 검사할 수 있다.
그러나 가장 많이 사용되는 명령어나 핵심 프로그램의 내용을 일부만 변경하여 정상적인 파일로 보이게 만들기 때문에 잡아내기
매우 힘들며 또한 보안을 위해서는 재설치를 해야 한다.
그러나 문제는 해킹 사고가 발생하였는지 조차 파악하지 못하는 경우가
있는데 이때는 주기적으로 루트킷 탐지 프로그램을 사용하거나 파일 무결성 검사로 파악 할 수 있다.
chkrootkit 설치를 통해서 현재 내가 운영하고 있는 시스템에 파일무결성에 문제는 없는지 확인해보자.
1. 다운로드 및 압축해제
http://www.chkrootkit.org
로 접속하여 현재 릴리즈된 소스를 다운로드하고 md5sum을 실행하여 소스의 변경 유무를 검사하고 압축을 해제한다.
2007.
05. 30.일 현재 아래버전이 최근에 나온소스이다.
chkrootkit
0.47 is now available! (Release Date:
Tue Oct 10 2006)
[root@smileserv]# wget ftp://ftp.pangeia.com.br/pub/seg/pac/chkrootkit.tar.gz [root@smileserv src]# tar xvfz chkrootkit.tar.gz |
2. 환경설정 및 설치
다운받은 파일 압축을 풀고 들어가보면 README 파일이 보인다.
대부분에 소스파일에는 친절하게도 README 파일안에 해당 소스가 무엇인지, 어떻게 설치하는지, 사용되는 옵션및 기타등등 자세히 나와있다.
다만 영어라는게 문제지만;;;;;;;;
아주 영어에 XXX가 아니라면 이정도 간단한 단어 연결이야 무슨말인지 이해가 갈것이다.
[root@smileserv src]# cd chkrootkit-0.47 [root@smileserv src]# ls |
설치는 아주 간단하다...
make sense 명령어 입력후 엔터치면 끝이다.
3. chkrootkit 테스트 [root@smileserv chkrootkit-0.47]# pwd
아래와 같이 실행하면 머가 후다닥 지나간다.
/usr/local/src/chkrootkit-0.47
[root@smileserv
chkrootkit-0.47]# ./chkrootkit
ROOTDIR is `/'
Checking `amd'...
not found
Checking `basename'... not infected
Checking `biff'...
not found
Checking `chfn'... not infected
Checking `chsh'... not
infected
Checking `cron'... not infected
...........................................
...........................................
이
제 먼지모를것들이 지나갔는데 이것들이 의미하는것이 무엇인지 알아보자.
infected : rootkit에 의해 변형이 됨 not infected : 어떤 루트킷의 증후를 발견하지 못함 / 이상없음 not tested : 점검을 실행하지 못함 not found : 점검한 command가 없다. |
4. chkrootkit 옵션
다음은 "chkrootkit" 명령어에서 제공하는 옵션이다.
하나 씩 실행해서 차이점이 무엇인지 비교해 보면 어떻게 다른지 금방 눈에 보일것이다.
-d : debug 검사 정보를 출력 -n : 옵션을 출력 -l : 검사할때 사용할 리스트를 출력 -q : 일반적인 검사내용은 생략하며 검사 정보만 출력 -r,p : 지정한 디렉토리를 최상위 디렉토리로 설정하여 검사하며 여러개를 지정하고자 할때는 -p 옵션을 사용할수 있으나 일반적인 환경에서는 사용되지 않음 -x : 전문가 모드로 출력 -V : 버전 정보를 출력 |
5. 스크립트를 통한 메일전송
대충
chkrootkit이 무엇인지 알았을것이다.
이제는 매일마다 들어가서 체크하기가 귀찮을것이다...
리눅스에는 cron
데몬이라는 아주 유용한 녀석이 시간에 마춰서 명령어를 실행해준다.
간단하게 스크립트를 이용해서 하루에 한번 메일을 통해서
점검결과를 자동전송할수 있게금 설정해보자.
[root@smileserv chkrootkit-0.47]# cd /etc/cron.daily |
위와 같이 스크립트 파일을 만들고 테스트삼아 돌려주면 자신에 MAIL로 1통에 반가운메일이 수신된걸 확인하면 끝...........