우분투(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` 명령어를 입력했을 때 나오는 결과를 복사해서 보여주시겠어요? 정상인지 아닌지 판별해 드리겠습니다.**

답글 남기기