우분투(Linux) 환경에서 바이러스와 백도어(Rootkit)를 검사

우분투(Linux) 환경에서 바이러스와 백도어(Rootkit)를 검사하기 위해 가장 많이 사용되는 무료 오픈소스 도구 3가지를 추천해 드립니다.

각 도구는 목적이 조금씩 다르므로, 바이러스 백신 1개 + 백도어 탐지 도구 1개를 조합해서 사용하는 것이 가장 안전합니다.


1. 바이러스 백신: ClamAV (필수)

우분투에서 가장 표준적으로 쓰이는 바이러스 백신입니다. 윈도우 바이러스뿐만 아니라 리눅스용 악성코드도 탐지합니다.

설치 및 사용법:

  1. 설치:

    Bash

    sudo apt update
    sudo apt install clamav clamav-daemon
    
  2. 바이러스 DB 업데이트: (설치 직후 필수)

    Bash

    sudo systemctl stop clamav-freshclam  # 업데이트 데몬 잠시 중지
    sudo freshclam                        # 수동 업데이트 실행
    sudo systemctl start clamav-freshclam # 데몬 다시 시작
    
  3. 전체 시스템 검사: (시간이 조금 걸립니다)

    Bash

    sudo clamscan -r / --bell -i
    
    • -r: 하위 폴더까지 재귀적으로 검사

    • --bell: 바이러스 발견 시 비프음 울림

    • -i: 감염된 파일만 화면에 출력 (깨끗한 파일은 생략)


2. 백도어/루트킷 탐지: rkhunter (추천)

Rootkit Hunter의 약자로, 해커가 몰래 숨겨둔 백도어, 변조된 시스템 파일, 숨겨진 포트 등을 찾아냅니다.

설치 및 사용법:

  1. 설치:

    Bash

    sudo apt install rkhunter
    
  2. 데이터베이스 업데이트:

    Bash

    sudo rkhunter --update
    
  3. 검사 시작:

    Bash

    sudo rkhunter --check
    
    • 검사 도중 [Press <ENTER> to continue] 메시지가 나오면 엔터를 눌러 진행하세요.

    • 결과에서 Warning이 뜬다면 로그 파일(/var/log/rkhunter.log)을 확인해야 합니다. (단, 시스템 업데이트로 인한 변경 사항도 경고로 뜰 수 있으니 오탐지에 주의하세요.)


3. 또 다른 백도어 탐지: chkrootkit

rkhunter와 비슷하지만 검사 방식이 달라서, 교차 검증용으로 함께 쓰면 좋습니다. 사용법이 매우 간단합니다.

설치 및 사용법:

  1. 설치:

    Bash

    sudo apt install chkrootkit
    
  2. 검사 시작:

    Bash

    sudo chkrootkit
    
    • 화면에 INFECTED라고 뜨는 항목이 있는지 눈여겨보세요.


🛡️ 꿀팁: 전체 보안 점검 Lynis

단순 바이러스 검사를 넘어, “내 서버 설정이 얼마나 안전한지” 점수로 매겨주는 도구입니다.

Bash

sudo apt install lynis
sudo lynis audit system
  • 방화벽 설정, 비밀번호 정책, 취약한 패키지 등을 종합적으로 진단해 줍니다.


요약: 지금 바로 해볼 것

먼저 ClamAV로 바이러스를 잡고, rkhunter로 백도어를 체크해보세요.

혹시 검사 결과에서 INFECTED나 Warning이 나왔나요?

오탐지(False Positive)일 수도 있으니 당황하지 마시고, 발견된 파일 경로와 메시지를 알려주시면 분석을 도와드리겠습니다.

리눅스 보안 점검 초급 Lynis 가이드

이 영상은 리눅스 보안 감사 도구인 Lynis의 설치 및 사용법을 초보자 눈높이에서 설명하고 있어, 전체적인 서버 보안 상태를 점검하는 데 도움이 됩니다.

 

Similar Posts

One Comment

  1. `chkrootkit`이나 `rkhunter`와 같은 보안 점검 도구를 실행하셨군요. **`sniffer` 항목에서 `WARNING`이 떴다는 것은 현재 서버의 네트워크 인터페이스 중 하나가 “무차별 모드(Promiscuous Mode)”로 작동 중이거나, 패킷을 훔쳐보는 프로그램이 감지되었다는 뜻입니다.**

    하지만 **너무 걱정하지 않으셔도 됩니다.** 해킹이 아니라 정상적인 프로그램(Docker, VM, VPN 등) 때문에 경고가 뜨는 경우가 **90% 이상**입니다.

    정확한 원인을 파악하기 위해 다음 3단계로 확인해 보세요.

    —–

    ### 1단계: 네트워크 인터페이스 상태 확인 (가장 흔한 원인)

    네트워크 인터페이스가 `PROMISC` (무차별 모드) 상태인지 확인해야 합니다. 패킷 스니핑 도구는 모든 패킷을 캡처하기 위해 이 모드를 켭니다.

    터미널에 아래 명령어를 입력하세요:

    “`bash
    ip link show | grep PROMISC
    “`

    또는

    “`bash
    netstat -i
    “`

    * **결과 해석:**
    * 아무것도 안 나온다면: 오탐(False Positive)일 가능성이 높습니다.
    * **`PROMISC`** 라는 단어가 보인다면: 해당 인터페이스가 무차별 모드입니다.
    * **주의:** 만약 서버에서 **Docker(도커), VMWare, VirtualBox, VPN** 등을 사용 중이라면 가상 인터페이스가 `PROMISC` 모드인 것은 **정상**입니다. (예: `docker0`, `veth…` 등)

    —–

    ### 2단계: 어떤 프로그램이 패킷을 보고 있는지 확인

    실제로 어떤 프로세스가 패킷을 수집하고 있는지 확인해야 합니다.

    “`bash
    # 로우 소켓(Raw Socket)을 사용하는 프로세스 확인
    sudo lsof | grep PACKET
    “`

    또는 `chkrootkit`의 상세 모드를 사용하여 어떤 인터페이스가 문제인지 확인합니다:

    “`bash
    sudo chkrootkit -x sniffer
    “`

    * **결과 해석:**
    * `dhclient`, `NetworkManager`, `wpa_supplicant`: 네트워크 연결을 관리하는 정상적인 시스템 데몬입니다. (안전함)
    * `docker-proxy`, `calico`: 컨테이너 관련 도구입니다. (안전함)
    * **낯선 프로세스 이름:** 만약 `ssh`, `apache` 등이 아닌 이상한 이름의 프로세스가 보인다면 해킹을 의심해야 합니다.

    —–

    ### 3단계: 로그 확인

    누군가 악의적으로 스니퍼를 설치했다면 로그가 지워졌을 수도 있지만, 최근 접속 기록을 확인해 보는 것이 좋습니다.

    “`bash
    lastlog
    last
    “`

    최근에 내가 아닌 다른 IP나 낯선 계정으로 접속한 기록이 있는지 확인해 보세요.

    —–

    ### 📝 요약 및 조언

    1. **서버에 Docker나 가상 머신을 돌리고 계신가요?**
    * 그렇다면 이 경고는 **무시하셔도 되는 정상적인 상황**일 확률이 매우 높습니다.
    2. **일반적인 웹 서버(Apache/Nginx 등)만 돌리는데 경고가 떴나요?**
    * 위의 `ip link show` 명령어로 `PROMISC`가 뜬 인터페이스 이름을 확인해야 합니다. 물리 랜카드(예: `eth0`, `enp3s0`)가 이유 없이 `PROMISC` 상태라면 정밀 분석이 필요합니다.

    **어떤 상황인지 판단이 어려우시면, `ip link show` 명령어를 입력했을 때 나오는 결과를 복사해서 보여주시겠어요? 정상인지 아닌지 판별해 드리겠습니다.**

답글 남기기