最近、Magentoを標的とした総当たり攻撃が横行しているようです。
Magentoのセキュリティセンターで公開された記事の内容から、重要なポイントをピックアップしてお届けします。

よく狙われるMagentoの機能

Magentoには多くの機能がありますが、特に以下の機能が狙われています。

  • 管理画面
  • 新規注文RSSフィード
  • 在庫切れ間近RSSフィード
  • downloader

なぜ、これらの機能が狙われるのか?

管理画面はどんなWebアプリケーションにも共通することですが、様々に重要な情報が管理されている他、そのアプリケーションに関する様々な設定を変更する事ができます。

MagentoなどのEコマースアプリケーションでは会員情報や購入履歴といった重要な情報が管理画面から閲覧できるため、ここを保護するのはとても重要です。

また、Magentoの管理画面から閲覧できるRSSフィードはBASIC認証で保護されていますが、管理者IDやパスワードが推測可能なものである場合、BASIC認証を突破される可能性があります。

さらに、downloaderはエクステンションのインストールができるため、ここも総当たり攻撃でログインIDとパスワードを突破するケースがあとをたちません。

比較的安価・簡単にできる対策

では、総当たり攻撃からこれらの機能を保護するにはどうすればよいでしょうか?
Magentoのセキュリティセンター推奨の対策をご紹介します。

管理画面URLを変更する

Magento1.xの場合は、設定ファイルによる変更を行うことで、管理画面のURLを変更することができます。

Magento2の場合は、インストール時に可能な限りわかりにくい名称にしておくのが良いでしょう。

Downloaderのパスを変える

Magento1.xの場合は、downloaderのパスを変えることができます。
ディレクトリ名を推測されにくい名前に変更することで、一時的な対策になります。

ただし、セキュリティパッチを適用する際に問題になることがありますので、できればやらないほうが良いでしょう。

IPアドレスによる制限をかける

ApacheやNginxの設定で、これらの機能に対するアクセスを制限します。
BASIC認証をかけるだけでは不十分で、IPアドレスによる制限が最も効果的です。

Apacheの例

Apacheの場合は以下のように.htaccessやApacheの設定ファイルに定義することで対策ができます。

管理画面
RewriteCond %{REMOTE_ADDR} !^xx.xx.xx.xx
RewriteRule ^(index.php/)?admin/ - [L,R=403]
RSS
RewriteCond %{REMOTE_ADDR} !^xx.xx.xx.xx
RewriteRule ^(index.php/)?rss/ - [L,R=403]
Downloader
order deny,allow
deny from all
allow from xx.xx.xx.xx

Nginxの例

Nginxの場合はApacheのように.htaccessが使えないため、設定ファイルに以下のように定義します。

管理画面
location ~ ^/admin/ {
    allow xx.xx.xx.xx;
    deny all;
    try_files $uri $uri/ /index.php;
}
location ~ ^/index.php/admin/ {
    allow xx.xx.xx.xx;
    deny all;
    try_files $uri $uri/ /index.php;
}
RSS
location ~ ^/index.php/rss/ {
    allow xx.xx.xx.xx;
    deny all;
    try_files $uri $uri/ /index.php;
}
location ~ ^/rss/ {
    allow xx.xx.xx.xx;
    deny all;
    try_files $uri $uri/ /index.php;
}
Downloader
location ~ ^/downloader/ {
    allow xx.xx.xx.xx;
    deny all;
}

使わない機能はそもそもアクセスを禁止する

管理画面は致し方ないですが、それ以外の機能を使用しない場合は無効化するなり完全にアクセスを遮断してしまうのも正しい方法です。

変にアクセスを許可する部分を作ったり、例外の定義を行うくらいであれば、完全に遮断するほうが安全であす。

追加対策1:管理者の認証に二要素認証を導入する

 NEXCESSが配布しているエクステンションを導入すると、管理者の認証に二要素認証をかけることができます。

より強固な管理者アカウントの認証機構を導入することによって、IDやパスワードが破られることを防ぎます。

追加対策2:VPNや固定IPを利用する

IPアドレス制限をかける場合は、必ず固定IPを使用してください。
最近では安価(月々2,000円程度)で固定IPの利用できるプロバイダも存在します。かつて程高額ではありませんから、リスク軽減策として固定IPを導入しても良いでしょう。

あるいは、VPNサービスによる固定IPを提供している事業者もあります。
こちらであれば、どこにいても同じIPアドレスによるアクセスができるため、外出の多い方でも気軽に導入ができます。