「Movable Type は動的ではないからセキュリティに強い」と言われていることが多いですが、実行ファイルがないから強いだけではないの?と思っています。実際、実行ファイルがわかると、ある程度バレることが多いと思いますが、防ぐためのトピックを記載したいと思います。

そもそもバレるのはなぜなのか

ここでは、攻撃者の観点に立って考えたときに、 Movable Type を使っていることがわかる理由を記載します。

  • そもそも URL がよく使われるものが多い( mt や movabletype 、 cgi-bin など)
  • トラックバックやコメントなどの実行ディレクトリから把握されてしまう
  • 同じドメイン上で運用されている事例が多い

「言われてみれば」ということが多いですが、構築するときには意外と安易に考えてしまいます。

Movable Type の安全性(セキュリティ)について | CMS プラットフォーム Movable Typeにも記載されていますが、「CMS と公開サイトのパスを分離可能」となっている通り、セキュアに構築するためには、 CMS と公開サイトを分離することで受けにくくなる、と公式サイトにも記載されています。(人によっては言い訳、と言われそうですが)

どう対策するのか

なぜ攻撃されるのか、バレるのか、ということはなんとなくわかったと思います。これらの前提から、どのように対策すべきなのかを考えたいと思います。
ただし、中には新規構築する場合のみ有効である内容もあるため、すべてがすべてかんたんにできる、というわけではないです。

URL をわかりにくくする

Movable Type をインストールしているディレクトリ自体をわかりにくくすることは有効な対策ではないにしても、アクセスさせにくくするための手段としては有効です。

「大丈夫ですかね」と聞かれる多くのウェブサイトは、冒頭に挙げた文字列が使われていることが多いです。サーバ側の制約であったとしても、 Movable Type の URL の文字列を変更することによって、攻撃者から推測させにくくする、という効果はあると思います。

ただし、これは緩和策であり、有効的な対策ではないことはしっかり認識させておくことが大事です。

ドメインを分ける

そもそも、 Movable Type を導入しているウェブサイトの下でなくても動くのであれば、ドメインなどを分けてしまうのもひとつ手だと思います。

これも有効的な対策かと言われると、微妙ですが、表から見えにくい、という意味では一定の効果があると思います。結果的には特定される可能性があるにしても、ランダムな文字列など工夫をおこなうことで、「わかりにくくする」ということはできると思います。

ただ、 URL をわかりにくくするよりかは対策できていますが、同様に有効な対策かと言われると微妙です。

Path を指定して IP アドレス制限や Basic 認証をかける

Movable Type が長く開発されているシステムであるからこそ、 URL がよく使われるものが多かったりするため、 Movable Type が実行できるディレクトリに対して、 IP アドレス制限や Basic 認証といった、 Movable Type のシステムにアクセスする前段階での対策は非常に有効だと考えます。

仮に、システム側に問題があったとしても、システムに行く前にアクセスされないようにしておくことで、緩和させることができます。また、 IP アドレス制限だと、「導入する敷居が高い」「固定 IP を導入するリスクがある」といったこともありますが、 Basic 認証は導入しやすいのではないかと思っています。

また、 VPN などを用いて仮想的に IP アドレスを固定化する、ということもできないことはないですが、追加の維持コストやサービスに対するコストなどを考えて、導入すべきか判断する必要があります。

そもそも不要な機能は無効化しよう

MTディレクトリ配下のCGIはどれを削除しても問題ないか | Junnama Onlineにもある通りですが、不要な機能は無効化したり、削除することは大事だと思います。(ちなみに、 ftsearch.cgi はチャレンジしたことありますが、難しすぎて実運用まで持っていったことはありません)

冒頭に挙げた通りですが、ウェブサイトで使われていない機能を無効化することは、一定の効果があると思います。以下の機能は代替策もあることから、無効化したほうが良いと思っています。

  • 検索機能
  • コメント機能
  • トラックバック機能

結果的に、基本的な対策を行っていくことによって、システムとしての安全性が保たれるため、構築から意識して対策していきたいと思います。

最後に、自分たちでの運用が難しい、というのであれば、それなりのプロフェッショナルに依頼することや、サービスの利用、なども含めて考えたほうが良いのではないでしょうか。