CLR程序集可能给SQL Server实例带来安全漏洞

时间:2019-03-30 09:49:02

标签: sql sql-server security

我已经运行了SSMS漏洞评估。
结果是总共给出 4 次失败检查。

在4个失败的1中是CLR组件。
VA1256-用户CLR程序集不应在数据库中定义

如何解决这个问题?

使用CLR组件是否安全。 如果不安全。 CLR的替代方法是什么。

在结果的详细信息下面给出:

 "VA1256": {
          "RuleId": "VA1256",
          "Severity": "High",
          "Category": "SurfaceAreaReduction",
          "RuleType": "NegativeList",
          "Title": "User CLR assemblies should not be defined in the database",
          "Description": "CLR assemblies can be used to execute arbitrary code on SQL Server process. This rule checks that there are no user-defined CLR assemblies in the database",
          "Rationale": "Using CLR assemblies can bring a security flaw to the SQL Server instance and to all other network resources accessible from it",
          "IsFirstPartyRule": false,
          "MitigatedBy": "VA1023",

        }

我在创建程序集中使用了“ WITH PERMISSION_SET = SAFE”

1 个答案:

答案 0 :(得分:0)

您的选择是根本不使用CLR并禁用该选项,或者忽略建议。除非您在问题中添加正在使用的功能的详细信息,否则我们不会建议其他选择。

假设您有充分的理由首先使用CLR,则可以通过适当的控制措施来减轻安全风险,并允许:

  • 仅SAFE程序集

  • 仅特权用户(例如sysadmin角色成员)创建CLR程序集

  • 仅从受信任的来源(例如,根据您查看的源代码构建)进行组装