웜, 바이러스, 맬웨어, 그리고 무서운 루트킷은 모든 서버 관리자에게 악몽과 같은 존재입니다. 시스템 아키텍처에 따라 공격자가 감염된 서버에서 민감한 정보를 수집하거나 조직에 막대한 금전적 손실을 입힐 수 있는 경로는 헤아릴 수 없이 많습니다.
다행히도 이런 사이버 위협 앞에서 항복할 필요는 없습니다. 서버에서 이들을 탐지하는 것은 충분히 가능하며, 리눅스 서버의 맬웨어와 루트킷을 검사할 때 활용할 수 있는 도구도 다양합니다. 게다가 이 도구들 중 상당수는 무료로 사용할 수 있습니다.
1. ClamAV
ClamAV는 메일 서버와의 연동을 염두에 두고 설계된 명령줄 기반 백신 프로그램으로, SuSE, Fedora, Ubuntu 등 주요 리눅스 배포판을 포함한 다양한 운영체제에서 사용할 수 있습니다.
Ubuntu에서는 다음 명령어 한 줄로 간단히 설치할 수 있습니다.
sudo apt install clamav clamav-daemon

설치가 완료되면 터미널에서 ClamAV를 실행해 시스템 전체를 꼼꼼히 점검하고 감염된 파일을 치료할 수 있습니다. 또한 강력한 실시간 검사와 리소스 모니터링 유틸리티도 함께 제공됩니다.
서버 파일시스템을 간단히 검사하려면 루트 디렉터리에서 다음 명령어를 실행하세요.
clamscan -r -i
위 명령은 재귀적 검사(파일 내부의 파일까지 확인)를 수행하고, 감염된 파일만 터미널에 출력하도록 지시합니다. 단, 이 명령을 실행하기 전에 ClamAV가 바이러스 시그니처 데이터베이스를 설치할 충분한 시간을 확보해야 합니다. 진행 상황을 확인하려면 서비스를 중지한 후 수동으로 재시작할 수 있습니다.
sudo systemctl stop clamav-freshclam.service
이어서 다음 명령을 실행합니다.
sudo freshclam

검사 중 감염된 파일을 자동으로 삭제하려면 다음 명령어를 사용하세요. (주의해서 사용하세요!)
clamscan -r -i --remove
2. chkrootkit
chkrootkit은 악성 로더블 커널 모듈, 웜, 그리고 본격적인 루트킷을 탐지하기 위한 여러 가지 검사를 수행하는 도구입니다.
Ubuntu에서는 공식 저장소에서 이 도구를 제공하므로 다음 명령어로 설치할 수 있습니다.
sudo apt install chkrootkit

ClamAV와 달리 chkrootkit은 수동적(passive) 도구로, 탐지된 위협에 직접 대응하는 기능은 없습니다. 따라서 서버 파일시스템에서 발견된 의심스러운 항목은 직접 조사하고 제거해야 하므로, 나중에 참고할 수 있도록 출력 결과를 복사해 두는 것이 좋습니다.
도구를 실행하려면 다음 명령어를 사용하세요.
sudo chkrootkit

chkrootkit이 출력하는 목록은 추가 진단을 위한 좋은 출발점이 됩니다.
3. AIDE
AIDE는 "Advanced Intrusion Detection Environment(고급 침입 탐지 환경)"의 약자로, Tripwire라는 유사 도구를 완전히 무료로 대체할 수 있는 솔루션입니다.
AIDE를 사용하면 시스템 파일을 면밀히 감시하여 언제, 어떻게 수정되거나 접근되었는지 추적할 수 있습니다. Ubuntu 공식 저장소에서 apt로 손쉽게 설치할 수 있습니다.
sudo apt install aide

설치 과정을 마치려면 화면에 표시되는 옵션을 통해 Postfix를 구성해야 합니다. Tab 키나 방향키로 옵션 사이를 이동한 후 원하는 항목에서 Enter 키를 누르면 됩니다. Postfix는 사용자가 설정한 주기에 따라 정보를 이메일 주소로 전송하는 데 사용됩니다.


AIDE 설정에는 약간의 파일 작업이 필요합니다. 다음 위치의 파일들을 다뤄야 합니다.
/var/lib/aide /etc/aide
먼저 다음 명령어를 실행해 데이터베이스와 설정 파일을 생성합니다.
sudo aideinit

완료되면 이 과정에서 생성된 데이터베이스와 설정 파일이 "/var/lib/aide/" 디렉터리에 각각 "aide.db.new"와 "aide.conf.autogenerated"라는 이름으로 저장됩니다. 정상적으로 동작하려면 두 파일을 각각 "aide.db"와 "aide.conf"로 복사해야 합니다.
다음 명령어로 데이터베이스 파일을 새 이름으로 복사할 수 있습니다.
sudo cp /var/lib/aide/aide.db.new /var/lib/aide/aide.db

설정 파일의 이름을 변경하고 복사하기 전에 먼저 다음 명령어로 파일을 업데이트합니다.
sudo update-aide.conf

설정 파일을 업데이트했다면 다음 명령어로 올바른 폴더에 복사합니다.
sudo cp /var/lib/aide/aide.conf.autogenerated /etc/aide/aide.conf
이제 AIDE가 서버에서 정상적으로 작동하며, 생성해 둔 파일시스템의 해시(HASHED) 표현을 기반으로 시스템을 감시하게 됩니다.
설정 파일을 수정하면 특정 폴더를 제외하거나 주기적으로 검사를 실행하는 등 다양한 구성이 가능하지만, 다음 명령어만으로도 시스템 검사 결과를 확인할 수 있습니다.
aide -c /etc/aide/aide.conf -C
AIDE는 설정 파일을 읽기 전용 위치에서 참조할 때 가장 효과적입니다. 루트킷이 공격자에게 설정 파일 변조를 허용할 수 있기 때문입니다. 최상의 결과를 얻으려면 이러한 구성을 적용해 보세요.
이번 글에서 소개한 도구들은 다양한 기법을 활용해 리눅스 서버의 맬웨어와 루트킷을 검사하는 데 큰 도움이 될 것입니다. 루트킷은 디지털 위협 중 가장 다루기 까다로운 존재지만, 꾸준한 관리와 성실한 점검으로 충분히 예방할 수 있습니다.