29
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

これは、実際に自分が godransom というデータベースマルウェア(ランサム系)に感染した体験談です。
同じように「テスト用だから大丈夫」「一時的に公開しているだけ」と思っている人の参考になれば幸いです。


環境構成

まずは当時の環境です。

  • データベース:MySQL 5.x
  • 用途:アプリケーションのテスト用DB
  • 接続形態:外部公開(インターネットから接続可能)
  • 認証:ID / パスワード方式
  • FW制限:最低限(IP制限なし)

「テスト用だから」「一時的だから」という油断がありました。


異変に気づいたきっかけ

異変に気づいたのは、プログラムの動作テストを行ったときでした。

アプリケーションを起動すると、

テーブルが存在しません
table does not exist

というエラーが発生。

最初は、

  • マイグレーション忘れ?
  • 接続先DBを間違えた?
  • ローカルと環境が違う?

と疑いました。


データベースを確認して絶句

MySQLに直接ログインして確認すると、

  • 全テーブルが削除されている
  • 見慣れないテーブル名が1つだけ存在

そのテーブルを確認すると、
身代金要求メッセージ(ランサムノート) が格納されていました。

ここで初めて、

「あ、やられたな」

と理解しました。


godransom とは何か

godransom は、

  • MySQL / MariaDB などを狙う
  • テーブルを全削除
  • 代わりにランサムノート用テーブルを作成
  • 仮想通貨での支払いを要求

という DB特化型ランサムマルウェア です。

特徴

  • 暗号化ではなく 削除
  • バックアップがなければ復旧不能
  • テストDB・公開DBが特に狙われやすい

感染したのは「テスト用DB」だけだった

幸いだった点として、

  • 本番DBは 非公開
  • 内部ネットワーク限定
  • IP制限あり

だったため、
感染したのは外部公開していたテスト用DBのみ でした。

それでも精神的ダメージは大きかったです。


推定される感染経路

ログや構成を確認した結果、
独自ブログのインジェクション が原因と考えています。

状況

  • 自作ブログ
  • 入力値チェックが甘い箇所が存在
  • SQLインジェクション対策が不十分
  • 同じDBサーバーにテスト用DBが存在

👉
Webアプリ → DB侵入 → 全DBスキャン → テストDB破壊

という流れだった可能性が高いです。


なぜ侵入を許したのか(反省点)

完全に自分のミスです。

  • テスト用DBを外部公開していた
  • IP制限をしていなかった
  • 権限の強いユーザーを使っていた
  • バックアップがなかった
  • 「どうせテスト用」という油断

攻撃者にとってはテストも本番も関係ない ということを痛感しました。


被害状況まとめ

  • テーブル:全削除
  • データ:完全消失
  • 復旧:不可(バックアップなし)
  • 身代金:支払っていない

テストデータとはいえ、
検証用に作ったデータ・スキーマが全滅 したのは痛かったです。


取った対策(再発防止)

以降、以下を徹底しました。

DB周り

  • 外部公開DBは原則禁止
  • 必ずIP制限
  • 権限は最小限
  • 定期バックアップ(自動)

Webアプリ

  • プリペアドステート必須
  • 入力値検証の見直し
  • ログ監視の強化

意識面

  • 「テスト用だから安全」は幻想
  • 公開した時点で全世界に晒されている

同じ構成の人へ伝えたいこと

  • テスト用DBほど狙われる
  • 外部公開 = 攻撃対象
  • バックアップは最後の砦
  • SQLインジェクションは今でも現役

godransom は他人事ではありません。


まとめ

  • MySQLの外部公開DBが godransom に感染
  • 気づいたきっかけは「テーブルが無い」というエラー
  • 感染経路は自作ブログのインジェクション
  • テスト用DBでも被害は現実的
  • バックアップと制限は絶対必要

この記事が、
誰かの「同じ失敗」を防げたら幸いです。

29
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
29
2

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?