개요
chkrootkit은 유닉스 및 리눅스 시스템에서 루트킷(rootkit)의 존재 여부를 검사하기 위해 사용되는 오픈 소스 프로그램이다. 루트킷은 시스템에 침투한 공격자가 권한을 유지하거나 시스템을 은폐하기 위해 설치하는 악성 소프트웨어를 일컫는다.
주요 기능
/proc파일 시스템, 시스템 콜, 네트워크 인터페이스 등의 상태를 조사하여 알려진 루트킷의 흔적을 탐지한다.rkhunter등과 유사하게, 사전 정의된 시그니처와 검사 루틴을 활용한다.- 루트킷이 남긴 흔적(예: 변조된 실행 파일, 숨겨진 프로세스, 비정상적인 네트워크 포트 등)을 보고한다.
구성 요소
- 스크립트 파일: 쉘 스크립트 형태로 구현되어 있어 대부분의 POSIX 호환 쉘에서 실행 가능하다.
- 시그니처 데이터베이스: 탐지 대상 루트킷에 대한 체크섬, 파일 경로, 문자열 패턴 등을 포함한다.
사용법
$ sudo chkrootkit
또는 특정 옵션을 지정한다.
$ sudo chkrootkit -q # 조용한 모드, 최소 출력
$ sudo chkrootkit -x /path/to/customdb # 사용자 정의 데이터베이스 사용
실행 결과는 탐지된 항목이 있으면 해당 항목을, 없으면 “nothing found”와 같은 메시지를 출력한다.
배포 및 라이선스
chkrootkit은 원래 Thomas R. B. Lewis와 Caitlyn B. Kelly가 개발했으며, 현재는 GPL (GNU General Public License) 하에 배포되고 있다. 주요 리눅스 배포판(예: Debian, Ubuntu, Fedora 등)의 패키지 저장소에 포함되어 있다.
제한점
- 새롭게 개발된 루트킷에 대한 시그니처가 업데이트되지 않은 경우 탐지하지 못할 수 있다.
- 루트킷이 시스템 호출을 직접 가로채는 등 고도화된 은폐 기법을 사용할 경우,
chkrootkit만으로는 완전한 검증이 어려울 수 있다. - 루트 권한이 없는 상태에서는 일부 검사 항목에 접근이 제한될 수 있다.
관련 도구
rkhunter(Rootkit Hunter)Lynis(보안 감사 도구)OSSEC(침입 탐지 시스템)
참고
chkrootkit은 시스템 보안 점검 과정에서 한 가지 검증 수단으로 활용되며, 다른 보안 솔루션과 병행하여 사용하는 것이 일반적이다.