SV.SERIAL.NON

SV.SERIAL.NON は、クラスが Serializable インターフェイスを実装している場合に発生します。JVM は、オブジェクトの最終的な逆シリアル化を制御しません。

脆弱性とリスク

オブジェクトがシリアル化されると、Java ランタイム環境の制御外になるため、Java によるセキュリティの制御外になります。データのシリアル化の実装は問題ではありませんが、JVM の制御外にあるオブジェクトが最終的に逆シリアル化されることで、リスクが生じます。リスクレベルは、企業のポリシーによって決定されます。

Klocwork セキュリティ脆弱性 (SV) チェッカーは、潜在的に危険なデータを生成する呼び出しを特定します。このような呼び出しは安全でないソースと考えられます。ユーザーは攻撃者になる可能性があり、ヒューマンエラーを取り込む可能性があるため、安全でないソースはユーザーが指定した任意のデータである可能性があります。

軽減と防止

必要がない限り、Serializable の実装は避けます。Serializable を実装する場合には、システムリソースへのハンドルやアドレス空間に関連した情報を含むフィールドに対して transient を使用します。

例 1

コピー
 public class SV_SERIAL_NON_Sample_1 implements Serializable {
 }

SV.SERIAL.NON は、'java.io.Serializable' を実装している、クラス 'SV_SERIAL_NON_Sample_1' に対して報告されます。