본문 바로가기

IT 기술/보안

해킹이 의심된다면?

반응형


1. # find /dev -type f
위와 같은 명령으로 쓸데없는 파일들이 존재하는지 확인합니다.
보통 /dev/MAKEDEV 등과 같이 device 를 관리하고자 하는 파일 이외의 것이 검색되면 일단 의심해봐야 합니다. 그리고 습성상 디렉토리명칭을 공백 한바이트(" ")나 "..." 등과 같이 dot 3개 정도로 생성하여 쉽게 눈에 띄지 않게 하기도 하므로 이런 형태의 파일이나 디렉토리도 찾아보시기 바랍니다.

2. # grep -v "^#" /etc/inetd.conf
위와 같은 명령으로 불필요한(또는 크래커가 추가한) 서버에 관한 설정이 추가되어 있는지 확인합니다.

3. # netstat -an | grep LISTEN
위와 같은 명령으로 서버에 열린 포트를 확인하여 의심가는 포트가 있다면 포트를 물고 있는 데몬(lsof | grep LISTEN)을 찾아 봅니다.

4. /etc/passwd 파일을 열어서 최근에 추가된 사용자나 얍샵하게 기존 사용자정보 사이에 숨겨둔 크래커의 일반계정이 존재하는지 확인합니다.

5. 시스템의 부트스크립트(/etc 경로 하단)에 백도어를 실행하는 등의 악성코드가 존재하는지 확인합니다.

6. 필요할 경우 다음과 같이 find 명령의 시간옵션을 주어 최근에 변경된 파일들을 찾아볼 수도 있겠습니다만, 크래커가 파일 수정일자까지도 변조했다면 별로 유익한 방법이 되지 못할 수도 있습니다.
# find / -ctime -30 -type f

7. 포트를 이용한 백도어 뿐만 아니라 루트쉘을 얻도록 구성된 백도어가 구성되어 있을 수 있으므로 시스템 내의 Set User ID(SUID) 파일들을 죄다 훑어봐서 악성코드나 악성쉘이 아닌지 확인합니다.

만약 침입자가 슈퍼유저 권한을 획득했었다면 시스템을 재설치하는 것이 필수라고 감히 말씀드리고 싶습니다. 아시듯이 유닉스 계열에서 슈퍼유저 권한은 절대적인 지위에 있습니다. 소프트웨어적인 어떠한 작업이라도 가능하다는 이야기 입니다.

고생끝에 보안구멍을 모두 막았노라고 장담하실 수도 있겠지만, /etc 디렉토리 밑에 위치한 파일이나 경로중 어느 하나라도 일반 사용자에게 쓰기권한이 부여되어 있을 경우 재수없으면 또 다시 악몽이 시작될 수 있습니다.

침입자가 앙증맞게도 일반사용자로 로그인 하여 /etc/rc.d/rc.local 파일과 같이 슈퍼유저권한으로 자동으로 실행되는 스크립트파일(/etc/sysconfig/network 등 대부분의 스크립트)에 rm -rf / 라는 줄을 삽입하게되면 아주~ 재미있는 사태가 벌어지겠지요.

그만큼 슈퍼유저권한을 한번쯤 잃은 서버라면 99%이상 신뢰할 수 없습니다.
파일의 무결성을 확인할 수 있는 tripwire 등을 사용하지 않던 서버라면 무조건 재설치하시는게 좋습니다. 참고로 무결성은 rpm -V package 명령으로도 어느정도 확인할 수 있습니다.

반응형

'IT 기술 > 보안' 카테고리의 다른 글

2012 RSA Conference 주요 이슈  (0) 2012.03.05
웹 해킹의 기초(정보수집)  (0) 2012.01.25