Fcheck 툴을 이용해 파일 시스템의 상태를 체크함으로써 간단히 IDS기능을 구현한다.
(파일 시스템의 무결성을 감시 한다.)
1.실행
크래커서 서버에 침투해서 특정한 파일을 변조 하거나 추가하여 백도어 또는 시스템에 악영향을 주는
파일을 숨겨 놓았다면, 서버 관리자는 상당히 곤욕 스러울 것이다. 시스템을 새로 설치하기엔 부담이
너무 크고 그렇다고 해당 백도어 파일을 쉽게 찾아내는 것은 쉽지 않은 일이다.
(또 이러한 경우가 아니더라도 사용자 혹은 관리자의 실수로 잘못 수정된 파일이 생길 수도 있으며,
이로인해 서비스 중인 시스템에 악영햐을 미칠 수 도 있다.)
이 때를 대비하여 우리는 파일시스템을 체크하는 툴들을 사용하는데 대표적인 예로 Tripwire 라는 툴이 있다.
하지만 이 툴은 설정도 약간€ 복잡하고 사용하기 번거로운 면도 없지 않아 있다.
여기서 소개하려는 Fcheck 라는 툴은 Tripwire 에 비해 설정도 간단하면서도 막강한 기능을 가지고 있다.
Fcheck라는 툴을 이용하여 간단한 파일 시스템 감시 시스템을 구축하여 보자.
Fcheck는 사용자가 설정한 디렉토리, 파일의 정보를 데이터베이스에 저장하고 있다가 정해진 시간마다
파일 시스템을 체크하여 파일 시스템의 무결성(파일 변조)을 체크하는 프로그램이다.
Fcheck 는 아래 링크에서 다운 받을 수 있다.
http://www.geocities.com/fcheck2000/download.html 현재 2.07.59 버전 까지 릴리즈 되어 있다.
해당 파일을 다운로드 한뒤에 압축을 풀고 설정화일의 변경만으로 바로 사용할 수 있다.
|
설정할 화일은 실행 화일은 fcheck 와 설정화일은 fcheck.cfg 이다.
fcheck.cfg 에서는 무결성을 검사할 디렉토리와 타임존 그리고 무결성 데이터 베이스가 존재할 경로를 설정한다.
설정은 이와 같이 할 수 있다.
vi fcheck.cgf
#fcheck.cfg- # 무결성 데이터베이스를 저장할 위치 #타임존 설정 |
화일의 약 212 라인에 유저가 수정할 수 있는 영역이 있다.
#vi fcheck |
위에서 처럼 fcheck.cfg 가 위치할 디렉토리를 설정하면 된다.
설정후 fcheck -ac 를 실행함으로서 무결성 디비를 생성하게 된다.
[root@vellev fcheck]# ./fcheck -ac |
[root@vellev fcheck]# touch /usr/backboor PROGRESS: validating integrity of Files PROGRESS: validating integrity of /usr/ PROGRESS: validating integrity of /usr/bin/
[root@vellev fcheck]# |
/usr/ 디렉토리에 backdoor 라는 파일이 추가된것을 확인 할 수 있다.
이와 같은 방법으로 각 핵심 파일시스템이나 특정 프로그램의 파일시스템의 무결성을 체크할 수 있다.
주의해야 할점은 정산적인 시스템의 변경이나 패키지 추가/변경 작업 후에는 반듯이 무결성 데이터베이스를
업데이트(fcheck -ac) 해주어야 한다.
이를 응용하여 cron 같은 데몬을 통해서 주기적으로 fcheck 를 실행하고 이 내용을 메일로 전송 받거나 외부
전송을 통해서 해당 시스템의 파일시스템 무결성을 체크 할 수 있을 것이다
fcheck는 Tripwire 와 동일한 파일 무결성 체크 툴입니다. 기존 시스템에 대한 정보를 데이터베이스로
가지고 있다가 변화가 생기면 비교를 통해 변화 내용을 관리자에게 알려주는 툴입니다.
tripwire에 비해 자세한 정보를 알려주지는 않지만 사용법이 간결하고, 출력정보가
복잡하지 않아서 편리하게 사용하실 수 있습니다.
http:www.geocities.com/fcheck2000
fcheck 홈 페이지에서 다운로드 후에 설치를 합니다. fcheck 는 펄로 만들어진 스크립트라서
컴파일이나 인스톨 과정은 거치치 않는 대신에 몇 가지 설정 파일을 수정하셔야 합니다.
/usr/local/fcheck 디렉토리에 설치하쟝.
압축을 해제하고 해당 디렉토리로 이동하면 달랑 5개 파일 뿐이지요.
[root@gyn fcheck]# ll 합계 136 -r--r--r-- 1 root root 13582 3월 13 2001 README -r-xr-xr-x 1 root root 72507 3월 13 2001 fcheck -r--r--r-- 1 root root 4168 3월 13 2001 fcheck.cfg -r--r--r-- 1 root root 12873 3월 13 2001 install -r--r--r-- 1 root root 17982 3월 13 2001 license |
먼저 fcheck 파일을 열어서 설정파일의 위치를 수정해줍니다.
########################################################### # # User modifiable variable definitions: # ########################################################### # This should be passed through the command line, but hard coding still works $config="/usr/local/admtools/conf/fcheck.cfg"; $config="/usr/local/fcheck/fcheck.cfg"; <-- 설치된 디렉토리로 변경. #$config="C:/Work/fcheck/fcheck.cfg"; |
그 후에는 환경설정파일을 수정합니다.
#Exclusion = /tmp/dir/afile |
나머지 설정들은 디폴트 값으로 두고, data 디렉토리를 만든후에 무결성 체크를 실행 합니다.
[root@gyn fcheck]# mkdir data [root@gyn fcheck]# ll 합계 140 -r--r--r-- 1 root root 13582 3월 13 2001 README drwxr-xr-x 2 root root 4096 11월 21 18:15 data -r-xr-xr-x 1 root root 72500 11월 21 16:35 fcheck -r--r--r-- 1 root root 4314 11월 21 18:15 fcheck.cfg -r--r--r-- 1 root root 12873 3월 13 2001 install -r--r--r-- 1 root root 17982 3월 13 2001 license [root@gyn fcheck]# ./fcheck -ac |
fcheck -ac 명령을 실행하고 나며 data 디렉토리 내의 환경설정 파일에서 지정한 디렉토리의 정보를
저장한 data.dbf 파일이 생성됩니다.
[root@gyn fcheck]# vi data/data.dbf # - Host gyn.pe.kr # - OS Linux 2.4.7-2 # - Database Creation Nov 21 18:17 2001 # - Uname Linux gyn.pe.kr 2.4.7-2 #1 Tue Aug 14 05:16:54 EDT 2001 i686 unknown # - FCheck by Michael A. Gumienny # - - - - -> BEGIN Directory /etc <- - - - - 228994!33152!0!1001896148!/etc/.pwd.lock!NOCRC 3581137!16877!4096!1001896739!/etc/CORBA!NOCRC 228986!33188!2434!1001896129!/etc/DIR_COLORS!NOCRC 3123321!16877!4096!1001896173!/etc/FreeWnn!NOCRC 229021!33188!81211!1001896200!/etc/Muttrc!NOCRC 277985!16877!4096!1001896939!/etc/X11!NOCRC 229002!33188!2561!1001896188!/etc/a2ps-site.cfg!NOCRC 229006!33188!15223!1001896188!/etc/a2ps.cfg!NOCRC ..중략.. |
일단 fcheck 를 한 번 실행한 후에 시스템에 변경사항이 생기면 변화를 체크해서 리포트를 출력하게
됩니다.
예제로 /home 에 111 이란 파일을 만든 후에 실행을 시키면 경고메세지를 보냅니다.
[root@gyn home]# touch 111 합계 12 -rw-r--r-- 1 root root 0 11월 21 18:28 111 drwx------ 4 backup backup 4096 11월 13 11:10 backup drwx------ 6 data data 4096 11월 16 15:39 data drwxr-xr-x 5 root root 4096 10월 25 11:41 members |
[root@gyn fcheck]# ./fcheck -ad PROGRESS: No individual files to validating PROGRESS: validating integrity of /lib
|
그런데 한가지 아쉬운 점은 하위 디렉토리의 변경은 정확하게 파악을 하지 못 하는게 좀 부족하다고
느끼는데 간편하게 쓰기엔 좋은 것 같습니다.
실행 세부 옵션은 다음과 같습니다.
-a | automatic mode, 설정파일의 모든 디렉토리 검사. |
-c | 새로운 데이터 베이스 생성. |
-d | 디렉토리 하위 변경사항 체크. |
-f | 환경설정 파일 지정. |
-i | 생성시간 무시 |
-l | 로그 파일에 변경된 내용 추가. |
-r -x |
리포트 내용을 파일로 저장. |
출처: http://user.oss.or.kr/lecture
댓글