zoukankan      html  css  js  c++  java
  • 国家信息系统安全技术系列标准解读(一)

    本文主要目录如下:

    1、概述

    1、1 背景

    1、2 信息系统安全等级

    1、3 信息系统面临的主要安全问题

    1、4 目的

    1、5 术语和定义

    2、数据库管理系统安全(SqlServer)

    2、1 身份鉴别

    2、2 数据加解密和完整性

    2、3 标记和访问控制

    2、4 数据审核审计

    3、应用软件系统安全

    3、1 身份鉴别

    3、2 数据加解密和完整性

    3、3 标记和访问控制

    3、4 数据审核审计

    4、参考文献

    1、概述

          随着国家对信息安全的高度重视,我们的客户对信息安全也越来越关切,我们在与客户交流时如何让客户认可我们的信息安全?我们一般都会直接跟客户讲一些我们技术上的信息安全解决方式,不过由于客户的水平所致,他们听不懂甚至可能不想听,所以怎么样去跟客户交流这个信息安全问题也是比较棘手的,最好的方式是有一种权威的标准解决方案,还好在这方面国家出具了一系列信息安全技术的标准文件,我们结合这些标准与自身行业结合去分析梳理出标准方案,再与客户去交流,基本上就能和客户达成一致,因为这是国家的标准!

         本文主要是根据国家制定的信息安全技术的一系列标准文件与行业应用结合去分析梳理出来的,国家出的标准一共30多个,本文的目的主要是:

    (1)由于国家的标准文件实在太多,我这里整理出来让大家对国家的标准有大致的了解;

    (2)结合某一行业应用去分析具体的技术解决方式,这样比较有针对性;

     1、1 背景

    在经济和信息全球化加速发展的前景下,电子政务逐渐成为各国政府发展经济、增强国际竞争力的“好帮手”。

    进入21世纪,电子政务的建设已经成为今后一个时期我国信息化工作的重点,政府先行,带动国民经济和社会发展信息化,同时加快政府职能的转变,提高行政质量和效率,增强政府监管和服务能力,促进社会监督,实施信息化带动工业化的发展战略,因此电子政务意义重大,电子政务的安全更是重中之重。

    为促进电子政务的信息安全发展,国务院、中办、各地政府都对电子政务信息系统提出明确的建设和规范要求。

    2006 年3 月24 日,国务院信息化工作办公室印发了《国家电子政务总体框架》,《框架》由服务与应用系统、信息资源、基础设施、法律法规与标准化体系、管理体制构成。

    《中华人民共和国计算机信息系统安全保护条例》(国务院令第147号)明确规定我国“计算机信息系统实行安全等级保护”。依据国务院147号令要求制订发布的强制性国家标准《计算机信息系统安全保护等级划分准则》(GB17859-1999)为计算机信息系统安全保护等级的划分奠定了技术基础。《国家信息化领导小组关于加强信息安全保障工作的意见》(中办发[2003]27号)明确指出实行信息安全等级保护,“要重点保护基础信息网络和关系国家安全、经济命脉、社会稳定等方面的重要信息系统,抓紧建立信息安全等级保护制度”。《关于信息安全等级保护工作的实施意见》(公通字[2004]66号)和《信息安全等级保护管理办法》(公通字[2007]43号)确定了实施信息安全等级保护制度的原则、工作职责划分、实施要求和实施计划,明确了开展信息安全等级保护工作的基本内容、工作流程、工作方法等。

    1、2 信息系统安全等级

    按照国家标准《计算机信息系统 安全等级保护划分准则》主要划分了5个等级:第一级:用户自主保护级;第二级:系统审计保护级;第三级:安全标记保护级;第四级:结构化保护级;第五级:访问验证保护级;

    我们只要做到第四级或第五级就可以了,本文主要是结合第四级结构化保护级,见下图,这也是整个系统安全建设内容。

    1、3 信息系统面临的主要安全问题

    如上图,操作系统安全问题咱们只需要了解一下就可以了,我们重点分析数据库和应用软件的安全。

    1、4 目的

    1)、建立适度化的等级保护建设成果,并达成政策与标准的合规性保障;

    2)、达到国务院《信息安全技术信息系统等级保护安全设计技术要求》和《信息系统安全等级保护基本要求》,并达到测评标准;

    3)、依托国务院《电子政务总体框架》在建设服务与应用系统、信息资源共享、基础设施、法律法规与标准化体系、管理体制的同时结合国家信息安全技术信息系统等级保护安全设计技术的要求进行合理规划管理,实现“两者皆符、融会贯通”的目标;

    1、5 术语和定义

    安全策略  Security policy

    有关管理、保护和发布敏感信息的法律、规定、和实施细则;

    数据完整性  Data integrity

    数据完整性泛指数据库中数据的正确性和一致性,包括实体完整性、参考完整性和用户定义完整性;

    信道  Channel

    系统内的信息传输路径

    操作系统安全  Security of operating system

    操作系统所存储、传输和处理的信息的保密性、完整性和可用性的表征;

    数据库管理系统安全  Security of database management system

    数据库管理系统所存储、传输和处理的信息的保密性、完整性和可用性的表征;

    应用软件系统  Application software system

    信息系统的重要组成部分,是指信息系统中对特定业务进行处理的软件系统;

    主体 Subject

    可以对其他实体施加动作的主动实体,如用户、进程、I/O设备等。

    客体 Object

    接受其他实体访问的被动实体,如文件、共享内存、管道等。

    控制策略 ControlStrategy

    主体对客体的操作行为集和约束条件集,如访问矩阵、访问控制表等。

    用户公开数据 user published data

    在应用软件系统中向所有用户公开的数据,该类数据的安全性受到破坏,将会对对公民、法人和其他组织的权益有一定影响,但不会危害国家安全、社会秩序、经济建设和公共利益。

    用户一般数据 user general data

    在应用软件系统中具有一般使用价值和保密程度,需要进行一定保护的单位内部的一般数据。该类数据的安全性受到破坏,将会对国家安全、社会秩序、经济建设和公共利益造成一定的损害。

    用户重要数据 user important data

    在应用软件系统中具有重要使用价值或保密程度,需要进行重点保护的单位的重要数据。该类数据的的安全性受到破坏,将会对国家安全、社会秩序、经济建设和公共利益造成较大损害。

    用户关键数据 user chief data

    在应用软件系统中具有很高使用价值或保密程度,需要进行特别保护的单位的关键数据。该类数据的的安全性受到破坏,将会对国家安全、社会秩序、经济建设和公共利益造成严重损害。

    用户核心数据 user kernel data

    在应用软件系统中具有最高使用价值或保密程度,需要进行绝对保护的单位的核心数据。该类数据的的安全性受到破坏,将会对国家安全、社会秩序、经济建设和公共利益造成特别严重损害。

    粗粒度:

    表示类别级,即仅考虑对象的类别(the type of object),不考虑对象的某个特定实例。比如,用户管理中,创建、删除,对所有的用户都一视同仁,并不区分操作的具体对象实例。

    细粒度:

    表示实例级,即需要考虑具体对象的实例(the instance of object),当然,细粒度是在考虑粗粒度的对象类别之后才再考虑特定实例。比如,合同管理中,列表、删除,需要区分该合同实例是否为当前用户所创建。

    信息技术安全评价通用准则(The Common Criteria for Information Technology security Evaluation,CC )简称CC标准

    1993年6月,美国政府同加拿大及欧共体共同起草单一的通用准则(CC标准)并将其推到国际标准。制定CC标准的目的是建立一个各国都能接受的通用的信息安全产品和系统的安全性评估准则。

    2、数据库管理系统安全(SqlServer)

    数据库管理系统是信息系统的重要组成部分,特别是对于存储和管理数据资源的数据服务器是必不可少的。数据库管理系统的主要功能是对数据信息进行结构化组织与管理,并提供方便的检索和使用。当前,常见的数据库结构为关系模式,多以表结构形式表示。数据库管理系统安全就是要对数据库中存储的数据信息进行安全保护,使其免遭由于人为的和自然的原因所带来的泄露、破坏和不可用的情况。

    大多数的数据库管理系统是以操作系统文件作为建库的基础。所以操作系统安全、特别是文件系统的安全便成为数据库管理系统安全的基础,当然还有安全的硬件环境(即物理安全)也是必不可少的)。这些显然不在数据库管理系统安全之列。数据库管理系统的安全既要考虑数据库管理系统的安全运行保护,也要考虑对数据库管理系统中所存储、传输和处理的数据信息的保护(包括以库结构形式存储的用户数据信息和以其它形式存储的由数据库管理系统使用的数据信息)。由于攻击和威胁既可能是针对数据库管理系统运行的,也可能是针对数据库管理系统中所存储、传输和处理的数据信息的保密性、完整性和可用性的,所以对数据库管理系统的安全保护的功能要求,需要从系统安全运行和信息安全保护两方面综合进行考虑。

    本部分主要从身份鉴别、安全策略、标记和访问控制、安全审计、数据保密及完整性等方面对数据库管理系统的安全功能要求进行更加具体的描述。

    2、1 身份鉴别

    2、1、1 国家《数据库管理系统安全技术要求》规定

    l  应对进入数据库管理系统的用户进行身份标识,按以下要求设计:

    ——凡需进入数据库管理系统的用户,应先进行标识(建立账号);

    ——数据库管理系统用户标识一般使用用户名和用户标识符(UID),并在数据库管理系统的整个生存周期实现用户的唯一性标识,以及用户名或别名、UID等之间的一致性;

    l  应对登录到数据库管理系统的用户身份的真实性进行鉴别,按以下要求设计:

    ——采用强化管理的口令和/或基于令牌的动态口令和/或生物特征鉴别和/或数字证书等相结合的方式,采用多鉴别机制,实现对用户身份的真实性鉴别,并在每次用户登录系统时和重新连接时进行鉴别;

    ——鉴别信息应是不可见的,并在存储和传输时按GB/T20273—2006中6.4.3.8的要求,用加密方法进行安全保护;

    ——通过对不成功的鉴别尝试的值(包括尝试次数和时间的阈值)进行预先定义,并明确规定达到该值时应采取的措施来实现鉴别失败的处理。

    2、1、2 SqlServer2008身份鉴别机制解决方式

    我们可以简单的用一张图来表示,如下图:

    身份验证模式:包括Windows 身份验证模式和混合模式。Windows 身份验证模式会启用 Windows 身份验证并禁用 SQL Server 身份验证。混合模式会同时启用 Windows 身份验证和 SQL Server 身份验证。Windows 身份验证始终可用,并且无法禁用;

    通过 SQL Server Authentication进行连接:通过 SQL Server 身份验证进行连接的用户每次连接时必须提供其凭据(登录名和密码)。它利用 SQL 生成的证书支持通道的加密。管理员不必获取或安装有效的 SLL 证书,以确保 SQL 凭证流经的通道是安全的。由于 SQL Server 2008 自动生成这些证书,因此在传送登录数据包时,默认情形下它将自动加密通道。当使用 SQL Server 身份验证时,必须为所有 SQL Server 帐户设置强密码;

    3种密码策略:用户在下次登录时必须更改密码、强制密码过期、对 SQL Server 登录名强制实施计算机的 Windows 密码策略;

    2、2 数据加解密和完整性

    2、2、1 国家《数据库管理系统安全技术要求》规定

    存储数据保密性

    数据库管理系统应确保数据库中存储的用户数据的保密性。

    传输数据保密性

    数据库管理系统应确保数据库中传输的用户数据的保密性。

    客体重用

    数据库管理系统大量使用的动态资源,多由操作系统分配。实现客体安全重用的操作系统和数据库管理系统应满足以下要求:

    a) 数据库管理系统提出资源分配要求,如创建新库,数据库设备初始化等,所得到的资源不应包含该客体以前的任何信息内容;

    b) 数据库管理系统提出资源索回要求,应确保这些资源中的全部信息被清除;

    c) 数据库管理系统要求创建新的数据库用户进程,应确保分配给每个进程的资源不包含残留信息;

    d) 数据库管理系统应确保已经被删除或被释放的信息不再是可用的。

    数据完整性

    a) 在对数据进行访问操作时,检查以库结构形式存储在数据库中的用户数据是否出现完整性错误;

    b) 对数据库管理系统内部传输的用户数据,如进程间的通信,应提供保证数据完整性的功能;

    c) 对数据库管理系统中处理的用户数据,要求实现实体完整性、参照完整性和用户定义完整性,按回退的要求设计相应的SSODB安全功能模块,进行异常情况的事务回退,以确保数据的完整性。

    2、2、2 SqlServer2008数据加解密和完整性解决方式

    加密层次结构

    SQL Server 2008 使用对称密钥、非对称密钥和数字证书,为各种类型的数据加密提供了丰富的支持。最出色的是,它为您管理密钥,而密钥管理是迄今为止加密中最难的部分。保密是一件很难的事情。

    管理员可能至少需要管理上图所示层次结构中的上级密钥。数据库管理员需要理解服务器级的服务主密钥和数据库级的数据库主密钥。每一个密钥都保护其子密钥,子密钥又保护其子密钥,从树形结构图依次向下。密码保护对称密钥或证书时例外,这是 SQL Server 使用户管理自己的密钥,以及负责保密密钥的方法。

    加密敏感数据

    透明数据加密

    (1)通过安全性增强型数据库加密密钥 (DEK),以透明方式在数据库层次结构执行所有加密,让开发需要加密数据的应用程序复杂度降低。
    (2)SQL Server 2008 R2可以对整个数据库、数据文件和日志文件进行加密,而不需要改动应用程序,这个就非常爽了,实现这个我们不需要什么成本就可以解决安全问题,而且可以忽悠客户

    当一个用户数据库可用且已启用TDE时,在写入到磁盘时在页级实现加密。在数据页读入内存时解密。如果数据库文件或数据库备份被盗,没有用来加密的原始证书将无法访问。这几乎是SQL Server2008安全选项中最激动人心的功能了,具体怎么用可以参考以下链接:http://www.cnblogs.com/bhtfg538/archive/2010/05/11/1732740.html
    使用透明数据加密的理由

    透明数据加密应用场景

    数据完整性

    数据库完整性约束是SQL Server2008提供的自动保持数据库完整性的约束规则,用于限制字段的值域。约束是在数据类型限制的基础上再对输入的数据进一步限制。完整性约束主要是指通过逻辑表达式来定义列的有效值,通过建立表间关系确保一个表中的数据改动不会使另一个表中的数据失效。
    SQL Server 2008为了保证数据完整性共提供了6种约束:NOT NULL约束、主键约束、外键约束、唯一性约束、检查约束、默认约束。

    2、3 标记和访问控制

    2、3、1 国家《数据库管理系统安全技术要求》规定

    自主访问控制

    l  允许命名用户以用户的身份规定并控制对客体的访问,并阻止非授权用户对客体的访问;

    用目录表访问控制、存取控制表访问控制、能力表访问控制等访问控制表访问控制确定主体对客体的访问权限;

    l  自主访问控制的粒度应是用户级和表级和/或记录、字段级;

    l  自主访问控制应与身份鉴别和审计相结合,通过确认用户身份的真实性和记录用户的各种成功的或不成功的访问,使用户对自己的行为承担明确的责任;

    l  应限制授权传播,要求对不可传播的授权进行明确定义提供支持,由系统自动检查并限制这些授权的传播。

    标记

    l  数据库用户的敏感标记,应在用户建立注册账户后由系统安全员通过SSODB所提供的安全员界面操作进行标记;

    l  数据库客体的敏感标记,应在数据输入到由SSODB安全功能所控制的范围内时以默认方式生成或由安全员通过操作界面进行标记;

    l  将标记扩展到数据库管理系统中的所有主体与客体;对于从SSODB控制范围外输入的未标记数据,应进行默认标记或由系统安全员进行标记;对于输出到SSODB控制范围外的数据,如打印输出的数据,应明显地标明该数据的安全标记。

    强制访问控制

    l  数据库用户的敏感标记,应在用户建立注册账户后由系统安全员通过SSODB所提供的安全员界面操作进行标记;

    l  数据库客体的敏感标记,应在数据输入到由SSODB安全功能所控制的范围内时以默认方式生成或由安全员通过操作界面进行标记;

    l  将标记扩展到数据库管理系统中的所有主体与客体;对于从SSODB控制范围外输入的未标记数据,应进行默认标记或由系统安全员进行标记;对于输出到SSODB控制范围外的数据,如打印输出的数据,应明显地标明该数据的安全标记。

    2、3、2 SqlServer2008标记和访问控制解决方式

    SQL Server 包含为访问系统的用户、服务及其他帐户配置安全性的各种方法和工具。

    授权

    在这个方面,SQL Server 2008 和 SQL Server 2005 比旧版更灵活。权限的粒度更细,这样即可授予必要的特定权限,而不是授予固定角色的成员,以免其权限超出需要。现在有了更多的实体和安全实体,因此可为其分配粒度更细的权限。

    除了增强对用户数据的保护,与特定安全实体有关的结构信息和元数据现在只能供拥有访问该安全实体权限的主体使用。

    进一步而言,可以利用某种机制创建定制的权限集,该机制允许定义可运行存储过程的安全上下文。此外,SQL Agent 利用灵活地代理方案允许工作步骤运行以及访问必要的资源。所有这些特性都使得 SQL Server 更加灵活、更加安全。

    细粒度权限

    SQL Server 2008 和 SQL Server 2005 比旧版安全的诸多方面之一就是改进了权限的粒度。以前,管理员必须授予用户固定服务器角色或固定数据库角色的成员,以执行特定的操作,但这些角色的权限通常会远远超出简单任务的需要。“最少特权”的原则要求用户只能拥有完成工作所需的最低权限,因此为达到小目标而分配用户高级角色就违背了该原则。

    角色和权限

    要了解可在 SQL Server 中可用的权限数量,可以调用 fn_builtin_permissions 系统函数:

    SELECT * FROM sys.fn_builtin_permissions(default)

    下面是 SQL Server 2005 中的新权限类型:

    •  CONTROL。授予与所有者类似的权限,可有效地将所有已定义的权限授予对象及其范围内的所有对象,包括能够授予其他被授予者任何权限。CONTROL SERVER 相当于授予 sysadmin 特权。

    •   ALTER。授予权限以更改安全实体对象的任何属性,但修改所有权除外。从本质上讲,它将为同一范围内的 ALTER、CREATE 或 DROP 安全实体对象授予权限。例如,为数据库授予 ALTER 权限就可以修改它的表。

    元数据安全

    细粒度权限架构的一个优点就是 SQL Server不仅保护元数据,也保护数据。在 SQL Server 2005之前,能够访问数据库的用户可以看到数据库中所有对象的元数据,无论该用户是否可以访问其中的数据或是否能够执行存储过程。

    SQL Server 2008 仔细检查数据库中主体所拥有的各种权限,仅当主体具有所有者身份或拥有对象的某些权限时,才会显示该对象的元数据。还有一种 VIEW DEFINITION 权限,即使没有该对象的其他权限,利用它也能查看元数据信息。

    2、4 数据审核审计

    2、4、1 国家《数据库管理系统安全技术要求》规定

    l  安全审计功能的设计应与用户标识与鉴别、自主访问控制、标记与强制访问控制等安全功能的设计紧密结合;

    l  提供审计日志、实时报警生成和违例进程终止,潜在侵害分析、基于异常检测和简单攻击探测,基本审计查阅、有限审计查阅和可选审计查阅,安全审计事件选择,以及受保护的审计踪迹存储、审计数据的可用性确保和防止审计数据丢失的措施等功能;

    l  能够生成、维护及保护审计过程,使其免遭修改、非法访问及破坏,特别要保护审计数据,要严格限制未经授权的用户访问;

    l  能够创建并维护一个对受保护客体访问的审计跟踪,保护审计记录不被未授权的访问、修改和破坏;

    l  对网络环境下运行的数据库管理系统,应建立统一管理和控制的审计机制。

    2.4.2 SqlServer2008数据审核审计解决方式

    SQL Server 2008引入了SQL Server审核的新特性。SQL Server数据库的审核涉及到数据库的跟踪和日志事件的记录。数据库管理员可以利用这个特性,来执行一项战略,审核 SQL Server 系统上的活动和更改,以满足特定风险的SQL Server 2008数据库的需求。

    1)、数据库审核规范

    “数据库审核规范”对象也属于SQL Server审核。针对每个审核,DBA可以为每个 SQL Server 数据库创建一个数据库审核规范。

    数据库审核规范可收集由扩展事件功能引发的数据库级审核操作。您可以向数据库审核规范添加审核操作组或审核事件。“审核事件”是可以由 SQL Server 引擎审核的原子操作;“审核操作组”是预定义的操作组。它们都位于 SQL Server 数据库作用域。这些操作将发送到审核,审核将它们记录到目标中,,目标可以是文件、Windows 安全事件日志或 Windows 应用程序事件日志,如图所示。管理员必须定期查看和归档这些日志,以确保目标具有足够的空间来写入更多记录。属于db_owner角色的用户可以修改数据库中任何的审核规范。

    2)、如何使用SQL Server审核功能

      DBA可以使用SQL Server Management Studio ( SSMS )或Transact-SQL来定义审核。默认情况下, SQL Server不会启用审核功能,因此我们创建好审核功能后,需要手动启用。

      您可以使用Windows中的事件查看器阅读Windows安全事件日志或者Windows应用程序事件日志。您也可以使用日志文件查看工具在SQL Server Management Studio或内置的FN_READ_AUDIT_FILE功能在SQL Server中读取目标文件。

      创建和使用的审核功能的过程大体如下:

      1、创建一个审核,并定义审核信息需要捕获的目标;

      2、创建服务器审核规范或数据库审核规范;

      3、启用审核规范。SQL Server创建审核时,默认是不启用审核规范的;

      4、使用Windows事件查看器,查看日志文件或者使用内置FN_READ_AUDIT_FILE功能,分析所捕获的审核事件。

    审核功能具体使用参见:http://database.ctocio.com.cn/tips/218/8455718.shtml

  • 相关阅读:
    从 Qt 的 delete 说开来
    Qt信号槽的一些事
    Qt 线程基础(QThread、QtConcurrent等)
    QThread使用——关于run和movetoThread的区别
    重点:怎样正确的使用QThread类(注:包括推荐使用QThread线程的新方法QObject::moveToThread)
    重要:C/C++变量的自动初始化
    C++中基类的析构函数为什么要用virtual虚析构函数
    如何打印Qt中的枚举所对应的字符串
    用route命令解决多出口的问题
    C/C++预处理指令
  • 原文地址:https://www.cnblogs.com/limengqiang/p/SystemSafe.html
Copyright © 2011-2022 走看看