トレンドマイクロ社やその他のニュース記事で取り上げられていますが、Magentoの管理画面を狙った総当たり攻撃による被害が増えています。

今回は攻撃の概要と、被害を回避するためにどのような対策が有効であるかをご紹介したいと思います。

管理画面に対する総当たり攻撃とは

Magentoに限らず、多くのWebアプリケーションには管理者だけがアクセスできる管理画面が用意されています。
この管理画面URLというのはよく知られているアプリケーションであれば、ドメイン名が異なるだけであとは同じというようなケースが多く、攻撃者にとっては格好の標的となりえます。

ブラウザのアドオンや、WebサイトのHTMLデータを調べれば、どんなパッケージを用いているかを判別することは比較的容易にできてしまいます。攻撃者はそこから攻撃パターンを選択してあらゆる管理者IDとパスワードの組み合わせを試します。

あらゆる組み合わせを試すから「総当たり攻撃」と呼ばれるわけで、管理画面に対してと言う意味ではポピュラーな攻撃方法であるといえます。

総当たり攻撃を防ぐには

管理画面に対する総当たり攻撃は比較的単純な攻撃方法です。
そのぶん対処法もある程度確立されています。

一定回数のログイン失敗でアカウントをロックする

最初に試したほうが良いのは、「アカウントのロック」です。
一定回数以上ログインに失敗したアカウントを、無効化し、ログインできないようにします。
ロックを一定時間後に解除するのか、あるいは他の管理者による操作が必要とするのかはセキュリティポリシーに依存します。

CAPTCHAなどの画像による確認を自動的に出す方法もある程度有効ですが、CAPTCHAを判読されるケースもあるので過信は禁物です。

二要素認証を導入する

ログインIDとパスワードのほかに、銀行などが提供するようなワンタイムパスワード発生器を用いた二要素認証を導入するのも効果的です。
IDとパスワードだけではどうしても守りきれないという場合は、二要素認証の導入を検討してみても良いでしょう。

管理画面を推測しにくいURLにする

お手軽な対処法としてよくある方法です。
著名なパッケージはすぐに管理画面を類推されてしまいがちですから、管理画面のURLをドメイン名を含めてわかりにくいものにしてしまうというのは一つの方法でしょう。

管理画面へのアクセス元IPを制限する

固定IPアドレスが利用できるプロバイダと契約が不可欠ですが、管理画面へのアクセス元IPを制限するのはかなり有効です。
ただし、許可されたアクセス元IPのネットワークで使用されている端末がトロイの木馬などに感染するおそれがあるので、IPを制限しているからと安心するのは禁物です。

一定以上のアクセスを繰り返すIPアドレスを遮断する

Webアプリケーションファイアウオールや、侵入検知システムなどを用いると、非常に短い時間に多くのログイン認証を試すアクセスを検出し、遮断することができます。
機材やサービスの導入には費用がかかることが多いですが、他の攻撃を防ぐこともできるので導入を検討してみても良いでしょう。

Magentoで行える対策とは

さて、Magentoではどのような対策がおこなえるでしょうか。
いくつかご紹介したいと思います。

管理画面パスを変更する

管理画面パスは全てのバージョンのMagentoで変更できます。
管理画面からは設定できないので、変更したい場合はシステム担当者に依頼するか、Magento1の場合はapp/etc/local.xml。Magento2の場合はapp/etc/env.phpを編集してください。

管理画面を別ドメインにする

管理画面専用のドメイン名が用意できる場合は、変更するのも手です。
設定画面から変更ができるので、準備さえできていればいつでも変えることができます。

管理者ID「admin」をやめる

総当たり攻撃への対策としては、「よく使われそうなIDやパスワード」の使用を止めるのが効果的です。
adminなどのIDはありそうなものなので、こういったIDの使用を止めるだけでも総当たり攻撃には効果があります。
(だからといって完璧ではありませんが)

管理者パスワードを複雑なものにする

パスワードの強度は、パスワードに使われている文字数と文字の種類によって変わります。
半角数字だけ、というのは非常に弱く、半角英字の大文字小文字や、場合によっては記号を混ぜるだけで総当たり攻撃への対処になりえます。
(とはいえそれだけで絶対安全というわけではありません)

アカウントロックを設定する

Magento2では標準機能として搭載されていますが、アカウントロックを設定すると効果的です。
自分自身がロックされる可能性はありますが、総当たり攻撃を行う側は手間と時間の掛かることは敬遠する傾向にあります。
アカウントロックが入っていると、一定回数のログイン失敗でアカウントがロックされるので、同じIDが使えなくなります。

二要素認証を導入する

エクステンションの導入が必要ですが、Magentoでも二要素認証を利用できます。
気になる方は導入されてもよいかと思います。

管理画面へのアクセス元IPを制限する

エクステンションでも実現できますが、ApacheやNginxの設定で制限してしまうのがより安全でしょう。
(エクステンションの場合はMagentoまでは一旦到達してしまいます)

終わりに

総当たり攻撃は単純な攻撃方法です。
攻撃対象になるURLや機能に対してアクセスを制限する対策や、攻撃者の手間が増えるような反応をアプリケーション側が示すような対策が特に効果的でしょう。

Magentoでは比較的簡単な対策で総当たり攻撃を防ぐことができる仕組みや拡張機能が用意されています。
お悩みの方は一度ご相談ください。