RAGのファイル取込口では、何を守るべきですか?
取込口は新しい実行境界です。受信直後のファイルを、解析器や埋め込み処理へ渡してはいけません。
利用者がPDF、Word、画像、ZIPをアップロードする場合を考えます。AIが内容を検索・要約する検索拡張生成(RAG)では、ファイル取込口が新しい実行境界になります。
拡張子が.pdfでも、中身がPDFとは限りません。圧縮ファイルには、大量展開、暗号化、入れ子、実行形式の混入があります。
受信直後のファイルを、文字読取り、文書解析器、埋め込み処理へ渡してはいけません。
標準の取込経路では、公開領域と隔離領域を分けます。まず容量、拡張子、MIME形式、ファイル先頭の識別情報を検査して、隔離保存します。
マルウェア検査が「脅威なし」と確定したものだけを、解析待ちへ移します。検査失敗、非対応、時間超過を「脅威なし」と読み替えません。
取込経路は、どんな手順で作りますか?
受信時の形式検査、隔離保存と検査、圧縮・暗号化の別経路、制限付き解析、再検査の順に作ります。

営業資料のPDFを索引へ入れる設計例では、アップロード完了と取込完了を別の状態にします。検査不能や時間超過なら隔離したまま止め、脅威なしの結果と制限付き解析の完了がそろってから索引へ渡します。
- 受信時は名前と申告された形式を信用しません。許可する業務文書を先に列挙し、拡張子、MIME形式、ファイル署名を組み合わせて検査します。OWASPのファイルアップロード手引きは、
Content-Typeを信頼しないよう勧めています[1]。利用者が偽装できるためです。拡張子の許可一覧、署名検査、ファイル名の再生成も組み合わせます。容量制限、認可、別サーバーまたは公開領域外への保存も組み合わせます。元のファイル名は、画面表示用の情報として無害化します。保存名には、サーバー側で発行した乱数IDを使います。取込担当の実行用アカウントには、公開保管領域や本番索引への書込み権限を与えません。 - 検査完了までは隔離領域から出しません。ファイルを隔離用の保管領域へ保存し、オブジェクトIDとハッシュ値を発行します。Amazon GuardDuty Malware Protection for S3は、新しいオブジェクトを検査します。結果の状態をタグへ記録できます[2]。状態は、
NO_THREATS_FOUND、THREATS_FOUND、UNSUPPORTEDなどです。ACCESS_DENIEDやFAILEDもあります。NO_THREATS_FOUND以外は、自動的に解析器へ渡しません。 - 検査結果の通知の重複に備えます。AWSは、EventBridgeへの結果通知が最低1回配送であることを示しています[2]。同じオブジェクトに、複数の結果が届く可能性があります。オブジェクトの版、ハッシュ値、検査器の版の組み合わせを、一意の識別子にします。「脅威なし」の確定を、一度だけ解析待ちへ渡します。
- 圧縮・暗号化ファイルを別経路にします。ZIPやRARは、展開後容量、ファイル数、入れ子の深さ、圧縮率へ上限を置きます。暗号化ファイルは、依頼者へ暗号化を外した再提出を求めます。隔離された端末で人が確認する、例外手順へ送る方法もあります。通常経路へは戻しません。
- 脅威なし判定後も解析器を隔離します。ここからは編集部の推奨設計です。解析器を隔離実行環境で動かし、外部通信を切ります。CPU、メモリー、処理時間、出力量にも上限を置きます。抽出文字、画像、付随情報は、別々に制限します。
- 既存ファイルを再検査します。新しい脅威情報や検査器の変更後に、再検査が必要になる場合があります。Microsoftは、保存されたファイルへのオンデマンド検査(必要なときに行う検査)を示しています[5]。以前の失敗を再試行する用途も示しています。再検査後の対応は、編集部の推奨設計です。脅威が見つかった文書に対応する分割片を、索引から外します。その文書を参照した回答や外部出力の範囲を確認します。
取込経路の設計がうまくいかない例には、どんなものがありますか?
1つの検査で許可する、タグを正本にする、検査器があれば完了と見なす、の3つが典型です。
- 検査の一つを通っただけで許可する。PDFの先頭情報があっても、埋め込みファイル、処理命令、異常な内部構造まで安全と判定できるわけではありません。
- 索引タグを正本にする。Microsoft Defender for Storageは、アップロード時検査と必要時の再検査を提供します。結果は、
No threats found、Maliciousなどです[3]。ErrorやNot scannedも返します。ただし、保存されたファイルの索引タグは、書換え権限を持つ利用者が変更できます。Microsoft自身も、タグを単独のセキュリティ統制にしないよう注意しています。事象通知、警告、検査記録を正本にします。タグは振分けの補助に限ります。 - 暗号化ファイルを通常経路へ戻す。AWSは、パスワード保護ファイルを常に検査できるわけではないと説明しています。パスワードを解けない場合は、検査を省略し得ます[4]。Microsoftも、利用者側で暗号化されたファイルは検査できないとしています[3]。「検査失敗だが業務上必要」として通常経路へ戻してはいけません。
- 検査器を置いたら全ファイルを検査済みと見なす。Microsoft Defender for Storageには、検査対象、通信方式、地域、時間の制約があります。大きく複雑な圧縮ファイルは、時間超過になり得ます[3]。AWSにも、オブジェクト容量や圧縮ファイルの深さなどの上限があります[4]。
Not scannedと時間超過の件数を監視します。 - マルウェア検査を万能と考える。既知の脅威が見つからなくても、巨大なページ、異常な書体、AIへの指示を埋め込んだ文書は残ります。解析器の脆弱性を突かれるおそれもあります。MicrosoftのAzure Storage基本保護ガイダンスは、検査を勧めています[6]。信頼できないファイルを後段へ提供する前に、マルウェア検査します。
圧縮ファイルの展開については、編集部の推奨設計です。掲載したクラウド製品資料が、手順一式を直接保証するものではありません。圧縮ファイル内に、許可外の拡張子、別の場所を指すシンボリックリンク、同名ファイル、絶対パスがあれば、展開を止めます。採用する解析器と圧縮方式に合わせて、経路逸脱と大量展開の試験を別途行います。
本番前には、次を試します。拡張子偽装、巨大ファイル、入れ子の圧縮ファイル、パスワード付き圧縮ファイルです。既知の無害な検査用マルウェア、検査の時間超過、重複通知、解析器停止も試します。
取込完了を、「アップロードに成功した」とは定義しません。次の条件がそろった時点で、RAGの索引へ渡します。
- 許可形式であること
- 隔離中の検査が完了していること
- 検査不能状態がないこと
- 制限された解析器が終了したこと
- 元ファイルと抽出結果の対応を記録できたこと
業務上の例外を設ける場合も、検査不能を脅威なしへ変更しません。通常経路とは別に、承認と記録を残します。
ファイルの種類ごとに、取込経路はどう違いますか?
通常のファイルは隔離して検査し、圧縮ファイルは展開前に上限を置き、暗号化ファイルは例外手順へ送ります。
| 種類 | 最初の扱い | 検査後・検査不能時の扱い |
|---|---|---|
| 通常のファイル | 形式を検査して隔離保存し、マルウェア検査へ | 脅威なしと確定したものだけを、隔離した解析器へ |
| 圧縮ファイル | 展開後容量、ファイル数、入れ子の深さ、圧縮率に上限 | 許可外の拡張子、シンボリックリンク、同名ファイル、絶対パスがあれば展開を止める |
| 暗号化ファイル | 中身を検査できない場合がある | 通常経路へ戻さず、再提出または隔離端末での人の確認へ |
よくある質問
すぐには解析しません。公開領域と隔離領域を分けます。容量、拡張子、MIME形式、ファイル先頭の識別情報を検査して、隔離保存します。マルウェア検査が脅威なしと確定したものだけを、解析待ちへ移します。検査失敗、非対応、時間超過を脅威なしと読み替えません。
暗号化ファイルは、中身を検査できない場合があります。検査失敗だが業務上必要として、通常経路へ戻しません。依頼者へ暗号化を外した再提出を求めます。隔離された端末で人が確認する例外手順へ送る方法もあります。展開後の容量や入れ子にも上限を置きます。
いえません。マルウェア検査は、未知の脅威をすべて検出する保証ではありません。文書内に埋め込まれたAIへの指示を検出する対策の代わりにもなりません。解析器を外部通信のない隔離環境で動かし、処理量に上限を置くことも、別に必要です。
次の一歩は何から始めればよいですか?
受信直後のファイルを、公開領域から隔離領域へ移すことから始めます。解析はその後です。
- 隔離用の保管領域を作り、受信直後のファイルをそこへ保存します。
- 検査結果が「脅威なし」のものだけを、解析待ちへ移す仕組みを作ります。
- 検査不能と時間超過の件数を監視し、解析器の隔離と上限を決めます。
出典(一次情報と確認範囲)
資料確認日:2026年9月30日。本文中の手順例は編集部の提案で、導入効果の実測値ではありません。

