ハッキングの被害とレンタルサーバーのコントロールパネルのセキュリティー強化/cPanel

私は海外サーバーをよく使っていますので、レンタルサーバーのコントロールパネルは、大抵、cPanelです。長年安全に使ってきたのですが、最近よくハッキングの被害に遭うようになりました。

被害の状況はこんな感じです。

サイトの改ざん

自分のドメインのサイトなのですが、いつの間にか改ざんされて、中身が変わっていました。元々はwww付きのURLを正規のURLとしていましたが、いつの間にかwwwなしのURLになっていました。アクセスしたところ、wwwで始まっていないので、何か変だと思ったら、中身がそっくり変わっていました。

これはWordPressのサイトでした。サーバーの中に新たにディレクトリーが作られて、そこにWordPressがインストールされ、それ用にデータベースも新しく追加されていました。インストールにはcPanelのSoftaculousが使われた形跡がありました。また、設定の際に登録されていたメールアドレスにはyakuzaと言う文字列が使われていました。たぶん、日本人ではなく、「やくざ」という言葉を知っている外国人の仕業だと思います。

新しいサイトのファイルを全て削除し、cPanelのパスワードとデータベースのパスワードを変更しました。幸い、元のファイルと元のデータベースはそのまま残っていたので、簡単に復活できました。こちらのデータベースのパスワードも変更しておきました。ハッカーが作ったデータベースは頃合いを見て削除する予定です。

ファイルのタイムスタンプの改ざん

たまたま.htaccessのタイムスタンプを見たら、アップロードや編集した覚えのない日時に変わっていました。バックアップを調べたところ、時々変えられていることが発覚しました。ただ、ファイルの中身は同じです。なぜかタイムスタンプだけが変えられていました。

この事態に対する措置として、cPanelのパスワードを変更しました。

なぜハッキングされたのか?

サーバー会社の主張では下記が原因だと言います。

1)WordPressのバージョンが古く、脆弱性が存在した。

2)WordPressのプラグインやテーマのバージョンが最新ではなく、脆弱性が存在した。

3)無料テーマや無料プラグインには、ハッキングのためのバックドアが仕掛けられていることがある。

4)私のパソコンがウイルスやマルウェアに感染している。

5)ブラウザーやFTPソフトに記憶させたログイン情報が漏れた。

こんな事を言われると、パソコンも使えないし、ウェブサイトの運営もできませんね。(^ ^;

サーバー会社の主張は全くのでたらめというわけではありません。WordPressについては、現行の最新バージョンである5.4に対して、まだ4.8系を使っていました。しかし、4.8.14という現時点では最新のセキュリティー・アップデートを適用したバージョンなので、今のところ脆弱性はないはずです。それにWordPressの脆弱性が原因で、cPanelのユーザー名とパスワードが漏れることはあり得ません。

プラグインやテーマも同じです。こういうものが最新でなかったとしても、cPanelのユーザー名とパスワードが漏れることはあり得ません。サイト自体の改ざんならあり得ますが、前述のタイプの改ざんはcPanelに入らないと不可能です。なぜかと言うと、WordPressからは、データベースの追加はできないからです。cPanelからしかデータベースは追加できません。直接データベース内に入って作る手も考えられますが、それができるぐらいなら、cPanelからデータベース内に入って、データベースを追加する方が簡単でしょう。

無料テーマや無料プラグインを使うなと言われても無理ですね。WordPressは無料のプログラムが大量に存在する世界ですから。

私のパソコンがウイルスやマルウェアに感染しているとする見解ですが、三種類のウイルス・スキャナーで調べた限り、そのようなものは見つかっていません。そもそも、私ぐらいのレベルになると、そう滅多なことでウイルスやマルウェアに感染することはありません。もちろん、私のパソコンをハッキングするのも容易ではないでしょう。

ブラウザーやFTPソフトに記憶させたユーザー名とパスワードが漏れた可能性はゼロではありませんが、その前提として、私のパソコンにウイルスやマルウェアが存在していなければいけません。しかし、そのようなものは一切ないので、ブラウザーやFTPソフトから、ユーザー名やパスワードが漏れた可能性はゼロと言えます。

本当にハッキングされたのか?

サイト改ざんの時は、時間が経過していたため、ハッキングの形跡を見つけることができませんでしたが、ファイルのタイムスタンプの変更の時は、まだあまり時間が経過していなかったため、ハッカーのIPアドレスが確認できました。それによると、一人はアメリカからハッキングしていて、もう一人はフランスからハッキングしていました。明らかに、ハッカーがcPanel内に侵入しています。しかも、どうやら複数です。

ハッキングの謎

cPanel内に入るには、ユーザー名とパスワードが必要です。ユーザー名とパスワードを使わず、cPanelに脆弱性があったのがcPanelへの侵入の原因だいという場合だと、非常にたくさんの人が被害に遭うため、国際的な大問題に発展しますが、今のところ、その様子はありません。もっとも、勝手に新しいサイトが作られた件はともかく、ファイルのタイムスタンプが変更されただけでは、誰もまだ気がついていないと言うだけのことかもしれません。

もしcPanelの脆弱性によるのではなく、ユーザー名とパスワードが漏れたのだとすると、問題は、どうやってユーザー名とパスワードを入手したかです。これがどうにもわかりません。特定のサーバー会社だけで起きているので、その会社がハッカーに狙われているように思えて仕方ありません。もし本当に私のパソコンから情報が漏れたのなら、他のサーバー会社でもハッキングが起きるはずだし、それよりも前に経済的な被害が起きそうです。しかし、そのようなことは一切ありません。

私の個人的な見解として、とりあえず、そのサーバー会社が狙われていると結論しておくことにしました。

そうなると対策は一つしかありません。下がそれです。

cPanelの2段階認証

cPanelのユーザー名とパスワードがどうしても漏洩してしまっていると言う状況で、かつ、防止策もないとなると、2段階認証を行うしかありません。これは一見面倒なのですが、やってみたところ、実際にはあまり気にしなくてよいことがわかりました。

なぜかと言うと、cPanelに入る度に2段階認証を求められるかと思ったのですが、2段階認証を求められるのは、cPanelに直接入る場合だけです。サーバー会社の「Client Area」などを経由して入る場合は、2段階認証を求められません。いつもClient Areaから入っているので、実際には自分とは何の関係もない設定で、ハッカーが困るだけです。ぜひ設定した方がいいです。

cPanelの2段階認証の設定方法

スマホとアプリの準備

必要なものはスマホと2段階認証のアプリです。私はiPhoneを使っていますが、Duo Mobileと言うアプリが使えます。アプリは、App Storeで入手します。App Storeに行って、検索して見つけて下さい。その他のアプリを使いたい場合はこちらを参考にして下さい。

アプリをインストールすると、「”Duo Mobile”は通知を送信します。よろしいですか?」と聞いてくるので、「許可しない | 許可」で、「許可」の方をタップします。

「New to Duo?
ADD ACCOUNT」

と言うのが画面下に出ますので、「ADD ACCOUNT」をタップします。

すると、「”Duo Mobile”がカメラへのアクセスを求めています」と画面に表示されますので、「許可しない | OK」で「OK」の方をタップします。これでQRコードが読み込めるようになります。

注意点としては、QRコードの認識がうまく行かないことがあることです。私はパソコンの画面の明るさを最大にしたら、すぐに解決して、QRコードが読み取れるようになりました。

Duo Mobileの初期設定

なお、次の段階に移って、QRコードを読み取ったり、「Account」と「Key」を手動で入力すると、「Improving your experience」というタイトルの文章が下に出ます。これは使用状況を送信するかどうかと言う設定に関するものです。協力する気がない場合は、「Disable in settings」をタップします。協力する場合は、「OK」をタップします。「Disable in settings」をタップすると、以下に書いたような状況になって面倒なので、「OK]をタップすることをお勧めします。

「Disable in settings」をタップすると、設定画面に移行します。そこで、「Send Usage Data」のスライドをタップして、無効にします。すると、「Restart Required」というメッセージが画面に出ます。内容は、「使用状況のデータを送らずに使用する場合は、一旦、Duo Mobileを閉じて、再度開いて下さい。」というものです。データを送りたくなければ、ホームボタンを2回連続して押し、Duo Mobileの画面をスワイプして終了します。一方、「Dismiss」をタップすると、このメッセージは消えますので、左上の「Accounts」をタップして、先ほどの画面に戻ります。この場合、今回は使用状況のデータが送信されます。使用状況のデータを送らないと言う設定は、次回、起動した時から適用されます。

使用状況のデータを送るかどうかと言う設定は以上で終わりますが、今度は画面の下に「Automatically reconnect your accounts」というメッセージが出ています。「Maybe later | Enable now」で、今設定するのなら、「Enable now」をタップして、10桁から128桁までで「recovery password」(復元パスワードを設定します。「Done」をタップしたら、入力内容を送信できます。入力したパスワードを送信できたら、「Success」というメッセージが出ますので、下の「OK」をタップします。

これで初期設定は完了です。

アプリとcPanelを接続して、2段階認証の設定を行う

1)cPanelの「SECURITY」のグループの中に「Two-Factor Authentication」という項目があります。これをクリックします。
2)「Set Up Two-Factor Authentication」をクリックする。
3)「Step 1」にQRコードが表示されているので、それを読み込みます。読み込めない時は、その下に「Don’t have a QR code reader?」というのが表示されているので、「Account」と「Key」に表示されている文字列を入力します。
4)スマホに6桁の数字が出ますので、それをパソコンのcPanelの画面の「Step 2」の「Security Code」の欄にタイプして、「Configure Two-Factor Authentication」をクリックします。
5)「Success: Two-factor authentication is now configured on your account. 」と表示されれば、完了です。

アカウントが複数ある場合は、Duo Mobileの画面の右上の「+」を押せば、続けて他のアカウントも登録できます。

IPアドレスでcPanelへのアクセスを制限する

あいにく、.htaccessを「.cpanel」ディレクトリーに設置しても、IPアドレスでcPanelへのアクセスを制限することはできません。.htaccessによるアクセス制限はウェブサイトをブラウザーで閲覧する場合のみ有効です。別に.htaccessを設置しても、問題は起きませんが、まるで機能しないので、意味がありません。

cPanelがIPアドレスなど地域によるアクセス制限をかけられるようになるといいのですが、現在のところ、そのような仕様にはなっていません。将来、そのような機能が追加されるといいのですが・・・。

2段階認証の勧め

2段階認証でcPanel経由のハッキング被害はほぼ完全に防止できます。管理人の私たちは、サーバー会社のClient Areaからなら、いつも通りcPanelに入れるので、何も不便はありません。

ハッキングが熾烈を極めている現状では、2段階認証はほぼ必須の措置と言えるのではないかと思います。これでいろいろな面倒から解放されます。

関連ページ:
Two-Factor Authentication for cPanel (cPanel & WHM Documentation)

シェアする

  • このエントリーをはてなブックマークに追加

フォローする