상세 컨텐츠

본문 제목

Nginx 서버에 숨어 온라인 상점을 노리는 은밀한 악성코드인 NginRAT 발견

국내외 보안동향

by 알약4 2021. 12. 3. 09:00

본문

NginRAT – A stealth malware targets e-store hiding on Nginx servers

 

보안 회사인 Sansec의 연구원들이 2 31일에 설정된 리눅스 작업 스케줄링 시스템(cron)에 숨어 있는 새로운 리눅스 RATCronRAT을 발견했습니다.

 

CronRAT은 온라인 상점을 노리는 Magecart 공격에 사용되며, 공격자가 리눅스 서버에 온라인 지불 스키머를 배포해 신용카드 데이터를 훔치도록 합니다.

 

북미와 유럽에서 CronRAT 감염을 조사하는 동안, 연구원들은 Nginx 서버에 숨어 보안 솔루션을 우회하는 새로운 악성코드인 NginRAT을 발견했습니다. CronRAT와 마찬가지로, NginRAT "서버 측 Magecart" 역할을 하며 Nginx 프로세스에 자기 자신을 인젝션합니다.

 

전문가들은 가짜 Nginx 프로세스를 원본과 구별할 수 없다고 지적했습니다.

 

NginRAT은 호스트 Nginx 애플리케이션을 하이재킹하여 존재를 숨깁니다. 이를 위해, NginRAT는 리눅스 호스트 시스템의 핵심 기능을 수정합니다. 합법적인 Nginx 웹 서버가 이러한 기능(: dlopen)을 사용하면 NginRAT는 자기 자신을 인젝션합니다. 그 결과 Nginx 프로세스에 원격 액세스 트로이목마가 내장됩니다.”

 

 일반적인 온라인 스토어의 웹 서버에는 많은 Nginx 프로세스가 있습니다. 가짜 Nginx는 다른 프로세스와 정확히 동일하게 보입니다.”

 

연구원들은 NginRAT CronRAT를 사용하여 전달되고, 이 둘 모두 공격자가 감염된 시스템에 대한 원격 액세스를 유지하도록 돕는다는 것을 발견했습니다.

 

감염 과정에서 CronRAT은 커스텀 명령을 사용하여 47.115.46.167:443을 통해 명령 및 제어 서버에 접속합니다. 명령 중 하나는 /dev/shm/php-shared에 리눅스 시스템 라이브러리를 다운로드하는 dwn입니다. 이후 CronRATNginRAT를 호스트 Nginx 애플리케이션에 인젝션하기 위해 아래를 실행합니다.

 

env LD_L1BRARY_PATH="[580 bytes]" \

    LD_PRELOAD=/dev/shm/php-shared \

    /usr/sbin/nginx --help --help --help --help --help --help --help --help \

    --help --help --help --help --help --help --help --help --help --help --help \

    --help --help --help --help --help --help --help --help --help --help --help \

    --help --help --help --help --help --help --help --help --help --help --help \

    --help --help --help --help --help --help --help --help --help 1>&2 &

 

 

<이미지 출처 : https://sansec.io/research/nginrat>

 

 

Nginx dlopen을 호출하면 NginRAT가 제어권을 갖습니다. 이는 PHP 공유 파일을 제거하고 프로세스 이름을 nginx: worker 프로세스로 변경하고, 시스템에 대한 정보를 수집하고, 47.115.46.167에서 C&C 서버와의 연결을 설정합니다. 그런 후 몇 주 또는 몇 달 동안 잠자며 추가 명령을 기다리고 있습니다.”

 

전문가들은 NginRAT이 합법적인 Nginx 호스트 프로세스에 숨어 있고, /proc/PID/exe Nginx를 가리킬 것이라고 설명했습니다. 분석을 어렵게 만드는 또 다른 트릭은 라이브러리 코드가 메모리에만 기록되고 실행 후에는 검사가 불가능하다는 점입니다. 오타가 포함된 LD_L1BRARY_PATH이 사용되고 있을 경우 이는 시스템이 해킹되었다는 증거가 됩니다.

 

관리자는 아래 명령을 사용하여 악성 프로세스를 찾을 수 있습니다.

 

$ sudo grep -al LD_L1BRARY_PATH /proc/*/environ | grep -v self/

/proc/17199/environ

/proc/25074/environ

 

이후 아래의 명령으로 해당 프로세스를 종료 할 수 있습니다.

 

kill -9 <PID>

 

 

 

 

출처:

https://securityaffairs.co/wordpress/125216/malware/nginrat-magecart-attack.html

https://sansec.io/research/nginrat

관련글 더보기

댓글 영역