Hand holding a key

Apache スーパーセットは、デフォルト設定での認証バイパスおよびリモート コード実行に対して脆弱であり、攻撃者がデータにアクセスして変更し、資格情報を収集し、コマンドを実行する可能性があります。

Apache Superset は、2021 年に Apache Software Foundation でトップレベルのプロジェクトになる前に、最初は Airbnb 向けに開発されたオープンソースのデータ視覚化および探索ツールです。

Horizon3による新しいレポートによると、Apache スーパーセットはデフォルトのFlask シークレット キーを使用して認証セッション Cookie に署名していました。その結果、攻撃者はこのデフォルト キーを使用してセッション Cookie を偽造し、キーを変更していないサーバーに管理者権限でログインできるようになります。

Apache のドキュメントでは管理者に秘密鍵を変更するように指示していますが、Horizon3 によると、この危険なデフォルト構成は現在、大学、さまざまな規模の企業、政府機関などに属する約 2,000 台のインターネットに公開されたサーバーで検出可能であるとのことです。

デフォルト鍵で署名されたセッション Cookie
デフォルト キー(Horizon3)で署名されたセッション Cookie

この広く使用されているデフォルトの Flask シークレット キーは、 flask-unsignを使用して独自の Cookie を偽造する攻撃者に知られており、ターゲットで管理者アクセスを取得したり、接続されたデータベースにアクセスしたり、アプリケーション サーバーで任意の SQL ステートメントを実行したりします。

「現時点ではエクスプロイト方法を開示していませんが、関心のある攻撃者がそれを理解するのは簡単だと思います」と Horizon3 は警告します。

管理者が攻撃者に知られていないデフォルトのキーに変更した場合、管理者のインストールはこの攻撃に対して脆弱ではないことに注意することが重要です。

偽造 Cookie を使用して管理者アクセス権を取得する
偽造されたセッション Cookie を使用して管理者アクセスを取得する(Horizon3)

発見と影響

この欠陥は、2021 年 10 月 11 日に Horizon3 チームによって発見され、Apache セキュリティ チームに報告されました。

2022 年 1 月 11 日に、ソフトウェア開発者はバージョン 1.4.1 をリリースしました。これにより、デフォルトの「SECRET_KEY」が新しい文字列に変更され、起動時にデフォルトの文字列が検出された場合にログに警告が追加されました。

バージョン 1.4.1 でログに追加された警告
バージョン 1.4.1 (Horizon3)でログに追加された警告

Horizon3 は、ドキュメントとテンプレートで使用されている他の 2 つのデフォルト キーも発見し、Shodan を使用してこれら 4 つのキーを使用してインスタンスを検索しました。

当時、Horizon3 は、約 2,124 (全体の 67%) が誤って構成されていることを発見しました。

危険な構成を使用するインスタンス (左の列)
危険な構成を使用するインスタンス (左の列) (Horizon3)

Horizon3 は再度 Apache に連絡して問題を提起し、2023 年 2 月に研究者は構成を変更する必要があるという警告を組織に送信し始めました。

最終的に、2023 年 4 月 5 日に、スーパーセット チームはバージョン 2.1 をリリースしました。このバージョンでは、デフォルトの「SECRET_KEY」を使用している場合、サーバーを起動できません。

スーパーセット チームによって実装された修正
スーパーセット チーム(Horizon3)によって実装された修正

この抜本的な解決策は、新たな危険な展開を防ぎますが、Horizon3 によると、2,000 件を超えるケースで依然として存在する既存の構成ミスを修正するものではありません。

セキュリティ会社は、Apache スーパーセット管理者がインスタンスが攻撃に対して脆弱かどうかを判断するために使用できるスクリプトを GitHub で共有しています。