我已经运行了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” 。
答案 0 :(得分:0)
您的选择是根本不使用CLR并禁用该选项,或者忽略建议。除非您在问题中添加正在使用的功能的详细信息,否则我们不会建议其他选择。
假设您有充分的理由首先使用CLR,则可以通过适当的控制措施来减轻安全风险,并允许:
仅SAFE程序集
仅特权用户(例如sysadmin角色成员)创建CLR程序集
仅从受信任的来源(例如,根据您查看的源代码构建)进行组装