エンジニアブログ

エンジニアブログ

【要注意】古いバージョンのMovable Type(MT)に存在する脆弱性を検証してみた

photo.jpg onagatani 2014年06月20日

エンジニアのYTです。 昨日、IPAより、CMSの脆弱性に関する下記の記事が公開されました。 管理できていないウェブサイトは閉鎖の検討を これを受け、古いバージョンのMovable Type(MT)に存在する脆弱性について調査してみました。 【ご注意】 本検証は、新たに構築したサーバ上で行っており、もし脆弱性が悪用されたとしても影響のない環境で実施しております。 また、悪用され踏み台にされる事により第三者に迷惑がかからないよう、アクセス制限を十分に施した状態としております。 本検証のような事をお試し頂く際にはこれらの事に十分配慮した上で実施して頂けますようお願い申し上げます。 検証対象 今回は JVNDB-2013-001237 の evalインジェクション を対象として検証してみます。 http://jvndb.jvn.jp/ja/contents/2013/JVNDB-2013-001237.html 環境を用意 MT4.3x〜4.38 までのバージョンに脆弱性が含まれるとの情報から、MTOS4.36環境を用意してみました。 バージョン番号は、MTにログインした後のフッタ部に表示されています。 ごにょごにょする 詳しい攻撃手法は記載できませんが、mt-upgrade.cgi に対し特殊なPOSTパラメータを送付してみました。 結果 下図は実際の攻撃を行ってみた際のキャプチャ画像なのですが、見ての通り、OSに登録されている全てのユーザ一覧がポロリしてしまっています。 このリストから、ログインできそうなアカウントに的を絞ってブルートフォースアタックでSSHログインしてしまうなんて造作も無い事ですよね。 実行させたOSコマンドはごく一般的な cat /etc/passwd です。 このコマンドは検証のための一例であり、実際の攻撃の際にはもっと危険なコマンドが実行される事でしょう。 危険性 上記の結果でお分かり頂ける通り、非常に危険です。 ウェブサイトが改ざんされるだけであればまだしも、サーバが乗っ取られてしまう可能性すらあります。 回避策 MTをバージョンアップする こちらが最も推奨される対策です。 古いバージョンのまま運用されている場合は、すぐにバージョンアップを検討しましょう。 mt-upgrade.cgi のパーミッションを、実行不能状態に変更する 事情によりMTのバージョンアップが行えない場合の対策です。 mt-upgrade.cgi 自体は常に利用するものではないので、使う時にだけパーミッションを実行可能にするようにするとリスクを抑えられるようです。 mt-upgrade.cgi を削除する mt-upgrade.cgi を削除してしまう事でも本脆弱性は回避できます。 mt-upgrade.cgi が必要になった場合には再度パッケージをダウンロードして、サーバにアップロードしてあげればOKです。 おわりに 弊社は MovableType を用いたソリューションを得意としている為、Movable Type を例として本検証を行っておりますが、 脆弱性が内在するアプリケーションはMovable Typeだけではありません。 「WordPressだから安心」とか「高価な商用CMSだから大丈夫」などという事は一切ありません。 全てのアプリケーションに必ず不具合があり、脆弱性が存在します。 だからこそ、発見された場合の迅速な対応が重要です。   Movable Typeのセキュリティを保つには Movable Typeも常に最新版にバージョンアップすることで、セキュリティを保つことが可能です。 弊社では、Movable Type バージョンアップサービスをご用意しております。Movable Typeのバージョンアップの他にも、不要なCGIファイルに対するセキュリティ対策なども合わせて対応いたします。この機会に、ぜひお問い合わせください。  

http://developersnote.jp/movabletype/oldmt-vulnerability.html