UMC.SYSOUT
System.exit()、System.gc() などの望ましくない可能性のあるメソッドに関連した "UMC 望ましくないメソッド呼び出し" グループのエラーです。System.out.println()、System.err.println() などのデバッグ表示も好ましくない可能性があります。警告 UMC.SYSOUT は、System.out ストリームの print メソッドの呼び出しが存在する場合に表示されます。
脆弱性とリスク
成熟したアプリケーションにおいては、この呼び出しを 1 つのロギング モジュールおよび機能コンソールの出力に限定する必要があります。そうでない場合には、誤使用の診断となり、修正が必要となります。
軽減と防止
syserr のプリントの呼び出しを Logger モジュールの呼び出しに置き換えます。stdout のプリントの呼び出しを Logger の呼び出しに置き換えるか、printRawToUser() のような専用メソッドの呼び出しに置き換えます。
例 1
コピー
public int internalCalculateSum(int x, int y) {
if (x < 0 || y < 0) {
System.out.println("XXX: got strange arguments!");
}
return x + y;
}
UMC.SYSOUT が 11 行目に対して報告されています。System.out メソッド呼び出しを使用したデバッグ表示は好ましくありません。
外部参考資料
セキュリティトレーニング
Secure Code Warrior が提供しているアプリケーションセキュリティトレーニング教材。