第4章 数据库安全性——复习笔记全性——复习笔记

本文涉及的产品
密钥管理服务KMS,1000个密钥,100个凭据,1个月
简介: 第4章 数据库安全性——复习笔记

第4章 数据库安全性


复习笔记


一、数据库安全性概述


数据库的安全性是指保护数据库以防止不合法使用所造成的数据泄露、更改或破坏。


01数据库的不安全因素


1)非授权用户对数据库的恶意存取和破坏;

2)数据库中重要或敏感的数据被泄露;

3)安全环境的脆弱性数据库的安全性与计算机系统的安全性。


02安全标准简介


计算机以及信息安全技术领域最有影响的安全标准是TCSECCC这两个标准。

1)安全标准发展

TCSEC 是指 1985年美国国防部正式颁布的《可信计算机系统评估准则》(Trusted Computer System Evaluation Criteria, TCSEC)

CTCPECFCTCSECTTSEC的发起了CC项目,他们建立了专门的委员会来开发CC通用准则。

TCSEC又称桔皮书,TDITCSEC扩展到数据库管理系统。TDI中定义了数据库管理系统的设计与实现中需满足和用以进行安全性级别评估的标准。


(2)TCSEC/TDI

TCSEC/TDI 从以下四个方面来描述安全性级别划分的指标:安全策略、责任、保证和文档。每个方面又细分为若干项。

TCSECT/TDI将系统划分为四组七个等级,依次是DCC1C2)、BB1B2B3)、AA1),按系统可靠或可信程度逐渐增高,如表4-1所示。

4-1 TCSEC/TD1安全级别划分

安全级别

定义

A1

验证设计(verified design)

B3

安全域(security domains)

B2

结构化保护(structural protection)

B1

标记安全保护(labeled security protection)

C2

受控的存取保护(controlled access protection)

C1

自主安全保护(discretionary security protection)

D

最小保护(minimal protection)


D级是最低级别。

Cl 级只提供了非常初级的自主安全保护,能够实现对用户和数据的分离,进行自主存取控制(DAC),保护或限制用户权限的传播。

C2级实际是安全产品的最低档次,提供受控的存取保护,即将C1级的DAC进一步细化,以个人身份注册负责,并实施审计和资源隔离。

B1 级标记安全保护。对系统的数据加以标记,并对标记的主体和客体实施强制存取控制(MAC)以及审计等安全机制。B1 级别的产品才认为是真正意义上的安全产品,满足此级别的产品前一般多冠以安全Security)或可信的Trusted)字样,作为区别于普通产品的安全产品出售。

B2级结构化保护。建立形式化的安全策略模型并对系统内的所有主体和客体实施DACMAC

B3级安全域。该级的TCB必须满足访问监控器的要求,审计跟踪能力更强,并提供系统恢复过程。

A1级验证设计,即提供B3级保护的同时给出系统的形式化设计说明和验证以确信各安全保护真正实现。


3CC标准

CC提出了目前国际上公认的表述信息技术安全性的结构,即把对信息产品的安全要求分为安全功能要求和安全保证要求。

安全功能要求用以规范产品和系统的安全行为,安全保证要求解决如何正确有效地实施这些功能。安全功能要求和安全保证要求都以-子类-组件的结构表述,组件是安全要求的最小构件块。

CC的文本组成包括三部分:

a.简介和一般模型

介绍CC中的有关术语、基本概念和一般模型以及与评估有关的一些框架。

b.安全功能要求

列出了一系列类、子类和组件。由11大类、66个子类和135个组件构成。

c.安全保证要求

评估保证级(Evaluation Assurance LevelEAL

EALlEAL7共分为7级,按保证程度逐渐增高。如表4-2所示。

4-2 CC评估保证级(EAL)的划分

评估保证级

定义

TCSEC安全级别(近似相当)

EAL1

功能测试(functionally tested)


EAL2

结构测试(structurally tested)

C1

EAL3

系统地测试和检查(methodically tested and   checked)

C2

EAL4

系统地设计、测试和复查(methodically   designed,tested and reviewed)

B1

EAL5

半形式化设计和测试(semiformally designed and   tested)

B2

EAL6

半形式化验证的设计和测试(semiformally verified   designed and tested)

B3

EAL7

形式化验证的设计和测试(formally verified design   and tested)

A1


二、数据库安全性控制


在一般计算机系统中,安全措施是一级一级层层设置的。

在图 4-1所示的安全模型中,用户要求进入计算机系统时,系统首先根据输入的用户标识进行用户身份鉴定,只有合法的用户才准许进入计算机系统。对已进入系统的用户,DBMS还要进行存取控制,只允许用户执行合法操作。

96eb2aa986179c7784dece8ef1c12f3d_640_wxfrom=5&wx_lazy=1&wx_co=1.jpg

4-1 计算机系统的安全模型


01用户身份鉴别


用户身份鉴别是数据库管理系统提供的最外层安全保护措施。每个用户在系统中都有一个用户标识。每个用户标识由用户名(user name)和用户标识号(UID)两部分组成。UID在系统的整个生命周期内是唯一的。每次用户要求进入系统时,由系统进行核对,通过鉴定后才提供使用数据库管理系统的权限。

用户身份鉴别常用方法有:

1)静态口令鉴别

静态口令一般由用户自己设定,鉴别时只要按要求输入正确的口令,系统将允许用户使用数据库管理系统。


2)动态口令鉴别

这种方式的口令是动态变化的,每次鉴别时均需使用动态产生的新口令登录数据库管理系统,即采用一次一密的方法。


3)生物特征鉴别

这种方式通过采用图像处理和模式识别等技术实现了基于生物特征的认证,与传统的口令鉴别相比,无疑产生了质的飞跃,安全性较高。


4)智能卡鉴别

智能卡是一种不可复制的硬件,内置集成电路的芯片,具有硬件加密功能。智能卡由用户随身携带,登录数据库管理系统时用户将智能卡插入专用的读卡器进行身份验证。


02存取控制


数据库安全最重要的一点就是确保只授权给有资格的用户访问数据库的权限,同时令所有未被授权的人员无法接近数据,这主要通过数据库系统的存取控制机制实现。


1DBMS的安全子系统存取控制机制主要包括两部分:

定义用户权限,并将用户权限登记到数据字典中

用户对某一数据对象的操作权力称为权限。某个用户应该具有何种权限是个管理问题和政策问题而不是技术问题。DBMS的功能是保证这些决定的执行。

合法权限检查

每当用户发出存取数据库的操作请求后,DBMS查找数据字典,根据安全规则进行合法权限检查,若用户的操作请求超出了定义的权限,系统将拒绝执行此操作。

用户权限定义和合法权检查机制一起组成了DBMS的安全子系统。


2DACMAC

大型的DBMS一般都支持C2级中的自主存取控制(简记为DAC),有些DBMS同时还支持B1级中的强制存取控制(简记为MAC)。

这两类方法的简单定义是:

DAC

在自主存取控制方法中,用户对于不同的数据库对象有不同的存取权限,不同的用户对同一对象也有不同的权限,而且用户还可将其拥有的存取权限转授给其他用户。因此自主存取控制非常灵活。

MAC

在强制存取控制方法中,每一个数据库对象被标以一定的密级,每一个用户也被授予某一个级别的许可证。对于任意一个对象,只有具有合法许可证的用户才可以存取。强制存取控制因此相对比较严格。


03自主存取控制方法


SQL标准对自主存取控制提供支持,主要通过SQLGRANT语句和REVOKE语句来实现。用户权限是由两个要素组成的:数据库对象和操作类型。在数据库系统中,定义存取权限称为授权(authorization)。

在非关系系统中,用户只能对数据进行操作,存取控制的数据库对象也仅限于数据本身。在关系数据库系统中,存取控制的对象不仅有数据本身(基本表中的数据、属性列上的数据),还有数据库模式(包括数据库、基本表、视图和索引的创建等),表4-3列出了主要的存取权限。

4-3 关系数据库系统中的存取权限

对象类型

对象

操作类型

数据库模式

模式

create   schema

基本表

create   tablealter table

视图

create   view

索引

create   index

数据

基本表和视图

selectinsertupdatedeletereferencesall privileges

属性列

selectinsertupdatereferencesall privileges


04授权:授予与收回


grant语句向用户授予权限,revoke语句收回授予的权限。

(1) grant

grant语句的一般格式为:

grant<权限>[<权限>]…

on<对象类型><对象名>[<对象类型><对象名>]…

to<用户>[<用户>]…

[with grant option];

其语义为:将对指定操作对象的指定操作权限授予指定的用户。发出该grant语句的可以是DBA,也可以是该数据库对象创建者(即属主Owner),也可以是已经拥有该权限的用户。接受权限的用户可以是一个或多个具体用户,也可以是PUBLIC,即全体用户。

如果指定了with grant option子句,则获得某种权限的用户还可以把这种权限再授予其他的用户。如果没有指定with grant option 子句,则获得某种权限的用户只能使用该权限,不能传播该权限。


(2)revoke

授予用户的权限可以由数据库管理员或其他授权者用revoke语句收回,revoke语句的一般格式为:

revoke <权限>[<权限>]…

on<对象类型><对象名>[<对象类型><对象名>]…

from<用户>[<用户>]…

[cascade|restrict]


数据库管理员拥有对数据库中所有对象的所有权限,并可以根据实际情况将不同的权限授予不同的用户。用户对自己建立的基本表和视图拥有全部的操作权限,并且可以用grant语句把其中某些权限授予其他用户。所有授予出去的权力在必要时又都可以用revoke语句收回。


3)创建数据库模式的权限

grant revoke语句向用户授予或收回对数据的操作权限。对创建数据库模式一类的数据库对象的授权则由数据库管理员在创建用户时实现。

create user语句一般格式如下:

create user <username>[with][DBA|RESOURCE|CONNECT];

create user 语句说明如下:

只有系统的超级用户才有权创建一个新的数据库用户。

新创建的数据库用户有三种权限:CONNECTRESOURCEDBA

a. create user命令中如果没有指定创建的新用户的权限,默认该用户拥有 CONNECT 权限。拥有CONNECT权限的用户不能创建新用户,不能创建模式,也不能创建基本表,只能登录数据库。然后由DBA或其他用户授予他应有的权限,根据获得的授权情况他可以对数据库对象进行权限范围内的操作。

b.拥有 RESOURCE 权限的用户能创建基本表和视图,成为所创建对象的属主。但是不能创建模式,不能创建新的用户。数据库对象的属主可以使用grant语句把该对象上的存取权限授予其他用户。

c.拥有DBA权限的用户是系统中的超级用户,可以创建新的用户、创建模式、创建基本表和视图等;DBA 拥有对所有数据库对象的存取权限,还可以把这些权限授予一般用户。

以上说明可以用表4-4来总结。

4-4 权限与可执行的操作对照表

拥有的权限

可否执行的操作

create   user

create   schema

create   table

登录数据库,执行数据查询和操纵

DBA

可以

可以

可以

可以

RESOURCE

不可以

不可以

可以

可以

CONNECT

不可以

不可以

不可以

可以,但必须拥有相应权限


create user语句不是SQL标准,因此不同的关系数据库管理系统的语法和内容相差甚远。


05数据库角色


数据库角色是被命名的一组与数据库操作相关的权限,角色是权限的集合。在SQL中用create role语句创建角色,用grant语句给角色授权,用revoke语句收回授予角色的权限。


1)角色创建

创建角色的SQL语句格式是"create role<角色名>"

刚刚创建的角色是空的,没有任何内容。


2)角色授权

角色授权的SQL语句格式是:

grant<权限>[<权限>]…

on<对象类型>对象名

to<角色>[<角色>]…

DBA和用户可以利用grant语句将权限授予某一个或几个角色。


3)将一个角色授予其他的角色或用户

将角色授权给其他角色或用户的SQL语句格式是:

grant<角色1>[<角色2>]…

to<角色3>[<用户1>]…

[with admin option]

该语句把角色授予某用户,或授予另一个角色。这样,一个角色(角色3)所拥有的权限就是授予它的全部角色(角色1和角色2)所包含的权限的总和。

一个角色包含的权限包括直接授予这个角色的全部权限加上其他角色授予这个角色的全部权限。


4)角色权限的收回

回收角色权限的SQL语句格式是:

revoke<权限>[<权限>]…

on<对象类型><对象名>

from<角色>[<角色>]…

用户可以回收角色的权限,从而修改角色拥有的权限。

revoke动作的执行者或者是角色的创建者,或者拥有在这个(些)角色上的admin option


06强制存取控制方法


自主存取控制(MAC)能够通过授权机制有效地控制对敏感数据的存取。强制存取控制是指系统为保证更高程度的安全性,按照TDL/TCSEC标准中安全策略的要求所采取的强制存取检查手段。


1MAC中的主客体

MAC 中,DBMS 所管理的全部实体被分为主体和客体两大类。对于主体和客体,DBMS为它们每个实例(值)指派一个敏感度标记(Label)。

主体

主体是系统中的活动实体,既包括 DBMS 所管理的实际用户,也包括代表用户的各进程。主体的敏感度标记称为许可证级别。

客体

客体是系统中的被动实体,是受主体操纵的,包括文件、基本表、索引、视图等。客体的敏感度标记称为密级。

MAC机制就是通过对比主体的Label和客体的Label,最终确定主体是否能够存取客体。


2)存取规则

当某一用户(或某一主体)以标记Label注册入系统时,系统要求他对任何客体的存取必须遵循如下规则:

仅当主体的许可证级别大于或等于客体的密级时,该主体才能读取相应的客体。

仅当主体的许可证级别等于客体的密级时,该主体才能写相应的客体。

强制存取控制(MAC)是对数据本身进行密级标记,无论数据如何复制,标记与数据是一个不可分的整体,只有符合密级标记要求的用户才可以操纵数据,从而提供了更高级别的安全性。


3MACDAC的联系

较高安全性级别提供的安全保护要包含较低级别的所有保护,因此在实现MAC时要首先实现DAC,即DAC MAC共同构成DBMS的安全机制,如图4-2所示。

系统首先进行DAC检查,对通过DAC检查的允许存取的数据库对象再由系统自动进行MAC检查,只有通过MAC检查的数据库对象方可存取。

c1132dc94e2b20249bc682a99d09bdf8_640_wxfrom=5&wx_lazy=1&wx_co=1.jpg

4-2 DACMAC安全检查示意图


三、视图机制


根据不同的用户定义不同的视图,把数据对象限制在一定的范围内,通过视图机制把要保密的数据对无权存取的用户隐藏起来,从而自动地对数据提供一定程度的安全保护。

视图机制间接地实现支持存取谓词的用户权限定义。


四、审计


01定义


审计功能把用户对数据库的所有操作自动记录下来放入审计目志(audit log)中。审计员可以利用审计日志监控数据库中的各种行为,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间和内容等。


02审计事件


1)服务器事件

审计数据库服务器发生的事件,包含数据库服务器的启动、停止、数据库服务器配置文件的重新加载。


2)系统权限

对系统拥有的结构或模式对象进行操作的审计,要求该操作的权限是通过系统权限获得的。


3)语句事件

SQL语句,如 DDLDMLDQLData Query Language,数据查询语言)及DCL语句的审计。


4)模式对象事件

对特定模式对象上进行的SELECTDML操作的审计。


03审计功能


1)基本功能。

2)提供多套审计规则。

3)提供审计分析和报表功能。

4)审计日志管理功能。

5)系统提供查询审计设置及审计记录信息的专门视图。


04audit语句和noaudit语句


audit语句用来设置审计功能,noaudit语句则取消审计功能。


05分类


1)用户级审计

用户级审计是任何用户可设置的审计,主要是用户针对自己创建的数据库表或视图进行审计,记录所有用户对这些表或视图的一切成功和(或)不成功的访问要求以及各种类型的SOL操作。


2)系统级审计

系统级审计只能由数据库管理员设置,用以监测成功或失败的登录要求、监测授权和收回操作以及其他数据库级权限下的操作。


五、数据加密


01定义


数据加密是防止数据库数据在存储和传输中失密的有效手段。加密的基本思想是根据一定的算法将原始数据-明文(plain text)变换为不可直接识别的格式-密文(cipher text),从而使得不知道解密算法的人无法获知数据的内容。


02分类


1)存储加密

对于存储加密,一般提供透明和非透明两种存储加密方式。透明存储加密是内核级加密保护方式,对用户完全透明;非透明存储加密则是通过多个加密函数实现的。


2)传输加密

链路加密

链路加密对传输数据在链路层进行加密,它的传输信息由报头和报文两部分组成,前者是路由选择信息,而后者是传送的数据信息。这种方式对报文和报头均加密。

端到端加密

端到端加密对传输数据在发送端加密,接收端解密。它只加密报文,不加密报头。


3)通信加密步骤

确认通信双方端点的可靠性

协商加密算法和密钥

可信数据传输


六、其他安全性保护


01隐蔽信道


隐蔽信道(covert channal)处理内容是强制存取控制未解决的问题。


02数据隐私保护


数据隐私是控制不愿被他人知道或他人不便知道的个人数据的能力。数据隐私范围很广,涉及数据管理中的数据收集、数据存储、数据处理和数据发布等各个阶段。


相关文章
|
2月前
|
SQL NoSQL 数据库
Cassandra数据库与Cql实战笔记
Cassandra数据库与Cql实战笔记
42 1
Cassandra数据库与Cql实战笔记
|
2月前
|
存储 数据库 数据库管理
数据库事务安全性控制如何实现呢
【10月更文挑战第15天】数据库事务安全性控制如何实现呢
|
2月前
|
存储 数据库 数据库管理
什么是数据库事务安全性控制
【10月更文挑战第15天】什么是数据库事务安全性控制
|
2月前
|
供应链 数据库
数据库事务安全性控制有什么应用场景吗
【10月更文挑战第15天】数据库事务安全性控制有什么应用场景吗
ly~
|
2月前
|
存储 监控 安全
如何评估云数据库的安全性?
评估云数据库安全性需关注基础架构与物理安全、网络基础设施、电力与冷却系统;访问控制与身份验证,包括多因素身份验证、基于角色的访问控制、身份验证强度;数据加密,涉及传输加密、存储加密、密钥管理;备份与恢复,涵盖备份策略、恢复测试、异地备份;安全审计与监控,如审计日志、实时监控、漏洞扫描与渗透测试;合规性,包括法规遵循、认证与合规证明;以及云服务提供商的信誉与技术支持。
ly~
104 4
ly~
|
2月前
|
存储 安全 网络安全
云数据库的安全性如何保障?
云数据库的安全性可通过多种方式保障,包括多因素身份验证、基于角色的访问控制及最小权限原则,确保仅有授权用户能访问所需数据;采用SSL/TLS加密传输和存储数据,加强密钥管理,防止数据泄露;定期备份数据并进行异地存储与恢复演练,确保数据完整性;通过审计日志、实时监控及安全分析,及时发现并应对潜在威胁;利用防火墙、入侵检测系统和VPN保护网络安全;选择信誉良好的云服务提供商,确保数据隔离及定期安全更新。
ly~
255 1
|
3月前
|
SQL 关系型数据库 MySQL
学成在线笔记+踩坑(3)——【内容模块】课程分类查询、课程增改删、课程计划增删改查,统一异常处理+JSR303校验
课程分类查询、课程新增、统一异常处理、统一封装结果类、JSR303校验、修改课程、查询课程计划、新增/修改课程计划
学成在线笔记+踩坑(3)——【内容模块】课程分类查询、课程增改删、课程计划增删改查,统一异常处理+JSR303校验
|
3月前
|
前端开发 应用服务中间件 API
|
2月前
|
存储 关系型数据库 MySQL
四种数据库对比MySQL、PostgreSQL、ClickHouse、MongoDB——特点、性能、扩展性、安全性、适用场景
四种数据库对比 MySQL、PostgreSQL、ClickHouse、MongoDB——特点、性能、扩展性、安全性、适用场景
|
4月前
|
SQL 数据管理 关系型数据库
SQL与云计算:利用云数据库服务实现高效数据管理——探索云端SQL应用、性能优化、安全性与成本效益,为企业数字化转型提供全方位支持
【8月更文挑战第31天】在数字化转型中,企业对高效数据管理的需求日益增长。传统本地数据库存在局限,而云数据库服务凭借自动扩展、高可用性和按需付费等优势,成为现代数据管理的新选择。本文探讨如何利用SQL和云数据库服务(如Amazon RDS、Google Cloud SQL和Azure SQL Database)实现高效的数据管理。通过示例和最佳实践,展示SQL在云端的应用、性能优化、安全性及成本效益,助力企业提升竞争力。
80 0