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

리눅스 장비를 노리는 XorDDoS 악성코드

TACHYON & ISARC 2022. 8. 10. 16:11

“XorDDoS” 악성코드는 2014년 처음 발견된 이후 최근까지 지속적으로 유포되고 있다.

공격자로부터 전달되는 명령, C&C 서버 주소 등 악성 행위에 필요한 데이터를 XOR 연산으로 디코딩하여 사용하는 특징을 가져 “XorDDoS” 라는 이름으로 명명 되었으며, IoT 장비 혹은 리눅스 서버를 감염하기 위해 ARM, x86 및 x64와 같은 다양한 Linux 아키텍처 버전으로 제작되었다.

공격자는 주로 SSH Brute Force 공격을 통해 공격 대상의 자격 증명을 획득하고 “XorDDoS” 악성코드를 설치한다. 이렇게 실행된 “XorDDoS” 는 자가복제 후 재실행, 프로세스명 변경 및 루트킷 등을 통해 탐지를 회피하려 하며 공격자의 명령을 전달받아 DDoS 공격을 수행한다.

 

자가복제 및 재실행

“XorDDoS” 악성코드는 실행 될 때마다 아래 경로에 자가복제하고, 복제한 파일의 끝에 더미값을 추가한 뒤 아래목록 중 한 개의 파일을 임의로 실행한다.

⦁ 복제 경로 : /lib/libudev.so

                     /usr/bin/자가복제 파일 (임의의 파일명)

                     /bin/자가복제 파일 (임의의 파일명)

                     /tmp/자가복제 파일 (임의의 파일명)

 

[그림 1] 더미값이 추가된 악성코드

 

실행된 악성코드는 DDoS 공격을 수행한 뒤 “쉘 명령어” 와 자기 자신의 “PID” 를 인자 값으로 설정하여 다시 실행한다.

 

[그림 2] 인자로 설정된 쉘 명령어

 

프로세스명 변경 및 종료

탐지를 회피하기 위해 자기 자신의 프로세스 명을 “쉘 명령어”로 변경하여 위장하고, 부모 프로세스를 종료한다.

 

[그림 3] 쉘 명령어로 변경된 프로세스 명

 

자동 실행 설정

악성코드를 지속적으로 실행하기 위해 ‘/etc/init.d’ 경로에 스크립트를 생성하고 서비스로 등록하여 부팅 시 악성코드가 자동실행 되도록 설정한다.

 

[그림 4] Init 스크립트

 

또한, ‘/etc/cron.hourly.gcc.sh’ 파일 명으로 스크립트를 생성한 뒤 crontab 에 추가하여 3분마다 악성코드가 실행되도록 설정한다.

 

[그림 5] cron.hourly.gcc.sh

 

루트킷

루트킷 악성코드를 실행한 뒤 프로세스와 포트를 숨김 처리한다. (분석 샘플의 경우 루트킷 실행 코드는 존재하지만, 루트킷 데이터가 존재하지 않는다)

 

[그림 6] 루트킷 통신 코드

 

명령 수행

아키텍쳐, 커널버전, 메모리, CPU, IP 및 LAN 속도 정보를 수집한 뒤 인코딩하여 C&C 서버로 전달하고, 공격자의 명령을 전달받아 아래 [표 1] 과 같은 명령을 수행한다. 그러나 분석 시점에서는 연결되지 않는다.

 

[그림 7] 탈취 데이터 (좌 : 인코딩 전 / 우 : 인코딩 후)

 

[표 1] 명령에 따른 동작 정보

 

[그림 8] C&C 서버 연결 패킷

 

“XorDDoS” 악성코드는 DDoS 공격 이외에도 백도어와 마이너 악성코드를 추가 다운로드하여 실행하는 사례도 발견되고 있어 주의가 필요하다. 따라서 패스워드를 주기적으로 변경하고, 보안 제품이나 OS를 항상 최신 버전으로 유지할 것을 권고한다.