CS.INFORMATION_EXPOSURE.ALL

潜在的なセキュリティ情報の漏洩

このチェッカーは、プログラムデータの意図しない可能性のあるロギングまたはコンソールへの出力にフラグを立てます。このチェッカーは、エラーレベルまたは重大なエラーレベルでメッセージを報告する、最も広く使用されているロギングメソッドの呼び出しのインスタンス全てにフラグを立てます。これは、内部データのロギングを必要としないアプリケーション用に設計された情報レベルチェッカーです。

チェッカーはパラメーター化できます。<install>\plugin\csharp ディレクトリに配置されている、チェッカーの説明を記載した XML ファイルを変更することにより、チェッカーが認識するロギングメソッドのリストを変更できます。

脆弱コード例 1

コピー
   namespace Program
   {
       class Program
       {
           static int x = 10;
           static void Main(string[] args)
           {
               Console.WriteLine("internal data X: " + x);
           }
      }
  }

Klocwork は 8 行目で CS.INFORMATION_EXPOSURE.ALL の欠陥を報告します。これは、内部データがコンソールの印刷メソッドに渡され、機密データが意図せずに漏洩される可能性があることを示しています。

脆弱コード例 2

コピー
   namespace Program
   {
       class Program
       {
           static int x = 10;
           static void Main(string[] args)
           {
               int address = 20;
               log4net.ILog log = log4net.LogManager.GetLogger("application.log");
              log.Error("Application not started :"+ address);
          }
      }
  }

Klocwork は 10 行目で CS.INFORMATION_EXPOSURE.ALL の欠陥を報告します。これは、内部データがエラーレベルのロギングメソッドに渡され、機密データが意図せずに漏洩される可能性があることを示しています。

関連チェッカー