セキュリティ通知が届いた。チームが AI agent をつなぐために使っている workflow builder が、想定外の身元から見られた、または起動された可能性がある、という内容だ。

workflow は、まず「一連の決まった受け渡し手順」と考えるとよい。フォームを受け取り、モデルに要約させ、CRM を調べ、データベースに書き戻し、Slack に通知する。agent は「数ステップのタスクを自分で連続実行する AI アシスタント」と考えればよい。この2つが builder の中に入ると、画面上はきれいなノードの集まりに見える。しかし、その下には API key、データベース token、CRM 権限、内部 webhook(別のシステムがこの flow を呼び出せる通知入口)、場合によっては production 環境の長期認証情報まで隠れていることがある。

その後、Langflow CVE-2026-55255 は CISA の Known Exploited Vulnerabilities catalog に追加された。より早い時点の Sysdig 分析は、この種のリスクの動き方を説明している。攻撃者が flow ID を得ると、flow を列挙し、endpoint を呼び出し、プロセスから API key を吐き出させようとする可能性がある。これは、この記事を特定製品の脆弱性回顧として読むべきだという意味ではない。より長く使える教訓は別にある。AI workflow builder が露出したとき、本当に危ないのは管理画面そのものとは限らない。危ないのは、そのプロセスに預けられ、呼び出され、受け渡されていた認証情報である。

最初の一手として「全部交換しよう」と叫ぶだけでは、2つの悪い結果が起きやすい。1つは、触られていない鍵を大量に交換したのに、実際に不審な flow で使われた token を見落とすこと。もう1つは、rotation を急ぎすぎてログを保全する前に証拠を失い、後からどのデータソースが読まれたのか分からなくなることだ。

ただし、これは credential rotation を遅らせて何もしない、という意味ではない。最初に行うべきことは封じ込めである。公開共有リンク、不審な webhook(別システムから呼び出せる通知入口)、外部 API route(外部システムから直接届く経路)を一時停止する。builder や admin 画面への到達を VPN、allowlist(許可した接続元だけを通す名簿)、社内ネットワークに絞る。高リスク connector(CRM、データベース、クラウドサービスへつなぐ接続)の実行は止めるが、flow 本体やログは削除しない。そのうえで証拠を保全し、どの credential をどの順番で rotation するかを決める。

このミニレッスンで扱う詰まりどころはこうだ。AI workflow builder や agent builder が露出したとき、小さなチームはどのようにして出血を止め、プロセス内に隠れた認証情報を見つけ、その後で rotation、ログ保全、production token の境界再設計を決めればよいのか。

AI workflow の地図をチームが点検し、空白の鍵カード、ログブック、安全な箱がそばにある温かい手描き風の机上イラスト。文字なし。

このレッスンでやること

  1. まず封じ込める。公開リンク、webhook、外部 API route、admin 到達経路、高リスク flow 実行を止める。
  2. 次に判断する。これは「画面がスキャンされた」だけなのか、「flow が実行された可能性がある」のか。
  3. 文字ベースの決定木で、flow、token、データソース、ログを4つの調査層に分ける。
  4. 記憶に頼らず、40分で最初の棚卸しを行う。
  5. 結果を AI に整理してもらう。ただし秘密そのものは prompt に貼らない。

最初に問いを正す。探すべきものは製品名ではなく、プロセス内の鍵である

workflow builder の問題を見たとき、多くのチームはまずこう尋ねる。「うちは Langflow を使っているか。バージョンは修正済みか」

もちろん、この問いは必要だ。ただし、これは第一層を解くだけである。より重要なのは、その後に続く4つの問いだ。

  • どの flow が外部、社内ネットワーク、テストアカウント、または想定外の利用者に開かれていたか。
  • どの flow に認証情報、環境変数、接続文字列、差し替え可能な secret が含まれていたか。
  • どの flow が顧客データ、内部文書、CRM、ticket、データベース、ファイルシステムを読めたか。
  • どの flow が実行、再実行、export、複製されたか。または触るべきではない人に見られたか。

以前に CRM 連携 token の漏えいを扱ったことがあるなら、ここでの考え方は近い。「どの鍵が漏れたか」だけを問うのではなく、先にその鍵でどの扉を開けられるのかを描く。近い状況として、こちらも参考になる:CRM 連携 token の漏えい後は、まずデータ境界を描く

AI builder には、さらに面倒な点がある。認証情報が1つの設定画面だけに置かれているとは限らない。ノード設定、環境変数、テスト input、prompt 例、connector 設定、export された JSON、古い版の flow、複製 flow、あるいは「一時的に admin token で試す」ためのテストノードに隠れていることがある。

だから最初の一歩は、どの token が最も危険かを当てることではない。外部から動かせる経路を塞ぎ、証拠を残したまま「プロセスが過去にどう動いたのか」を復元することだ。

広告

文字ベースの決定木:封じ込めから認証情報の rotation へ進む

次の決定木は Langflow だけのためのものではない。AI workflow builder、agent builder、ローコード自動化基盤、またはモデル、API、データソースを flow としてつなげるあらゆるツールに、同じ順序で使える。

起点:builder、flow API、共有リンク、実行 endpoint、管理画面が露出した可能性がある

0. まだ外部から到達できる経路はあるか?
   ├─ ある:公開共有リンク、不審な webhook、外部 API route を一時停止する。builder / admin は VPN、allowlist、社内ネットワークに絞る。高リスク flow 実行を止めるが、flow とログは削除しない
   └─ ない、または封じ込め済み:第1問へ進む

1. 想定外の身分から見える、または起動できる flow はあったか?
   ├─ 証拠はないが、画面が外部に開いていた:まず access log を保全し、次に flow inventory を作る
   └─ 証拠がある、または強く疑う:第2問へ進む

2. 不審期間中に、どの flow が読み取り、列挙、export、複製、実行されたか?
   ├─ metadata だけが見られた:flow owner を付け、名前と説明がシステム情報を漏らしていないか確認する
   └─ flow が実行された可能性がある:第3問へ進む

3. その flow にはどの種類の認証情報が含まれているか?
   ├─ テスト token で、sandbox だけに使える:まず無効化し、正式データにつながっていないか確認する
   ├─ production token だが、単一の低リスクサービスに限られる:優先して rotation し、呼び出し記録を残す
   ├─ production token で、顧客、財務、ID、内部文書を読み書きできる:直ちに隔離し、インシデント等級を上げる
   └─ token の権限が不明:owner の記憶を待たず、production の高リスクとして扱う

4. flow はデータを外部へ送れるか、または内部システムへ書き戻せるか?
   ├─ 読み取りだけで、出力が基盤内に残る:出力記録と実行パラメータを保全する
   ├─ webhook、email、Slack、外部 API を呼べる:すべての outbound call を追う
   └─ データベース、CRM、ticket、ファイルに書ける:データ改ざんインシデントとして rollback の必要性を確認する

5. 前4問を終えてから、credential rotation の順番を決める
   ├─ 最初に交換:不審な flow 内に現れ、production で使え、高感度データを読み書きできる token
   ├─ 次に交換:権限は低いが、不審な flow で起動された token
   └─ 最後に整理:露出していないが、命名が乱れている、権限が大きすぎる、owner がいない古い token

この木の要点は、「脆弱性があるか」という問いを「どのプロセスがどの鍵を持っていたか」に変えることだ。前者だけだと、チームは CVE スコアと修正版だけを見続ける。後者にすると、どこを一時停止し、無効化し、rotation し、権限を縮め、証拠を保全すべきかが見えてくる。

40分の初回棚卸し:グループチャットの記憶に頼らない

チームが2、3人のエンジニア、1人のプロダクト責任者、1人のシステム連携に詳しい人だけなら、初回棚卸しを大規模な war room にする必要はない。40分で実用に足る版を作れる。

第1ステップ:出血を止め、証拠を変えてしまう操作を避ける

まず5つ行う。

  1. 公開共有リンク、不審な webhook、外部 API route を一時停止する。
  2. builder と admin 画面への到達を VPN、allowlist、社内ネットワークに絞る。
  3. 高リスク flow の新規作成、変更、実行を一時停止する。ただし flow、実行履歴、設定、ログは削除しない。
  4. 現在の flow 一覧、connector 一覧、環境変数名、権限画面を export またはスクリーンショットで保存する。
  5. builder access log、flow execution log、API gateway log、outbound webhook log を保全する。

ここで注意したい。secret を見つけたからといって、すべての画面を共有ドキュメントに貼ってはいけない。共有ドキュメントに書くのは「token の種類、権限範囲、owner、最後に使われた時刻」までであり、token の原文は書かない。

API は「システムとシステムがデータを交換するための接続口」とまず理解すればよい。builder の背後に API gateway や reverse proxy があるなら、そちらの log も一緒に残す。builder の画面内にある記録だけでは不十分なことが多いからだ。

第2ステップ:使っている flow だけでなく、すべての flow を列挙する

flow を4つの群に分ける。

  • production で稼働中:顧客、社内業務、正式データに影響する。
  • staging / sandbox:理屈ではテストデータだけに触れるが、正式 token を持っていることがある。
  • archived / disabled:停止済みだが設定は残っており、複製や export が可能な場合がある。
  • personal / experiment:個人テスト、demo、臨時の PoC。名前のない token が最も隠れやすい。

多くの事故で見落とされるのは後ろの2群だ。監視図にも載らず、正式なアーキテクチャ文書にも書かれていない。それでも、当時のテストを急ぐために権限のある key を直接貼っていた可能性がある。

第3ステップ:各 flow に4つの欄を付ける

ここでは表は1つで十分だ。棚卸しを表だらけにしない。

棚卸し欄何を記入するか具体的な判定ライン記入できない場合
flow の露出状態公開、共有、想定外アカウントからの閲覧、API 経由の起動があったかaccess log に未知の IP、未知のアカウント、異常な user-agent がある。または execution log に予定外時刻の実行がある「不明だが追跡必要」と記録し、安全とは書かない
認証情報の種類API key、OAuth token、データベース接続、webhook secret、クラウド roleproduction を読み書きできる、workspace をまたげる、有効期限がない、admin 権限を含む。このいずれかなら高リスクowner が見つからない場合、口頭確認を待たず、まず副本を停止または権限縮小する
データソースと出力どこを読み、どこへ書き、外部送信できるか顧客データ、ID データ、財務データ、内部文書を読める。または CRM / DB / ticket に書けるなら等級を上げるconnector 設定と直近30回の実行出力要約を確認し、prompt の推測だけで判断しない
ログと証拠誰が実行し、どの引数を渡し、どの外部サービスに到達したかをどこで証明できるか少なくとも時刻、実行者または token、flow ID、対象 endpoint、結果状態が必要ログが7日未満、または outbound log がない場合、直ちに gateway / SIEM / クラウドサービスの記録を補う

この表には2つの使い方がある。第一に、エンジニアが記憶だけで「それはテスト flow だから」と言うのを防ぐ。第二に、非エンジニアの owner が、なぜある token を先に止め、ある flow を先に隔離し、ある credential を先に交換する必要があるのかを理解できる。

すでに agent の認可設計を進めているチームなら、ここを別の早期チェックリストにつなげてもよい:AI agent の認可を考える4つの問い:身元、権限、理由、結果。あちらは事前設計寄りで、この記事は事後棚卸し寄りだ。両方を合わせると、agent が「ログインしているように見える」だけで過大な権限を得る状況を減らせる。

第4ステップ:見られただけの flow より、実行可能だった flow を先に扱う

すべての露出が同じ重大度ではない。次の順で並べるとよい。

  1. 不審期間中に実行され、production token を含む flow。
  2. 不審期間中に読み取りまたは export され、設定内に secret 名、connector、内部 endpoint が見える flow。
  3. 実行証拠はないが、公開共有されていた、権限が過大、または owner が不明な flow。
  4. 停止済みだが、複製、export、admin アカウントによる再有効化が可能な flow。

queue は待機中のタスク一覧である。ここでの queue には「token を交換する」とだけ書かない。各項目を、どの flow、どの credential、どの owner、どのシステム、どの検証方法に分解する。

たとえば、こうは書かない。

  • Salesforce token を交換する。

こう書く。

  • Flow lead-summary-prod が使う Salesforce OAuth app(flow が許可された Salesforce の身元としてアクセスする接続設定):refresh token を一時停止し、最小権限 app を再発行する。直近100回の flow execution に未知の実行者がいないことを確認する。owner:RevOps。検証:Salesforce Login History + builder execution log。

この書き方なら追跡しやすく、後から引き継ぎやすい。

認証情報を rotation する前に、3種類のログを先に保全する

多くのチームは急いで token を rotate したくなる。その直感は理解できる。ただし、少なくとも3種類の記録は先に保全したい。保全している間も、外部からの到達経路を開けたまま待つ必要はない。公開リンク、webhook、外部 API route、高リスク flow 実行は止め、admin 到達経路を狭めた状態でログを残す。

1つ目は builder 自身の access log と execution log だ。誰がログインしたのか。誰が flow を見たのか。誰が run を押したのか。どの flow ID が起動されたのか。入力パラメータがおおよそどのような形だったのか。これを知る必要がある。

2つ目は対象システム側の呼び出し記録だ。flow が CRM、データベース、クラウドストレージ、ticket システムを呼ぶなら、それらのシステム側に異常なリクエストが届いていないかを見る。builder log だけを見ると、「flow は外へ呼び出せたが、builder 側には完全な出力が残っていない」状況を見落とす。

3つ目は outbound channel だ。多くの AI workflow は結果を Slack、email、webhook、外部 API、文書ツールへ送る。これらの出口はモデル本体より危険な場合がある。データを元の権限境界の外へ運んでしまうからだ。

十分なログがない場合でも、完璧になるまで待つ必要はない。やることは、外へ開いた経路を塞ぎ、高リスク token を一時停止または権限縮小しつつ、incident note に「ログ不足のため、データ読み取りを排除できない」と明記することだ。この一文は重要である。後続の通知、法務判断、顧客コミュニケーションに影響するからだ。

production token の境界は作り直す。同じ大きさの鍵に交換するだけでは足りない

credential rotation でよくある失敗は、古い token を、同じだけ大きな権限を持つ新しい token に置き換えることだ。短期的には処理が終わったように見える。しかし長期リスクは下がっていない。

rotation のとき、次の4つも一緒に行う。

  1. production token を個人アカウントから service account へ移す。
  2. 読み取り権限と書き込み権限を分ける。要約 flow がデータ削除権限まで持つべきではない。
  3. 有効期限と owner を設定する。owner のいない token は production に入れない。
  4. builder が使える secret 名を用途ベースにする。たとえば crm_read_contacts_prod とし、admin_keytest_key とは呼ばない。

owner は最後の判断と収束を担当する人である。ここでの owner は「最初に flow を作った人」ではない。この credential を残すべきか、権限を縮めるべきか、rotation すべきか、停止すべきかを決められる人だ。

rotation だけを終えて境界を作り直さなければ、次に builder、agent、connector で問題が起きたとき、チームは同じ問いに戻る。結局、どの flow がどの大きすぎる鍵を持っていたのか。

最後に入口と古い鍵が本当に無効になったか確認する

rotation や権限縮小が終わった後、「対応済み」とチャットで言うだけで止めてはいけない。owner は同じ inventory を使って、次の3点を確認する。

  1. 入口が閉じている: 公開共有リンク、不審な webhook、外部 API route、未知のアカウント、外部から届く admin 入口が停止、または管理された範囲に制限されている。
  2. 古い認証情報が失効している: 高リスクの token、refresh token、service account key で production system を呼び出せなくなっている。
  3. 新しい境界を監査できる: 新しい credential には owner、期限、最小権限、ログ位置、次回の月次確認日がある。

これは形式的な締めではない。入口が再び開いたり、古い token がまだ使えたりする事故の戻りを防ぐための確認である。

最初の最小アクション

今すぐ1つだけやるなら、「AI flow credential inventory」を作る前に、高リスク flow の実行、公開共有リンク、不審な webhook、外部 API route を一時停止し、builder / admin 画面を VPN、allowlist、社内ネットワークに絞る。そのうえで production と直近30日以内に実行された flow を先に列挙する。

各 flow には5項目だけ記入する。

  1. flow 名と ID。
  2. owner。
  3. 接続している外部または内部システム。
  4. 使用している credential 名。secret の原文は書かない。
  5. 最終実行時刻とログの場所。

この inventory は、事故が起きてから作るものではない。平時に月1回更新しておけば、問題が起きたときにそのまま incident response の出発点になる。

AI 整理カード

次の内容を AI に渡す前に、token の原文、顧客データ、内部 endpoint の完全なパス、外に出せない log を必ず取り除く。AI は棚卸しの整理を手伝えるが、秘密を保管させる相手ではない。

あなたは、セキュリティチームとエンジニアリングチームが AI workflow builder の露出インシデントを整理するための分析アシスタントである。私が提供する flow inventory に基づき、incident triage の要約を作成せよ。

制約:
- API key、token、password、private endpoint の原文を求めないこと。
- 欄が不足している場合は「人による追加確認が必要」と記録し、安全だと仮定しないこと。
- 提案を「直ちに隔離」「24時間以内に rotation」「7日以内に権限縮小」「事後改善」に分けること。

各 flow について、次の欄で分析してください:
1. flow 名と ID
2. owner
3. 露出状態:公開、内部、不明、不審実行あり
4. credential の種類:API key、OAuth token、DB connection、webhook secret、cloud role、不明
5. credential の権限:production read、production write、sandbox only、admin、不明
6. データソースと出力:読み取りシステム、書き込みシステム、外部送信経路
7. ログの場所:builder log、API gateway log、対象システム log、outbound log
8. 最終実行時刻

出力してください:
- 高リスク flow の一覧と理由
- 推奨する credential rotation の順番
- 先に保全すべきログ
- owner が判断すべき問い
- 非エンジニアの責任者向けの150字要約

このカードの目的は、AI に侵入の有無を判定させることではない。flow、token、log、owner の間に散らばった情報を、話し合える順序に並べることだ。最後に停止、通知、rotation、インシデント等級の引き上げを行うかどうかは、人間の owner が収束させる必要がある。

生活四コマ

4コマ漫画。チームがまず露出した workflow の入口を閉じ、ログを残し、flow 内の認証情報をたどり、本当に危険だった鍵だけを処理する。

  1. チームは AI workflow の入口が開いていることに気づき、すべての鍵を急いで交換する前に立ち止まる。
  2. 入口を管理された範囲に戻し、ログと設定を消さずに残す。
  3. どの connector、データソース、token に flow が触れられたのかをたどる。
  4. 影響を受けた鍵だけを交換または無効化し、入口が閉じ、古い認証情報が使えないことを確認する。
広告

Share

このミニクラスを共有

このミニクラスが仕事の詰まりをほどく助けになったら、AI の使い方を考えている人にも共有してください。

参考資料

CISA:CISA Adds Three Known Exploited Vulnerabilities to Catalog — https://www.cisa.gov/news-events/alerts/2026/07/07/cisa-adds-three-known-exploited-vulnerabilities-catalog(2026-07-07)

Sysdig:Understanding Langflow CVE-2026-55255, and why higher CVSS vulnerabilities aren’t always the most exploited — https://www.sysdig.com/blog/understanding-langflow-cve-2026-55255-and-why-higher-cvss-vulnerabilities-arent-always-the-most-exploited(2026-06-26)

NVD:CVE-2026-55255 Detail — https://nvd.nist.gov/vuln/detail/CVE-2026-55255(2026-06-23)