開発者のためのセキュリティのベストプラクティスAdobe AIR 1.0 およびそれ以降 AIR アプリケーションが Web テクノロジを使用して構築されていても、開発者はそれらの AIR アプリケーションがブラウザーのセキュリティサンドボックス内で機能していないことに気づくことが重要です。つまり、故意にまたは誤ってローカルシステムに損害を与える可能性がある AIR アプリケーションを構築する場合があります。AIR はリスクを最小化しようと試みますが、脆弱性が取り込まれる可能性はまだあります。ここでは、重要なセキュリティ上の潜在的なリスクについて説明します。 ファイルをアプリケーションセキュリティサンドボックスにインポートした場合のリスクアプリケーションディレクトリに存在するファイルはアプリケーションサンドボックスに割り当てられ、ランタイムの完全な権限が付与されます。ローカルファイルシステムに書き込みを行うアプリケーションは、app-storage:/ に書き込むことをお勧めします。このディレクトリはユーザーのコンピューター上のアプリケーションファイルとは別の場所にあるため、ファイルはアプリケーションサンドボックスに割り当てられず、セキュリティのリスクは軽減されます。開発者は次の点に注意する必要があります。
外部ソースを使用してパスを判断する場合のリスクAIR アプリケーションは、外部のデータまたはコンテンツを使用すると、改ざんされる可能性があります。このため、ネットワークまたはファイルシステムのデータを使用する場合は特に注意する必要があります。信頼の責任は最終的には開発者と、開発者が作成するネットワーク接続にありますが、外部データの読み込みは本来リスクを伴うものであるので、機密データの操作への入力には使用しないでください。開発者は次の操作を行わないことをお勧めします。
保護されていない資格情報を使用、保存または送信する場合のリスクユーザー資格情報をユーザーのローカルファイルシステムに保存することは本来リスクを伴い、これらの資格情報が改ざんされる可能性があります。開発者は次の点に注意する必要があります。
ダウングレード攻撃のリスクアプリケーションのインストール中に、ランタイムはアプリケーションのバージョンが現在インストールされていないことを確認します。アプリケーションが既にインストールされている場合、ランタイムはバージョンストリングをインストールされているバージョンと比較します。このストリングが異なる場合、ユーザーはインストールのアップグレードを選択できます。ランタイムは、新しくインストールされたバージョンが古いバージョンよりも新しいことを保証せず、それが異なるバージョンであるということだけを保証します。攻撃者は古いバージョンをユーザーに配布して、セキュリティの弱点をくぐり抜ける可能性があります。このため、開発者はアプリケーションの実行時にバージョンの確認を行うことをお勧めします。ネットワークで要求されたアップデートがあるかどうかをアプリケーションに確認させるのも良い方法です。その場合、攻撃者がユーザーに古いバージョンを実行させていても、その古いバージョンは更新する必要があることを認識します。また、アプリケーションで明確なバージョン管理スキームを使用すると、ユーザーがダウングレードバージョンをインストールする可能性が低くなります。 |
|