SQL Server 安全篇——降低外围威胁(2)——禁用不安全功能

本文属于SQL Server安全专题系列


    SQL Server默认禁用不安全的功能。如果需要启用,可以通过SSMS来实现,本文介绍手动配置外围应用配置器和使用策略管理来管理外围环境。


手动配置外围应用配置器

    右键实例,选择facts如下图,然后在【方面(F)】中选择“外围应用配置器”:

SQL Server 安全篇——降低外围威胁(2)——禁用不安全功能_第1张图片

SQL Server 安全篇——降低外围威胁(2)——禁用不安全功能_第2张图片

可以看到下面的选项,通常我们会使用到“XPCmdShellEnabled”项,如果要用,则选择【True】:

SQL Server 安全篇——降低外围威胁(2)——禁用不安全功能_第3张图片

通过策略管理管理功能

    在少量几台实例上配置时,可以使用上面方式来进行,但是对于大量实例的企业环境,这种方式就变得很困难。此时策略管理(Policy-Based Management,PBM)就派上用场。

基本概念

    PBM由targets(目标),facets(方面),conditions(条件)和policies(策略)组成。

  • target:PBM管理的实体,如库、表或者这里的外围环境。
  • facet:与一个target有关联的属性集。
  • condition:一个布尔表达式,判断属性是否为true。
  • policy:绑定condition到target中。

    下面来进一步介绍:

Facets:

    某个target如视图,都包含有一系列的属性,比如IsSchemaBound、HasIndex和HasAfterTrigger。SQL 2016总共提供了96种facets,为了降低外围威胁,应该检查一下三个facets:

  1. ISurfaceAreaConfigurationForAnalysisServer
  2. ISurfaceAreaConfigurationForReportingServices
  3. ISurfaceAreaFacet

Conditions:

    对表达式进行布尔判断。每个facet都有很多属性可以用于创建条件,但是每个条件只能访问单一facet的属性,这些条件包含:=、!=、LIKE、NOT LIKE 、IN、NOT IN。

Targets:

    策略生效的实体,几乎可以包含实例(含实例本身)的所有对象。当对target添加一个策略时,可以使用condition来限制target的数量。比如创建一个策略来强制实例中的数据库命名规范,避免使用一些如abc等或者具有保留字词、专用术语的命名。

Policies:

    策略包含了一个condition并且把这个condition绑定到一个或多个targets中。同时策略也指定一个评估模式。根据你选择的模式,策略可能又包含希望对策略进行评估的计划。策略目前支持四种评估模式:

  •  On Demand  :按需,由用户手动调用。
  •  On Schedule  :按计划,使用代理作业定期进行评估,未启动前不影响系统性能。
  •  On Change: Log Only  :更改时:仅记录,使用事件通知对策略进行评估。
  •  On Change: Prevent  :  更改时:禁止,自动使用DDL触发器禁止违反策略的行为。

    由于策略基于DDL事件触发,依赖于facet中的属性,不是所有的评估模式都能应用到所有的facets中。比如前面提到的三个facet:

Facet On Demand On Schedule On Change:Log Only On Change:Prevent
ISurfaceAreaFacet YES YES YES NO
ISurfaceAreaConfigurationForAnalysis Server YES NO NO NO
ISurfaceAreaConfigurationForReportingServices YES NO NO NO

针对外围环境配置创建策略

    下面来实操一下,要创建策略来管理,必须创建两个对象:condition和policy,

新建条件:

    条件可以先于策略创建,如下图所示打开新建条件,然后按照下图配置:

SQL Server 安全篇——降低外围威胁(2)——禁用不安全功能_第4张图片

SQL Server 安全篇——降低外围威胁(2)——禁用不安全功能_第5张图片

SQL Server 安全篇——降低外围威胁(2)——禁用不安全功能_第6张图片

    点击确定之后完成条件新建,然后新建策略。

新建策略:
    创建条件之后,策略就简单很多,按下面方式打开新建对话框,然后选择刚建好的条件,然后点击确定即可,注意默认是按需评估模式,所以【启用】勾选框是没有的,要手动启用。

SQL Server 安全篇——降低外围威胁(2)——禁用不安全功能_第7张图片


SQL Server 安全篇——降低外围威胁(2)——禁用不安全功能_第8张图片

对单一实例进行策略评估

    创建好策略之后,就可以右键策略然后选择【评估】,本机结果如下图,由于本机开启了xp_cmdshell、禁用(或者未启用)了clrIntergration和RemoteDac功能,所以评估失败。

SQL Server 安全篇——降低外围威胁(2)——禁用不安全功能_第9张图片

SQL Server 安全篇——降低外围威胁(2)——禁用不安全功能_第10张图片


对多实例进行策略评估

    PBM的其中一个重要设计目的就是批量管理实例。但是批量管理首先需要批量注册服务器,这个功能可以通过SSMS打开中央管理服务器,并把需要管理的服务器添加进去。

SQL Server 安全篇——降低外围威胁(2)——禁用不安全功能_第11张图片

SQL Server 安全篇——降低外围威胁(2)——禁用不安全功能_第12张图片

    添加完毕之后就可以使用如图所示导入策略和评估策略。

SQL Server 安全篇——降低外围威胁(2)——禁用不安全功能_第13张图片

    通过上面的方式,禁用并且阻止人为启用一些不安全功能,降低数据库外围威胁。关于哪些属于不安全功能,请见接下来的一文“Securing Checklists

你可能感兴趣的:(数据库管理,DBA,安全,SQL,Server,Security)