IBM中国移动DB2数据库安全配置手册Word文档下载推荐.docx
《IBM中国移动DB2数据库安全配置手册Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《IBM中国移动DB2数据库安全配置手册Word文档下载推荐.docx(23页珍藏版)》请在冰点文库上搜索。
![IBM中国移动DB2数据库安全配置手册Word文档下载推荐.docx](https://file1.bingdoc.com/fileroot1/2023-5/2/e2a374e0-2ba9-4c40-bff2-33a95e54104e/e2a374e0-2ba9-4c40-bff2-33a95e54104e1.gif)
本手册适用于对中国移动集团下属各公司业务网和办公网系统的数据库系统加固进行指导。
1.3数据库类型
数据库类型为DB2EEE。
第二章数据库安全规范
2.1操作系统安全
要使数据库安全,首先要使其所在的平台和网络安全。
然后就要考虑操作系统的安全性。
DB2使用大量用户不需要直接访问的文件。
导出转储文件和其他备份文件也必须受到保护。
可以把数据复制到其他数据库上,或者是作为复制模式的一部分,或者是提供一个开发数据库。
若要保护数据的安全,就要对数据所驻留的每一个数据库及这些数据库的备份进行保护。
如果某人能从含有你的数据备份的数据库中带走备份磁带,那么你在数据库中所做的全部保密工作就失去意义。
必须防止对全部数据备份的非法访问。
2.2帐户安全
为了避免数据库帐户大量耗费系统资源,影响其它用户的正常访问,可以根据应用的实际需要,对数据库帐户所使用的资源(如CPU等)进行限制。
这样可以控制恶意攻击者发起大量的连接及事务破坏数据库系统的正常运行,限制数据库帐户的系统资源可以用profile实施。
此外,数据库创建后,会存在一些内建的帐户,这些帐户都有初始密码。
出于安全的考虑,需要修改这些内建帐户的初始密码,防止恶意攻击者以众所周知的初始密码登录数据库。
另外,对不使用的帐户应锁定,消除帐户安全隐患。
2.3密码安全
用户登录数据库的密码非常重要,一旦密码被窃听,数据库的安全就面临严重的威胁。
在DB2中,client远程连接数据库,DB2会自动对通过网络传输的登录密码进行加密,保证密码不被明文传输而被窃听。
此外,对密码进行严格的管理。
可以使用profile来管理口令的终止、重新使用和复杂性。
例如,可以限制一个口令的寿命、锁定口令过旧的帐户等。
也可以强制一个口令至少有一定程度的复杂性并锁定一个多次注册失败的帐户。
这样可以有效地防止黒客猜测帐户口令,减少口令安全隐患。
2.4访问权限安全
对帐户的访问权限进行严格控制,给予帐户需要的最少权限,包括系统权限和对象权限。
对象权限可以实施到数据库对象的字段级别。
2.5日志记录
DB2的日志db2diag.log里记录有数据库的关键活动,如删除表空间等,出于安全的考虑,需有规律地检查警告日志。
2.6加密
为了保证敏感数据从client到server在传输过程中不被窃听,可以对数据进行加密,以密文进行传输。
2.7管理员客户端安全
为了防止恶意用户冒名顶替管理员从远端客户机连接数据库进行破坏,可以对远端数据库的IP地址进行限定。
当然这种方法如果和网络安全一起实施,会更加安全。
2.8安全补丁
DB2虽然具有很高的安全性,但是不可避免还是有安全漏洞,一个比较安全的办法是时刻关注DB2的补丁公告,并及时安装补丁。
2.9审计
认证、权限和特权可以用于控制对数据的已知存取或预期存取,但是这些方法可能不足以防止对数据的未知存取或未预期存取。
为了辅助检测后一种类型的数据存取,DB2UDB提供了一个审查设施。
成功监控不需要的数据存取和后续分析,可改善对数据存取的控制,并最终防止对数据的恶意存取或粗心的XX的存取。
监控应用程序和单独的用户存取(包括系统管理操作)可提供有关数据库系统活动的历史记录。
第三章数据库安全配置手册
3.1DB2数据库安全配置方法
3.1.1基本漏洞加固方法
1、操作系统安全性
编号:
401
名称:
操作系统安全性
重要等级:
高
基本信息:
若要访问一个数据库,必须首先能够以直接或非直接方式访问正在运行该数据库的服务器。
DB2使用操作系统级认证访问数据库。
检测内容:
✓检查承载平台的安全
✓检查网络的安全
建议操作:
参见主机和网络安全方案
操作结果:
无
2、系统权限
编号:
402
系统权限
可以使用系统级角色分派以管理数据库的系统级命令。
下表列出了DB2提供的系统级角色。
使用这些角色就能对授予数据库管理角色的系统级权限进行限制。
✓检查所有用户的权限
明确每个用户的权限级别归属,是否有必要
确保权限最小化
3、用户环境文件
403
用户环境文件
可以使用环境文件来限制可由用户使用的系统和数据库资源并管理口令限制。
如果数据库中没有创建环境文件,将使用缺省环境文件;
缺省环境文件指定对于所有用户资源没有限制。
✓检查系统环境文件
明确环境文件创建是否合理:
DB2的用户环境变量绝对路径为$INSTANCE/SQLLIB/DB2PROFILE,检查用户的环境变量,确保用户的环境设置正确。
确保资源调用最小化
4、口令管理
404
口令管理
在DB2中,默认是使用操作系统来管理口令的终止、重新使用和复杂性。
例如,可以限制一个口令的寿命、锁定口令过旧的帐户。
但是也可以结合第三方认证软件来加强管理。
✓检查系统口令设置情况
例如:
AIX上的DB2UDB可记录对操作系统的失败口令尝试次数,并检测客户机何时超过允许的注册尝试次数,该值由LOGINRETRIES参数指定。
可以结合具体操作系统设置登陆属性。
确保口令安全
5、帐户
405
帐户连接
中
当用户输入有效的用户名和数据库的口令后,就允许访问该数据库。
✓检查帐户设置情况
可利用操作系统提供的用户验证。
6、口令文件验证
406
口令文件验证
在大多数情况下,DB2用户可以由操作系统验证。
✓检查口令文件情况
确保口令文件和操作系统的安全。
7、对象权限
407
对象权限
✓检查对象权限
合理配置用户的对象权限。
8、登陆口令
408
登陆口令
当从一个客户机连接到数据库服务器,或者通过数据库链接从一个数据库连接到另一个数据库时,除非指定其他形式,否则DB2将以非加密的形式传输输入的口令。
对于DB2,可以设置参数来强制在传输前将口令值加密。
✓检查是否设置了口令加密
若要启用口令加密,需设置以下参数:
若客户机认证是DCS_ENCRYPT或SERVER_ENCRYPT,可传送用户ID和加密的口令来认证客户机。
若在客户机中指定SERVER_ENCRYPT,在服务器中指定SERVER,由于认证级别不匹配会返回一个错误
确保登陆安全
3.1.2特定漏洞加固方法
一、对传输数据进行加密
如果需要对客户端和服务器端传输的数据进行加密,以防数据窃听,可以修改客户端和服务器端的配置文件,对传输的数据进行加密,以避免明文在网络上的传输。
具体请参阅DB2SQLREFERRENCE
二、对于访问数据库的客户端IP地址进行配置。
数据库监听客户端IP地址的连接记录,存储在/etc/services文件里,请管理员定期查看和分析该日志文件。
在/etc/services目录下修改db2cdb2inst1的端口号:
db2cdb2inst150000/tcp
对于访问数据库客户端IP的限制,借助操作系统或者防火墙等设备实现也是可行的。
三、安装最新补丁程序
DB2虽然具有很高的安全性,但是不可避免还有安全漏洞,一个比较安全的办法是时刻关注DB2的安全公告,并及时安装安全补丁。
安全公告和补丁位置如下:
由于涉及DB2数据库的业务都是非常关键的,在安装安全补丁前一定要做好备份工作,联系IBM公司或者你的开发商,定时做补丁升级是非常必要的。
四、对敏感的数据库活动实施审计
对敏感的数据库活动,如删除表等进行审计。
DB2提供的数据库审计类型有:
●语句审计:
监视由一个或者多个特定用户或者所有用户提交的SQL语句。
这种类型的审计范围非常广。
●特权审计:
监视数据库里一个或者多个特定用户或者所有用户使用的系统权限,比如auditcreatetable。
这种类型的审计范围是中等的。
模式对象审计:
监视一个模式里在一个或者多个对象上发生的行为,比如:
auditinsertintoEMPLOYEES。
这种类型的审计是非常有重点的,范围狭窄。
五、用户管理
5-1过多的用户被授予DBA的权限
授权是一个过程,通过这个过程DB2获取有关一个已认证的DB2用户的信息,此信息指示该用户可执行的数据库操作,以及可以存取的数据对象。
执行每个用户请求时,根据所涉及的对象和操作,可能有多个授权检查。
使用DB2设施来执行授权。
DB2表和配置文件用于记录与每个授权名相关的许可权。
将一个已认证的用户的授权名和此用户所属的那些组的授权名,与记录的许可权比较。
根据这个比较,DB2决定是否允许执行请求的存取。
DB2记录了两种类型的许可权:
特权和权限级。
特权为授权名定义单个许可权,它使用户能够创建或存取数据库资源。
特权存储在数据库目录中。
权限级提供将特权分组的一个方法,并控制更高级别的数据库管理程序的维护和实用程序操作。
数据库特定的权限存储在数据库目录中;
系统权限与组成员资格相关联,并存储在一个给定实例的数据库管理程序配置文件中。
组提供了一个简便的方法,来对一组用户执行授权,而不必单独对每个用户授予或撤消特权。
除非另有指定,否则,组授权名可以用在为了授权而使用授权名的任何地方。
通常,对于动态SQL和非数据库对象授权(如实例级命令和实用程序),考虑使用组成员资格,但对于静态SQL,则不考虑使用它。
这种一般情况的例外是,当授予PUBLIC特权时:
在处理静态SQL时要考虑它们。
DB2文档中的适当地方提到了组成员资格不适用的特殊情况。
特权使用户能够创建或存取数据库资源。
权限级提供一个方法,以将特权及高级数据库管理程序维护和实用程序操作分组。
这两者一起用于控制对数据库管理程序和它的数据库对象的存取。
用户只能存取那些他们具有适当授权(即必需的特权或权限)的对象。
存在下列权限:
∙系统管理权限(SYSADM)
∙数据库管理权限(DBADM)
∙系统控制权限(SYSCTRL)
∙系统维护权限(SYSMAINT)。
存在下列类型的特权:
∙数据库特权
∙模式特权
∙表空间特权
∙表和视图特权
∙别名特权
∙服务器特权
∙程序包特权
∙索引特权。
5-2存在把权限授给PUBLIC的情况
删除不需要的帐号;
对于不明确是否能删除的用户可以暂时锁定该用户,或赋予非常复杂的口令。
删除用户及其所有的数据对象命令:
dropuserdbusercascade;
取消用户角色权限:
revokeconnectfromdbuser;
5-3连接时使用空口令。
修改口令文件PROFILE,防止利用空口令或默认口令进行连接。
六、关闭远程数据库验证
远程数据库验证只用于当你信任客户端用户时采用。
这种验证机制是:
用户在客户端验证,当用户登录数据库时不再需要用服务器端数据库密码验证,故称为远程数据库验证。
为加强安全起见,关闭远程数据库验证。
第四章附录:
数据库安全问题及解决方案
4.1数据库安全问题
电子商务的流行和Internet的普遍性改变了机构运营商务的方式、人们进行通信的手段。
这些改变带来了推动商业决策的新技术。
安全性渐渐从内部集成解决方案组转变成了电子商务实施的主要必需条件。
目前世界上很多企业和机构正在充分利用Internet,优化运作,并以相同的方式与供应商、合作伙伴、内部用户和客户直接进行通信。
然而,这些新的商业运作模式为它们带来了机遇同时也带来了各种挑战。
不同类别的用户需要以不同的方式访问数据。
合作伙伴必须能够看到某些有限的数据,员工能够浏览公司机密信息,而客户只能看到与其相关的信息;
同时Internet的发展使企业级应用系统的用户数量呈指数级增长,为企业级的用户管理带来了挑战。
简而言之,Internet时代安全性的挑战包括:
了解用户、设置用户访问权限、对机密数据进行保密、提供安全的网络服务。
借助DB2EE&
DB2EEE的功能,管理员和集成商能够克服这些Internet安全性挑战,DB2为基于Internet的企业范围应用解决方案提供了极其安全的环境。
4.1.1数据安全基本需求
数据安全的需求概括来讲就是:
正确的人能够及时地存取到正确的数据。
基本的数据安全需求有下面三方面:
●数据机密性
●数据完整性
●数据可访问
数据机密性
一个安全的系统需保证数据的机密性,这意味着只能让合法的用户看到他该看到的数据。
机密性涉及到几个方面:
1)数据传输过程中的保密:
在数据传输过程中不能被非法者侦听。
2)敏感数据的安全存储:
一旦机密数据存放在数据库,它的完整性和私有性必须得到保护。
3)用户身份的确定:
确保只有合法的用户才能访问数据。
怎样确定连上来的用户就是他声称的那个人,需要对用户的真实身份进行验证。
4)细粒度的访问控制:
访问数据库的某一特定用户不应该看到所有数据,而只能看到他可以看的那些数据,比如说某张表的某些记录的某些字段值,访问控制需要细化。
那么机密性的控制是怎样进行实施呢?
通常在数据库里保证数据机密的过程:
1)验证:
验证用户的身份是否合法
2)授权:
确定用户的权限
3)访问控制:
根据用户的权限,限制用户对物理数据的访问
比如:
如果Smith访问数据库,那么验证将确定他是否是合法的用户,而非冒名顶替者;
授权将确定他是以产品经理的身份登录数据库;
访问控制将基于产品经理的权限对他的会话进行数据访问控制。
数据完整性
数据完整性要求:
(1)数据是合法有效的;
(2)数据不能被恶意删除和修改;
(3)数据之间的依赖关系必须保证。
数据在数据库中和在网络传输中,完整性涉及到下面几个方面:
1)系统和对象权限控制对表的访问,这样只有授权用户才可以改变数据。
2)约束能保证数据是有效的,比如外键约束能保证表之间的数据依赖关系。
3)数据库必须能够免于病毒的攻击以破坏数据。
4)网络传输必须被保护,以免于恶意删除、破坏。
数据和服务的高可用性
从安全的角度来看,数据和服务的高可用性意味着数据和服务对授权用户是可用的,没有延迟。
恶意的系统攻击使得授权的用户不能正常访问系统。
防止恶意的攻击是一个安全问题。
必须有措施能够阻止恶意的攻击。
在DB2里可以定义用户的profile限定用户使用的资源,这样系统可以防止恶意用户消耗过多的内存和进程,从而影响到其他人的正常工作。
4.1.2数据安全风险
在数据库应用中,数据安全面临着以下威胁:
数据被篡改
通信的私有性对保证数据在传输过程中不被篡改非常重要。
分布式的环境给恶意攻击者篡改数据带来了可能。
在数据篡改的攻击中,一个未授权的攻击者对传输中的数据进行拦截、篡改后,再把数据继续进行传输。
比如一个攻击者把银行交易的金额从100元改为1000元,导致交易错误。
数据被窃取
数据必须能够安全地存储和传输,因此敏感信息诸如信用卡号、密码等不会被窃取。
但在大多数网络中,即使通信通道全部是有线链路,未授权用户也可以用workstation或者PC设法接入网络以窃听网络上的传输数据。
对于所有类型的网络,包括局域网和广域网这种数据窃听都有可能。
用户身份被伪造
你必须能够在网络上确认登录到系统的用户就是他本人,而不是冒名顶替者。
在分布式环境中,攻击者很容易伪造身份获取到敏感重要的信息。
你怎么知道从客户机B连到服务器A上的用户Pat是真正的Pat?
并且,攻击者还可以劫持连接。
你怎么能够确认声称的客户机B和声称的服务器A就是真正的客户机B和服务器A?
伪造身份现已成为网络安全的最大威胁之一。
密码潜在的问题
在大型的系统中,用户必须记住不同应用和不同服务的多个密码,他们通常选择易于猜测的密码,如姓名、字典里的一个单词等以方便记住。
这些密码对于攻击来说是很脆弱的;
即使用户使用了复杂的密码,他们也会把密码记下来,使攻击者容易通过其他途径找到;
并且,由于不同的应用都需要密码,用户往往把密码标准化,不同的应用的密码略有不同,从一个应用的密码可以推知另外一个应用的密码,这样方便记住。
所有这些问题都给安全带来了威胁。
再者,大量用户账号和密码的管理都是复杂、耗时、昂贵的。
XX对表、列存取
数据库可能含有机密的表,或者表里可能含有机密的列,这些机密数据不应该不加区分地被所有用户访问。
所以应该在列这个更细的级别对数据进行保护。
XX对行存取
有一些数据行可能含有机密的信息,这些机密的数据行不应该不加区分地被能访问该表的所有用户访问,应该有更细粒度的安全控制保证数据的机密性。
比如说在一个共享的业务环境中,用户应该只能够存取他自己的信息:
每个客户只能看到他自己的订单记录,你可以看到所有的订单记录。
这些限制可以通过应用强加上去,但是如果用户绕过应用,直接访问数据库,就会有数据机密性的风险。
所以需要在数据这一层加上访问安全策略的控制。
缺乏有效的跟踪、监控机制
如果系统管理员不能跟踪用户的行为,则用户对他们的行为不会负责任。
所以必须有可靠的机制来监控用户对数据的操作。
复杂的用户管理
系统经常需要支持数以百计或数以千计的用户,必须能够很方便地扩展。
在这种环境中,你需要知道用户是不是真正的用户,在各个应用层上有没有可靠的安全控制,用户账号和密码管理的沉重负担将使得系统变得脆弱、容易受到攻击。
多系统
在单个系统上管理数以千计的用户已经很困难了,在多个系统上就更为复杂。
为了应对安全管理上的用户的扩展性,应该采用基于工业标准的目录,对多个应用和数据库的用户和权限进行集中管理,这样可以减少系统管理成本,提高效率。
另外,对ASP来说为多个应用预定者创建不同的数据库不是一个节省成本的方法,这种分散的数据库模型既使技术可行,但很快就变得不可管理,有效的办法是一次应用和数据库安装可以为多个公司提供服务,集中管理。
4.1.3业界采用的安全技术
面临数据库应用数据安全的挑战,业界通常采用以下技术对安全进行控制:
●身份验证
●访问控制
●权限管理
●审计
●加密
●网络安全技术等
1.1.1DB2的安全解决之道
针对数据库应用的数据安全风险,DB2使用业界居于领导地位的产品和特性提供完整的安全控制解决之道。
以下是各种安全风险——需使用的安全技术——DB2提供的产品和特征的对应矩阵:
安全风险
解决之道
安全技术
DB2提供的产品和特征
未验证用户
确认用户身份
验证技术
DB2EE&
DB2EEE:
密码及密码管理
DB2EEEAdvancedSecurity:
Tokens,Kerberos,等
支持X.509Certificates
未授权的数据存取
限制数据存取
访问控制技术
DB2EEE
动态查询修改
细粒度的访问控制技术
限制存取数据行和列
基于标签的访问控制技术
加密存储数据
存储数据加密技术
限制权限
权限管理技术
DB2EEE:
角色,权限
网络数据侦听、窃取
保护网络
网络加密技术
Encryption
数据破坏
数据完整性技术
大量的恶意访问攻击导致的服务停顿
控制使用的资源
可用性技术
UserProfiles
多个应用多个密码
用户管理密码复杂
限制密码的个数
Singlesignon
结合IBMLDAP
管理员管理账号密码复杂
集中管理
企业用户安全技术
缺乏跟踪
监控用户的行为
审计
Auditing
Auditing
数据存取缺乏严格控制
USER&
ROLEBASEDSecurity
太多的账号
目录服务,与LDAP兼容的目录服务
IBMLDAP
操作系统突入
加密敏感数据
Dataencryption
4.2DB2安全解决方案–提供端到端的安全体系结构
DB2继续提供业界最安全的应用程序开发和部署平台,有力地保护数据和服务安全,确保正确的人能够及时地存取到正确的数据。
DB2所包含的安全解决方案主要分为以下几个关键的领域:
●DB2安全机制
●托管环境的安全
●基于标准的公共密钥体系结构(PKI)
●先进的用户和安全策略管理
4.2.1DB2安全机制
数据库用户定义和profile
用户和profile的定义可以用来限制用户所使用的资源(包括磁盘空间和处理器使用量),有效阻止用户的恶意攻击导致大量的系统资源消耗,保证数据和服务的可用性。
密码管理
限制用户不可使用简单的密码。
DB2提供了强有力的用户名密码验证机制,可以强制密码的数字和字母组合,最小长度,口令过期等,如