분석 정보/리눅스 분석 정보

리눅스 환경에서 패킷 필터를 악용하는 BPFDoor 악성코드 발견

TACHYON & ISARC 2022. 8. 9. 15:55

지난 5월 경, 리눅스 환경에서 사용하는 패킷 필터를 악용하는 “BPFDoor” 악성코드가 발견됐다. 해당 악성코드는 BPF(Berkely Packet Filter)를 사용해 공격자의 C&C 서버에서 받은 패킷을 필터링한 후, 악성 행위를 수행한다. 또한, 정상적으로 연결되면 공격자가 대상 서버에서 임의의 명령을 실행할 수 있다.

 

 

자가 복제 및 실행

“BPFDoor” 악성코드를 실행하면 ‘/dev/shm/kdmtmpflush’로 자가 복제한 후, 복사한 파일의 권한을 755로 변경한다. 이 경우 자가 복제한 파일의 소유자는 모든 권한을 부여하고, 그 외 사용자는 읽기와 실행만 가능하도록 설정한다. 또한, 파일의 시간(타임스탬프 값)을 2008년에 생성된 파일로 보이도록 수정한다.

 

[그림 1] 자가 복제, 실행 및 삭제 명령 실행 결과

 

그후, --init 인자를 사용해 ‘/dev/shm/’에 자가 복제한 파일을 재실행하고, 실행한 파일은 삭제한다.

⦁ 자가 복제 파일 경로 : /dev/shm/kdmtmpflush

 

[표 1] 자가 복제 및 실행 관련 명령어

 

프로세스 명 변경

“BPFDoor” 악성코드 실행 후 생성된 자식 프로세스의 프로세스 이름은 [그림 2]와 같이 변경하고 데몬으로 실행한다. 

 

[그림 2] 프로세스 명 변경 결과

 

변경할 프로세스 이름은 [그림 3]의 목록 중 무작위로 선정해 자식 프로세스의 argv[0] 값을 덮어써서 변경한다.

 

[그림 3] 프로세스 명 변경 및 데몬 실행 코드

 

중복 실행 여부 및 권한 확인

또한, 해당 악성코드가 실행되면 가장 먼저 중복 실행 및 파일의 권한을 확인해 실행 여부를 결정한다. 먼저, ‘/var/run’ 경로의 “haldrund.pid” 파일의 읽기 권한 여부와 해당 파일을 실행한 사용자가 루트인지 확인한다. 그 다음, 프로세스의 인자 개수를 확인해 최초 실행 여부를 확인한다. 만약, 최초 실행일 경우 자가 복제 및 재실행 과정을 진행한다.

 

[그림 4] 중복 실행 여부 및 권한 확인 코드

 

이중, ‘/var/run’ 경로에 생성하는 “haldrund.pid” 파일은 데이터가 없어 사이즈가 0이며, 소유자, 그룹 및 그 외 사용자에게 읽기 권한이 부여된 파일이다.

 

[그림 5] haldrund.pid 파일 생성 결과

 

네트워크

이전 단계가 완료되면, “BPFDoor”는 리눅스 환경에서 네트워크 패킷 필터링을 목적으로 사용되는 BPF(Berkely Packet Filter)를 사용해 패킷을 필터링한 후, 공격자의 명령에 따른 행위를 수행한다.

 

[그림 6] BPF를 사용한 패킷 필터링

 

이후, 공격자의 C&C 서버로부터 받은 명령은 [표 2]와 같이 처리되지만 분석 시점에서는 연결되지 않았다. 

 

[표 2] 공격자의 C&C 서버로부터 받은 명령 표

 

A. 리버스 쉘

리버스 쉘에 대한 명령을 받을 경우, 공격 대상 서버에서 클라이언트(공격자)로 접근을 시도한다. 해당 방법은 방화벽으로 인해 외부에서 내부로 접근이 어려울 경우 주로 사용하며, 연결이 성공하면 공격자는 공격 대상 서버에서 임의의 명령어를 실행할 수 있다.

 

B. 바인드 쉘

바인드 쉘에 대한 명령을 받을 경우, 공격자의 C&C 서버와 연결을 시도한다. 또한, 연결하기 전 [표 3]과 같이 임시 방화벽 규칙을 생성하고 정상적으로 연결되면 생성한 방화벽 규칙을 삭제한다. 리눅스 환경에서 방화벽을 설정하는 도구인 iptables를 사용해 설정한 방화벽 규칙을 삭제해도 기존 연결에 대해 효과는 유지된다.

 

[표 3] 방화벽 실행 규칙 추가 및 삭제

 

C. 모니터링

모니터링에 대한 명령을 받을 경우, 공격자에게 데이터를 보내 연결이 정상적인지 확인한다.

 

최근, 본 보고서에서 언급한 “BPFDoor” 등 리눅스 환경에서 BPF를 악용하는 악성코드가 발견되고 있다. 이러한 악성코드들은 BPF를 사용해 네트워크 패킷을 필터링하거나 숨길 수 있고, 이를 통해 공격 대상 서버에서 연결을 지속할 수 있어 주의가 필요하다. 따라서, 출처가 불분명한 메일에 첨부된 파일의 실행을 지양하고, 보안 제품이나 OS를 항상 최신 버전으로 유지할 것을 권고한다.