CS.INFORMATION_EXPOSURE.ATTR

潜在的安全信息暴露

此检查器会标记数据字段潜在的意外日志记录或打印到控制台,具体是标有 [SecurityCritical] 或 [SecuritySafeCritical] 属性的数据字段。此检查器会标记使用最广泛的日志记录方法的所有调用实例,这些方法会从错误或严重错误级别报告消息。

可对检查器进行参数化处理。通过修改包含检查器描述的 XML 文件(位于 <install>\plugin\csharp 目录中),可以更改检查器识别的日志记录方法列表。

漏洞代码示例 1

复制
   namespace Program
   {
       class Program
       {
           [SecurityCritical]
           static int x = 10;
           static void Main(string[] args)
           {
               Console.WriteLine(" Critical X " + x);
          }
      }
  }

Klocwork 报告第 11 行出现 CS.INFORMATION_EXPOSURE.ATTR 缺陷,这表示标有 [SecurityCritical] 属性的数据 x 已打印到控制台,这可能导致意外的敏感数据暴露。

漏洞代码示例 2

复制
   using System.Security;
   
   namespace Program
   {
       class Program
       {
           [SecuritySafeCritical]
           static int y = 10;
           static void Main(string[] args)
          {
              logger.Error($"y = {y}");
          }
  
          public static log4net.ILog logger; // initialized elsewhere
      }
  }

Klocwork 报告第 11 行出现 CS.INFORMATION_EXPOSURE.ATTR 缺陷,这表示标有 [SecuritySafeCritical] 属性的数据已传递到日志记录功能,这可能导致意外的关键数据暴露。

相关检查器

安全培训

应用程序安全培训材料由 Secure Code Warrior 提供。