1 / 120

系统应用安全

系统应用安全. 培训机构名称 讲师名字. 数据库 安全基础. 电子邮件安全. Web 浏览器与服务器安全. Web服务基础. 数据库系统安全 管理. FTP安全. 即时通信软件安全. 办公软件安全. 课程内容. 系统安全. 数据库安全. 网络服务安全. 应用软件 安全. 常见应用软件 安全. 知识体. 知识域. 知识子域. 知识域:数据库安全. 知识子域:数据库安全 基础 了解数据库概念 掌握结构化查询语言 SQL 理解数据库安全概念 理解数据库安全功能 理解数据库“视图” 对于数据保密性的作用

saskia
Download Presentation

系统应用安全

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. 系统应用安全 培训机构名称 讲师名字

  2. 数据库安全基础 电子邮件安全 Web浏览器与服务器安全 Web服务基础 数据库系统安全管理 FTP安全 即时通信软件安全 办公软件安全 课程内容 系统安全 数据库安全 网络服务安全 应用软件 安全 常见应用软件 安全 知识体 知识域 知识子域

  3. 知识域:数据库安全 • 知识子域:数据库安全基础 • 了解数据库概念 • 掌握结构化查询语言SQL • 理解数据库安全概念 • 理解数据库安全功能 • 理解数据库“视图” 对于数据保密性的作用 • 理解“规则与默认”和“事务管理”对于数据完整性的作用 • 知识子域:数据库管理系统的安全管理 • 理解数据库威胁与防护 • 掌握数据库安全特性检查 • 掌握数据库运行安全监控 • 了解数据库管理系统产品安全 • 理解数据库管理系统安全要求

  4. 数据库概念 • 定义1:长期储存在计算机内的,有组织的,可共享的数据集合。 • 定义2:数据库是由一个互相关联的数据的集合和一组用以访问这些数据的程序组成。 图书馆 图书管理员 用户请求

  5. 数据库管理系统概念 • 定义:如何地组织和存储数据库中的数据,如何有效地获取和维护这些数据。完成这个任务的程序(软件)叫数据库管理系统(DataBase Management System) • 相对于文件系统的优点 DBMS Database 程序 数据库 用户请求 • 数据独立性 • 缓存管理 • 各种辅助功能 • 事务特性

  6. 数据库逻辑结构和存储结构 关系数据库管理系统逻辑结构和存储结构 • 外部表现 应用程序 最终用户 数据库请求 数据库设计、数据库编程和数据库管理人员 DBMS 系统管理员 操作系统 6

  7. 动词 表名 子句 表达式 DELETEFROM salesreps WHERE Sales < 20000.00 关键字 列名 常数 结构化查询语言SQL • SQL语句格式 • 基本语句约30条。每条语句都请求DBMS完成一个动作。所有 SQL语句的基本格式都一样。

  8. 结构化查询语言SQL • SQL语言分类

  9. 结构化查询语言SQL • 表结构定义(CREATE) create domainperson_namechar(20) --域定义 create table PROF ( --职工数据库表 PNO char(10) not null, --职工编号 PNAME person_namenot null, --职工姓名 SAL int, --工资 AGE int, --年龄 DNO char(10), --主任职工编号 primary key (PNO), --主键 foreign key (DNO) references DEPT(DNO),--外键 check (SAL > 0) --约束条件 );

  10. 结构化查询语言SQL • SQL数据查询

  11. 结构化查询语言SQL • 查询示例 • 给出“工41 ”班的学生信息 SELECT * FROM学生表 WHERE班级名称=‘工41’ • 给出每个班学生的平均成绩 SELECT班级名称,AVG(成绩) FROM学生表 GROUP BY班级名称 • 给出每个班学生的平均成绩,并按成绩排序 SELECT班级名称,AVG(成绩) FROM学生表 GROUPBY班级名称 ORDER BY2 • 给出每门课都及格学生的平均成绩

  12. …insert a new row into the DEPARMENTS table… 结构化查询语言SQL • SQL的数据修改 插入操作 新元组 DEPARTMENTS

  13. 结构化查询语言SQL • 命令(单行插入/多行插入) insert into表名 [(列名[,列名]…] values (值 [,值]…) 插入一条指定好值的元组 insert into表名 [(列名[,列名]…] (子查询) • 两种使用方式示例 insertintoDEPARTMENTSvalues ( 70, “Pubic Relation”,100,1700 ) insertintoDEPARTMENTS(department_ID, department_name, manager_id,location_id) values ( 70, “Pubic Relation”,100,1700 )

  14. 结构化查询语言SQL • 更新操作 EMPLOYEES Update rows in the EMPLOYEES table.

  15. 结构化查询语言SQL • 更新SQL命令 update 表名 set列名 = 表达式 | 子查询 列名 = [,表达式 | 子查询]… [where条件表达式] 指定对哪些列进行更新,以及更新后的值是什么。 • 示例 • 老师工资上调5%。 • 前面例子 update PROFset SAL = SAL * 1.05 update employees set Department_ID=30 where job_id=‘IT_PROG’

  16. 数据库安全概念 • 传统的数据库运行环境: 客户-服务器模式 Databasesecurity 数据安全1982(Dorothy Denning) 防止未经授权的数据泄露和数据修改:认证、授权和审计

  17. Not OK SELECT name FROM Patient WHERE age=42 and sex=‘M’ and diagnostic=‘schizophrenia’ SELECT count(*) FROM Patients WHERE age=42 and sex=‘M’ and diagnostic=‘schizophrenia’ OK 数据库安全概念 • 统计数据库安全 • 目标:允许用户查询聚集类型的信息(例如合计、平均值等),但是不允许查询单个记录信息 [Adam&Wortmann’89]

  18. 客户层 中间层 数据库层 中间层用户标识、密码等 终端用户鉴别 权限检查 应用服务器 数据库服务器 会话管理 数据库安全概念 • 现代数据库运行环境:多层结构应用环境 • 在一个多层应用环境中,中间层负责: • 鉴别客户层应用(用户认证) • 管理与数据库交互(数据库会话管理) • 中间层使用通用的用户名和密码与数据库连接并进行身份验证 • 数据库服务器使用中间层的通用用户名和密码,依据应用上下文对终端用户的权限进行管理

  19. 数据库安全概念 • 本课程定位的数据库安全:假设支持DBMS的运行支持环境是安全的

  20. 数据库安全概念 • 基本概念 • 用户(Users):数据库中的行动者。数据库用户分最终用户、管理员、开发员、分析和设计员。 • 数据库对象(Database Objects):是SQL安全性保护能够施加的项,如数据库表与视图、存储过程与函数、数据库表与视图中的列、行等。 • 权限(Privileges):允许用户对一个给定数据库对象执行的动作,如表对象的CREATE,SELECT,INSERT, UPDATE, DELETE等操作权限。 • 授权(Authorization):规定用户可对某个数据库对象执行的动作(如读、写、执行等)。

  21. 数据库安全概念 • 数据库权限分级 • 系统权限 • 数据库实例级或数据库级范围的行动,或执行一个特定类型的模式对象的行动。如Oracle数据库中的创建表、表空间等模式/非模式对象结构权限控制,DB2数据库中的特权概念。 • 模式权限 • 在一个特定数据库对象如表(表列),视图,序列,过程或函数对象上行动的执行权。用户一般自动拥有自己有所有权对象的各种模式权限。 • 数据权限 • 有权进行访问和操作特定数据(数组,元素)对象,也称为行级(细粒度)的访问控制(FGAC)

  22. 数据库安全概念 • 系统权限例子(Oracle) 对象在对象上行为例子 INDEX(索引)CREATE ANY INDEX ALTER ANY INDEX DROP ANY INDEX TABLE(表)CREATE TABLE CREATE ANY TABLEALTER ANY TABLE DROP ANY TABLE SELECT ANY TABLE UPDATE ANY TABLE DELETE ANY TABLE SESSION(会话)CREATE SESSIONALTER SESSION RESTRICTED SESSION TABLESPACE CREATE TABLESPACE(表空间) ALTER TABLESPACE DROP TABLESPACEUNLIMITED TABLESPACE 用户所有表对象 其他用户所有表对象 系统级操作

  23. 数据库安全概念 • 模式对象权限例子 对象权限 表对象视图对象序列对象 存储过程/函数 ALTER ÖÖ Ö Ö DELETE Ö Ö EXECUTE Ö INDEX ÖÖ INSERT Ö Ö REFERENCES Ö SELECT Ö Ö Ö UPDATE Ö Ö

  24. 数据库安全概念 • 数据对象权限例子 • 应用安全上下文(Context) • 细粒度访问控制概念

  25. 数据库安全功能 • 用户安全 用户帐户 管理策略 缺省数据存储空间 临时数据 存储空间 鉴别机制 用户安全 数据存储 空间限额 角色授权 的权限 资源限额 (CPU、IO) 直接授权 的权限

  26. 帐户锁定策略 口令历史管理 User Setting up profiles 口令有效期与宽限期管理策略 自定义口令策略验证 数据库安全功能 • 用户标识与鉴别(FIA) • 口令策略 用户口令在使用过程中必须加密传输与存储

  27. 数据库安全功能 • 用户会话管理(FTA)(Oracle) 控制资源 CPU_PER_SESSION SESSIONS_PER_USER CONNECT_TIME IDLE_TIME LOGICAL_READS_PER _SESSION PRIVATE_SGA 描述 Total CPU time measured in hundredths of seconds Number of concurrent sessions allowed for each username Elapsed connect time measured in minutes Periods of inactive time measured in minutes Number of data blocks (physical and logical reads) Private space in the SGA measured in bytes (for Shared Server only)

  28. 授权规则 用户权限 登记 DD 定义 用户权限 授权规则 合法权限 检查 用户发出 操作请求 DBMS的存取控制子系统 数据库安全功能 • 用户数据管理(FDP) • 自主访问控制(DAC) 数据库字典

  29. 数据库安全功能 • 用户数据管理(FDP) • 自主访问控制(续) • 系统级授权控制 • 模式级授权控制 GRANT {system_privilege|role} [, {system_privilege|role} ]... TO {user|role|PUBLIC} [, {user|role|PUBLIC} ]... [WITH ADMIN OPTION]; GRANT { object_privilege [(column_list)] [, object_privilege [(column_list)] ]... |ALL [PRIVILEGES]}ON [schema.]object TO {user|role|PUBLIC}[, {user|role|PUBLIC} ]... [WITH GRANT OPTION];

  30. 数据库安全功能 • 用户数据管理 基于角色的授权例子 招聘职员 人事主管 薪酬职员 福利角色 薪酬角色 福利权限 薪酬权限

  31. 数据库安全功能 • 用户数据管理(FDP) • 自主访问控制(续) • 角色管理 • 创建角色 • 用户角色指派 • 用户角色控制 CREATE ROLE role [NOT IDENTIFIED|IDENTIFIED {BY password|EXTERNALLY|GLOBALLY|USING package}] GRANT role [, role ]… TO {user|role|PUBLIC} [, {user|role|PUBLIC} ]…[WITH ADMIN OPTION] SET ROLE {role [ IDENTIFIED BY password ] [, role [ IDENTIFIED BY password ]]... | ALL [ EXCEPT role [, role ] ...] | NONE } 31

  32. 数据库安全功能 • 用户数据管理(FDP) • 强制访问控制(标签) • 主体:系统中的活动实体(用户、进程)。 • 客体:系统中的被动实体(文件、基表、视图)。 • 敏感度标记:对于主体和客体,DBMS为它们每个实例(值)指派一个敏感度标记。主体的敏感度标记称为许可证级别;客体的敏感度标记称为密级。 • 授权:每一个数据对象被标以一定的密级,每一个用户也被授予某一个级别的许可证。对于任意一个对象,只有具有合法许可证的用户才可以存取。 • 对数据本身进行密级标记,无论数据如何复制,标记与数据是一个不可分的整体。

  33. 主体 客体 绝密 绝密 读取 机密 机密 可信 可信 写 公开 公开 数据库安全功能 • 用户数据管理(FDP) • 强制存取控制规则 • 1)仅当主体的许可证级别大于或等于客体的密级时,该主体才能读取相应的客体; • 2)仅当主体的许可证级别(小于或)等于客体的密级时,该主体才能写相应的客体。

  34. 数据库安全功能 • 用户数据管理(FDP) • 强制访问控制(标签) • 用户分级: Security Clearance • 数据标签:Label

  35. 数据库安全功能

  36. 审计内容(数据)? 审计类型 审计什么? 标准数据库审计 访问模式对象数据时产生审计数据 产生固定的数据(如用户、对象、操作、时间) 基于值的审计 DML 语句操作相关的数据 数据库管理员定义(如编写触发器Trigger) 细粒度审计(FGA) 基于内容的SQL语句 (INSERT, UPDATE, DELETE, and SELECT) 固定的数据集合,包括相关的 SQL语句 数据库安全功能 • 数据库审计(FAU) • 审计功能是把用户对数据库的所有操作自动记录下来放入审计日志中,DBA可以利用审计跟踪的信息,找出非法存取数据的人、时间和内容等。

  37. 数据库安全功能 • 数据库审计(FAU) • 审计策略 • 审计用户、SQL语句或数据库对象 • 语句执行情况 • 成功的、不成功的或二者都包括的语句执行 • 审计信息 • OS登录标识与用户名 • 会话标识、终端标识等 • 访问的模式名称、数据库对象名称 • 执行成功或试图执行的操作 • 执行的代码 • 执行时间等 • 审计层次:系统级、用户级、对象级等

  38. 数据库安全功能 • 数据库审计(FAU) • 数据库审计功能设置( Oracle) 启动数据库审计 用户 DBA 审计策略 执行数据库操作. 审计策略设置. Database Serverprocess 审计策略 产生审计记录. 审计数据 保存在OS中审计数据 查阅审计信息.

  39. 数据库安全功能 • 数据库审计(FAU) • 基于值的审计 相关触发器触发 用户试图修改 数据库数据 Audit record is created by trigger. The user’s change is made. It is inserted into an audit trail table.

  40. DBMS安全性 认证系统 口令和资源 安全配置 用户授权 SQL安全编程 数据文件相关 数据库安全功能 • 安全管理(FMT): • 最佳实践:SIS、DoD • DBMS厂商安全配置建议 • 安全补丁 • 版本疑似漏洞 • 安全参数 • 审计相关 • 监听器安全 • 用户名和密码 • 权限相关 • 账户相关 • 过程和函数相关 • 其他

  41. 数据库安全功能 • 安全管理:Oracle安全策略

  42. 数据库安全功能 • 数据加密(FCS) • 数据传输加密 • 不加密,数据在网络传输的是明文 • 加密数据库的网络通讯 • 数据存储加密 • 表加密:每个表不同的表密钥运算,形成密文后存储(早期方法,执行效率低) • 属性加密:以表字段为单位进行加密 • 记录加密:以表中的记录为单位进行加密 • 数据元素加密:以记录中每个字段的值(元素)为单位进行加密 • 密钥管理机制:集中管理 & 多级密钥管理

  43. 数据库“视图” • 视图的SQL定义 • 数据库中一个存储的查询定义。 • 视图的优点 • 个性化服务:简化了用户观点,使不同用户可以从不同角度观察同一数据。 • 安全性:“知必所需”,限制用户数据的访问范围。 • 逻辑独立性:视图作为基本表与外模式之间的映象。 create view视图名称[(列名[,列名] …)] as(查询表达式)[with check option] [CONSTRAINT constraint]]

  44. 数据库“视图” • 基于视图的数据安全 • 限制对敏感数据的访问:只集中于合适的数据 • 简化用户的权限管理:通过视图让用户查询数据,保护基表设计中的更改 • 基于视图的授权控制 Contextparameters CREATE AUTHORIZATION VIEW PatientsForDoctors AS SELECT Patient.* FROM Patient, Doctor WHERE Patient.doctorID = Doctor.ID and Doctor.login = %currentUser

  45. “约束”和“事务管理”对于数据完整性的作用“约束”和“事务管理”对于数据完整性的作用 • 数据库管理系统的安全功能主要是针对数据库中数据的独立性(视图机制)、数据机密性(访问控制、加密)、数据库安全审计外,还包括 • 数据完整性 • 数据一致性(事务并发控制) • 数据丢失安全(各种故障的数据库恢复策略)等安全功能方面

  46. 数据库完整性 • 数据库完整性保护三种方法 数据库约束 NOT NULLUNIQUEPRIMARY KEYFOREIGN KEYCHECK 数据 数据库触发器 完整性约束条件 应用程序 表数据、索引数据、…

  47. Column Level Table Level 数据库完整性 • 约束创建 • 字段级约束 • 表级约束 column [CONSTRAINT constraint_name] constraint_type, column,... [CONSTRAINT constraint_name] constraint_type (column, ...), CREATE TABLE employees( employee_id NUMBER(6), last_name VARCHAR2(25) NOT NULL, email VARCHAR2(25), salary NUMBER(8,2), commission_pct NUMBER(2,2), hire_date DATE NOT NULL, ... CONSTRAINT emp_email_uk UNIQUE(email));

  48. 处于一致性 状态的数据库 处于一致性 状态的数据库 在事务执行过程中数据库的数据可能不一致 数据库完整性 • “事务管理”对于数据一致性保护 • 事务定义 • 事务是由一系列操作序列构成的程序执行单元,这些操作要么都做,要么都不做,是一个不可分割的工作单位。 • 事务与数据库一致性关系 例如银行转帐 End Transaction 事务执行过程 Begin Transaction

  49. 数据库完整性 • 事务特性ACID • 原子性:事务是处理的一个原子单位;它要么全部执 行,要么全部不执行。 • 一致性:如果事务的执行将数据库从一个一致性状态 转换到另一个一致性状态,也就是说数据库中只包含成 功事务提交的结果时,那么该事务就具有一致性。如果 数据库运行中发生故障,有些事务尚未完成时被迫中断 ,这些未完成的事务对数据库所做的修改一部分已写入 数据库,这时数据库就处于一种不正确的状态。 • 隔离性:事务的执行不能被其它事务干扰。 • 持久性:也称永久性,指一个事务一旦提交,它对数 据库中数据的改变应该是永久的,不会因为故障或其它操 作而发生丢失。

  50. 数据库恢复 • 数据库故障 • 语句失效: DBMS在执行SQL语句过程中出现错误。 • 进程失效: DBMS在执行用户程序进程过程中出现异常现象(如网络断开、资源占用等)。 • 系统失效:数据库实例在运行过程中因为服务器资源等问题的失效。 • 用户或应用程序错误:用户误操作等错误引起的数据丢失等错误。 • 介质失效:磁盘损坏、文件丢失等物理故障引起的数据丢失等。 • 网络实效:网络故障引起的分布式事务处理数据的不一致性等现象

More Related