[보안] Fcheck 파일 무결성 체크 ..-아랑
파일 무결성 체크 프로그램 Fcheck 설치 활용 방법
작성자 : 서진우 (alang@sysmng.com)
————————————————————————-
리눅스에는 많은 명령어와 설정파일들이 있습니다. 간혹 해커들에 위해 중요파일이
변조되거나 백도어로 사용되는 명령어가 생기는 경우가 많습니다. 관리자는 이런
세밀한 시스템의 변화를 항상 관찰하여야 한다. 하지만..아무리 부지런한 관리자라
고 해도 수만개의 파일로 이루어진 리눅스 시스템을 체크한다는것은 불가능하다.
이에 여러가지 시스템 파일의 무결성을 체크 하는 프로그램이 있다. 여기에 소개할
fcheck 는 다른 무결성 프로그램들에 비해 그 설정이 매우 간단하고 성능도 효과적
이라 할수 있다.
먼저 프로그램을 다운 받도록 하자.
http://www.geocities.com/fcheck2000/
가면 최신 프로그램이 있을것이다. 다운을 받고 /usr/local 및에 둔다.
압축을 풀고..fcheck,fcheck.cfg 파일의 설정값을 몇개 수정하자.
# tar xzvf FCheck_2.07.59.tar.gz
# cd fcheck
# vi fcheck
——————————————————————-
.
# This should be passed through the command line, but hard coding still works
$config=”/usr/local/fcheck/fcheck.cfg”;
—————————————– 이부분을 시스템 환경에 맞게 수정
——————————————————————-
# vi fcheck.cfg
——————————————————————-
Directory = /etc/
Directory = /bin/
Directory = /usr/bin/
Directory = /sbin/
Directory = /usr/sbin/
Directory = /usr/local/bin/
Directory = /usr/local/sbin/
Directory = /lib/
Directory = /usr/lib/
Directory = /usr/local/lib/
#
# Directory 설정은 fcheck 가 체크할 파일들이 들어 있는 디렉토리로 시스템에
# 중요한 명령어나 설정파일등이 있는 곳을 정해 주면 된다.
#
Exclusion = /etc/passwd
Exclusion = /etc/shadow
#
# Exclusion 설정은 Directory 설정에서 정한 디렉토리중 자주 변경이 되는 파일
# 이 있어서 체크때마다 걸리므로 체크 생략을 요하는 파일을 정해 주면 된다.
# 호스팅 업체나 기타 자주 사용자를 추가하는 서버라면 위와 같이 해주면 된다.
#
DataBase = /usr/local/fcheck/data/data.dbf
#
# DataBase 설정은 리눅스 파일 정보를 DB 파일로 저장해서 다음 체크시 비교
# 분석할때 사용되어진다.
#
TimeZone = GMT-9
#
# 한국 시간을 적용한다. GMT-9
#
#File = /usr/local/admtools/logs/sol.dbf
File 설정은 필요 없으니 주석 처리 해준다.
기타 여러 설정값이 있으나 크게 작동하는데 영향을 주지 않는다.기본값을 적용
한다.
이와 같이 적용후 /usr/local/fcheck/data 디렉토리를 만들어 준다.
# mkdir /usr/local/fcheck/data
# /usr/local/fcheck/fcheck -ac
이와 같이 fcheck -ac 로 파일 무결성 체크를 시작한다. 그럼 data 디렉토리 안
에 data.dbf 파일이 생성되어 진다.
이제 Directory 설정에 해당하는 디렉토리 안에다가 파일을 하나 생성하고 재대
로 점검을 하는지 테스트를 하여 보자..
# touch /etc/test
# /usr/local/fcheck/fcheck -a
그럼 아마 아래와 같은 결과를 출력할것이다.
PROGRESS: validating integrity of /etc/
STATUS:
ADDITION: [zzang911.net] /etc/test
Inode Permissons Size Created On
19508 -rw-r–r– 0 Sep 19 20:13 2001
자 이제 이 명령어를 이용하여 주기적으로 시스템 파일 무결성을 체크하고 관리
자에게 통보하는 프로그램을 만들어 보도록 하자.
# vi fcheck.sh
————————————————————————-
#!/bin/sh
CHECK=`/usr/local/fcheck/fcheck -a | grep Inode`
HOSTNAME=`hostname`
if [ -n “$CHECK” ]
then
/usr/local/fcheck/fcheck -a > fcheck_result
mail -s “$HOSTNAME File 무결성 체크 결과” alang at sysmng.com <
fcheck_result
rm -f fcheck_result
fi
————————————————————————-
–
간단한 이정도 스크립터로 보다 효율적인 관리가 가능해 질것이다.
이제 cron 에 등록시켜 놓고..매일 파일 무결성 체크를 간단히 메일로 받아서 관리
할수 있게 된다. 만일 변화된 파일이 정당한 변화라면..
# /usr/local/fcheck/fcheck -ac
로 DBfile 를 업데이트 시켜 줘야 한다. 아님..계속 메일이 날아 오게 된다.