Japan
サイト内の現在位置
Microsoft Power Automateのセキュリティ
NECセキュリティブログ2024年9月6日
NECサイバーセキュリティ戦略統括部 セキュリティ技術センターの森本です。
本ブログでは、Microsoft Power Automateを利用する際のセキュリティ観点について紹介します。
Power Automate[1]はMicrosoft社が提供するビジネスフローの自動化サービスです。Power Automateでは、Microsoft 365アプリケーションを中心とした操作をGUIで記述でき、直感的な操作で業務の自動化ができます。Power Automateの処理は実行の起点となるイベントを設定する「トリガ」と各アプリケーションへの操作を設定する「アクション」で構成されます。例として、Outlookメールを受信した際に受信情報をTeamsに通知するといった単純な操作であれば図1のように2ステップの処理として作成することが可能です。
Power Automateは手軽に業務を効率化できる一方で、セキュリティ観点が見落とされやすい特性があるといえます。本ブログでは、Power Automateを使用するうえでの主な注意点を①組織内部に起因するリスクと②組織外部に起因するリスクに分けて紹介します。
なお、Power Automateは実行環境によって「クラウドフロー」や「デスクトップフロー」に分類されますが、ここではフロー(一連の自動化処理を記述した集合)の定義や実行がクラウド上で実行される「クラウドフロー」を対象とします。
目次
内部要因のリスク
正規の利用者による操作の中で注意すべき観点として、事前に想定していなかった挙動が人手を介さずに実行されてしまうことが挙げられます。
顕著な例として、メールを受信するイベントトリガとメールを送信するアクションを組み合わせて、メールの送信元に自動返信するフローを定義した場合を仮定します。想定外の宛先からメールを受信した際にもメールを返信してしまい、思わぬ情報漏えいにつながることが想定できます。また、宛先に問題がなくとも通知等の出力に意図しない情報が含まれてしまうなど、メールの送受信に限っても考慮すべき点は複数存在します。注意深い利用者であれば、意図しない宛先へは返信を行わないといった制御を設けることで、このようなリスクを回避することが可能です。一方で、Power Automateでは自動化処理の記述がGUI操作に完結しているという手軽さから確認が疎かになり、仕様把握や動作検証が不十分なまま、フローが実行されてしまいやすい傾向があるといえます。社内でもいったんリリースしてから後からバグが見つかり複数回にわたりフローの修正を繰り返すという姿をよく目にします。安易な自動化は、利便性を向上させる一方で、本来人手によって行われていたメール送信の宛先確認などのチェック処理が漏れてしまう可能性を考慮する必要があります。
続いて、利用者が注意すべき二つ目の観点として、フローの共有が挙げられます。こちらは、フロー作成者が他者に対してフローの参照権限や編集権限を付与する機能になります。この機能の用途としては、フローを複数人で管理するような目的が考えられますが、想定よりも多くの権限を付与してしまう可能性があります。Power Automateでは、フローで操作するアプリケーションへの認証認可等の処理を抽象化した「コネクタ」と呼ばれる概念(図2)が用意されています。フローを共有した場合、フロー作成者の「コネクタ」、つまりフロー作成者と同等の権限が共有先に付与されることになります。こちらもoutlookの例となりますが、他者のoutlookコネクタを使用してフローを編集することで、コネクタ所有者の受信したメールを他者が出力したり、コネクタ所有者のアカウントとしてメール送信したりすることが可能になります。信頼されたメンバに対して事前に運用ルールを取り決めたうえで実施する場合は大きなリスクになり得ませんが、フロー共有には慎重になるべきです。
この他にも、認証情報をフローにハードコードしてしまうことや、暗号化処理の不足、ログへの不適切な情報の出力など、通常のアプリケーションにおいても考慮するべきセキュリティリスクをPower Automateのフローは内包しています。Power Automateのフロー作成は、概ねGUI操作に完結していることから、一種のローコードツールと言えますが、プログラミングに共通する注意点も併せ持っていることは、改めて利用者側で意識することが必要です。
また、Power Automateのクラウドフローでは、アプリケーションから自動化フローを含め、動作がクラウド上に完結しやすい点に注意が必要です。動作がクラウドに完結している場合、組織の内部ネットワークで実施されている監視機能をすり抜けたり、利用者自身がクラウド環境上での悪用に気づきにくくなったりすることが考えられます。ローコードやノーコードの環境では、実行環境が過度に抽象化される傾向があるため、クラウド環境で実行されていることを十分認識せずに運用してしまうと対策が疎かになる点は注意しておくべきです。
外部要因のリスク
Power Automateのセキュリティリスクは、正規の利用者に起因するものに加えて、悪意のある第三者がその機能を利用する可能性についても意識する必要があります。誤解を招かないように補足すると、Power Automate自体はOffice 365 の認証機能に加え、基盤側においても通信暗号化等の対策[2]が取られているため、Power Automate自体にシステムへの侵入を招くような構造上の欠陥があるわけではありません。典型的な脅威パターンとしては、第三者が事前に何らかの方法でOffice 365 アカウント情報を窃取し、Power Automateの機能を経由してOfficeアプリケーションや外部アプリケーションへとアクセスを拡大させることが挙げられます(図3)。
以降、攻撃者がPower Automateを使用する際の動機について整理していきます。Power Automateの機能自体は、あくまで利用者が手動で操作できるアプリケーション機能を自動化しているにすぎず、Power Automateによって新しい権限は得られません。つまり、わざわざPower Automateを使わずとも、窃取したOffice 365 アカウントを利用して直接Office 365 アプリケーション等にアクセスすれば、情報の窃取を始めとした目的を十分に果たせます。そのうえで、Power Automateを利用する価値の一つは、多彩な自動化機能や自由度のあるプログラミング機能といえます。上述のとおり、各Officeアプリケーションに対して個別アクセスを実施すれば、情報の探索からアクセス等の目的を達成できることはもちろんですが、メールやTeams投稿の情報を条件式で絞り込んだうえで情報を組み合わせて制御をするような複雑な操作を自動化できること、とりわけOffice 365 アプリケーションに特化した自動化機能は大きな魅力と言えます。
もう一つの観点は、システム内に組み込まれている正規の管理ツール、コマンド、機能等を用いて、認証情報の窃取、システム情報の収集等の活動を行うことにより検知が難しいとされるLiving Off The Landと呼ばれる手法への適用余地がある点です。Power Automateの自動化フローは、専用のマルウェアやエクスプロイトのコードではなく、あくまで、正規のツールの正規の機能を利用した挙動に見えるため、比較的検知が難しくなる可能性があります。このような特徴は、PowerShellやWindows Management Instrumentation (WMI)を想起させます。
Power Automateの悪用をさらに助長させうるものとして、Power Automate 管理コネクタとよばれる機能が存在します。当該機能はアプリケーションの操作自体を制御するものではなく、主にPower Automate自体のロジック操作、具体的にはフローの作成、編集、更新などが行える機能になります。この機能により、一つのフローから新しいフローを作成したり、フローを削除したりすることが可能になります。攻撃者は自身の操作を隠す傾向があるため、処理の複雑化や実行処理の削除によって、痕跡を残さない目的でこれらの機能を使用する可能性があります。実行ファイル形式のマルウェアでは、メモリ改ざんやスレッド生成等によって高度に処理を隠蔽する仕組みが施されていますが、このような考え方に少なからず通じる点があるといえます。実際にこのような操作を検証する目的でC2サーバ(Command and Control Server)を実現する取組み[3]も紹介されています。
対策観点
Power Automateの自動化機能は、ここまでご紹介したとおり、正規の利用者に加えて、潜在的な悪意のある第三者の双方にメリットがあるといえます。Power Automateにおけるセキュリティ対策のアプローチは、組織レベルと利用者個人レベルのものに分けられますが、まずは前者で対策方針を確立しておくことが重要です。具体的には、2要素認証導入によるOffice 365アカウント自体の保護やセキュリティの懸念がある機能の制限が挙げられます。特に、Power Automateの機能は多岐に渡るため、ルールや教育の不足など、組織内利用者のセキュリティ意識が十分に期待できない場合は、一部機能の使用を制限したスモールスタートも選択肢といえます。Power Automateにおいて、誤送信につながりやすいメール送信のアクション、Power Automate 管理コネクタ、サードパーティサービスのコネクタ等を無効化することで、一定の利便性が失われる可能性もありますが、安全に運用できるポリシーやルールが整備でき次第、段階的に緩和していくことで利便性とセキュリティを両立していくことが期待できます。また、データ損失防止(DLP)[4]やログ管理[5]に関する機能なども提供されているため、これらを活用していることも有効と考えられます。利用者側としては、ノーコードによる自動化の手軽さから見失いがちなデータの保管場所や動作パターンに改めて注意を払いつつ使用していくことが求められます。
まとめ
本ブログでは、Power Automateは手軽な自動化機能で業務を効率化できる一方、利用者が払うべき注意が不足しやすいことや潜在的な悪用の余地があることを紹介しました。ノーコード技術にも種類があるため、一概にノーコード技術全体に適用できる考え方ではありませんが、開発の手軽さや実行環境の抽象化に伴うセキュリティ意識の欠如には注意が必要といえます。本記事がPower Automateを使った安全な業務効率化の一助になれば幸いです。
参考文献
- [1]Power Automate,Microsoft
https://www.microsoft.com/ja-jp/power-platform/products/power-automate - [2]
- [3]C2サーバ, NTTセキュリティ
https://jp.security.ntt/tech_blog/pac2-pypowerautomate - [4]Power Automate 監査ログの表示,Microsoft
https://learn.microsoft.com/ja-jp/power-platform/admin/logging-power-automate - [5]データ損失防止 (DLP) ポリシーの作成,Microsoft
https://learn.microsoft.com/ja-jp/power-automate/prevent-data-loss
執筆者プロフィール
森本 康太(もりもと こうた)
セキュリティ技術センター 実装技術アーキテクチャグループ
NECグループのセキュア開発・運用を推進。
執筆者の他の記事を読む
アクセスランキング