Azure Data Factory の脆弱性:Apache Airflow 統合における問題を掘り下げる

Azure Data Factory Bugs Expose Cloud Infrastructure

2024/12/18 DarkReading — Microsoft Azure ベースのデータ統合サービスにおいて、オープンソースのワークフロー・オーケストレーション・プラットフォームを活用する際の方法に、3つの欠陥が発見された。この欠陥を悪用する攻撃者は、企業の Azure クラウド・インフラ管理権限を獲得し、データ流出/マルウェア展開/不正なデータ・アクセスなどを引き起こす可能性を手にする。

Palo Alto Networks の Unit 42 の研究者たちが発見したのは、Azure Data Factory の Apache Airflow 統合における脆弱性である。そのうち2件ミスコンフィグであり、3件目は認証の弱さに関するものである。Data Factory を使用すると、異なるソース間で情報を移動するときの、データ・パイプラインの管理が可能になる。その一方で、Apache Airflow は複雑なワークフローにおけるスケジュールとオーケストレーションを容易にする。

Microsoft において、これらの脆弱性は Low に分類されたが、Unit 42 の研究者たちが発見したのは、これらの脆弱性を悪用する攻撃者が、Airflow Azure Kubernetes Service (AKS) クラスター全体に対して、シャドウ管理者として永続的にアクセスする可能性である。12月17日に公開されたブログ投稿で、この問題が明らかにされた。

Data Factory で発見された欠陥を列挙すると、Airflow クラスターの Kubernetes ロールベース アクセス制御 (RBAC) のミスコンフィグ、および、Azure 内で重要なログとメトリックの管理を担う、Geneva サービスのシークレット処理のミスコンフィグ、Geneva における認証の弱さとなる。

Azure クラウドへの不正アクセスは軽減されている

Airflow インスタンスのデフォルトである、変更不可能なコンフィグの使用と、クラスター管理者ロールの Airflow ランナーへのアタッチメントが組み合わさることで、セキュリティ問題が引き起こされた。それにより、Airflow クラスターと関連インフラが制御される可能性があると、研究者は説明している。

Unit 42 の AI and Security Research Manager である Ofir Balassiano と、Senior Security Researcher である David Orlovsky は、「クラスターに侵入した攻撃者であれば、Geneva を操作することも可能となる。つまり、ログ・データの改竄や、Azure の機密リソースへのアクセスなどを、攻撃者が手にする可能性が生じる」と、ブログ投稿で述べている。

全体として、この欠陥が浮き彫りにするのは、クラスターへの不正アクセスを防ぐことの重要性であり、また、サービス権限の管理および、クラウド環境内の重要なサードパーティ・サービスの動作に対する監視の重要性である。

Unit 42 は、この Azure の欠陥を通知し、Microsoft セキュリティ・レスポンス・センターが解決した。ただし、研究者たちは、脆弱性を軽減する修正の内容については明らかにぜず、Microsoft もコメント要請に応じていない。

サイバー攻撃者が最初の管理アクセスを取得する方法

最初のエクスプロイト・シナリオは、Apache Airflow で用いられる DAG (Directed Acyclic Graph) ファイルへの不正な書込み権限を、攻撃者が取得するところから始まる。 DAG ファイルは、ワークフローの構造を Python コードとして定義し、それにより、タスクを実行する順序/タスク間の依存関係/スケジュール・ルールなどが指定される。

DAG ファイルにアクセスして改竄する攻撃者には、2つの方法がある。1つ目は、書込み権限を持つプリンシパル・アカウントを介して、DAG ファイルを取り込むストレージ・アカウントへの書込み権限を取得する方法である。2つ目は、SAS (Shared Access Signature) トークンを介して、DAG ファイルへの一時的かつ限定的なアクセス権を取得する方法である。

このシナリオにおいて、DAG ファイルが改竄されると、被害者が DAG ファイルをインポートするまで、そのファイルは休止状態になると、研究者は説明している。

2つ目の方法では、漏洩した資格情報または、誤ってコンフィグされたリポジトリを使用して、Git リポジトリにアクセスすることになる。それによりトリガーされるのは、攻撃者による悪意の DAG ファイルの作成および、既存の DAG ファイルの変更であり、悪意の DAG ファイルを取り込んだディレクトリが、自動的にインポートされることになる。

Unit 42 の研究者たちが実証した攻撃フローでは、Git リポジトリの漏洩した資格情報のシナリオを用いて、DAG ファイルへのアクセスが行われた。彼らのブログでは、「このケースでは、侵害された DAG ファイルが操作されると、それを Airflow が実行し、攻撃者はリバース・シェルを取得する」と説明されている。

基本的なエクスプロイトのワークフローでは、最初に攻撃者が DAG ファイルを作成し、リモート・サーバへのリバース・シェルを開いて、インポート時に自動的に実行することになる。続いて、悪意の DAG ファイルが、Airflow クラスターに接続されたプライベート GitHub リポジトリへとアップロードされる。

研究者たちは、「Airflow は、接続された Git リポジトリから、DAG ファイルを自動的にインポートして実行し、Airflow ワーカーでリバース・シェルを開く。この時点で、Airflow ワーカーにアタッチされた Kubernetes サービス・アカウントにより、クラスター管理者権限が取得される」と述べている。

その後に、攻撃はエスカレートし、クラスターを乗っ取った後に、シャドウ管理者アクセスを用いて、シャドウ・ワークロードが作成される。それにより、クリプト・マイナーなどのマルウェア実行や、エンタープライズ・クラウドからのデータ窃取、Geneva 介した他の Azure エンド・ポイントへの到達といった、さらなる悪意のアクティビティへとつながると、研究者たちは指摘している。

クラウド・セキュリティはクラスターを超えて拡張される必要がある

多くのケースにおいて、クラウド・ベースの攻撃は、ローカルのミスコンフィグから始まる。そして、今回のエクスプロイト・フローが浮き彫りにするのは、単一のノードまたはクラスター内で悪用された欠陥により、クラウド環境全体がリスクにさらされる可能性である。

このシナリオが示すのは、クラウド・クラスター境界を保護するだけではなく、この境界が突破されたときに引き起こされる問題を考慮した上で、より包括的なクラウド・セキュリティ・アプローチに移行することの重要性であると、Unit 42 は指摘している。

研究者たちは、「この防御戦略にとって必要なことは、環境自体内の権限とコンフィグを保護し、ポリシーと監査エンジンを用いて、クラスター内とクラウド内でインシデントを検出/防止することだ」と指摘している。

また、ユーザー企業においては、データとサービスの関連性を把握し、クラウド内の各種サービスとインタラクトする機密データ資産を保護する必要がある。それにより、クラウドを保護する際の、サービスの依存関係が考慮されるようになると、研究者たちは締め括っている。