2

私は、C で書かれたさまざまなライブラリを使用する pdf ビューアーを作成しています。この C コードは、潜在的に悪用されやすいものです。そして、チェックする行が多すぎます。このコードには悪用可能なバグが含まれている可能性があると想定する必要があります。

問題は、C コードが非常に単純であるということです。一方からバイト ストリームが入り、もう一方からビットマップ (これもバイト ストリーム) が出てきます。

google chrome に触発されて、デコードとページのレンダリングを行う別のプロセスを作成することを考えています。理想的には、これは、1 つの入力ストリームを読み取り、もう一方の端でバイト ストリーム (圧縮されていないビットマップ) に出力すること以外、何もする権利をまったく持たないプロセスで実行する必要があります。

プロセスができないはずだと思うことは次のとおりです。

  • 任意のディスク アクセス
  • ソケットを開く
  • 制限されたメモリ使用量
  • 他のプロセスと共有メモリにアクセスする
  • 他の dll をロードする
  • ... 他に何か?

それは可能ですか?これはどこかに記載されていますか?

4

2 に答える 2

1

これは実際には不可能です。最終的に、潜在的なエクスプロイトコードは、このプロセスが実行する特権を問わず実行されます。標準ユーザーとして実行すると、発生する可能性のあるダメージを制限できますが、最善の策は、コードを可能な限り修正することです。

于 2010-11-20T04:05:45.340 に答える
1

ソースコードがある場合は、説明されていることを実行しないことを確認できます。まあ、利用可能なメモリを制限するのはもう少し難しいです。ただし、 を使用できますSetProcessWorkingSetSize

また、実行可能ファイルをビルドした後、その DLL インポート テーブルを (依存関係ウォーカーによって) チェックして、ファイル/ソケット関数にアクセスしていないことを確認できます。

于 2010-11-19T22:37:45.690 に答える