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] 属性的数据已传递到日志记录功能,这可能导致意外的关键数据暴露。