この節では、Flashアプリケーションのセキュリティ対策を支援するために、Flash CS3 Professionalのパブリッシュオプションで使用する最適なオプションについて説明します。
このトピックについて詳しくは、Adobe LiveDocsの「Flash SWFファイル形式のパブリッシュオプションの設定」を参照してください。
開発者は、SWFアプリケーションに互換性を持たせるFlash Playerのバージョンをまず検討します。 Flash Playerの最近のすべてのバージョンには、プレイヤーの新しいバージョンが入手可能になるとユーザに通知する自動アップデート機能が導入されています。この機能の導入により、ユーザの大半が新しいバージョンに迅速に移行しています。Flash PlayerのWebサイトでは、プレイヤーの市場普及率を追跡し、新しいバージョンの普及速度を示しています(「Adobe Flash Player Version Penetration*」を参照してください)。Flash Player 9互換のクロスプラットフォーム市場普及率は約1年以内で90%に達し、Flash Player 8互換の主要市場におけるクロスプラットフォーム普及率は98%を上回っています。 一部のアプリケーションでは、普及率が顧客の98%に達すれば十分であるといえます。しかし、グローバルな組織にとって、インターネット上の何億というシステムの1.5%に未到達ということは、到達していないシステムが数百万になるということを意味します。古いバージョンのFlash Playerを使用するシステムには、古いオペレーティングシステムや、システムの安定性を図るために、どうしても必要でない限りアップデートを受信しないロックされた環境に含まれるシステムなどがあります。
多くの場合、新しいバージョンのFlash Playerには、SWFファイルがホストされたWebサイトで悪用されないようにする上で役立つ重要なセキュリティアップデートやセキュリティ機能が含まれています。下位互換性要件により、Flash Playerは、SWFを実行しているFlash Playerのバージョンではなく、SWFのコンパイル時に対象となったFlash Playerのバージョンに基づいて追加のセキュリティ変更を適用するかどうかを判断する場合があります。たとえば、エンドユーザが最新バージョンのFlash Player(バージョン9)をインストールしていても、開発者によってFlash Playerバージョン7用にコンパイルされたSWFファイルを再生している場合、エンドユーザのFlash PlayerはFlash Player 7の動作を模倣することがあります。Flash Player 7では、サイト開発者とエンドユーザの両方にとって成熟度の低いセキュリティモデルを使用しています。たとえば、Flash Player 7の互換性を確保するようにコンパイルされたSWFファイルでは、「allowScriptAccess」のデフォルトは「always」ですが、Flash Player 8用にコンパイルされたSWFファイルでは「sameDomain」になります。したがって、SWFで安全性の高い設定を使用できるようにするには、Flash Player 8以降との互換性を保つようにコンパイルする必要があります。
また、ActionScript 3.0を利用すると、より優れたセキュリティツールを入手できます。ActionScript 3.0を使用する開発者は、データ検証の実行プロセスを容易にする正規表現を利用できます。言語内での入力制御の集中管理も強化されます。さらに、以前のActionScript 2.0およびActionScript 1.0コードをサポートするAVM1環境に比べ、ActionScript 3.0の処理に使用するAVM2仮想マシンでは、処理速度、堅牢性および安定性が向上しています。ActionScript 2.0からActionScript 3.0に移行する開発者には、Adobe Developer ConnectionのActionScript 3.0への移行に関するガイドラインに複数のリソースが用意されています。
エンドユーザが最新バージョンのFlash Playerを使用しているかどうかを確認する場合は、アドビが提供するFlash Player検知キットを使用できます。このキットには、Flash Playerのバージョンを検出し、そのバージョンがコンテンツに適しているかどうかを判断するために、クライアント側のJavaScriptとActionScriptコードが含まれています。
読み込みプロテクトおよびデバッグを許可の各フラグでは、MD5ハッシュを使用してSWFファイルをパスワードで保護し、SWFファイルがFlashオーサリングツールに読み込まれないようにします。この保護は、オーサリングツール用の基本的な保護であり、オーサリングツールではこの保護が優先されます。 ただし、攻撃者がその気になれば、SWFファイルを逆コンパイルしてソースコードを取得することも、バイナリからデバッグフラグをストリップすることもできます。これらのフラグで使用されるMD5ハッシュは、辞書ベースのブルートフォース攻撃の対象となります。したがって、読み込みプロテクトフラグを設定している場合でも、SWFファイルを一種のブラックボックスアプリケーションと見なさないようにしてください。SWFに格納された機密データや秘密事項は簡単に見つかります。開発者は、SWFファイルのソースコードに静的パスワード、暗号化キーその他の機密データを格納しないようにする必要があります。
アプリケーションの作成時には、最終的な運用リリースからすべてのデバッグコードを削除することがベストプラクティスです。これは、SWFアプリケーションを開発する際のベストプラクティスでもあります。Flash開発環境のトレースアクションを省略フラグは、コンパイルされたSWFファイルの作成時にすべてのトレースコマンドを削除するようコンパイラに通知します。これにより、パブリッシュされるSWFのサイズが小さくなり、SWFから余分な情報やアクションがすべて削除されます。
共有オブジェクト、マイク、カメラその他のコンポーネントからのFlash Playerメッセージをユーザに完全に表示できるように、最小ステージサイズは、幅215ピクセル、高さ138ピクセルに設定する必要があります。