1

インターフェイスを実装するクラスISerializerのFortify SourceAnalyzer から、以下の警告が表示されます。IDeSerializer

「SecurityManager チェックの欠落: シリアライズ可能」。

これはセキュリティ上の脆弱性です。これは、機密データをシリアル化し、クラスのコンストラクターにセキュリティ マネージャー チェックを入れて、新しいオブジェクト インスタンスの未チェックの作成を回避するためです。書き込みメソッドをオーバーライドし、書き込みメソッドにも同じセキュリティ マネージャー チェックを入れる必要があります。(シリアライズされたバイトから作成されたオブジェクトに対する Java コントロールがないため、シリアライズされたバイトから新しいインスタンスを作成することができ、それらのバイトを単純にデシリアライズするため、回避する唯一の方法は、書き込みに同じセキュリティ マネージャー チェックを入れることです。方法)。

上記の説明は、機密データをシリアル化し、コンストラクター内にセキュリティマンガーチェックを入れている場合はまったく問題ありません。しかし、機密ではないデータがあり、コンストラクターでセキュリティマネージャーのチェックを行わずにそれをシリアル化したい場合。それでも、Fortify レポートから上記の警告を受けました。この警告を取り除く方法がわかりません。これは Fortify ツールのバグですか、それとも何か不足していますか?

注:- コンストラクターでセキュリティ マネージャーをチェックしたくありません。

4

1 に答える 1

3

この問題は通常 ではなく(デシリアライゼーション)writeを参照しているため、Fortify とは多少異なる説明が得られます。read背景は、ランタイムがシリアル化されたデータからメンバーを初期化するため、データを逆シリアル化するときにコンストラクターが呼び出されないことです。そのため、SecurityManagerコンストラクターに がある場合、逆シリアル化によってインスタンスが作成されるときに考慮されません。

とにかく、あなたの質問に対して、問題を分析して問題ではないという結論に達した場合は、問題の監査中に問題としてマークすることができます。これは、Fortify SSC (中央の Fortify サーバー) と Audit Workbench (AWB) の両方で可能です。Fortify SSC で問題リストに移動し、特定の問題の [詳細を表示] を選択し、左下隅で [分析: 問題ではありません] を選択します。AWB にも同様のオプションがあります。

後続のスキャンを実行してサーバーにアップロードする (または AWB を使用してマージする) 場合、Fortify は、この問題が以前に監査され、「問題ではない」とマークされていることを認識し、「問題ではない」情報を保持します。

于 2013-01-16T10:31:34.800 に答える