Spatial AI セキュリティとは、位置情報を扱うシステムが、信頼できない場所テキスト、非公開レコード、ツール、地図アクションを「権限」として扱わないようにする境界の集合です。system prompt は回答を導けます。しかし、誰がレコードを閲覧できるか、ツールがどの host を呼び出せるか、どの予約を確定できるかを決めることはできません。これらの判定はモデルの外側に置き、ID、ポリシー、そしてデータを所有するシステムがリクエストを拒否できるようにします。
以下では、まずプロンプトをアーキテクチャの他の部分から切り分け、そのうえで信頼ゾーン、取得コンテンツ内の指示、コンテキスト投入前の認可、ツール権限、アクション検証、ネットワークスコープ、メモリを扱います。Kaleidr Enterprise と Kaleidr Chat は、こうしたホスト側の制御と並んで動作します。これらの製品は、ホストの ID プロバイダー、テナントポリシー、トランザクションシステムを置き換えるものではありません。
Spatial AI セキュリティの要点
- プロンプトを権限経路から外す: 安全指示は回答の形を整えられますが、レコード、ツール、ネットワーク宛先への権限を付与することはできません。
- 取得前に認可する: 非公開行がモデルコンテキストに入る前に、テナント、オブジェクト、フィールドのチェックを行います。
- ツール権限を分離する: 読み取り、地図、下書き、書き込みの各機能は、同じ権限レベルを共有しません。
- 到達可能性と承認を分ける: プロンプト外で強制される allowlist が、ツールが呼び出せる host を決めます。
- メモリに独立したゲートを設ける: 取得したテキストが次のセッションのポリシーになることはありません。
Spatial AI セキュリティとは何ですか?
Spatial AI セキュリティは、地図に非公開コンテキスト、ルーティング、推薦、アクションを組み合わせる製品の周囲に置く制御システムです。従来の地図は公開地理情報を描画できます。Spatial 製品はさらに、サプライヤーレコードを読み、ルート沿いの受け取り場所を計算し、スケジュールを提案することもできます。これらの各ステップには境界があります。セキュリティ上の問いは、入力、取得レコード、ツール結果、古くなった権限のいずれかが、製品が付与していない境界を越えられるかどうかです。
OWASP が 2025 年 12 月 9 日に公開した Top 10 for Agentic Applications の記事では、システムが行動できるようになったときに現れるリスクとして、agent goal hijack、tool misuse、identity and privilege abuse、memory and context poisoning などが挙げられています (OWASP, 2025)。地図上では、同じ構図が地理的な問題になります。場所の説明文が推薦先を誘導しようとすることがあります。広い権限を持つルーティングツールが、呼び出し元に利用権のない場所へ触れることもあります。永続メモリが、悪意ある位置指示を後のセッションへ持ち越すこともあります。カバー図はこの経路を、左の信頼できない入力、中央の ID から実行まで、右の地図上の結果として示しています。図中のビジネス影響に関する文言は説明用であり、Kaleidr の実測結果ではありません。
守るべき不変条件は限定的で明確です。ユーザーが別テナントの非公開位置レコードを受け取ることはありません。ブラウザがサーバーシークレットを受け取ることもありません。取得文書が認可を付与することもありません。場所説明が許可済みネットワークリストを書き換えることもありません。モデルは次のステップを提案できます。しかし、その提案は権限付与ではありません。
なぜ system prompt はセキュリティ境界にならないのですか?
プロンプトだけに依存する経路では、ユーザーから安全指示へ進み、次に言語モデルを通り、そのままデータベース、ツール、アクションへ到達します。この設計は「モデルが従うこと」を制御として扱っています。2026 年 10 月 8 日に公開された OWASP の exploit roundup は、2026 年 7 月 1 日から 9 月 30 日までを対象とし、prompt-level instructions だけでは安全な境界は成立しないと述べています (OWASP, 2026)。この roundup は選択された開示情報の集約であり、Kaleidr のインシデント報告ではありません。

左側は安全プロンプトだけを境界として扱い、言語モデルをデータ、ツール、アクションへ直接つなぎます。右側は実行前に ID、認可、承認済みデータ、制約されたツール、検証を挿入します。ツールスコープ、ネットワークスコープ、メモリポリシー、Observability はその経路の横に置かれます。図中のプロンプト文は説明用です。
強制される経路では、まず入力を分類し、ID を解決し、レコードとツールを認可したうえで、初めてモデルにそのスコープ内で意図を解釈させます。横断的な制御はプロンプト外に残します。どのツールが存在するか、どの宛先へ到達できるか、メモリに何を保存できるか、trace に何を記録すべきか、という制御です。操作された回答が誤っていることはあり得ます。しかし、誤った回答自身が権限を拡大できてはいけません。
信頼境界はどこに置くべきですか?
攻撃一覧を作る前にゾーンを描きます。実用的な分割は 7 つです。信頼できない入力、ID とポリシー、業務システム、空間サービス、AI レイヤー、アクションレイヤー、証跡です。ユーザーテキスト、場所テキスト、文書、パートナー feed は信頼できない入力として入ります。ID とポリシーは、誰が呼び出しているか、どのテナントか、どのロールとオブジェクト権限があるかを決めます。在庫、予約、CRM、非公開施設は、それらを所有する業務システムに残ります。ルーティング、ジオコーディング、ジオメトリ、検索は、それぞれ独自の入出力を持つ空間サービスです。

図は、信頼できない入力から証跡まで、各ゾーンの間に信頼境界を置いています。業務システムは在庫、予約、CRM、非公開施設を保持します。空間サービスはルーティング、ジオコーディング、ジオメトリ、検索を担います。ゾーン名とサンプルのシステム名はアーキテクチャ図であり、Kaleidr の製品一覧ではありません。
AI レイヤーは意図を解釈し、承認済みツールから選択し、結果を説明できます。アクションレイヤーは別です。地図更新、下書き、書き込み、トランザクションは同じ操作ではありません。証跡は trace、ポリシーチェック、拒否、結果を記録します。認証、認可、データ分離、監査は図中のすべての境界に適用されます。ゾーンを飛ばしてモデルに「注意するように」と頼むだけでは、これらの制御を 1 つの指示に押し込めることになります。
なぜ取得した場所テキストが攻撃を運べるのですか?
Indirect prompt injection は、ユーザーが入力していないコンテンツから入ってきます。場所説明、アップロード文書、パートナー feed、ツール結果には、新しい権限、新しいツール、別の宛先を要求する指示が含まれる可能性があります。同じテキストには住所や営業時間のような有用な事実も含まれます。ホストは事実を抽出し、指示を捨てるべきです。取得テキストはデータです。取得テキストはポリシーではありません。

左列には、サンプル指示を含む 4 つの信頼できないソースがあります。ブロック経路は、権限付与、ツール追加、宛先変更の要求を拒否します。許可経路は事実を抽出して検証し、認可済みツールの範囲内に留まります。図中のサンプル文とサンプル host は説明用であり、記録された Kaleidr インシデントではありません。
公開されている場所コンテンツも、パートナー文書と同じように疑って扱います。地理的な事実が正しくても、隣に敵対的な指示が置かれている可能性があります。ツール出力も戻ってくるときに同じ扱いが必要です。「タスク完了」と書かれた結果は次のチェックのためのデータです。その結果自体が宛先を追加したり、承認を飛ばしたりすることはできません。拒否は構造的な制御で実施します。ツール allowlist、schema チェック、取得文を権限付与として読まない認可です。
なぜモデルが見る前にレコードを認可するのですか?
非公開位置レコードは、どの行もモデルコンテキストに入る前に、テナント、ロール、オブジェクト、フィールドのチェックを通す必要があります。Kaleidr の private-location ガイドは、ユーザーを認証し、テナントと許可されたオブジェクトを解決し、必要最小限のレコードとフィールドだけを取得し、言語モデルをアクセス経路から外すよう説明しています (Kaleidr, 2026)。同じガイドは、非公開データセット全体を取得してから「どの行を見せてよいか」をモデルに判断させる設計を避けるよう警告しています。認可はクエリ制約です。認可はプロンプト内の文章ではありません。

上側の経路は、最小レコードセットがモデルに届く前に、ユーザー、テナント、ロール、オブジェクト、フィールドを認可します。下側は非公開データベース全体をモデルに送り、アクセス判断をモデルに任せるため、図では unsafe とされています。ID ラベルとサンプル地図は説明用です。本番チェックではホストの実際の ID システムとフィールドポリシーを使用します。
プラットフォーム資格情報は、このユーザー経路とは別の制御です。Kaleidr の Map API authentication ガイドは、ブラウザ用の publishable credential とクライアントから外しておく server credential を分離し、API capability scope はアプリケーションのユーザー認可や行認可ではないと述べています (Kaleidr, 2026)。有効な組織資格情報があっても、顧客 A が顧客 B の店舗を読めることにはなりません。ホスト backend は引き続きエンドユーザー、テナント、オブジェクト、フィールドを解決します。server secret をプロンプト、trace、ブラウザコードに貼り付けないでください。
なぜツールは 1 つの権限を共有してはいけないのですか?
現在の仕事を完了するために必要な最小限のツールセットだけを与え、すべてのツールに同じ権限を与えないようにします。read tool は場所、在庫状況、ルートを返せます。map tool は業務状態を書き換えずに場所を表示し、ルートを描画し、場所を選択できます。draft tool は予約や配車案を準備し、commit 前で止められます。write tool は予約を確定し、配車を実行し、レコードを更新します。取り消しが難しいアクションほど、検証、認可、確認、監査を厳しくします。

read 層は場所、在庫状況、ルート情報を返します。map 層は場所を表示し、ルートを描画し、場所を選択します。draft 層は予約や配車案を作成し、write 層は予約、配車、レコード変更を確定します。ツール名はサンプルです。本番カタログでは、ホストが実際に承認した操作だけを公開すべきです。
OWASP の Excessive Agency、LLM06:2025 は、予期しない、曖昧な、または操作されたモデル出力に続いて有害なアクションが起きることを説明し、その主な要因として excessive functionality、excessive permissions、excessive autonomy を挙げています (OWASP, 2025)。狭いツールは機能を減らします。資格情報を分けると権限を減らせます。確認ステップは書き込み時の自律性を下げます。地図アクションは意味ベースに保つべきです。Kaleidr の map-aware assistant ガイドは、任意の renderer code ではなく、show places や fit places のような小さな語彙を検証と renderer adapter を通すことを推奨しています (Kaleidr, 2026)。地図更新は予約ではなく、予約下書きは確定予約ではありません。
なぜ提案は実行前にチェックを通す必要があるのですか?
モデルは arguments 付きの tool call を提案できます。提案は認可ではなく、認可は実行ではありません。Kaleidr の Observability ガイドも同じ境界を示します。ツール名、schema 結果、認可判断、ポリシーチェック、実行状態を記録し、拒否経路も trace の一部として扱います (Kaleidr, 2026)。予約完了のようなホスト側の結果は、そのトランザクションを所有するシステムに残ります。

パイプラインは信頼できないモデル提案から始まり、実行前に schema、ID、ポリシー、鮮度を確認します。高影響アクションには確認を要求できます。各ゲートには拒否経路があり、無効なツール、schema 失敗、認可不足、ポリシーブロック、古いデータ、確認不足などが含まれます。図中のツール arguments は説明用です。
commit の直前に再検証します。在庫状況、価格、割当、権限は draft と write の間で変化する可能性があります。確認画面には曖昧な要約ではなく、正確なアクションと正確な対象を表示します。実行後は、secret や不要な座標をコピーせずに trace が保存できる結果を返します。チェックに失敗した場合はアクションを停止し、以前の業務状態を維持します。
なぜ到達可能な host が認可済みとは限らないのですか?
ネットワークスコープは独立した制御です。エージェントは、ルーティングサービス、在庫サービス、予約サービス、または取得テキストに現れた任意 URL を呼び出そうとすることがあります。成功してよいのは、プロンプト外で強制される allowlist 上の宛先だけです。任意の URL を取得できるツールは、いずれタスクが承認していない host へ向けられます。到達可能とはネットワーク経路が存在することです。認可済みとは、そのツールの宛先としてポリシーが明示していることです。

図の承認済み経路はルーティング host、在庫 host、予約 host へ向かいます。任意 URL、未知の API、その他の外部 host はブロックされます。フッターにはネットワークスコープをプロンプト外で強制するよう記載されています。host 名、内部名、サンプル住所は説明用であり、Kaleidr の allowlist ではありません。
新しい endpoint を勧めるツール結果にも同じルールを適用します。その推薦は信頼できないコンテンツです。文書が新しいサーバーを要求したからといって allowlist は更新されません。宛先が必要なら、ネットワークポリシーを所有する変更プロセスを通じて運用者が追加します。モデルが実行中にそのリストを編集することはありません。
なぜメモリには独自の境界が必要なのですか?
永続コンテキストは、それを作成した turn の後も残ります。場所メモ、好み、以前のルートは次のセッションで役立つ場合があります。一方で、取得テキストに隠された文が、認可を無視するような恒久的ポリシーになろうとすることもあります。メモリ書き込みには独自のゲートが必要です。許可された writer、テナントチェック、信頼できるソース、誰がいつ保存したかの記録です。現在のセキュリティポリシーはメモリの外に置きます。承認済みメモリは次の回答に情報を与えられますが、現在の認可チェックを上書きしてはいけません。

セッション 1 では、取得テキストがメモリ書き込みを試み、ソースチェックに失敗します。ブロックされた指示は永続メモリに入りません。セッション 2 では現在のセキュリティポリシーと、テナントにスコープされた承認済みメモリを組み合わせます。図中のサンプル指示と住所は説明用です。
OWASP が 2026 年 5 月 13 日に公開した記事は、メモリを攻撃面として扱い、通常のエージェント作業が persistent prompt injection に変わり得ることを説明しています (OWASP, 2026)。実用的な制御には、writer の限定、テナント分離、provenance、レビュー、削除手段があります。すべてのツール結果が自動的に長期コンテキストへ追加されないようにします。この経路は、悪意あるレコード、悪意あるツール結果、そして元のポリシーを引き続き適用すべき後続セッションでテストします。
Spatial AI セキュリティは Kaleidr のどこに位置づけるべきですか?
ユーザー ID、テナント認可、非公開業務データ、ネットワークポリシー、トランザクション、インシデント対応はホスト側に残します。Kaleidr Enterprise は、Spatial 製品向けの inference APIs、ranking systems、analytics を備えた location-intelligence infrastructure です (Kaleidr, 2026)。Kaleidr Chat は、ホストがすでにレンダリングしている地図上の対話レイヤーです。Map / Spatial APIs、意味ベースの地図アクション、analytics context はプラットフォーム機能です。統合で publishable browser credential と server credential を使う場合も、上記の認証分離に従います。プラットフォーム scope はホストのエンドユーザー認可を置き換えません。

左列は、ID、テナント認可、非公開データ、ネットワークポリシー、トランザクション、インシデント対応など、ホストが所有する制御を示します。中央列は Kaleidr Enterprise、Chat、Map / Spatial APIs、意味ベースの地図アクション、analytics context を示します。フッターは、プラットフォーム scope がホストのエンドユーザー認可を置き換えないと明記しています。この図はアーキテクチャの概略であり、Kaleidr がホストの ID プロバイダーや予約システムを運用するという主張ではありません。
2026 年 5 月 18 日の NIST レポートは、AI エージェントのセキュリティ考慮事項に関する情報提供依頼への回答を要約しています (NIST, 2026)。このレポートはコメントの概要で、NIST Trustworthy and Responsible AI 800-5 として引用されています。制御ベースラインでも Kaleidr 認証でもありません。エージェントセキュリティがまだ公の場で仕様化されていることを示す参考として使い、実際に出荷する製品に境界を実装してください。
意味のある agency を与える前に停止経路を作ります。ホストは、実行を停止し、その実行が使っている資格情報を失効させ、許可済み egress を切断し、まだ commit していない書き込みを中止できる必要があります。trace には、誰が呼び出したか、どのテナントだったか、どのポリシーが動いたか、どのツールが提案されたか、どの宛先が許可・拒否されたか、結果は何だったかを残します。secret や不要な高精度座標はその記録に入れません。indirect injection、cross-tenant read、out-of-scope host、tool misuse、memory poisoning を本番に近いケースとしてテストします。prompt テストに合格しても、これらのケースが安全だとは証明できません。
location-intelligence stack については Kaleidr Enterprise を参照し、ブラウザ資格情報とサーバー資格情報の文書化された分離については Map API Authentication を読んでください。地図アクションが正しく見える場合でも、ホスト認可、ネットワークポリシー、トランザクションチェックはモデルの外側に置きます。
注: Kaleidr は、クリエイティブおよび開発ワークフロー全体で、画像作成、コンテンツ改善、調査に AI 支援ツールを使用しています。
FAQ
prompt injection は Spatial AI セキュリティにおける唯一のリスクですか?
いいえ。隠された指示だけでなく、ID、非公開レコードの認可、ツールスコープ、ネットワーク宛先、メモリ、secret、実行停止能力も重要です。安全なプロンプトだけでは、この一覧をカバーできません。
system prompt は場所説明に隠された指示を止められますか?
いいえ。取得した場所テキスト、文書、パートナー feed、ツール結果には指示が含まれる可能性があります。事実だけを抽出し、権限、ツール、宛先はモデルの外で強制してください。
Kaleidr はホスト認可を置き換えますか?
いいえ。プラットフォーム資格情報と Spatial 機能は、エンドユーザー認可やテナント認可ではありません。どの人物、テナント、オブジェクト、フィールドをリクエストが使えるかは、引き続きホストが決めます。
到達可能な URL は承認済みとみなすべきですか?
いいえ。ツールは allowlist が許可した宛先だけを呼び出すべきで、その allowlist はプロンプトの外で強制される必要があります。文書が新しい host を示しても、その host が追加されるわけではありません。
References
- OWASP GenAI Security Project. OWASP Top 10 for Agentic Applications. John Sotiropoulos, December 9, 2025. Names agent goal hijack, tool misuse, identity and privilege abuse, and memory and context poisoning among agentic risks. Accessed October 9, 2026. https://genai.owasp.org/2025/12/09/owasp-top-10-for-agentic-applications-the-benchmark-for-agentic-security-in-the-age-of-autonomous-ai/
- OWASP GenAI Security Project. GenAI and Agentic AI Exploit Roundup Q3 2026. October 8, 2026. Coverage period July 1, 2026 through September 30, 2026. States that prompt-level instructions alone do not establish a secure boundary. Accessed October 9, 2026. https://genai.owasp.org/2026/10/08/genai-and-agentic-ai-exploit-roundup-q3-2026/
- Kaleidr. Private Location Data for AI Map Workflows. Authorize the user and retrieve the minimum records before the language model sees private location data. https://kaleidr.com/blog/private-location-data-for-ai-map-workflows
- Kaleidr. Map API Authentication. Separates a publishable browser credential from a server credential, and states that capability scopes are not application user or row authorization. https://kaleidr.com/blog/map-api-authentication
- OWASP GenAI Security Project. LLM06:2025 Excessive Agency. Describes damaging actions that follow unexpected, ambiguous, or manipulated model output, including excessive functionality, permissions, and autonomy. Accessed October 9, 2026. https://genai.owasp.org/llmrisk/llm062025-excessive-agency/
- Kaleidr. Map-Aware AI Assistant: How to Build One. Recommends a small semantic map-action vocabulary validated before the renderer runs. https://kaleidr.com/blog/how-to-build-a-map-aware-ai-assistant
- Kaleidr. Spatial AI Observability. Separates a model proposal from authorization and execution, and keeps the host outcome in the system that owns the transaction. https://kaleidr.com/blog/spatial-ai-observability
- OWASP GenAI Security Project. Memory Is a Feature. It Is Also an Attack Surface. May 13, 2026. Treats persistent context as an attack surface. Accessed October 9, 2026. https://genai.owasp.org/2026/05/13/memory-is-a-feature-it-is-also-an-attack-surface/
- Kaleidr. Location Intelligence APIs and Map SDK. Describes location-intelligence infrastructure with inference APIs, ranking systems, and analytics for spatial products. Accessed October 9, 2026. https://kaleidr.com/enterprise
- National Institute of Standards and Technology. Summary Analysis of Responses to the Request for Information Regarding Security Considerations for AI Agents. NIST Trustworthy and Responsible AI 800-5, May 18, 2026. An overview of responses, not a control baseline. Accessed October 9, 2026. https://www.nist.gov/publications/summary-analysis-responses-request-information-regarding-security-considerations-ai
@misc{owasp_agentic_top10_2025,
title = {OWASP Top 10 for Agentic Applications},
author = {{OWASP GenAI Security Project}},
year = {2025},
url = {https://genai.owasp.org/2025/12/09/owasp-top-10-for-agentic-applications-the-benchmark-for-agentic-security-in-the-age-of-autonomous-ai/}
}
@misc{owasp_q3_2026_roundup,
title = {GenAI and Agentic AI Exploit Roundup Q3 2026},
author = {{OWASP GenAI Security Project}},
year = {2026},
url = {https://genai.owasp.org/2026/10/08/genai-and-agentic-ai-exploit-roundup-q3-2026/}
}
@misc{kaleidr_private_location_2026,
title = {Private Location Data for AI Map Workflows},
author = {{Kaleidr}},
year = {2026},
url = {https://kaleidr.com/blog/private-location-data-for-ai-map-workflows}
}
@misc{kaleidr_map_api_auth_2026,
title = {Map API Authentication},
author = {{Kaleidr}},
year = {2026},
url = {https://kaleidr.com/blog/map-api-authentication}
}
@misc{owasp_llm06_2025,
title = {LLM06:2025 Excessive Agency},
author = {{OWASP GenAI Security Project}},
year = {2025},
url = {https://genai.owasp.org/llmrisk/llm062025-excessive-agency/}
}
@misc{kaleidr_map_aware_2026,
title = {Map-Aware AI Assistant: How to Build One},
author = {{Kaleidr}},
year = {2026},
url = {https://kaleidr.com/blog/how-to-build-a-map-aware-ai-assistant}
}
@misc{kaleidr_observability_2026,
title = {Spatial AI Observability},
author = {{Kaleidr}},
year = {2026},
url = {https://kaleidr.com/blog/spatial-ai-observability}
}
@misc{owasp_memory_2026,
title = {Memory Is a Feature. It Is Also an Attack Surface},
author = {{OWASP GenAI Security Project}},
year = {2026},
url = {https://genai.owasp.org/2026/05/13/memory-is-a-feature-it-is-also-an-attack-surface/}
}
@misc{kaleidr_enterprise_2026,
title = {Location Intelligence APIs and Map SDK},
author = {{Kaleidr}},
year = {2026},
url = {https://kaleidr.com/enterprise}
}
@misc{nist_ai_800_5_2026,
title = {Summary Analysis of Responses to the Request for Information Regarding Security Considerations for AI Agents},
author = {{National Institute of Standards and Technology}},
year = {2026},
url = {https://www.nist.gov/publications/summary-analysis-responses-request-information-regarding-security-considerations-ai}
}