960 likes | 1.03k Views
应用安全. 培 训机构 讲 师名称. 数据库 安全基础. 数据库 运行 安全 防护. Web 安全 基础 及安全配置. 常用互联网服务安 全. Web 安全防护设备. 桌面应用安全保护. 应用安全防护概念. 课程内容. 操作系统与数据库安全. 数据库安全. 应用安全概述. 应用安全. 网络应用安全. 知识体. 知识域. 知识子域. 知识域:数据库安全. 知识子域:数据库安全 基础 了解数据库基本概念 和主要功能 理解 构化查询语言 SQL 功能 了解数据库安全特性和安全功能 理解数据库“视图” 的安全功能
E N D
应用安全 培训机构 讲师名称
数据库安全基础 数据库运行安全防护 Web安全基础及安全配置 常用互联网服务安全 Web安全防护设备 桌面应用安全保护 应用安全防护概念 课程内容 操作系统与数据库安全 数据库安全 应用安全概述 应用安全 网络应用安全 知识体 知识域 知识子域
知识域:数据库安全 • 知识子域:数据库安全基础 • 了解数据库基本概念和主要功能 • 理解构化查询语言SQL功能 • 了解数据库安全特性和安全功能 • 理解数据库“视图” 的安全功能 • 理解数据库完整性要求和备份恢复概念
数据库概念 • 长期储存在计算机内的,有组织的,可共享的数据集合。 • 数据库是由一个互相关联的数据的集合和一组用以访问这些数据的程序组成。 图书馆 图书管理员 用户请求
数据库管理系统概念 • 定义:如何地组织和存储数据库中的数据,如何有效地获取和维护这些数据。完成这个任务的程序(软件)叫数据库管理系统(DataBase Management System) DBMS Database 程序 数据库 用户请求 • 在数据库建立、运行和维护时对数据库进行统一控制 • 在多用户同时使用数据库时进行并发控制 • 在发生故障后对数据库进行恢复
关系型数据库系统特点 • 数据结构化和共享性 • 库、表、字段 • 结构化查询语言(SQL) • 数据独立性 • 物理独立性 • 逻辑独立性 • 数据的完整性约束 • 实体完整性(通过主键约束条件) • 参照完整性(通过主外键约束条件) • 用户自定义完整性(通过CHECK子句) • 数据由DBMS统一管理和控制 • 查询引擎、事务控制、数据存储模块/组件
动词 表名 子句 表达式 DELETEFROM salesrepsWHERE Sales < 20000.00 关键字 列名 常数 结构化查询语言SQL • SQL语句格式 • 基本语句约30条。每条语句都请求DBMS完成一个动作
结构化查询语言SQL • SQL语言分类
数据库安全问题 • 数据库问题 • 执行不正确的修改操作(插入、删除、更新等); • 数据库的一致性、完整性被破坏 • 数据库内的垃圾堆积,使数据库不可用 • 非法用户对数据库的访问 • …
数据库安全概念 • 数据库安全特性 • 机密性 • 完整性 • 可用性 • 数据库安全防护 • 数据库管理系统自身安全特性 • 数据安全性、数据完整性、并发控制、故障恢复等 • 数据库管理系统运行安全 • 运行平台的参数配置、各种支撑软件的漏洞修补、用户安全域防护等
数据库自身主要安全功能 • 用户标识与鉴别 • 访问控制 • 数据加密 • 数据库审计
帐户锁定策略 口令历史管理 策略设置 口令有效期与宽限期管理策略 自定义口令策略验证 用户标识与鉴别 • 用户鉴别 • 操作系统 • 数据库 • 第三方 用户 CREATE USER user IDENTIFIED {BY password|EXTERNALLY} [DEFAULT TABLESPACE tablespace]
访问控制 • 设置用户对不同的数据对象允许的操作权限 • 系统权限 • 数据库实例级或数据库级范围 • 修改实例参数(ALTER SYSTEM)、创建表(CREATE ANY TABLE)… • 模式权限(数据库对象权限) • 特定数据库对象(表、视图等)的操纵权限 • 增、删、改、查、执行等 • 数据对象权限 • 记录级授权控制能力 • 视图、标签、安全上下文等机制
授权规则 用户权限 登记 DD 定义 用户权限 授权规则 合法权限 检查 用户发出 操作请求 DBMS的存取控制子系统 授权访问 • 直接授权 • 利用GRANT命令直接为用户授权; • 间接授权 • 先将权限授予角色/用户组,然后再将角色授予用户或指定用户所属的组 招聘职员 人事主管 薪酬职员 福利角色 薪酬角色 福利权限 薪酬权限
数据加密 • 数据传输加密 • 不加密,数据在网络传输的是明文 • 加密数据库的网络通讯 • 数据存储加密 • 数据元素加密、记录加密、属性(字段)加密、表加密 • OS层加密、DBMS内核层加密、DBMS外层加密
数据库审计 • 审计策略 • 审计用户、SQL语句或数据库对象 • 语句执行情况 • 成功的、不成功的或二者都包括的语句执行 • 审计信息 • 访问数据库应用程序、位置及用户信息,包括用户操作、操作日期与时间、操作涉及的相关数据、操作是否成功等 • 审计层次 • 系统级、用户级、对象级等
数据库安全机制 • 数据保密性机制 • 视图 • 数据完整性机制 • 完整性约束 • 事务处理 • 触发器 数据 数据库触发器 完整性约束条件 应用程序 表数据、索引数据、…
EMPVU10 视图 EMPNO ENAME JOB ------ -------- ----------- 7839 KING PRESIDENT 7782 CLARK MANAGER 7934 MILLER CLERK 数据库保密性机制-视图 • 什么是视图 • 虚表:从一个或几个基本表(或视图)导出 • 物理上并不存在,只是在定义中 EMPNO ENAME JOB MGR HIREDATE SAL COMM DEPTNO ----- -------- --------- ---- --------- ------ ----- ------- 7839 KING PRESIDENT 17-NOV-81 5000 10 7782 CLARK MANAGER 7839 09-JUN-81 1500 300 10 7934 MILLER CLERK 7782 23-JAN-82 1300 10 7566 JONES MANAGER 7839 02-APR-81 2975 20 7788 SCOTT ANALYST 7566 09-DEC-82 3000 20 7876 ADAMS CLERK 7788 12-JAN-83 1100 20 7369 SMITH CLERK 7902 17-DEC-80 800 20 7902 FORD ANALYST 7566 03-DEC-81 3000 20 7698 BLAKE MANAGER 7839 01-MAY-81 2850 30 7654 MARTIN SALESMAN 7698 28-SEP-81 1250 1400 30 7499 ALLEN SALESMAN 7698 20-FEB-81 1600 300 30 7844 TURNER SALESMAN 7698 08-SEP-81 1500 0 30 7900 JAMES CLERK 7698 03-DEC-81 950 30 7521 WARD SALESMAN 7698 22-FEB-81 1250 500 30
视图的定义和作用 • 视图的SQL定义 • 数据库中一个存储的查询定义。 • 视图的优点 • 个性化服务:简化了用户观点,使不同用户可以从不同角度观察同一数据。 • 安全性:“知必所需”,限制用户数据的访问范围。 • 逻辑独立性:视图作为基本表与外模式之间的映象。 create view视图名称[(列名[,列名] …)] as(查询表达式)[with check option] [CONSTRAINT constraint]]
基于视图的安全 • 数据安全 • 限制对敏感数据的访问:只集中于合适的数据 • 简化用户的权限管理:通过视图让用户查询数据,保护基表设计中的更改 • 授权控制 Contextparameters CREATE AUTHORIZATION VIEW PatientsForDoctors AS SELECT Patient.* FROM Patient, Doctor WHERE Patient.doctorID = Doctor.ID and Doctor.login = %currentUser
数据库完整性约束 • 完整性约束 • 完整性约束条件 • 实体完整性(PRIMARY KEY定义,唯一、不为空) • 参照完整性(FOREIGN KEY定义,关联) • 用户定义完整性(生成时定义,非空、唯一、布尔) • 完整性检查 • 违约处理机制
处于一致性 状态的数据库 处于一致性 状态的数据库 在事务执行过程中数据库的数据可能不一致 数据库事务处理 • “事务管理”对于数据完整性保护 • 事务定义 • 事务是由一系列操作序列构成的程序执行单元,这些操作要么都做,要么都不做,是一个不可分割的工作单位。 • 事务与数据库一致性关系 例如银行转帐 End Transaction 事务执行过程 Begin Transaction
数据库触发器 • 一种特殊存储过程,特定事件发生时自动执行 • 触发器是自动执行 • 触发器比约束定义更复杂的约束,例如更复杂的处理逻辑 • 触发器可以对另外一个表进行操作
数据库备份与恢复 • 备份:数据冗余技术 • 数据转储 • 日志文件 • 恢复:从冗余数据中实施数据库恢复 • 事务故障的恢复 • 系统故障的恢复 • 介质故障的恢复
知识域:数据库安全 • 知识子域:数据库运行安全防护 • 理解数据库威胁与防护特点 • 理解数据库事前安全防护、事中安全监控以及事后安全审计的方法
数据库面临安全威胁 • 过度的特权滥用 • 合法的特权滥用 • 特权提升 • 平台及数据库漏洞 • SQL注入 • 不健全的审计 • 拒绝服务攻击 • 数据库通信协议漏洞 • 不健全的认证 • 数据泄露
SQL 请求 DBMS 存取控制 用户标识 与鉴别 数据 加密 审计 追踪 数据库安全防护 • 层层设防:防护体系建设 DBMS选件 事务引擎 安全边界 查询引擎 各种应用 DB
数据库安全防护 • 检查、监控、审计
数据库安全防护 • 事前检测:安全特性检测 知识库 制定检测策略 配置检测策略 策略专家 检测人员 检测引擎 扫描数据库服务 审计报告 服务扫描 外部渗透性测试 生成一份详细的审计报告 从策略库中选择检测策略 漏洞利用 渗透测试 进行全面的安全审计扫描 分析审计结果,设计漏洞利用方式 安全审计
数据库安全防护 • 事中运行监控:数据库运行安全监控
数据库安全特性检查 • 数据库最佳实践 • 数据库安全漏洞 • 美国国防部、国防信息系统中心等研究机构给出的主流数据库安全配置指南 • 数据库厂商提供的安全指南 • Oracle/Sqlserver/MySQL… • 数据库安全特性检查工具 • 美国应用安全公司的App Detective • 英国下一代软件公司的NGS SQuirrel www.nsa.gov/snac
数据库安全特性检查 • 安全配置 • 补丁 • 协议(端口、传输协议) • 账号 • 用户名及密码 • 口令策略 • 权限 • 存储过程 • 触发器 • 备份
知识域:应用安全概述 • 知识子域:应用安全防护概念 • 了解常见应用安全威胁 • 了解常见应用安全防护的主要模型
应用系统体系架构 应用客户端 浏览器 (IE、Firefox) Email客户端 FTP客户端 应用传输协议 HTTP FTP SMTP/POP3 …… Web应用 (IIS、Apache) 中间件 FTP SMTP/POP3 …… ORACLE DB2 MySQL SQL server …… 数据库服务器 应用服务器 终端用户
应用安全问题 • 攻击者通过正常的应用层信息访问通道,通过了多层防火墙、操作系统加固的安全防护,直接攻击应用系统并进而攻击系统后台服务器资源
常见应用安全威胁 • 非法登录 • 越权访问 • 非法纂改 • 责任不明 • 拒绝服务攻击 • 缓冲区溢出 • 竞争状态 • 口令破解
应用安全防护模型 • OSI通信协议应用安全防护模型 • OSI安全层次对照表 • 等级保护规范应用安全防护控制点
应用系统常用安全防范手段 病毒侵害 网络攻击 管理账户 程序补丁 访问权限 审计机制 安全策略 应用安全 信息窃取
知识域:网络应用安全 • 知识子域:Web安全基础及安全配置 • 理解Web工作机制及Web应用安全问题产生的原因 • 了解常见Web应用安全威胁,理解注入攻击和跨站脚本攻击特点和危害 • 了解Web应用程序开发编码安全要点 • 了解IIS和Apache的安全配置要点 • 了解浏览器上网安全威胁和IE安全配置方法
Web工作机制 • 什么是WEB • 万维网(World Wide Web),是一个由许多互相链接的超文本文档组成的系统。 • Web的重要概念 • 资源:web系统中对象称为资源 • URI:统一资源标识符,用于标识一个资源(HTML文档、图像、视频片段、程序) • URL:统一资源定位符(URI的一个子集) • HTTP:超文本传输协议,用于传输资源,使用者通过http来获得资源 • WEB应用越来越广泛
超文本传输协议 • 什么是超文本传输协议(HTTP) • 一种通信协议 • 使用超文本标记语言 (HTML) 将资源从服务器传送到客户端 • 超文本传输协议特点 • 请求、响应模式 • 协议简单,客户端只需传输请求方法和路径 • 无连接(一个请求一个连接,完成后断开) • 无状态
HTTP协议工作过程 • HTTP 请求(Requests) • 一个HTTP请求包含三个部分: • 方法,URL,协议/版本(Method-URI-Protocol/Version) • 请求包头(Request headers) • 实体包(Entity body) • HTTP 响应(Responses) • 一个HTTP响应也包含三个部分 • 协议状态代码描叙(Protocol-Status code-Description) • 响应包头(Response headers) • 实体包(Entity body)
HTTP协议工作过程 • HTTP请求范例: POST /servlet/default.JSP HTTP/1.1Accept: text/plain; text/HTMLAccept-Language: en-gbConnection: Keep-AliveHost: localhostReferer: http://localhost/ch0/SendDetails.htm User-Agent: Mozilla/4.0 (compatible; MSIE 4.01; Windows 98)Content-Length: 33Content-Type: application/x-www-form-urlencodedAccept-Encoding: gzip, deflate LastName=Franks&FirstName=Michael
HTTP协议工作过程-响应范例 HTTP响应范例: HTTP/1.1 200 OKServer: Microsoft-IIS/6.0 Date: Mon, 3 Jan 2010 13:13:33 GMTContent-Type: text/HTMLLast-Modified: Mon, 11 Jan 2010 13:23:42 GMTContent-Length: 112Welcome to CISP. 第一行的响应包头和请求包头很相似。第一行说明协议是使用的HTTP1.1,响应请求已成功(200表示成功),一切已OK。 响应包头和请求包头相似,也包含一些有用的信息。响应的实体是HTML那一部分的内容。包头和实体也都是被CRLF序列分离开的
Web服务常见威胁 • 网络层面 • 拒绝服务、电子欺骗、嗅探 • 系统层面 • Web服务漏洞、配置错误 • 应用层面 • 代码缺陷(SQL注入、XSS……) • 信息泄露 • 电子欺骗 • 钓鱼、流程缺陷
常见Web应用安全威胁(一) • 注入攻击 • Injection • WEB应用程序对用户输入数据的合法性判断不够,对用户输入过滤不足 • SQL注入和命令注入 • 跨站脚本攻击 • Cross Site Scripting,XSS • 恶意攻击者往Web页面里插入恶意代码,当其他用户浏览该页之时,嵌入其中的恶意代码会被执行,从而达到恶意攻击用户的特殊目的
常见Web应用安全威胁(二) • 失效的验证和会话管理 • 不安全的对象直接引用 • 跨站请求伪造 • 不安全的配置管理 • 不安全的密码存储 • 错误的访问控制 • 传输层保护不足 • 未经验证的网址重定向 • 不恰当的异常处理 • 拒绝服务攻击
Web应用安全问题原因 • Web服务支撑软件 • Web程序 • Web浏览器 • Web协议