0

0

符合通用准则(commoncriteriacompliance)

php中文网

php中文网

发布时间:2016-06-07 14:55:43

|

1501人浏览过

|

来源于php中文网

原创

符合通用准则(common criteria compliance) 通用标准是一组国际准则和规范说明,它们能用来评估信息安全产品,特别是保证这些产品符合政府部署商定的安全标准。通用标准的正式称谓是“信息技术安全评估通用标准”。 符合通用准则(通常简称CC)是一套方法

符合通用准则(common criteria compliance)

 

eshop网上书店源码
eshop网上书店源码

适合初学的标准三层架构,采用ajax,页面布局div+css符合w3c,用vs自带的sqlserver,免配置sqlserver,使用方便,里面共有5个项目,点击最外层的.sln直接可运行。网站采用asp.net 用户角色配置(membership,UserRoles),用户角色、权限可在asp.net配置里修改,注册,登陆均采用asp.net登陆控件,网站根据用户角色自定义sitemap,基本上

下载

通用标准是一组国际准则和规范说明,它们能用来评估信息安全产品,特别是保证这些产品符合政府部署商定的安全标准。通用标准的正式称谓是“信息技术安全评估通用标准”。

 

符合通用准则(通常简称CC)是一套方法,确保IT产品符合预定义的安全标准。它让信息系统的安全评估标准化。

 

通用准则建立了一套IT产品安全功能的通用需求。它是灵活的,描述的需求的实施有大量的自由度。它让供应商决定适当的实施,依据评估保证级别Evaluation Assurance Level(EAL)。一个特定的应用程序、操作系统,或者一些列配置文件也参照它作为评估目标Target of Evaluation(TOE)。这里,我们的TOE就是一个SQL Server安装。

 

EAL是安全需求的等级,范围从EAL1到EAL7。越高的数字应用了更严格的验证处理。应用更高的安全度不是必须的。

 

深入验证处理已经超出了DBA的范畴。然而,更多详细的配置需要确保对于符合不同EAL等级SQL server与建立的指导原则保持一致。

 

微软提供了安全配置选项给EAL1。这是一个服务器级别的选项,通过SSMS可用:

右键点击实例名,然后选择Properties。再选择Security。选择Enable Common Criteria compliance。

 

clip_image001

 

clip_image002

 

如果使用 sp_configure 系统存储过程来更改设置,则仅当 show advanced options 设置为 1 时才可以更改 common criteria compliance enabled。 该设置在服务器重新启动后生效。

 

sp_configure 'show advanced options', 1;
GO
RECONFIGURE;
GO
sp_configure 'common criteria compliance enabled', 1;
GO
RECONFIGURE
GO

 

common criteria compliance enabled 服务器配置选项

 

common criteria compliance enabled 选项可启用通用准则所需的下列元素。

 

残留信息保护 (RIP)

RIP 要求将内存重新分配给新资源之前,用已知的位模式覆盖内存分配。 满足 RIP 标准有助于提高安全性;然而,覆盖内存分配会使性能降低。 启用 common criteria compliance enabled 选项之后,将执行覆盖操作。

 

查看登录统计信息的能力

启用 common criteria compliance enabled 选项之后,将启用登录审核。 用户每次成功登录到 SQL Server 时,系统都会提供有关上一次成功登录的时间、上一次登录失败的时间以及上一次成功登录时间和当前登录时间之间尝试登录的次数的信息。 可以通过查询 sys.dm_exec_sessions 动态管理视图来查看这些登录统计信息。

 

GRANT 列不应覆盖 DENY 表

启用 common criteria compliance enabled 选项之后,表级 DENY 将优先于列级 GRANT。 未启用该选项时,列级 GRANT 则优先于表级 DENY。

 

common criteria compliance enabled 选项是高级选项。 仅对 Enterprise Edition 和 Datacenter Edition 对通用准则进行评估和认证。

 

激活该选项使得SQL Server安装达到了EAL1等级。为了符合通用准则评估保证级别 4+ (EAL4+),还有一些其他操作:

 

1. 默认跟踪(Default Trace)必须正在运行。这是一个默认被激活的服务端跟踪。为了验证它被激活,执行如下:

 

SELECT * FROM fn_trace_getinfo(default);

 

出现了一些traceid列值为1的行。

 

clip_image003

 

如果没有行返回,用如下代码激活默认跟踪:

 

EXEC master.dbo.sp_configure 'allow updates', 1;
GO
EXEC master.dbo.sp_configure 'show advanced options', 1;
GO
EXEC master.dbo.sp_configure 'default trace enabled', 1;
GO
RECONFIGURE WITH OVERRIDE;
GO
EXEC master.dbo.sp_configure 'show advanced options', 0;
GO
EXEC master.dbo.sp_configure 'allow updates', 0;
GO

 

2. 另一个有特定参数的服务端跟踪必须在SQL服务启动时执行。微软已经提供了这个跟踪的脚本。下面来拆分开来分析下:

第一部分检查是否运行在SQL Server 2005 SP1。存储过程不能运行在后续的服务包版本下,好像不大可能。我移除了这个部分,并且执行正确的在后续版本。

 

-- If the version is not SP1 then do not run the script
IF SERVERPROPERTY(N'ProductVersion') <> '9.00.2047.00'
BEGIN
RAISERROR('You can turn on EAL1 trace only on SQL Server 2005 SP1', 20, 127) WITH LOG
END
USE master
GO
if object_id('dbo.sp_create_evaltrace','P') IS NOT NULL
drop procedure dbo.sp_create_evaltrace
GO

 

第二部分基于注册表决定\LOG目录的位置。如果不起作用,只须手动设置@Tracefile参数。然后设置sp_trace_create的参数。这里重要的数字是第二个参数6。这是选项参数。6表示选项2和选项4被激活:2表示跟踪文件增加到100M时生成一个新文件循环利用;4表示如果跟踪失败就关闭SQL服务。如果只需要单个跟踪文件,那么循环利用将会被禁用通过设置选项4。在CC里这是可接受的,但是在跟踪失败时服务必须停止。循环文件的大小也是可配置的。

 

CREATE PROCEDURE sp_create_evaltrace
-- Create the trace
AS
-- Declare local variables
declare @rc int
declare @on bit
declare @instanceroot nvarchar(256)
declare @scriptname nvarchar(50)
declare @tracefile nvarchar(256)
declare @maxfilesize bigint
declare @filecount int
declare @traceid int
set @maxfilesize =100
set @filecount =100
-- Trace file name
set @scriptname = 'cc_trace_' + REPLACE(REPLACE(CONVERT( varchar(50), getdate(),126), ':', ''), '.','')
-- Get the instance specific LOG directory
-- Get the instance specific root directory.
set @instanceroot = ''
exec master.dbo.xp_instance_regread N'HKEY_LOCAL_MACHINE', N'SOFTWARE\Microsoft\MSSQLServer\Setup', N'SQLPath', @instanceroot OUTPUT
IF @instanceroot = '' OR @instanceroot = NULL
BEGIN
-- Exit the procedure
raiserror ('Could not obtain the instance root directory using xp_instance_regread.', 18,127)
return(1)
END
-- Prepare the Trace file.
IF SUBSTRING(@instanceroot, Len(@instanceroot)-1, 1) != '\'
set @instanceroot = @instanceroot + '\'
set @tracefile = @instanceroot + 'LOG\'+ @scriptname
-- Create the trace
exec @rc = sp_trace_create @traceid OUTPUT, 6, @tracefile, @maxfilesize, NULL , @filecount
IF (@rc != 0)
begin
return (1)
end

 

第三部分包含被跟踪捕获的事件,在注释中有所描述。

 

-- Add Trace Events
set @on = 1
-- Audit Login
exec sp_trace_setevent @TraceID, 14, 1, @on -- TextData
exec sp_trace_setevent @TraceID, 14, 11, @on -- LoginName
exec sp_trace_setevent @TraceID, 14, 14, @on -- StartTime
exec sp_trace_setevent @TraceID, 14, 21, @on -- EventSubClass
exec sp_trace_setevent @TraceID, 14, 23, @on -- Success
exec sp_trace_setevent @TraceID, 14, 64, @on – SessionLoginName

 

仅仅从描述来看意义不是很清晰。下面详细描述一下。注意GDR事件类的范围,类似的语言用于subsequent类。

 

Audit Schema Object GDR 事件类 -- 每当 MicrosoftSQL Server 中的任何用户对架构对象权限发出 GRANT、REVOKE 或 DENY 时,都会发生 Audit Schema Object GDR 事件类。

Audit Database Scope GDR 事件类 -- 每当 MicrosoftSQL Server 中的用户发出针对语句权限的 GRANT、REVOKE 或 DENY 时(仅限于数据库操作,例如针对某个数据库授予权限),都会发生 Audit Database Scope GDR 事件类。

Audit Database Object GDR 事件类 -- 如果对数据库对象(例如,程序集和架构)发出 GRANT、REVOKE 或 DENY,则会发生 Audit Database Object GDR 事件类。

Audit Server Scope GDR 事件类 -- 当为了获取服务器范围内的权限(例如,创建登录名)而发出 GRANT、REVOKE 或 DENY 时,会产生 Audit Server Scope GDR 事件类。

Audit Server Object GDR 事件类 -- 只要 Microsoft SQL Server 中的任何用户针对服务器对象权限发出 GRANT、REVOKE 或 DENY,Audit Server Object GDR 事件类就会出现。

Audit Login 事件类 -- Audit Login 事件类指示用户已成功登录到 MicrosoftSQL Server。此类中的事件由新连接或从连接池中重用的连接触发。

Audit Logout 事件类 -- Audit Logout 事件类指示用户已注销 MicrosoftSQL Server。此类中的事件由新连接或从连接池中重用的连接触发。

Audit Login Failed 事件类 -- Audit Login Failed 事件类指明用户尝试登录到 MicrosoftSQL Server 但却失败了。此类中的事件由新连接或从连接池中重用的连接触发。

Audit Login Change Property 事件类 -- 当使用 sp_defaultdb 存储过程、sp_defaultlanguage 存储过程或 ALTER LOGIN 语句修改某个登录名的属性时,将发生 Audit Login Change Property 事件类。

Audit Login Change Password 事件类 -- 只要用户更改了其 MicrosoftSQL Server 登录密码,就会发生 Audit Login Change Password 事件类。

Audit Add Login to Server Role 事件类 -- 每当向固定服务器角色添加登录名或从其删除登录名时,都会发生 Audit Add Login to Server Role 事件类。此事件类用于 sp_addsrvrolemember 和 sp_dropsrvrolemember 存储过程。

Audit Add Member to DB Role 事件类 -- 在数据库角色中添加或删除登录名时,会发生 Audit Add Member to DB Role 事件类。此事件类与 sp_addrolemember、sp_changegroup 和 sp_droprolemember 存储过程一起使用。

Audit App Role Change Password 事件类 -- 每当更改了应用程序角色的密码时,都会发生 Audit App Role Change Password 事件类。

Audit Database Object Access 事件类 -- 在访问数据库对象(如架构)时,会发生 Audit Database Object Access 事件类。

Audit Schema Object Access 事件类 -- 当使用对象权限(例如 SELECT)时,将发生 Audit Schema Object Access 事件类。

Audit Backup/Restore 事件类 -- 每当发出备份或还原命令时,都会发生 Audit Backup/Restore 事件类。

Audit DBCC 事件类 -- 每当发出 DBCC 命令时,就会发生 Audit DBCC 事件类。

Audit Change Audit 事件类 -- 只要修改审核跟踪,就会发生 Audit Change Audit 事件类。

Audit Database Management 事件类 -- 创建、更改或删除数据库时,会发生 Audit Database Management 事件类。

Audit Database Object Management 事件类 -- 当对数据库对象(如架构)执行 CREATE、ALTER 或 DROP 语句时,会发生 Audit Database Object Management 事件类。

Audit Schema Object Management 事件类 -- Audit Schema Object Management 事件类会在创建、更改或删除服务器对象时发生。

Audit Server Principal Impersonation 事件类 -- 当服务器范围内存在模拟情况(如 EXECUTE AS )时发生 Audit Server Principal Impersonation 事件类。

Audit Database Principal Impersonation 事件类 -- Audit Database Principal Impersonation 事件类在数据库作用域中出现模拟(例如 EXECUTE AS 或 SETUSER)时出现。

Audit Server Object Take Ownership 事件类 -- 当服务器作用域内的对象改变了所有者时,会发生 Audit Server Object Take Ownership 事件类。

Audit Database Object Take Ownership 事件类 -- 当发生数据库作用域内的对象所有者的更改时,会发生 Audit Database Object Take Ownership 事件类。

Audit Schema Object Take Ownership 事件类 -- 检查更改架构对象(例如表、过程或函数)的所有者的权限时,会发生 Audit Schema Object Take Ownership 事件类。使用 ALTER AUTHORIZATION 语句指定对象所有者时会出现这种情况。

Audit Change Database Owner 事件类 -- 当您使用 ALTER AUTHORIZATION 语句更改数据库的所有者时,将发生 Audit Change Database Owner 事件类,并检查该操作所需的权限。

Audit Server Operation 事件类 -- 当执行诸如更改设置、资源、外部访问或授权等安全审核操作时,会发生 Audit Server Operation 事件类。

Audit Server Alter Trace 事件类 -- 对于检查 ALTER TRACE 权限的所有语句,都会发生 Audit Server Alter Trace 事件类。检查 ALTER TRACE 的语句包括用于创建或配置跟踪或者在跟踪上设置筛选器的语句。

Audit Server Object Management 事件类 -- 在对服务器对象执行 CREATE、ALTER 或 DROP 的情况下,会发生 Audit Server Object Management 事件类。

Audit Server Principal Management 事件类 -- 创建、更改或删除服务器主体时,会发生 Audit Server Principal Management 事件类。

Audit Database Operation 事件类 -- 当数据库中发生各种操作(如检查点操作或订阅查询通知)时,会发生 Audit Database Operation 事件类。

 

存储过程内部最后一部分是执行这个跟踪。最后,在存储过程外部,这个存储过程被标记为当SQL服务启动时自动执行。跟踪通过sp_trace_setstatus设置启动。

 

-- Set the trace status to start
exec sp_trace_setstatus @TraceID, 1
print 'INFO: Successfully created the trace with ID ' + CAST (@traceid AS varchar(10))
return (0)
GO
declare @rc int
-- Set the proc for autostart
exec @rc = sp_procoption 'dbo.sp_create_evaltrace', 'startup', 'on'
IF @rc != 0
BEGIN
print 'ERROR: sp_procoption returned ' + CAST(@rc AS NVARCHAR(10))
print 'ERROR: Could not set sp_create_evaltrace for autostart'
END
-- start the eval trace
exec dbo.sp_create_evaltrace
GO

 

Sp_trace_setstatus参数的解释:

0:停止跟踪

1:启动跟踪

2:关闭跟踪并从服务器删除

 

因为我们要在启动时运行存储过程,“Scan for startup procs”选项必须被激活。该选项默认是关闭的,但是当存储过程被标记为在启动时执行时被激活。所以一旦代码的最后行被执行,选项将被激活。也可以通过SSMS下的服务器属性—高级修改。

 

clip_image004

 

一旦上面的步骤都已完成,停止并重启SQL服务。当服务再次启动,将会看到在上面第二部分代码的目录中产生了一个跟踪文件。至此,CC的部署已经完成。

热门AI工具

更多
DeepSeek
DeepSeek

幻方量化公司旗下的开源大模型平台

豆包大模型
豆包大模型

字节跳动自主研发的一系列大型语言模型

通义千问
通义千问

阿里巴巴推出的全能AI助手

腾讯元宝
腾讯元宝

腾讯混元平台推出的AI助手

文心一言
文心一言

文心一言是百度开发的AI聊天机器人,通过对话可以生成各种形式的内容。

讯飞写作
讯飞写作

基于讯飞星火大模型的AI写作工具,可以快速生成新闻稿件、品宣文案、工作总结、心得体会等各种文文稿

即梦AI
即梦AI

一站式AI创作平台,免费AI图片和视频生成。

ChatGPT
ChatGPT

最最强大的AI聊天机器人程序,ChatGPT不单是聊天机器人,还能进行撰写邮件、视频脚本、文案、翻译、代码等任务。

相关专题

更多
C# ASP.NET Core微服务架构与API网关实践
C# ASP.NET Core微服务架构与API网关实践

本专题围绕 C# 在现代后端架构中的微服务实践展开,系统讲解基于 ASP.NET Core 构建可扩展服务体系的核心方法。内容涵盖服务拆分策略、RESTful API 设计、服务间通信、API 网关统一入口管理以及服务治理机制。通过真实项目案例,帮助开发者掌握构建高可用微服务系统的关键技术,提高系统的可扩展性与维护效率。

16

2026.03.11

Go高并发任务调度与Goroutine池化实践
Go高并发任务调度与Goroutine池化实践

本专题围绕 Go 语言在高并发任务处理场景中的实践展开,系统讲解 Goroutine 调度模型、Channel 通信机制以及并发控制策略。内容包括任务队列设计、Goroutine 池化管理、资源限制控制以及并发任务的性能优化方法。通过实际案例演示,帮助开发者构建稳定高效的 Go 并发任务处理系统,提高系统在高负载环境下的处理能力与稳定性。

23

2026.03.10

Kotlin Android模块化架构与组件化开发实践
Kotlin Android模块化架构与组件化开发实践

本专题围绕 Kotlin 在 Android 应用开发中的架构实践展开,重点讲解模块化设计与组件化开发的实现思路。内容包括项目模块拆分策略、公共组件封装、依赖管理优化、路由通信机制以及大型项目的工程化管理方法。通过真实项目案例分析,帮助开发者构建结构清晰、易扩展且维护成本低的 Android 应用架构体系,提升团队协作效率与项目迭代速度。

75

2026.03.09

JavaScript浏览器渲染机制与前端性能优化实践
JavaScript浏览器渲染机制与前端性能优化实践

本专题围绕 JavaScript 在浏览器中的执行与渲染机制展开,系统讲解 DOM 构建、CSSOM 解析、重排与重绘原理,以及关键渲染路径优化方法。内容涵盖事件循环机制、异步任务调度、资源加载优化、代码拆分与懒加载等性能优化策略。通过真实前端项目案例,帮助开发者理解浏览器底层工作原理,并掌握提升网页加载速度与交互体验的实用技巧。

95

2026.03.06

Rust内存安全机制与所有权模型深度实践
Rust内存安全机制与所有权模型深度实践

本专题围绕 Rust 语言核心特性展开,深入讲解所有权机制、借用规则、生命周期管理以及智能指针等关键概念。通过系统级开发案例,分析内存安全保障原理与零成本抽象优势,并结合并发场景讲解 Send 与 Sync 特性实现机制。帮助开发者真正理解 Rust 的设计哲学,掌握在高性能与安全性并重场景中的工程实践能力。

218

2026.03.05

PHP高性能API设计与Laravel服务架构实践
PHP高性能API设计与Laravel服务架构实践

本专题围绕 PHP 在现代 Web 后端开发中的高性能实践展开,重点讲解基于 Laravel 框架构建可扩展 API 服务的核心方法。内容涵盖路由与中间件机制、服务容器与依赖注入、接口版本管理、缓存策略设计以及队列异步处理方案。同时结合高并发场景,深入分析性能瓶颈定位与优化思路,帮助开发者构建稳定、高效、易维护的 PHP 后端服务体系。

420

2026.03.04

AI安装教程大全
AI安装教程大全

2026最全AI工具安装教程专题:包含各版本AI绘图、AI视频、智能办公软件的本地化部署手册。全篇零基础友好,附带最新模型下载地址、一键安装脚本及常见报错修复方案。每日更新,收藏这一篇就够了,让AI安装不再报错!

168

2026.03.04

Swift iOS架构设计与MVVM模式实战
Swift iOS架构设计与MVVM模式实战

本专题聚焦 Swift 在 iOS 应用架构设计中的实践,系统讲解 MVVM 模式的核心思想、数据绑定机制、模块拆分策略以及组件化开发方法。内容涵盖网络层封装、状态管理、依赖注入与性能优化技巧。通过完整项目案例,帮助开发者构建结构清晰、可维护性强的 iOS 应用架构体系。

222

2026.03.03

C++高性能网络编程与Reactor模型实践
C++高性能网络编程与Reactor模型实践

本专题围绕 C++ 在高性能网络服务开发中的应用展开,深入讲解 Socket 编程、多路复用机制、Reactor 模型设计原理以及线程池协作策略。内容涵盖 epoll 实现机制、内存管理优化、连接管理策略与高并发场景下的性能调优方法。通过构建高并发网络服务器实战案例,帮助开发者掌握 C++ 在底层系统与网络通信领域的核心技术。

33

2026.03.03

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Go语言实战之 GraphQL
Go语言实战之 GraphQL

共10课时 | 0.9万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号