真のファイルタイプを特定してリスクを低減する
ファイルを電子的に扱う際には、そのファイルタイプを正しく特定することが重要です。これにより、ファイルが偽の拡張子や MIME タイプで誤って表現されるファイルタイプ偽装の脅威を排除できます。
当社の API は実際のファイルタイプを正確に特定するため、システムはセキュリティ侵害、データ破損、または意図しないファイル処理を防ぐための適切な対応を取ることができます。
正しいファイルタイプが特定されると、次のシナリオに基づいてアプリケーション内で適切な判断を行うことができます。
サポートされているファイルタイプ
検出されたファイルタイプがサポートされているファイルタイプの一覧に含まれている場合は、システム内でそのファイルに対する通常の CDR 処理を安心して続行できます。
サポートされていないファイルタイプ
検出されたファイルタイプがサポートされていないファイルタイプの一覧に該当する場合は、そのファイルがシステム内でそれ以上進行しないよう、直ちに対処することが重要です。
そのような場合は、ファイルのそれ以上の処理を停止する「fail fast」メカニズムを実装し、潜在的に有害または非互換なファイルをシステムが処理しないよう保護することを推奨します。
ファイルタイプ偽装
検出されたファイルタイプが、ファイルで宣言されている拡張子または MIME タイプと異なる場合、悪意のある攻撃者がシステムを欺こうとするファイル偽装を示している可能性があります。
このような場合は、システム内でそのファイルを処理するために、より回避的な対応を取ることを検討してください。これには、ファイルの隔離、追加のセキュリティチェックの実行、またはさらなる調査のための管理者への通知が含まれる場合があります。
Glasswall Halo イベント
Glasswall Halo へのリクエスト方法:
- まず、Glasswall Halo API に対するリクエストを開始し、ファイルタイプに応じて適切なエンドポイントを選択します:
- Binary ファイルの場合は、
api/v3/cdr-fileエンドポイントを使用します。 - Base64 エンコードされたファイルの場合は、
api/v3/cdrエンドポイントを使用します。
-
Glasswall Halo はリクエストを処理し、元のファイルに対してファイルタイプ検出を実行します。
-
追加の処理を行わず、ファイルタイプ検出のみを実行するには、URL に
response-contentパラメータを含め、その値をnoRebuiltFile,noAnalysisReportに設定します。これにより、ファイルタイプ検出専用モードが有効になります。 -
Glasswall Halo は、真のファイルタイプを判定するために、Glasswall Embedded Engine を使用してファイルを解析します。
-
検出に成功すると、Glasswall Halo はレスポンスヘッダーに、ヘッダーキー
x-filetypeを使用して識別された真のファイルタイプを含めます。 -
これで、取得した真のファイルタイプ情報を、アプリケーションまたはシステム内での後続処理、セキュリティチェック、またはその他必要な対応に使用できます。
API 認証
Glasswall Halo は、Basic と Bearer の 2 種類の認証をサポートしています。リクエストを行う前に、構成に応じた適切な方式で認証を行う必要があります。
Basic
システムが Basic 認証で構成されている場合は、System Administrator から organisation ID と token を取得する必要があります。これらの値を <OrganisationId>:<Token> の形式で結合し、その後 Base64 エンコードします。生成されたエンコード値は、次のようにリクエストヘッダーに含める必要があります:
Authorization: Basic ZGVtbzpwQDU1dzByZA==
Bearer
Bearer 認証では、ID プロバイダーから取得した bearer token が必要です。トークンを取得したら、次のようにリクエストヘッダーに含めます:
Authorization: Bearer ZGVtbzpwQDU1dzByZA==
注: システムの構成に応じて適切な認証方式を使用してください。正しい認証を使用することで、Glasswall Halo API へのアクセスが正常に行われ、認可に関する問題を防ぐことができます。
リクエストの構築
Glasswall Halo を使用してバイナリファイルまたはBase64エンコードされたファイルを処理するには、以下の手順に従ってください:
バイナリファイル処理
リクエスト本文にバイナリ文字列を含めて、次のエンドポイントに送信します:
POST {baseUrl}/api/v3/cdr-file?response-content=noRebuiltFile,noAnalysisReport
Base64 エンコードされたファイル処理
Base64 エンコードされた文字列をリクエストボディに含めて、次のエンドポイントに送信します。
POST {baseUrl}/api/v3/cdr?response-content=noRebuiltFile,noAnalysisReport
リクエストボディ形式
リクエスト本文はJSON形式とし、ファイルのBase64エンコード文字列を含むBase64フィールドと、元のファイル名(適切なファイル拡張子を含む)を指定するfilenameフィールドを含める必要があります。
{
"base64": "string",
"fileName": "filename.pdf",
}
注
- {baseurl} は Glasswall Halo API の実際のベース URL に置き換えてください。
- 各リクエストには正しい
auth headerを含める必要があります。 - URL 内で
response-contentをnoRebuiltFile,noAnalysisReportに設定すると、ファイルの再構築や分析レポートの生成を行わず、ファイルタイプの検出のみが実行されます。 - バイナリファイル処理では multipart form post を使用し、Base64 エンコードされたファイル処理では、適切なファイル名とともにファイル内容を JSON リクエスト本文で指定します。
レスポンス処理
リクエストが正常に完了すると、201ステータスコードが返されます。ただし、API をファイルタイプ検出モードで実行している場合、レスポンスにはファイル出力は含まれません。実際のファイルタイプを特定するには、レスポンスヘッダーを確認し、x-filetypeキーを探してください。このヘッダーの値が実際のファイルタイプを示します。
-
x-filetypeの値がunknownの場合、Glasswall が対象ファイルの実際のファイルタイプを特定できなかったことを意味します。 -
x-filetypeの値が'txt'の場合、そのファイルには純粋なUTF-8またはASCIIテキストが含まれていることを示します。
Status: 201 Created
Headers:
access-control-allow-origin: *
access-control-expose-headers: *
content-length: 0
content-type: text/plain
date: Thu,20 Jul 2023 10:55:46 GMT
strict-transport-security: max-age=31536000; includeSubDomains
x-applied-policy: service-dynamic
x-file-size: 301189
x-filetype: pdf
x-processing-id: 779b6828-1e1b-4148-9dc0-a3f1e38cb119
x-processing-status: rebuilt
上記の例では、x-filetypeの値はPDFであり、実際のファイルタイプがPDFドキュメントであることを示しています。
API から返される可能性のあるエラーコードの詳細については、API Documentationを参照してください。そこでは、さまざまなエラーシナリオへの対処に関する包括的な情報も確認できます。
想定される値
出力されるファイルタイプは、個々の拡張子ではなくファイルタイプグループに関連付けられています。Glasswall の Embedded Engine では、複数の拡張子が単一の値で識別されます。ファイルタイプヘッダーの出力値をよりよく理解するには、以下の表を参照してください。
| ファイルタイプ値 | 拡張子 |
|---|---|
| Doc | .Doc, .dot |
| Xls | .Xls, .xlt |
| Ppt | .Ppt, .pps, .pot |
| Docx | .Docx, .docm, .dotx, .dotm |
| Xlsx | .Xlsx, .xltx, .xltm, .xlsm |
| Pptx | .Pptx, .pptm, .ppsx, .ppam, .potm, .ppsm, .potx |
| Tiff | .Tif, .tiff, .geotiff |
| Svg | .Svg |
| Emf | .Emf |
| Wmf | .Wmf |
| Jpeg | .Jpeg, .jpg, .jpe, .jif, .jfif, .jfi |
| Png | .Png |
| Gif | .Gif |
| Bmp | .Bmp, .dib |
概要
アプリケーションに真のファイルタイプ検出を実装することで、システムがファイルを安全かつ効率的に処理し、未対応または悪意のある可能性があるファイルタイプに関連するリスクを軽減できます。ファイルタイプ検出を適切に処理し、さまざまな状況に応じて適切に対応することで、インフラストラクチャのセキュリティと信頼性の維持に役立ちます。
クイックスタート
Glasswall Halo をご自身で試すには、Quick Start Guideをご参照ください。