SPAM을 보내는 PHP 스크립트를 감지하는 방법

SPAM을 보내는 PHP 스크립트를 감지하는 방법

PHP 스크립트가 수많은 이메일을 보내고 있습니다. 소스가 무엇인지 감지하고 싶습니다. 모든 이메일은 사용자가 Apache에서 사용한 www-data를 사용하여 전송됩니다. 프로세스를 확인하면 다음과 같은 결과가 나타납니다.

www-data 16220  0.7  4.7 402508 95924 ?        S    09:37   0:06 /usr/sbin/apache2 -k start
www-data 16352  0.4  3.8 402132 78064 ?        S    09:39   0:03 /usr/sbin/apache2 -k start
www-data 16725  0.6  3.8 402472 78624 ?        S    09:46   0:02     /usr/sbin/apache2 -k start
www-data 16840  0.8  4.2 410744 87204 ?        S    09:48   0:01 /usr/sbin/apache2 -k start
www-data 16949  1.0  4.5 417560 93436 ?        S    09:49   0:01 /usr/sbin/apache2 -k start
www-data 16958  1.0  3.5 402120 72748 ?        S    09:50   0:01 /usr/sbin/apache2 -k start
www-data 16978  1.2  4.6 425160 94864 ?        S    09:51   0:00 /usr/sbin/apache2 -k start
www-data 16980  0.8  3.5 402140 72208 ?        S    09:51   0:00 /usr/sbin/apache2 -k start
www-data 16983  0.4  2.6 402160 54400 ?        S    09:51   0:00 /usr/sbin/apache2 -k start

Apache는 많은 프로세스를 사용하고 있는데 메일을 보내는 스크립트가 무엇인지 모르겠습니다.

그렇게 할 수 있는 방법이 있나요?

답변1

실행 중인 모든 Apache 프로세스를 파일로 덤프하는 strace를 수행한 다음 스팸이 사라지면 무슨 일이 일어나고 있는지 추적할 수 있는지 확인할 수 있습니다(예: mod_status를 사용하여 서버 상태의 빈번한 덤프를 저장하는 등). 파일 경로를 보면 strace에서 명확하지 않습니다.

다음과 같은 방법을 시도해 볼 수 있습니다. 단, 리소스가 많이 소모될 수 있습니다. 필요에 따라 매개변수를 조정합니다 -s.

pidlist=''; \
for pid in `ps ax | grep apache2 |grep /usr/sbin/apache2 | awk '{print $1}'`;\
    do pidlist="$pidlist -p $pid"; \
done; \
strace -s 1024 -tt -F -f $pidlist  > strace_apache2.out 2>&1

관련 정보