网络安全 频道

合规报告:控制客户端云访问的第一步

  构建报告

  正则表达式分析完成并创建帮助程序表后,我们现在可以集中精力来构建健康报告。一旦准备好数据,编写报告查询就变得相对容易。

  本示例报告将列出所有在 2010 年 5 月 5 日下午 3 点到 4 点之间建立了 DirectAccess 连接的用户。除了用户名,报告还会列出计算机名称和健康状况。

  为了找出这些用户,我们将从查询该时段内成功的(事件类型 8)QM SA(事件类别 12549)开始。在此方案中,QM SA 事件非常有用,因为 IPsec 已经配置为要求进行第二项身份验证(用户的凭据)。我们之所以选择了这种报告方式,是因为 QM SA 的存在时间相对较短(在本例中是一小时,不活动超时值是五分钟),因此很适合审核访问。相反,MM SA 只要求使用计算机凭据,而且默认情况下可存在八小时(如果审核是 DirectAccess 部署方案中的重要组成部分,我们建议缩短 MM 的生命期)。

  遗憾的是,QM 事件不包括用户名或计算机名称,而只包括 IP 地址。要将 IP 地址对应到计算机名称和用户名,我们可以在 SQL 查询中使用几条 SELECT 语句。以下查询中的第一条 SELECT 语句将返回指定时段内新的 QM SA 中出现的地址列表。第二条 SELECT 语句使用这些地址来映射日志中其他地方出现的与该地址相关的用户名和计算机名称。(这种用户/计算机/地址的关联出现在 EM SA 事件中。这些事件对于此练习非常重要,因为它们包含所有三种值;如果您不要求 IPsec 二次身份验证,将无法进行这种类型的报告。)

  复制代码

  /* The following steps build the report, based on the three imported tables

  * plus the two helpers above. These steps can be run any number of times as

  * you refine your query.

  */

  /* Create a temporary table to populate as the final report */

  CREATE TABLE #SaHealthReport

  (

  [UserName] varchar(1023) null,

  [ComputerName] varchar(1023) null,

  [HealthEventType] int null

  )

  /* Run a query to find all IPsec Quick Mode Security Associations established

  * within a given period. Populate a temporary table with the client IPv6

  * addresses. */

  SELECT DISTINCT[Address] INTO #TempAddresses

  FROM [NapDa].[dbo].[DaSasTable] JOIN [NapDa].[dbo].[UserComputerAndAddr]

  ON RowN = RowNumber

  WHERE [EventType]=8 AND

  [EventCategory]=12549 AND

  ([TimeGenerated] BETWEEN'2010-05-10 15:00:00.000' AND '2010-05-10 16:00:00.000')

  /* Map the QM SA addresses to user and computer names and insert those into

  * the final report. */

  INSERT INTO #SaHealthReport(UserName,ComputerName)

  SELECT UserComputerAndAddr.UserName,UserComputerAndAddr.ComputerName

  FROM [NapDa].[dbo].[UserComputerAndAddr] JOIN #TempAddresses

  ON #TempAddresses.Address = UserComputerAndAddr.Address

  WHERE (UserComputerAndAddr.UserName IS NOT NULL) AND (UserComputerAndAddr.ComputerName IS NOT NULL)

  /* Populate the health column of the report. */

  UPDATE #SaHealthReport

  SET HealthEventType = ComputerHealth.EventType

  FROM #SaHealthReport JOIN [NapDa].[dbo].[ComputerHealth]

  ON #SaHealthReport.ComputerName = ComputerHealth.ComputerName

  /* Display all rows and columns of the report. */

  SELECT DISTINCT *

  FROM #SaHealthReport

  填充 SaHealthReport 报告表的最后一步是关联 HRA 健康信息与计算机及用户身份信息,这样就与 DirectAccess 服务器有了显著区别。在这种混合模式中加入 HRA 服务器信息是一种有力的工具,使您可以确定远程连接到网络的计算机是否会(由于不合规而)带来风险。请参见上述 SQL 查询中的 UPDATE 语句:DirectAccess 和 HRA 数据的关联是使用计算机名称完成的。

  图 5 显示了完成后的健康报告可能会返回的数据示例。

 

 

 

UserName

ComputerNameHealthEventType
Ichiroichiroadmin10
Grinchwhoville-cli0
Raquelomybc0

 图 5 完成后的健康报告示例

  使用一些自定义的脚本和 LogParser 工具,您可以相对轻松地在 IPsec(包括 DirectAccess)和 NAP 部署上建立起报告机制。此方法可帮助企业开始为业务线服务创建安全框架,而无论这些服务是位于本地还是位于云计算环境中。

0
相关文章