서버체크를 해보니 /tmp 디렉토리에 숨김파일로 공격툴이 심어져 있고,
다른 쪽으로 공격을 하고 있었다.
일단 해당 프로세스를 죽인후 해당 파일을 삭제처리 하였다.
tmp 해킹에 대해서 검색하여, tmp 디렉토에서는 실행할 수 없게끔 설정하였다.
문제는 /tmp/.hack 이렇게 경로로 실행을 하면 실행 되지 않지만,
sh /tmp/.hack 이런 식으로 주면 실행이 가능하다.
해당 공격툴의 소유자가 nobody 인 걸로 봐서 웹을 통한 해킹인 것으로 보이는 데,
해당 문제는 다른 이유로 만질 수 있는 상태가 아니다.
tmpwatch를 이용해서 /tmp 디렉토리에서 해킹툴을 지속적으로 삭제해주도록 걸어 놨다.
몇일 간 문제가 없어 보였으나 , 다시 트래픽이 쳐서 확인 해 보았다.
공격툴이 정상적으로 삭제 되어졌으나 문제는 메모리에 이미 로드 되어 실행이 되고 있는 상태인 것 같다.
프로세스를 확인 하면 [sh] <defunct> 이렇게 나오는 부분이 있는 데, 역시나 삭제된 해킹툴이다.
해서 /tmp 디렉토리에서 실행되는 프로그램은 죽여버리고, 삭제 시키는 스크립트를 만들었다.
----------------
#/bin/sh
while (( 1 ))
do
for f in `find /tmp/ -type f | grep -v "sess_*"`
do
if [ "$f" != "." ] && [ "$f" != ".." ] && [ "$f" != ".ICE-unix" ] && [ "$f" != ".font-unix" ]
then
if [ -e $f ]
then
#echo $f' is file'
lsof $f | sed '1d' | awk '{print $2}' | xargs kill -9
rm -rf $f
fi
fi
done
sleep 5
done
해당 프로그램을 실행하면 5초 마다 실행 되도록 작성 해 놓았다.
부하는 그리 크지 않는 듯 하나, 루프를 돌리기 싫다면, while 부분을 삭제하고 크론으로 등록하여 사용해도 좋을 듯하다.
댓글 없음:
댓글 쓰기