セキュリティホールを突かれてサーバーがマイニングマシンになった去年。

セキュリティホールを突かれてサーバーがマイニングマシンになった去年。

概要

VPSサーバーを使っていて、最近やけにCPU使用率が高いんだよねってずっと疑問に思っていたのですが、マイニングツールが動いていて、知らない人のお金稼ぎに使われていたことが発覚しました……

※1年以上昔の話ですので、現在は問題ありません。

簡単にまとめると

  • 本番環境でデバッグモードを有効化
  • ライブラリの更新を怠っていた

結果

  • 脆弱性を突かれて、仮想通貨のマイニングをするソフトウェアがインストールされ、フル稼働で知らない人のお金稼ぎに協力

ということです。

大変参考になる記事。
laravelのヤバい脆弱性をついたkinsing(kdevtmpfsi)というマルウェアに感染した話 CVE-2021-3129

反省点

当たり前のことを列挙します。

SSHポートガチガチに対策してるから敵なしですという認識は危ない

SSHポートを鍵認証したりrootでのログイン禁止したり……よくやる対策は最初にやるかと思います。
でもそれで満足しちゃだめですよ……

sudoした時に見る「大いなる力には、大いなる責任が伴う」を忘れちゃだめです……

デバッグモードを本番環境で有効にするな!

当たり前です。
脆弱性うんぬん以前にパスなどがそのままエラーで出ちゃうデバッグモードを一般に晒すのはリスクすぎます。

コピペで設定を持ってくるのはやめましょう。

こまめにライブラリを更新しろ!

PHPのパッケージ管理ツールcomposerで管理しているので

composer update

をすれば良いだけなんです。
ただサービス数が増えてきたり、あまり主力じゃないサービスだと怠りがちです……
使わなくなったサービスは公開を避けて、必要なものはこまめにアップデートしましょう。

GitHubで管理してるとライブラリの脆弱性見つかった時にアラート出してくれますので、それも要確認です。

自分は大丈夫という認識はまじで通用しない……

狙って特定の会社を狙うタイプとは違って、スクリプト的なもので半自動で脆弱性を付いた攻撃だと、事業規模とか個人法人は関係なく喰らう訳でして、個人でやってるから対策もあまり気をつけなくて良い訳では決してありません。

XSS攻撃とか、CORSとか、SQLインジェクションとか、フレームワークやライブラリがよしなにしてくれるものもありますが、知識なく頼りすぎると突然の死が待っています……

_人人人人人人_
> 突然の死 <
 ̄Y^Y^Y^Y^Y^Y^ ̄

突然の死ジェネレーター

終わり。