安全威胁与应对原则: 数据库服务器面临的安全威胁-->数据库是企业和组织机构信息的集中存储位置: 攻击者最感兴趣的攻击目标之一 企业数资产的安全 常见的攻击手段-->SQL注入 网络窃听 未经授权的访问 密码破解 见下图:
抵御威胁实现安全的基本原则: 纵深防御-->从多个层次和节点提供全面的保护 最小化权限和权利-->为用户授予执行任务所需的最小权限和权利 最小化攻击表面-->攻击表面就是可能被攻击者利用从而进行入侵的入口点 最小化攻击表面可以尽可能减少服务器在网络中易受攻击的弱点
减小攻击表面-->减小攻击表面,降低被攻击的可能性
数据库系统的安全: 网络层面的安全-->配置防火墙: 关闭不使用的端口、防止不相关的协议,阻止不受信任的访问 进行服务器隔离: 网络的物理隔离 使用IPSec实现网络层的服务器隔离 加密通信过程: IPSec加密网络通讯 使用SSL保护通讯会话
操作系统层面的安全-->安全配置的操作系统是数据库服务器安全的基础 数据库服务器操作系统的安全: 关闭不相关的服务、端口 只有系统管理员能够从本地登录 所有分区被格式化为NTFS分区 物理网络被保护并由单个的安全管理员所管控
使用工具配置审核操作系统的安全性-->使用安全配置向导加固操作系统的安全: 基于服务器角色的配置 对网络安全的配置 注册表、服务和审核等综合安全配置 使用MBSA(基线安全分析器)评估系统的安全性: 检查补丁更新 检查服务组件的配置
数据库服务器层面-->操作系统安全不能完全保证数据库和应用系统的安全: 数据库配置的安全 应用系统的设计和配置安全
数据库服务安全需要考虑的方面(1): 服务包(Service Pack)和热修复程序(hotfix)-->及时应用对数据库系统的安全更新 服务-->禁用不使用的服务 协议-->选择安全的协议类型,仅开放使用的端口,强化协议栈的安全 账户-->保证服务账户的安全,删除或禁用不使用的账户 限制用户的远程访问能力
数据库服务安全需要考虑的方面(2): 文件系统-->强化系统相关目录和文件的安全性 控制对共享的访问 审核-->使用审核机制记录对系统的可疑访问行为 SQL Server安全机制的设置-->身份验证的方法 登录、角色、数据库对象
SQL Server 2005的配置安全: 设计安全 默认安全: 默认配置是一个安全的系统 默认为最小化攻击表面配置 大多数服务为手动启动 关闭功能和特性 部署安全
SQL 2005表面区域配置: 禁用未使用的组件和功能-->更小的表面区域,更小的安全威胁 更小的管理区域,更小的管理成本和管理失误 默认情况下全新安装的SQL 2005中一些功能被关闭-->需要管理员手动开启某些相关的功能和服务 对于升级安装会保留原有的功能开启状态-->升级后对原有应用系统的支持
SQL 2005表面区域的分类: 表面区域的分类-->功能特性: SQL 2005提供的功能特性 服务: SQL 2005组件提供的服务 连接: 本地连接 远程连接(Named Pipes、TCP/IP)
表面区域: 可配置的攻击表面区域-->数据库引擎 分析服务 Reporting Service Integration Service Notification Service SQL Agent 全文检索 SQL Server Browser
SQL 2005中可配置的表面区域-->见下图:
数据库引擎的表面配置: 服务 连接-->在部分版本(Express、Dev、Eval)中默认禁用远程连接 Name Pipes、TCP/IP 功能-->CLR xp_cmdshell ...
分析服务的表面配置: 服务 连接 功能-->即席数据挖掘查询 匿名连接 连接对象 用户定义函数
报表服务的表面配置: 服务 连接 功能-->预定事件和报表传递 启用Web服务和HTTP访问 对报表数据源连接启用Windows集成安全性
其它组件的表面配置: 服务-->Integration Service SQL Server Agent 全文搜索 SQL Server Browser-->提供服务器上的SQL Server 命名实例相关的信息 有些情况下会默认启用
配置SQL 2005的表面区域: 使用sp_configure配置数据库引擎的功能特性-->sp_configure: 更改服务器级别的配置 关闭不需要的功能特性,减少数据库引擎的攻击表面 注意配置值和运行值的区别 使用语法-->[EXEC sp_configure"xp_cmdshell",1 RECONFIGURE]
使用SAC.exe管理表面配置参数-->使用SAC.exe导入导出表面配置参数: 该工具位于Microsoft SQL Server\90\Shared\目录下 在命令提示符里面输入cd "\Program Files\Microsoft SQL Server"\90\Shared"按回车键 输入dir按回车键 输入SAC out file1.xml按回车键后就会把当前SQL Server服务器的外表面配置导出刚才指定的文件里面 输入start file1.xml按回车键后就能看到刚才导出的信息了 如果你想导入信息的话就输入sac in file1.xml -DE按回车键就行了 将一致的表面配置参数导入多台SQL 2005服务器 见下列语句:
sac {in|out} filename [-S computer_name]
[-U SQL_login [-P SQL_password]]
[-i instance_name]
[-DE] [-AS] [-RS] [-IS] [-NS] [-AG] [-BS] [-FT]
[-F] [-N] [-T] [-O]
[-H|-?]
[-U SQL_login [-P SQL_password]]
[-i instance_name]
[-DE] [-AS] [-RS] [-IS] [-NS] [-AG] [-BS] [-FT]
[-F] [-N] [-T] [-O]
[-H|-?]
关于配置表面区域的建议: 明确基于数据库的应用需要那些服务和功能特性 理解默认关闭的服务和功能特性之所以关闭的原因 在安装新的SQL 2005之后运行外围应用配置器配置服务器 将不使用的功能特性关闭以减小系统的被攻击表面
本文转自 叶俊生 51CTO博客,原文链接:http://blog.51cto.com/yejunsheng/164279