SV.SERIAL.NOWRITE
SV.SERIAL.NOWRITE は、クラスが 'java.io.Serializable' インターフェイスを直接的または間接的に実装しているにもかかわらず、'private void writeObject(java.io.ObjectOutputStream out) throws IOException' メソッドを定義していない場合に報告されます。
脆弱性とリスク
クラスが正しいシグネチャの 'writeObject' メソッドを実装していない場合、'defaultWriteObject' によって指定されるデフォルトのシリアライズが使用されます。攻撃者は、読み取り可能なバイト配列にオブジェクトをシリアライズすることが可能となります。この場合、攻撃者がオブジェクトの内部状態のすべてを見ることができます。
Klocwork セキュリティ脆弱性 (SV) チェッカーは、潜在的に危険なデータを生成する呼び出しを特定します。このような呼び出しは安全でないソースと考えられます。ユーザーは攻撃者になる可能性があり、ヒューマンエラーを取り込む可能性があるため、安全でないソースはユーザーが指定した任意のデータである可能性があります。
軽減と防止
'private void writeObject(java.io.ObjectOutputStream out) throws IOException' メソッドを実装します。
例 1
コピー
public class SV_SERIAL_Sample_1 implements Serializable {
public static void main(String[] args)
{
System.out.println("Hello World!");
}
}
SV.SERIAL.NOWRITE が 5 行目のクラス 'SV_SERIAL_Sample_1' の宣言に対して報告されています。
外部参考資料
セキュリティトレーニング
Secure Code Warrior が提供しているアプリケーションセキュリティトレーニング教材。