개요
- 루트킷은 자신의 존재가 탐지되지 않도록 숨기면서 관리자 권한의 획득과 백도어 등의 기능을 수행하는 코드와 프로그램의 집합을 의미
- chkrootkit을 실행하여 INFECTED로 표시되면 해당 파일이 감염 변조된 것
루트킷의 hidden process 탐지 원리
- 일반적으로 루트킷은 공격자가 숨기고자 하는 프로세스가 출력되는 부분만 제거하고 출력하도록 ps 프로그램을 만들어 타겟 시스템에 있는 정상 ps 프로그램과 바꿔치기하는 방식으로 동작함
- 루트킷 탐지 프로그램은 "ps" 실행결과와 "/proc" 디렉터리에 있는 프로세스 정보를 비교하여 /proc 디렉터리에는 프로세스가 있지만 ps 실행 시 보이지 않는 프로세스를 히든 프로세스로 탐지
/proc 파일시스템
- 유닉스/리눅스 커널이 메모리상에 사용하고 있는 모든 자원들에 대한 정보들을 파일 형식으로 보관하는 파일시스템
- 커널이 관리하는 "프로세스" 등의 자원, 커널 파라미터 등에 대한 상태정보를 파일명으로 보관하고 있음
- 물리적 디스크 영역이 아닌 메모리 영역에 존재하는 파일 시스템으로 매 부팅시마다 새롭게 생성됨
- /proc 파일시스템을 보면 현재 실행중인 개별 프로세스의 PID를 의미하는 다수의 숫자형식의 디렉토리가 생성되어 있음
- exe는 실행파일에 대한 심볼릭 링크 파일로 해당 프로세스의 실행 이미지를 확인할 수 있음
- fd는 nc 프로세스가 오픈한 파일 디스크립터 정보를 담고 있는 디렉터리
루트킷 대응방법
- RPM(Redhat Package Manager) 명령을 이용하여 변조된 파일 확인 후 패키지 재설치
- 레드햇 계열 리눅스에서 윈도우의 setup 프로그램처럼 프로그램 설치를 손쉽게 하기 위해 만든 설치파일을 package 라고 하고, 이러한 패키지를 관리하는 명령어를 rpm(Redhat Package Manager)라고 함
- rpm -V 패키지이름 : V옵션은 Verify를 의미. 해당 패키지를 통해 설치된 파일의 무결성을 검사함
실행 예시 |
# rpm -qf /bin/netstat net-tools-1.60.95.fc11.i586 --> rpm -qf 명령을 통해 netstat 실행파일이 net-tools 패키지에 속해 있는 것을 확인 |
# rpm -V net-tools S.5….T. /bin/netstat --> rpm -V 실행결과, 최초 설치시점과 비교하여 파일크기(S), MD5 체크섬(5), 파일 수정시간(T)가 변경된 것을 확인할 수 있음 S : 파일 크기 M : 파일 커미션 변경 5 : MD5 체크섬 변경 T : 파일 수정시간 변경 U : 소유자 변경, G : 소유그룹 변경, D : 장치정보 변경, L : 심볼릭링크정보 변경 |
- 주요 실행파일이 변조/감염되었다는 것은 이미 해킹을 당하여 root 권한 탈취 및 루트킷 설치가 의심됨. 다양한 파일 변조 가능성 높음. 따라서 변조/감염된 파일만 교체하는 것은 임시방편이고 해당 시스템을 재설치하는 것이 최선임
'정보보안기사&CISSP관련 > System Security' 카테고리의 다른 글
[Day 172] 하드 링크, 심볼릭 링크 (0) | 2021.01.29 |
---|---|
[Day 170] 이중모드(Dual mode) (0) | 2021.01.27 |
[Day 112] tripwire(트립와이어) (0) | 2020.11.30 |
[Day 111] 스택 버퍼 오버플로우(Stack Buffer Overflow) 공격 대응 방안 (0) | 2020.11.29 |
[Day 89] 다중 프로그래밍(Multi programming), 이중모드(Dual mode) (0) | 2020.11.07 |