Skip to main content

Ghostcatの侵害はTomcatの全バージョンに影響

ghostcat feature

2020年2月26日

0 分で読めます

Apache Tomcatは、Java Servlet、JavaServer Pages、Java Expression Language、Java WebSocketの各テクノロジーを実装したオープンソースソフトウェアです。TomcatはJava HTTP Webサーバー環境として広く利用されており、1998年にリリースされました。

Ghostcatは、セキュリティ研究者であるChaitin Techが1月3日に発見した、Tomcatの深刻度の高い脆弱性です。2月20日、中国国家脆弱性データベース(CNVD)は、この問題についてCNVD-2020-10487の番号でセキュリティアドバイザリを公開しました。

この脆弱性はApache JServ Protocol(AJP)で発見されました。このバイナリプロトコルにより、攻撃者はTomcatのWebアプリケーションディレクトリ内の任意のファイルを読み取ったり、インクルードしたりできます。

AJPコネクタ

AJPコネクタは、Tomcatと外部との通信を担います。Tomcat 6~9では、AJPコネクタはデフォルトで有効になっており、ポート8009を使用します。CVE-2020-1938はTomcatのAJPコネクタにおけるファイル読み取り/インクルードの脆弱性であるため、パッチが適用されていないすべてのバージョンが影響を受けます。

この脆弱性を悪用すると、攻撃者はWebアプリケーションのファイルの内容を読み取れます。Webアプリケーションでファイルのアップロードが許可されている場合、攻撃者は悪意のあるJava Server Pages(JSP)を含む任意のファイルをサーバーにアップロードし、サーバー上でリモートコードを実行させることもできます。

オレンジと緑の猫目のシンボルの下に、太字の白とオレンジの文字が配置されたGhostCatのロゴ

解決策

Apache Tomcatは、Tomcat 7、8、9向けにパッチ適用済みバージョンをすでにリリースしています。

Chaitinの研究者は、パッチを適用する場合、/conf/server.xmlファイル内のコネクタ設定に適切なシークレットも追加するよう推奨しています。

<Connector port="8009" protocol="AJP/1.3" 
redirectPort="8443" 
address="YOUR_TOMCAT_IP_ADDRESS" 
secret="YOUR_TOMCAT_AJP_SECRET" />

パッチを適用できない場合、この問題を緩和する方法がほかにもあるとChaitinの研究者は述べています。

AJPコネクタを使用していない場合は、/conf/server.xmlファイル内のAJPコネクタの宣言をコメントアウトするか、削除しても問題ありません。

<!--<Connector port="8009" protocol="AJP/1.3" 
redirectPort="8443" />-->

AJPコネクタを使用していて、パッチ適用済みバージョンに更新できない場合は、推測されにくい安全なシークレットを指定したrequiredSecretフィールドを追加してください。

<Connector port="8009" protocol="AJP/1.3" 
redirectPort="8443" 
address="YOUR_TOMCAT_IP_ADDRESS" requiredSecret="YOUR_TOMCAT_AJP_SECRET" />

Spring Boot

最新のJVMエコシステムレポートによると、Spring Bootはエコシステムで最も広く利用されているサーバーサイドフレームワークです。Spring Bootは組み込みWebサーバーを使用し、デフォルトでは組み込みTomcatが使われます。spring-boot-starter-webによって、脆弱なバージョンの組み込みApache Tomcatパッケージがシステムに導入されている可能性があります。

2020年3月2日更新

Spring Bootでは、デフォルトでAJPコネクタが作成されないことを知っておくとよいでしょう。つまり、デフォルト設定では攻撃者はこの脆弱性を悪用できません。ただし、Spring Bootの設定は変更できます。ご利用の設定によっては、脆弱性の影響を受けるか確認し、適切な対策を講じてください。

CTFを始めよう

オンデマンドのバーチャル入門ワークショップを視聴して、CTFの課題の解き方を学びましょう。

続きを読む

illustration hero ai
Blog

PHPが重大な未認証RCEの脆弱性2件を修正(CVE-2026-109618、CVE-2026-109619):今すぐアップデート

PHPのリクエスト処理に重大な脆弱性が2件あり、未認証のリモートコード実行につながるおそれがあります。修正版にアップグレードするか、旧バージョンにはベンダー提供のバックポートを適用してください。

blog feature ai lilac
Blog

エージェント型修正で脆弱性バックログをプルリクエストに変える

Evo Remediation Agentがオープンプレビューで利用可能になり、Evo Agentic AppSecに依存関係の自動解決機能が加わりました。AppSecチームは継続的な修正キャンペーンを実施できるようになりました

AI Background min crop
Blog

AIが、あなたが受け入れてきたあらゆるリスクを一気に顕在化させる:AI Security Panel: Unfilteredから得た7つの洞察

AIによって攻撃はより安価かつ高速になり、組織がすでに抱えているリスクが露呈しています。4人のセキュリティリーダーが、機械の速度に対応する防御と迅速な修復が今不可欠である理由を語ります。