ネットワークセキュリティ
 Computer >> コンピューター >  >> ネットワーキング >> ネットワークセキュリティ

PHP製オープンソース掲示板ソフト「MyBB」に保存型XSSの脆弱性――悪用手口と対策を解説

MyBB(旧称:MyBulletinBoard)は、PHPとMySQLをベースとした無料のオープンソース掲示板ソフトウェアです。しかし最近、バージョン1.8.20以前において、重大な保存型XSS(Cross-Site Scripting)およびRCE(リモートコード実行)の脆弱性が発見されました。この脆弱性により、掲示板に一般ユーザーアカウントを持つ攻撃者であっても、管理者へ悪意のあるプライベートメッセージを送信したり、悪意のある投稿を作成したりするだけで、掲示板全体を乗っ取ることが可能になってしまいます。

原因となった脆弱性

MyBBに存在していた主な脆弱性は以下の2つです。

投稿・プライベートメッセージにおけるパースエラー

1つ目は、JavaScriptを正しく検出できない不適切なパース(構文解析)エラーです。標的の掲示板にいる悪意ある攻撃者が、悪意のあるJavaScriptコードを含むプライベートメッセージを管理者に送信すると、セキュリティ機構を回避できてしまいます。

さらに厄介なのは、この脆弱性の悪用に必要なのは「管理者がそのメッセージを開くこと」だけという点です。ハッカーが掲示板の完全な制御権を得るために、他の操作は一切必要ありません。攻撃者はプライベートメッセージを開かせた瞬間に、データベースに保存されているすべてのユーザーアカウント、非公開スレッド、メッセージへの完全なアクセス権を手に入れます。

リモートコード実行(RCE)の脆弱性

2つ目は、保存型のリモートコード実行(RCE)の脆弱性です。こちらは管理者権限を持つ者によってのみ悪用可能ですが、前述のプライベートメッセージのパースエラーと組み合わせることで、ハッカーはウェブサイトをリモート制御し、悪意のあるPHPコードをデータベースに保存できるようになります。

技術的詳細

「パース」とは文字列の分析を意味します。掲示板におけるパースとは、ユーザーの入力をサニタイズ(無害化)し、mycodesbbcodesに変換する処理のことです。bbcodesは、画像・リンク・動画を投稿に埋め込むための、掲示板特有の記法です。

パース処理は、まずすべてのHTMLタグとダブルクォートを除去することから始まります。その後、bbcodeをiframeへと変換していきます。

PHP製オープンソース掲示板ソフト「MyBB」に保存型XSSの脆弱性――悪用手口と対策を解説

しかし、bbcodeが別のステップでHTMLマークアップに変換される仕様のため、[url] bbcodeがHTMLマークアップとダブルクォートへの変換を通じて、iframeのsrc属性を破壊してしまうのです。その結果がそのままレンダリングされます。

PHP製オープンソース掲示板ソフト「MyBB」に保存型XSSの脆弱性――悪用手口と対策を解説

この脆弱性が存在しなければ、bbcodeの中に別のbbcodeを注入することは不可能だったはずです。しかしこの欠陥により、<iframe>タグ内にonloadイベントハンドラが注入されてしまいます。このイベントハンドラは、iframe内のページが読み込まれた時点で自動的に発火するため、悪意のあるJavaScriptコードを実行するためにユーザーの追加操作は一切不要です。

PHP製オープンソース掲示板ソフト「MyBB」に保存型XSSの脆弱性――悪用手口と対策を解説

最新バージョンへのアップデートと対策

MyBBはバージョン1.8.21でこの脆弱性を修正済みです。まず実行すべき対策は、このバージョンへのアップデートです。

また、同種の攻撃の被害に遭わないことを確実にするためには、Webアプリケーションファイアウォール(WAF)の導入も有効です。WAFは継続的な監視体制を提供し、ウェブサイトに追加の防御層をもたらします。

Astra Firewallは、XSS、SQLi、CSRF、悪質なボット、OWASP Top 10をはじめとする100種類以上のサイバー攻撃からウェブサイトを保護するWAFの一つです。以下はAstraのダッシュボードのイメージです。

PHP製オープンソース掲示板ソフト「MyBB」に保存型XSSの脆弱性――悪用手口と対策を解説

まずはAstraのデモを体験してみてはいかがでしょうか。

  1. ウイルス対策ソフトの機能とは?仕組み・選び方まで徹底解説

    ウイルス対策ソフトを信頼するのは、誰しも少し不安に感じるものではないでしょうか。ネット上には高機能なアンチウイルスツールが数多く存在しますが、その中から本当に優れたソフトを一つ選ぶとなると、決断に迷ってしまうのが実情です。サイバー犯罪が急増しているデジタル時代において、大切なデバイスを守るためには、包括的なセキュリティ対策ソフトの導入が不可欠となっています。 しかし、ウイルス対策ソフトは実際どれほど効果的なのでしょうか?本当にウイルスやマルウェア、その他のサイバー脅威からデジタルデバイスを守ってくれるのか、それとも単なる神話なのでしょうか?そもそも、ウイルス対策ソフトは何をしてくれるのか、じ

  2. コンピューターをサイバー攻撃から守る15の簡単なセキュリティ対策

    コンピューターのセキュリティは、アンチマルウェア対策だけで完結するものではありません。総合的なセキュリティを実現するには、複数の対策を組み合わせることが重要です。アンチマルウェアソフトの導入はサイバー攻撃から身を守るための一歩にすぎませんが、シンプルで効果的な習慣を身につければ、誰でも包括的なセキュリティを手軽に実現できます。 「私たちをサイバー攻撃の罠に陥れるのは、他でもない自分自身の無知です。」 既存の脅威から将来現れる新種の攻撃まで、あらゆる危険からコンピューターを守りたいなら、以下の15の簡単な対策を実践してみてください。本記事では、日常のセキュリティ慣行に潜む落とし穴を解説し、より強