리눅스 서버 대상 루트킷 악성코드 진단

반응형

루트깃 관련 사진

리눅스 서버 대상 루트킷 악성코드 진단

리눅스 서버 대상 루트킷 악성코드 진단

1️⃣ 개요

최근 일부 리눅스 서버에서 시스템 리소스 이상 사용, 의심스러운 프로세스, 비정상적인 커널 모듈이 발견되는 사례가 증가하고 있습니다. 이러한 증상은 루트킷(rootkit) 계열 악성코드 감염의 전형적인 패턴으로, 관리자 권한 탈취와 은폐형 백도어 설치를 목표로 합니다. 본 문서는 루트킷 감염 여부를 신속히 판단하기 위한 진단 절차와 복구 프로세스를 단계별로 정리한 가이드입니다.

2️⃣ 주요 감염 지표(IOC)

  • 정상 프로세스 목록에 없는 `kworker` / `kswapd` 유사 프로세스 존재
  • /usr/bin, /lib/modules 내 비정상 파일 타임스탬프 변경
  • lsmod / modinfo 출력과 실제 커널 모듈 목록 불일치
  • 로그 파일 무단 삭제 또는 last / who 출력 왜곡
  • SSH 설정(`~/.ssh/authorized_keys`)에 관리자 모르게 추가된 키

3️⃣ 1차 진단 절차

아래 스크립트는 루트킷 탐지 도구 설치 및 시스템 핵심 경로 검사를 수행합니다.

# rkhunter 설치 (Debian/Ubuntu 기준)
sudo apt update && sudo apt install rkhunter -y

# 데이터베이스 업데이트 및 스캔 실행
sudo rkhunter --update
sudo rkhunter --checkall --sk

# chkrootkit 추가 설치
sudo apt install chkrootkit -y
sudo chkrootkit
        

결과 중 “INFECTED” 또는 “Warning”이 포함된 항목은 상세 로그(/var/log/rkhunter.log)를 검토해야 합니다.

4️⃣ 수동 점검 절차

  1. 커널 모듈 확인: lsmod | sort / cat /proc/modules
  2. 네트워크 포트 확인: ss -antp / lsof -i -n -P
  3. 은닉 프로세스 탐지: ps auxf --forest / pstree -p
  4. 비정상 파일 권한 탐색: find / -perm 4777 -type f 2>/dev/null

5️⃣ 복구 및 대응 절차

  • 감염 의심 서버를 즉시 네트워크에서 분리 (물리/가상 인터페이스 비활성화)
  • 정상 백업 이미지 기반의 OS 재설치 권장 (루트킷은 완전 복구 어려움)
  • 계정 비밀번호 및 SSH 키 전체 교체
  • 내부 로그 서버로 이관 후, 원격 로그 삭제 방지 설정 강화
  • APT 레포지토리 서명 검증 활성화 (apt-key list 점검)

6️⃣ 예방 및 보안 강화 권장사항

  • 불필요한 root 로그인 금지, PermitRootLogin no 설정
  • 시스템 무결성 모니터링 도구(AIDE, Tripwire) 주기적 검증
  • SELinux / AppArmor 활성화 및 정책 기반 접근제어 적용
  • 보안 업데이트 자동화 (unattended-upgrades 활용)
  • 관리 포트 접근 제한 (방화벽 또는 VPN 전용 접근 구성)

7️⃣ 기본 오류 대응 4단계 (WSUS 절차 통합)

  1. 외부 노출 확인 — SSH, 웹 서비스 포트의 비정상 외부 접근 탐지
  2. 역할 비활성화 — 불필요한 서비스 중단 (ex. FTP, rsync, telnet)
  3. 포트 차단 — IPTables / firewalld 기반 네트워크 단위 차단
  4. 로그 모니터링 — 루트 접근 시도, 모듈 변경 내역 집중 분석

8️⃣ 보고 및 에스컬레이션

감염 정황이 명확한 경우, 내부 보안 관제팀 또는 CERT에 즉시 보고해야 합니다. 특히, 시스템 커널 모듈이 변조된 사례는 단순 감염이 아닌 **시스템 침해 사고(Incident)**로 분류됩니다. 감염 증거는 디스크 이미징 도구(dd, dcfldd)를 활용해 별도 저장 후 분석해야 합니다.

반응형
LIST