数多くのVPSで使われているDebian 10イメージに脆弱性がある件について
- SolusVMの提供するDebian 10イメージに、脆弱なパスワードを持つユーザーがデフォルト作成されていた
- 実際の攻撃事例が一般ユーザーに周知されたのは最近だが、1年半ほど脆弱な状態が放置されていた
- SolusVMはVPS事業者に非常によく使用されている大手コンパネなので、VPSでDebian 10を使っている人は今すぐ確認するべき
LowEndTalkという格安VPS専門のフォーラムに、 このようなスレッド が立ち、VPSユーザーに衝撃が走った。
SolusVMの提供するDebian 10イメージに脆弱性が存在し、実際の攻撃が確認されている とのことである。
脆弱性の存在が知れ渡ったのは2021年の2月頃だが、 脆弱性を利用した乗っ取りは2020年の10月ごろにはあったらしい。
SolusVM側は 一応脆弱性を把握しておりサポートページも用意されているようである が、手厚い対応は全く期待できない雰囲気である。
SolusVMとは
Plesk社が提供するVPSのコントロールパネルである。
あらゆるVPSで使用されているもので、まさに大手であるといえる。
脆弱性について
脆弱なパスワードが設定されている「debianuser」ユーザーが、パスワード認証によるSSH接続可能な状態で作成されているとのこと。
一言で言えば、 第三者が悪用可能なバックドアがデフォルトで入っている ということである。
どのようにして利用されるのか?
debianuserというユーザーでSSH接続を行い、とあるパスワード(あえてここには書かない)を入力するだけで侵入が完了。
手順はものすごく単純であり、ビットコインのマイナーを仕掛けられる事件が多発している。
当然ながら自動で攻撃するBotの作成も簡単。実際Botがしらみつぶしにアタックをかけているようだ。
複数回のログイン試行すら不要なので、ufwのlimit sshでも妨害不可能。
さらに sudoの脆弱性 との合わせ技でrootを取ることも可能である。
いつから脆弱だったのか?
該当のイメージは2019年10月に公開されていた模様。つまり 1年半ほど脆弱な状態が放置されていた ということになる。
どのような場合に侵入されるのか?
以下をすべて満たした場合に侵入されると思われる:
-
sshdをパスワード認証OKで運用している
- この手のVPSの使い方としては、ぶっちゃけ言ってありえない
- 公開鍵認証限定にしていれば、この手法で乗っ取られることは100%ない
-
SolusVMの提供するDebian 10イメージ or そのイメージをもとに改造したイメージを使っている
- 2021-02-03以前に提供されていたイメージ
- VPS業者の改造次第では侵入されないこともある?
- 「debianuser」という怪しいユーザーを消さずに放置している
なぜバックドアができてしまったのか?
真相は公開されていないので不明である。
ユーザーや事業者の推測によれば、
debconfとかpreseed周りでミスをして変なユーザーを作ったのでは
という説が有力である。
Debianは preseedファイルを使うことでインストールを自動化 できる。VPS用のイメージを作成する際にはよく使うとのこと。
関係あるかどうかはわからないが、脆弱なイメージからdebianuserを除去しただけと思われるイメージを使い
/var/cache/debconf/config.dat
を確認したところ、こんなものが含まれていた。
Name: passwd/username
Template: passwd/username
Value: debianuser
Owners: user-setup-udeb
ユーザーにできる対策
SolusVMを避けることができればいいが、VPSを使う限り避けるのはかなり難しい。
SolusVMはこの手のコントロールパネルでかなりの大手である。どこでも使われていると考えてよい。
なのでSolusVMのコントロールパネルを使っていてもできる対策を考えるしかないのが実情である。
今から予防するなら?
-
SSHを公開鍵認証限定にする(超超超重要)
- 対策も何も、VPSを使うならパスワード認証を使用しないのは常識である
- これができないユーザーはVPSを絶対使うべきではない
-
SolusVMのイメージをそのまま使っていない業者を使う
- 公式イメージを信頼できないから、イメージだけは自前でビルドしている業者も実は結構いる
-
そもそも
SolusVMが起因のセキュリティインシデントは初めてではない
らしい
- そりゃ信頼してない業者が普通に居てもおかしくない
-
VPSを手に入れたら、まずはユーザーとかインストール済みパッケージとかを確認する
-
dpkg -lとか/etc/passwdくらいはサクッと確認できるだろう
-
-
もし可能であれば、イメージを持ち込む
- 各種Linux Distro開発チームから公式提供されるisoファイルを使って自力でインストールすればよい
-
isoファイルが使えないなら
https://netboot.xyz/
を使ってネットワークインストールするという手もある
- この方法ならどこでもGentooInstallBattleできる
- KVMやXenであれば可能かもしれないが、OpenVZやLXCだと厳しいのは言うまでもない
すでに侵入されていたら?
/var/log/auth.log
とかにヤバイログがあれば
再インストール一択。選択肢などない。
まあroot取られてたら証拠を消されてるかもしれないので、侵入があったかどうかを確実に判定できるとは思えないが・・・