본문으로 바로가기
반응형

 

1. 개 요

□ 최근 민간업체 해킹에 악용된 BPF 악성코드 관련 공유에따른 상세 점검 방안을 안내

ㅇ BPF 악성코드는 Linux 계열의 운영체제 동작하므로 대상 서버전수 조사·점검 필요

BPFdoor란?
‘버클리 패킷 필터(Berkeley Packet Filter, BPF)’를 악용하는 리눅스용 고도화된 백도어로, 다음과 같은 특징이 있습니다
은닉성: 정상적인 시스템 프로그램으로 위장하여 탐지를 회피하고, 네트워크 트래픽을 위장하여 방화벽 탐지를 우회하는 고도의 은밀성을 갖는다.
매직 패킷: 평소에는 잠복해 있다가 특정 신호(일명 매직 패킷)가 오면 그때 활동을 시작한다. 이 매직 패킷은 네트워크상에서 특별한 패턴을 가진 패킷으로 일반적인 보안 장비 탐지를 우회할 수 있다.
역방향 쉘 (Reverse Shell) 및 바인드 쉘 (Bind Shell): 활성화 시 감염된 컴퓨터가 해커의 컴퓨터로 먼저 연결을 시도하는 리버스 쉘과, 감염된 컴퓨터에 특별한 문을 열어두고 해커가 그 문을 통해 들어오게 하는 바인드 쉘 방식으로 해커에게 시스템 접근 권한을 제공한다.
지속적인 접근: 시스템 침투 후, 공격자는 원하는 시점에 언제든지 시스템에 다시 접근하여 정보를 탈취하거나 악성 코드를 설치하는 등 다양한 공격을 지속할 수 있다.

 

2. 점검 방안 (1차) - BPFdoor 검출

점검 방안#1 (BPF 필터 점검)

1. sudo ss –0bp 명령어 실행(오류 발생 시 sudo ss –0p 명령 실행)하여 출력 문자열 내 아래의 위장 프로세스명 유무 확인

a. /usr/sbin/smartd -n -q never (smartadm 샘플의 위장 프로세스명)
b. /usr/libexec/hald-addon-volume (hald-addon-volume 샘플의 위장 프로세스명)
c. dbus-daemon --system (dbus-srv-bin.txt 샘플의 위장 프로세스명)
d. hpasmlited -f /dev/hpilo (hpadmmld 샘플의 위장 프로세스명)
 

2. 아래의 점검용 명령어 실행 후 출력되는 결과값 유무 확인

- sudo ss -0bp | grep –EB1 "$((0x7255))|$((0x5293))|$((0x39393939))”
 

3. BPF Filter Magic 문자열 검사

- 매직 패킷 값이 10진수로 표현되는 경우도 있고, 16진수로 표현되는 경우도 있어 모두 확인 필요)

a. 0x7255(29269), 0x5293(21139), 0x39393939(960051513) [smartadm 샘플]
b. 0x7255(29269), 0x5293(21139) [hpadmmld 샘플]
 
 
<악성코드 감염 시 출력 화면 예시>
점검 방안#2 (사전 정의 문자열 탐색)

◈ 아래의 명령어 실행하여 출력되는 결과값 유무 확인

<악성코드 감염 시 출력 화면 예시>

* 검색 디렉토리 우선순위는 1) /dev/shm 2) /var/run 3) /tmp 4) 기타 파일 실행 가능 경로 (서버별 경로가 상이함)
점검 방안#3 (42391~43391 포트 상세 확인)

◈ 아래의 명령어 실행하여 42391~43391 포트 오픈 여부 확인
   
* 위 포트가 오픈되어 있다면, 정상 서비스로 사용중인 포트인지 추가 확인 필요

netstat -lpn | grep -E ':42[3-9][0-9]{2}|43[0-3][0-9]{2}'
 

3. 점검 방안 (2차) - BPF 컨트롤러 검출

점검 방안 (위장 프로세스 검사)

◈ 아래의 명령어 실행하여 출력되는 결과값 유무 확인

1. ps -ef | grep "abrtd" * 위 명령어 결과가 확인되는 경우 2번 명령어 실행 (없는 경우 종료)

 

2. ls -l /proc/{의심 프로세스 PID}/exe * 악성코드가 존재하는 경우 다음 사진과 같이 파일경로 출력

<출처: 금융보안원, 2025.05.07>

#SKT, #리눅스, #linux, #해킹, #악성코드, #보안, #BPFdoor, #점검, #백도어, #BPF도어