2

私はMAFを使用して、ユーザー/顧客にソフトウェアを強化する可能性を提供しています. アドインは制限された権限で実行され、アドインをサード パーティの開発者から購入した場合は、当社だけでなく顧客にとっても信頼できないコードになる可能性があります。

この場合、ホストとホスト側アダプターはメイン AppDomain で完全なアクセス許可で実行され、アドインとアドイン サイド アダプターはほとんどアクセス許可なしで実行されます。

AddInStore.FindAddIns を介してアドイン トークンを取得すると、アドイン アセンブリ自体が本来あるべきベンダーからのものであることのみを検証できます。攻撃者がアドイン アセンブリを交換した場合、そのことがわかり、そのアセンブリはアクティブ化されません。とにかく、それはほとんど許可なしで実行されるため、攻撃者はアプリケーションと環境 (ホスト、イントラネットなど) に実際に害を及ぼすことはできませんでした。

しかし、攻撃者がホスト側のアダプター アセンブリを置き換える可能性もあります。攻撃者は、新しいアセンブリを適切なフォルダーに配置するだけで済みます。これは完全な権限で実行されるため、攻撃者のコードはアプリケーションと環境に実際に損害を与える可能性があります。攻撃者はホストとアドインの間にいるため (多かれ少なかれ中間者)、両者の間で交換されるデータも変更できます。

コードをデバッグしてデバッガーでアドイン トークンをチェックすると、アドイン ストアがパイプラインを構築するために使用したさまざまなアセンブリへのすべてのパスを確認できます。

アドイン トークン

残念ながら、取得したアセンブリに関する重要な情報は非公開であり、アクセスできません。

この情報にアクセスするための回避策はありますか?

4

1 に答える 1

0

これを防ぐ 1 つの方法は、アプリケーションを起動するたびにパイプラインを再構築しないことです。パイプライン DLL が DLL および のキーと異なる場合、DLL はPipelineSegments.Storeロードされません。

于 2015-07-01T03:33:54.067 に答える