Apache NiFi は、データフローを自動化するオープンソースのツールで、データの収集、変換、配信を効率化するための強力なプラットフォームとして広く利用されています。特に、企業のデータインフラストラクチャにおいて、リアルタイムなデータ処理や監視に不可欠な役割を果たしています。しかし、2023年に発覚した重大なセキュリティ脆弱性 CVE-2023-4468 は、NiFi の信頼性に深刻な影響を及ぼしました。
CVE-2023-4468 は、CVSS 8.8(高リスク)の評価を受けた遠隔コード実行(RCE)の脆弱性です。影響を受けるバージョンは Apache NiFi 0.0.2 から 1.21.0 までであり、H2 嵌入型データベースドライバーが原因として挙げられています。このドライバーは、メモリやファイルシステムのストレージをサポートし、Java のカスタム関數(UDF)を許可する特徴があります。特に、Runtime.exec
を通じてシステムコマンドを実行する機能が攻撃の鍵となりました。
攻撃者は、データベース接続プール(dbcp/HikariCP)を通じて H2 ドライバーの JAR パスを設定し、SQL プロセッサ(ExecuteSQL)を介して UDF を利用して任意のシェルコマンドを実行できます。この脆弱性は、プロセス構成の履歴記録やイベントストレージに影響を與え、特に SQL プロセッサが利用される環境では重大なリスクを伴います。
Apache Foundation は、初期対応として H2 接続機能を無効化し、カスタム認証メカニズムを導入しました。さらに、H2 を完全に置き換える形で JetBrains Exodus を採用し、データベースのトランザクションサポートや Apache ライセンスの利用を可能にしました。また、URL � verifications の迴避を防ぐため、特定の文字や表現言語の挿入を検出する修正も行われました。
認証と権限管理の重要性は、この脆弱性の評価において明確に示されました。ユーザー名/パスワードや SSO(OIDC/SAML)の導入が必須であり、未設定の認証環境ではリスクが高まります。CVSS スコアは、初期の 8.8 から権限要件を考慮して中リスク(5點以上)に修正されました。
この脆弱性は 2023 年 6 月 6 日に報告され、6 日以內に 1.22.0 バージョンがリリースされました。その後、8 月 3 日に URL 適正性迴避の修正が行われ、1.23.0 が発表されました。Metasploit モジュールも公開され、Docker 環境でのデプロイと認証が必要です。しかし、メディアの報道では RCE 自體に注目が集まり、認証や権限管理の必要性が過小評価される傾向がありました。
H2 ドライバーの UDF 功能は、RCE の主な原因であり、接続プールと SQL プロセッサの組み合わせが攻撃チェーンを形成しました。修復策として、H2 接続機能の無効化と Exodus の導入が推奨され、今後のリスク迴避に有効です。セキュリティベストプラクティスとしては、認証と権限管理のデフォルト有効化、自動生成された証明書、LDAP/AD との統合が挙げられます。
この脆弱性の影響は、認証と権限設定に大きく依存します。CVSS スコアが高いものの、実際のデプロイ環境や権限構造によってリスクが変化するため、単純なスコアに依存せず、詳細な分析が求められます。Apache NiFi の開発チームは迅速に対応し、認証と権限管理の重要性を強調しています。ユーザーは定期的なバージョン更新と、権限設定の厳格な管理を推奨します。