본문 바로가기
모의해킹 (WAPT)

LD_PRELOAD 악용 기반 네트워크 장비 백도어 탐지 및 대응 방안

by 날으는물고기 2025. 1. 25.

LD_PRELOAD 악용 기반 네트워크 장비 백도어 탐지 및 대응 방안

LD_PRELOAD를 악용하는 백도어는 네트워크 장비나 리눅스 기반 시스템에서 시스템 프로세스를 후킹해 공격자가 제어권을 장악할 수 있도록 설계된 악성코드 유형입니다. 해당 유형의 보안 위험 요소, 탐지 및 모니터링 방법, 그리고 대응 방안 예시를 통해 설명합니다.


LD_PRELOAD를 이용한 백도어의 보안 위험 요소

1. LD_PRELOAD 개념과 악용 방식

LD_PRELOAD는 리눅스 환경에서 특정 공유 라이브러리를 로드할 수 있도록 허용하는 환경 변수입니다. 공격자는 이를 이용해 정상 프로세스(/bin/sshd 등)를 후킹하여 다음과 같은 작업을 수행할 수 있습니다:

  • 특정 네트워크 트래픽(ICMP)을 모니터링해 C2(명령 제어) 서버와 연결.
  • SSH 연결을 후킹하여 악성 쉘이나 패킷 캡처를 수행.
  • 원격 SOCKS5 프록시를 생성해 내부 네트워크 트래픽을 외부로 전달.

2. 주요 보안 위험 요소

  • 은밀한 동작: LD_PRELOAD를 이용한 삽입은 기존 프로세스를 감지하기 어렵게 합니다.
  • 다목적 기능: 패킷 캡처, 원격 제어, 터널링 등 다양한 공격 기능을 지원.
  • 유연성: 특정 장비에 종속되지 않고 범용 리눅스 환경에서 작동.

탐지 및 모니터링 방안

1. LD_PRELOAD 설정 탐지

LD_PRELOAD를 설정한 프로세스는 시스템 환경 변수를 확인하여 감지할 수 있습니다.

탐지 스크립트

#!/bin/bash
echo "Checking for suspicious LD_PRELOAD settings..."
for pid in $(ps -e -o pid --no-headers); do
  if [ -f /proc/$pid/environ ]; then
    preload=$(strings /proc/$pid/environ | grep LD_PRELOAD)
    if [ "$preload" ]; then
      echo "[ALERT] PID $pid has LD_PRELOAD set: $preload"
    fi
  fi
done
  • 이 스크립트는 모든 실행 중인 프로세스에서 LD_PRELOAD 환경 변수를 검색합니다.
  • 결과: 특정 프로세스가 악성 라이브러리를 로드했는지 확인.

2. ICMP 트래픽 모니터링

ICMP 트래픽을 이용한 C2 연결 시도를 탐지합니다.

tcpdump를 활용한 실시간 감시

tcpdump -i eth0 icmp and 'icmp[8] == 8' -w suspicious_icmp.pcap
  • 설명: ICMP Echo Request(ICMP 타입 8) 패킷을 캡처합니다.
  • 활용: 암호화된 데이터가 포함된 ICMP 패킷을 분석해 C2 연결 여부를 파악.

Snort 탐지 규칙

alert icmp any any -> any any (msg:"Potential ICMP C2 traffic"; content:"|43 4a fc 1c|"; depth:4; sid:1000001;)
  • ICMP 데이터에서 특정 패턴(43 4a fc 1c)을 탐지합니다.

3. SSH 연결 모니터링

SSH 프로세스를 후킹하여 악성 활동을 탐지합니다.

비정상적인 SSH 배너 탐지

alert tcp any 22 -> any any (msg:"Suspicious SSH Banner Detected"; content:"SSH-2.0-XXXX"; depth:13; sid:1000002;)
  • 특정 SSH 배너 문자열(SSH-2.0-XXXX)을 감지하여 악성 SSH 연결 시도를 탐지.

sshd 로그 분석

grep "Accepted password" /var/log/auth.log | awk '{print $1, $2, $3, $11}' | sort | uniq -c | sort -nr
  • SSH 로그에서 비정상적인 접속 패턴(동일 IP의 반복 접속 등)을 분석.

4. Unix 소켓 탐지

/tmp 디렉토리에 생성된 악성 IPC 소켓을 감지합니다.

소켓 목록 검색

lsof | grep "/tmp" | grep ".sshd.ipc"
  • /tmp 디렉토리에 .sshd.ipc와 같은 소켓이 생성되었는지 확인.

파일시스템 무결성 검사

AIDE나 Tripwire를 사용해 /tmp 디렉토리의 변경 사항을 추적합니다.


대응 방안

1. LD_PRELOAD 환경 변수 제거

탐지된 악성 LD_PRELOAD 설정을 제거합니다.

unset LD_PRELOAD
kill -9 $(pgrep -f "libsophos.so")

2. C2 서버 연결 차단

네트워크 방화벽에서 C2 서버와의 연결을 차단합니다.

iptables -A OUTPUT -d <C2_IP> -j DROP

3. 악성 파일 격리 및 분석

탐지된 악성 라이브러리 파일을 분석합니다.

# 라이브러리 격리
mv /path/to/libsophos.so /tmp/suspicious_libsophos.so

# 문자열 분석
strings /tmp/suspicious_libsophos.so | grep -E "C2|AES|key"

4. 시스템 복구

  • 시작 스크립트 복구
    sed -i '/LD_PRELOAD/d' /etc/rc.local
  • crontab 복원
    crontab -l | grep -v "libsophos.so" | crontab -

실시간 탐지 및 자동화

1. SIEM 통합

ELK 스택을 활용하여 탐지 데이터를 중앙집중화하고 대시보드로 시각화합니다.

  • Filebeat를 통해 로그 수집
    filebeat.inputs:
      - type: log
        paths:
          - /var/log/auth.log
          - /var/log/syslog
  • Kibana에서 비정상적인 LD_PRELOAD 또는 ICMP 트래픽 시각화.

2. SOAR 자동화

SOAR 플랫폼에서 탐지된 이벤트를 바탕으로 자동 대응을 설정합니다.

  • 탐지 시 자동으로 방화벽 규칙 추가 및 관리자에게 경고 발송.

LD_PRELOAD 기반 백도어는 고급 위협 행위자가 사용하는 은밀하고 효과적인 공격 수단입니다. 이에 대응하기 위해 LD_PRELOAD 모니터링, ICMP 트래픽 감시, SSH 연결 분석 등 다층적인 탐지 전략이 필요합니다. 또한 SIEM 및 SOAR 시스템과 연계한 자동화된 대응 체계를 통해 침해 사고의 영향을 최소화할 수 있습니다.

728x90

댓글