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