セキュリティ

セキュリティ

お客様のソースコードと開発環境のセキュリティ保護は、私たちにとって最も重要な責務です。このページでは、オーケスターのセキュリティへの取り組みについて説明します。

セキュリティの脆弱性を発見された場合は、info@orchestor.ioまでご報告ください。

セキュリティに関するご質問は、info@orchestor.ioまでお気軽にお問い合わせください。

多くの大規模組織が既に当社のサービスを信頼してご利用いただいておりますが、私たちは製品の成長とセキュリティ態勢の向上に引き続き取り組んでいる途上にあります。特に機密性の高い環境でお仕事をされている場合は、オーケスター(または他のAIツール)を使用する際に十分ご注意ください。このページが当社の取り組みについての洞察を提供し、適切なリスク評価に役立つことを願っています。

認証および第三者評価

オーケスターはSOC 2 Type II認証を取得しています。認証レポートのコピーを希望される場合は、trust.orchestor.ioからリクエストしてください。

当社は、信頼できる第三者機関による年1回以上のペネトレーションテストを実施することを約束しています。最新のレポートの要約を希望される場合は、trust.orchestor.ioからリクエストしてください。

インフラストラクチャセキュリティ

当社は以下のサブプロセッサに依存しており、重要度の高い順に大まかに整理しています。なお、コードデータはオーケスターのAI機能を強化するために当社のサーバーに送信されますが、プライバシーモードのユーザーのコードデータは永続的に保存されることはありません(「プライバシーモード保証」セクションを参照)。

プライバシーモードの影響
プライバシーモードを有効にすると、コードデータの送信先や保存方法が変わります。以下では、各サービスがどのようにコードデータを扱うかを説明します。

  • AWS

コードデータを表示:当社のインフラストラクチャは主にAWS上でホストされています。ほとんどのサーバーは米国にあり、一部のレイテンシーに敏感なサーバーはアジア(東京)とヨーロッパ(ロンドン)のAWSリージョンに配置されています。

  • AI推論プロバイダー

コードデータを表示:当社のカスタムモデルは、米国、アジア(東京)、ヨーロッパ(ロンドン)のサーバーでホストされています。プライバシーモードが無効になっている場合、モデルの推論速度を向上させるためにコードデータが保存される場合があります。

  • データストレージ

難読化されたコードデータを保存:インデックス化されたコードベースのエンベディングや、エンベディングに関連するメタデータ(難読化されたファイル名)が保存されます。ユーザーはコードベースのインデックス作成を無効にすることができます。詳細は「コードベースインデックス作成」セクションを参照してください。

  • 分析・モニタリングツール

コードデータを表示しない:ログ記録やモニタリング用のツールにはコードデータは送信されません。プライバシーモードユーザーに関連するログにはコードデータは含まれません。

  • 開発・コラボレーションツール

コードデータを表示しない:内部コミュニケーションツールやコラボレーションツールには、プライバシーモードユーザーのデータは送信されません。

  • 支払い処理

コードデータを表示しない:支払い処理サービスは個人データ(名前、クレジットカード、住所)を保存しますが、コードデータにアクセスすることはありません。

  • 認証サービス

コードデータを表示しない:認証を処理するサービスは一部の個人データ(名前、メールアドレス)を保存する場合がありますが、コードデータにアクセスすることはありません。

当社のインフラストラクチャは中国には存在せず、中国企業をサブプロセッサとして直接使用することはありません。また、当社の知る限り、サブプロセッサも同様です。

チームメンバーへのインフラストラクチャアクセスは、最小特権の原則に基づいて割り当てられています。AWSに対する多要素認証を強制し、ネットワークレベルの制御とシークレットの両方を使用してリソースへのアクセスを制限しています。

クライアントセキュリティ

オーケスターアプリは、バックエンドと通信するために以下のドメインにリクエストを行います。企業プロキシの背後にある場合は、オーケスターが正しく動作するために、これらのドメインをホワイトリストに登録してください:

  • 'api.orchestor.io':ほとんどのAPIリクエストに使用
  • 'api2.orchestor.io':AI補完リクエストに使用(HTTP/2のみ)
  • 'repo.orchestor.io':コードベースインデックス作成に使用(HTTP/2のみ)
  • 'cdn.orchestor.io':拡張機能やリソースのダウンロードに使用

AIリクエスト

機能を提供するため、オーケスターはサーバーにAIリクエストを送信します。これはさまざまな理由で発生します。例えば、チャットで質問をする時、キーストロークごとに自動補完候補を提供するとき、あるいはコンテキストの構築やバグの検出のためにバックグラウンドでAIリクエストが送信されることがあります。

AIリクエストには通常、最近表示したファイル、会話履歴、言語サーバー情報に基づく関連コード部分などのコンテキストが含まれます。このコードデータは当社のAWSインフラストラクチャに送信され、その後適切な言語モデル推論プロバイダーに送信されます。設定でAPIキーを構成している場合でも、リクエストは常に当社のAWSインフラストラクチャを経由することに注意してください。

オーケスターによって生成されたすべてのコードはお客様に帰属します。

コードベースインデックス作成

オーケスターではコードベースの意味的インデックス作成が可能で、これによりコード全体のコンテキストを考慮した質問への回答や、既存の実装を参照してより良いコードを記述することができます。コードベースインデックス作成はデフォルトで有効になっていますが、初期設定時または設定画面で無効にすることができます。

コードベースインデックス作成機能の仕組みは次のとおりです:有効にすると、オーケスターで開いたフォルダをスキャンし、すべてのファイルのハッシュのマークルツリーを計算します。.gitignoreまたは.orchestorignoreで指定されたファイルとサブディレクトリは無視されます。マークルツリーはサーバーと同期されます。10分ごとにハッシュの不一致をチェックし、マークルツリーを使用して変更されたファイルを特定し、それらのみをアップロードします。

サーバーでは、ファイルをチャンク化してエンベッドし、エンベディングをベクトルデータベースに保存します。ファイルパスでベクトル検索結果をフィルタリングできるようにするために、各ベクトルには難読化された相対ファイルパスと、チャンクが対応する行範囲を保存します。チャンクのハッシュによってインデックス付けされたエンベディングもAWSのキャッシュに保存され、同じコードベースを二度目にインデックス作成する際に大幅に高速化されます(特にチーム利用で役立ちます)。

推論時には、エンベディングを計算し、ベクトルデータベースで最近傍検索を実行し、難読化されたファイルパスと行範囲をクライアントに送り返し、クライアントでそれらのファイルチャンクをローカルに読み取ります。その後、ユーザーの質問に答えるために、それらのチャンクをサーバーに送り返します。これにより、プレーンテキストのコードが当社のサーバーやベクトルデータベースに保存されることはありません。

注意点:

  • .orchestorignoreファイルでファイルがインデックス作成されないようにできますが、最近表示したファイルをチャットで質問する場合など、AIリクエストにはそれらのファイルが含まれる可能性があります。
  • ファイルパスの難読化詳細:パスは「/」と「.」で分割され、各セグメントはクライアントに保存された秘密鍵と決定論的な短い6バイトのノンスで暗号化されます。これにより、ディレクトリ階層に関する情報が漏れる可能性がありますが、ほとんどの情報は隠されます。
  • エンベディングの復元:学術研究によれば、場合によってはエンベディングを復元することが可能です。
  • コードベースインデックス作成がGitリポジトリで有効になっている場合、Gitの履歴もインデックス作成されます。具体的には、コミットSHA、親情報、難読化されたファイル名(上記と同様)が保存されます。コミットメッセージやファイルの内容または差分はインデックス作成されません。

プライバシーモード保証

プライバシーモードは初期設定時または設定画面で有効にできます。有効にすると、コードデータが当社のサーバーやサブプロセッサによってプレーンテキストで保存されないことを保証します。プライバシーモードは誰でも(無料ユーザーまたはProユーザー)有効にでき、チームのメンバーであるユーザーに対してはデフォルトで強制的に有効になります。

プライバシーモード保証を非常に重視しています。オーケスターユーザーの約50%がプライバシーモードを有効にしています。プライバシー保証の詳細については、プライバシーポリシーをご覧ください。

プライバシーモードが有効な場合、コードデータは当社のサーバーやサブプロセッサに永続的に保存されません。コードデータはリクエストの有効期間中、メモリ内でサーバーに表示される可能性があり、長時間実行されるバックグラウンドジョブ、KVキャッシング、または一時ファイルキャッシングのために、わずかに長い期間(分から時間単位)存在する可能性があります。特にファイルキャッシングについては、すべてのデータはクライアント生成のキーで暗号化され、そのキーはリクエストの期間中のみ保持されます。プライバシーモードユーザーが送信したコードデータが学習に使用されることはありません。

ユーザーのプライバシーモード設定はクライアントに保存されます。サーバーへの各リクエストには「x-privacy-mode」ヘッダーが含まれます。プライバシーモードユーザーを誤って非プライバシーモードユーザーとして扱うことを防ぐため、ヘッダーが欠落している場合は常にユーザーがプライバシーモードであると想定します。

アカウント削除

設定ダッシュボードからいつでもアカウントを削除できます(「詳細設定」をクリックし、「アカウント削除」をクリック)。これにより、インデックス作成されたコードベースを含む、アカウントに関連するすべてのデータが削除されます。30日以内にデータの完全な削除を保証します(データはすぐに削除されますが、一部のデータベースとクラウドストレージには最大30日間のバックアップがあります)。

プライバシーモードではなかった時点でデータがモデルトレーニングに使用された場合、既存のトレーニング済みモデルは直ちに再トレーニングされないことに注意してください。ただし、将来トレーニングされるモデルでは、そのデータは削除されているため、トレーニングには使用されません。

脆弱性の開示

オーケスターに脆弱性を発見された場合は、info@orchestor.ioまでご報告ください。

脆弱性レポートを5営業日以内に確認し、できるだけ早く対応することをお約束します。重大なインシデントについては、公式ウェブサイトと全ユーザーへのメールの両方で通知されます。

セキュリティ | Orchestor AI