질문&답변
클라우드/리눅스에 관한 질문과 답변을 주고 받는 곳입니다.
리눅스 분류

해킹상식 - 삭제된 로그 되살리기 침입자들의 발자국 살리기

작성자 정보

  • 올로이안 작성
  • 작성일

컨텐츠 정보

본문

해킹상식 - 삭제된 로그 되살리기 침입자들의 발자국 살리기

 

chkwtmp(www.packetstormsecurity.nl)을 이용해서 지워진 로그를 되살릴 수가 있습니다.
물론 침입자가 zap3을 이용해서 '어떻게' 지웠느냐에 따라 결과는 달라질 수가 있습니다.
자세한 사항은 www.wowhacker.org에서 Webzine 1호를 참고하세요.

만약 침입자가 위에서 언급했던 로그를 지우는 행위중에 하나라도 빼먹는다면,
큰 코 다칠 염려가 분명 있습니다.
우리는 그 코에 비수를 꽂는 셈이죠.
꼼꼼히 로그를 하나하나 체크해서 발자국을 살려내면 됩니다.

◇> 침입자들의 발자국 살리기 위한 사전준비.
만약의 침입자를 대비해서 아래와 같은 사전준비를 할 것을 추천합니다.
정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가
> 로그서버 운영
로그서버를 운영하는 이유는,
침해자가 자신의 흔적을 지우기 위해서는 로그서버의 로그까지 건들여야 하는 고통이 따르기 때문입니다.
보통 로그서버는 불필요한 서비스를 모두 막고 취약점을 최대한 줄여 최상의 보안상태로 유지합니다.
이런 로그서버를 뚫기위한 침입자의 노력에 눈물이 나는군요.
로그서버를 여러개를 두면 피눈물이 나지 않을까 싶군요.

로그서버 운영을 위한 과정을 알아보겠습니다.
/etc/syslog.conf에는 서버의 로그가 어떻게 운영될 것인지에 대한 정의가 내려져 있습니다.

*.err;kern.notice;auth.notice;user.none /dev/console
*.err;kern.debug;daemon.notice;mail.crit;user.none /var/adm/messages

위의 예는 UNIX에서 기본으로 채택하고 있는 로그 정의 부분입니다.
syslog.conf에 대한 문서는 www.wowsecurity.net에서 구하실 수 있습니다.

먼저 /etc/hosts에 로그서버로 운영할 서버의 IP를 정의합니다.

210.176.1.1 logserver

그리고 알아볼 것은 로그서버로 이동될 메세지는 514번 포트를 통해서 이동됩니다.
그렇기때문에 /etc/services에 아래와 같은 정의가 내려져 있어야 합니다.

syslog 514/udp

다음으로는 /etc/syslog.conf에 아래와 같이 입력합니다.

*.debug @logserver

이렇게하면 debug위험도의 모든 메시지가 logserver(210.176.1.1)로 복사되어 집니다.

여기서 제가 궁금했던 사항을 말씀드리면,
로그서버의 어디로 복사되는가가 제 의문이었는데 그 답을 말씀드리자면,
로그서버의 /var/adm/messages의 내용에 추가된다는 것입니다.

예로 mainserver에서 로그서버를 운영했다면,
로그서버의 messages에는 아래와 같은 형식이 추가되어 저장됩니다.

Sep 23 15:26:59 mainserver last message repeated 534 times
Sep 23 15:27:34 mainserver unix: sf0: write cnt c al_pa 0xe2

설정을 모두 마쳤으면,
#ps -ef | grep syslog로 PID를 확인해서 재실행시키면 됩니다.

리눅스에서는 한가지 더 해주어야 할 작업이 있습니다.

리눅스에서는 로그서버를 운영하기위해서 옵션을 필요로 하는데,
-r 옵션입니다.

/etc/rc.d/init.d/syslog에서,
daemon syslogd $SYSLOGD_OPTIONS 부분을 daemon syslogd -r $SYSLOGD_OPTIONS로
고쳐주면 됩니다. (vangelis님 감사)            ==>관련정보사이트
정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가
> cron을 이용한 로그 몰래 복사
침입자가 cron에 대해서 무지하다면 발자국을 충분히 잡을 수 있습니다.

우선 쉘을 하나 짭니다.

[rcboot.sh의 내용]
cd /
cd /var/adm
cp lastlog /usr3/testR/babo
cp messages* /usr3/testR/babo
cp sulog /usr3/testR/babo
cd ..
cd log
cp syslog* /usr3/testR/babo

로그화일들을 위의 쉘에서는 /usr3/testR/babo 폴더로 복사하는겁니다.
이 rcboot.sh을 cron을 이용해서 실시간으로 실행시켜줍니다.

0,3,6,9,12,15,18,21,24,27,30,33,36,39,42,45,48,51,54,57 * * * * rcboot.sh

한가지 더 트릭을 쓴다면,
.babo 처럼해서 안보이는 폴더로 만들어도 됩니다. (별거 아닌가..)
정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가정보보안전문가
> .history을 이용한 명령어 경로 확인
.history를 모르는 침입자가 있을까싶다마는,
신난 마음에 가장 기본적인 점을 잠시 까먹는 침입자가 있을지도 모릅니다.

.cshrc에,

set history=32
set savehist=100

를 지정해주고 각 유저의 홈디렉토리(침입자는 보통 root에서 로그를 조작하기 때문에 ~/가 적합하겠군요)에
.history를 생성해놓으면 해당유저가 입력했던 명령어가 기록됩니다.
여기서 침입자가 입력했던 명령어를 발견하면 대처법도 생길겁니다.

한가지 트릭을 말씀드리자면,
침입자가 입력했던 명령어가 의외로 평범(?)할 경우 구분이 안갈 수 있습니다.

만약 루트에 .history를 설정했고 자신이 루트로 작업을 했다면,
종료시에 아래와 같이해서 구분을 지어 주면 편할겁니다.    

문가

출처 : 네트워크,시스템보안,IT자격증 자료공유와 교육


 

보안전문가 준비에대한 철저한 계획 및 진행에 대한 상담을 드립니다
국방부 컨퍼런스 및 경찰청, 사이버수사대, 안철수랩 보안교육센터
(주)해커스칼리지 해커대학
http://www.itbankac.com
02-3291-3264

 

 

 

 


관련자료

댓글 0
등록된 댓글이 없습니다.

공지사항


뉴스광장


  • 현재 회원수 :  60,150 명
  • 현재 강좌수 :  36,434 개
  • 현재 접속자 :  262 명