1. 如何加固主机系统
从实际运作的层面来看,IT安全问题围绕三个基本事实:其一,IT系统不可能绝对可靠地识别用户的身份。其二,授权用户可能会被利用;其三,如果黑客获得了对主机的访问权,那么该主机就可能被闯入。后者,即为主机加固安全,是极其重要的一道防线。
方面,主机等高价值目标往往吸引的是黑客中的高手;另一方面,如果保存在主机上的数据越重要,用户对它的安全投入就越大,正所谓是“魔高一尺,道高一丈”的较量。
在过去的几年间,现实世界的一些犯罪组织一直在积极招揽黑客,从事针对某些目标的犯罪活动,比如最近黑客试图从住友银行的英国分行盗窃约2亿英镑。此类犯罪活动结合了对IT系统获得物理访问权和黑客行为,这意味着单单在主机和因特网之间设置性能可靠的防火墙已不足以保护你的数据。
如今,黑客完全有可能透过防火墙将黑客工具装入网络发动内部进攻。由于众多黑客工具在网上能够免费获得,加上USB存储设备随手可得,只要闲置的USB端口能够实际访问公共场所(比如接待处),就有可能利用网络上的任何PC发动攻击。为此,你要开始考虑对主机进行加固,以防直接从网络内部发动的攻击。
断开网络连接
要加强主机安全,最明显的一个办法就是,把主机与不需要连接的部分断开。如果黑客无法碰到主机,非法闯入也就无从谈起。
关闭端口
提高主机安全的第二个办法就是,真正使用主机内置的安全特性。比如,默认配置的Windows服务器允许任何用户完全可以访问任何目录下的任何文件。对这种配置进行修改非常容易,但取很少有网络管理员去修改。如果用户对某个文件没有拥有权,就不应该享有自动访问该文件的权限。如果你改了配置,那么即便黑客闯入了某个账户,他也未必能够访问该主机上的所有文件。
另外,对外开的端口越少,黑客用来危及系统安全的办法也就越少。进入Windows MMC管理器禁用不需要的服务,主机上运行的进程越少,意味着黑客可以利用的潜在故障以及安全漏洞就越少。
限制访问
你可以采取的另一个措施就是切断主机验证和应用管理的联系。拥有管理主机的权限,并不意味着有权可以管理其他功能,比如主机运行的数据库引擎或者其他应用。这可能会给需要全局管理权限的用户带来不便,但它却使非法闯入数据库的难度加大了一倍,因为黑客必须攻破两个用户身份和口令。同样,你可以把其他管理任务授权给特定的用户组,但不授予主机(或者网络)的全局管理权限。比如说,你可以允许用户管理打印机,但不授予控制打印机的主机的全部管理权限。你还可以禁止没要求加班的员工下班后登录主机。其实,大多数操作系统都内置了所有这些特性,你根本用不着投入资金,需要的只是学习并使用这些特性。
加强保护
视主机操作系统和运行的网络环境而定,你可以要求使用令牌或者生物识别技术进行验证,用于管理员对任何主机进行访问,你还可以限制管理员只能访问安全区域的某个子网。这样,如果管理员想添加一个新用户,就必须在特定的安全区域,通过特定子网上的PC来进行添加,还必须提供用户名、口令、采用生物识别技术的身份以及令牌码。
改变操作系统
不过,如果你需要更高的安全级别,恐怕就得采用专门技术了。不要单单把Windows作为服务器的操作系统。Windows是一款非常流行的服务器操作系统,但每个黑客都知道,就潜在回报而言,花时间查找Windows操作系统的安全漏洞,远比花同样时间闯入某个版本的Unix大得多。即使你买不起所选择的某个Unix版本的源代码许可证,Unix较之Windows也有一个优点:你可以重新构建内核,只包含主机中真正需要的那些部分。相比之下,Windows在这方面的内核随带了大量的代码,你没法删除,也没法全部关闭。
2. 如何确保数据安全
1.数据脱敏
数据脱敏是保证数据安全的最基本的手段,脱敏方法有很多,最常用的就是使用可逆加密算法,对入仓每一个敏感字段都需要加密。比如手机号,邮箱,身份证号,银行卡号等信息
2.数据权限控制
需要开发一套完善的数据权限控制体系,最好是能做到字段级别,有些表无关人员是不需要查询的,所以不需要任何权限,有些表部分人需要查询,除数据工程师外,其他人均需要通过OA流程进行权限审批,需要查看哪些表的哪些字段,为什么需要这个权限等信息都需要审批存档。
3.程序检查
有些字段明显是敏感数据,比如身份证号,手机号等信息,但是业务库并没有加密,而且从字段名来看,也很难看出是敏感信息,所以抽取到数据仓库后需要使用程序去统一检测是否有敏感数据,然后根据检测结果让对应负责人去确认是否真的是敏感字段,是否需要加密等。
4.流程化操作
流程化主要是体现在公司内部取数或者外部项目数据同步,取数的时候如果数据量很大或者包含了敏感信息,是需要提OA 审批流程的,让大家知道谁要取这些数据,取这些数据的意义在哪,出了问题可以回溯,快速定位到责任人。开发外部项目的时候,不同公司之间的数据同步,是需要由甲方出具同意书的,否则的话风险太大。
5.敏感sql实时审查及操作日志分析
及时发现敏感sql的执行并询问责任人,事后分析操作日志,查出有问题的操作。
6.部门重视数据安全
把数据安全当做一项KPI去考核,让大家积极的参与到数据安全管理当中去。
3. 简述oracle安全加固从哪几个方面入手加固
1.安全加固的检查方向
2.安全加固检查safeCheck.sh
3.安全加固执行safeExec.sh
1.安全加固的检查方向
1.1.sysdba用户远程登录限制(查看Oracle登录认证方式)
检查:
show parameter remote_login_passwordfile
整改:
alter system set remote_login_passwordfile = NONE scope=spfile;
注:需要重启库生效。
1.2.是否开启了资源限制
show parameter resource_limit
alter system set resource_limit = true;
1.3.登录失败的帐号锁定策略
select * from dba_profiles order by 1;
关注FAILED_LOGIN_ATTEMPTS的设定值
1.4.数据库用户帐号检查
检查:
select username,profile from dba_users where account_status='OPEN';
整改:
锁定用户:alter user <用户名> lock;
删除用户:drop user <用户名> cascade;
1.5.范例数据库帐号
是否存在默认的范例数据库账号scott等,可以考虑删除scott账号
1.6.dba权限账户检查
select username,profile from dba_users where account_status='OPEN';
1.7.数据库账户口令加密存储
11g数据里面的账户口令本来就是加密存储的。
1.8.数据库密码安全性校验函数
select limit from dba_profiles where profile='DEFAULT' and resource_name='PASSWORD_VERIFY_FUNCTION';
1.9.设定信任IP集
只需在服务器上的文件$ORACLE_HOME/network/admin/sqlnet.ora中设置以下行:
tcp.validnode_checking = yes
tcp.invited_nodes = (ip1,ip2…)
1.10.超时的空闲远程连接是否自动断开
根据实际需要设置合适的数值。
在$ORACLE_HOME/network/admin/sqlnet.ora中设置下面参数:
SQLNET.EXPIRE_TIME=10
2.安全加固检查safeCheck.sh
#!/bin/bash
#name:safeCheck.sh
#function:to create a safe check report.
#usage: oracle用户登录,执行 sh safeCheck.sh > /tmp/safeCheck.log
#logon database
sqlplus -S / as sysdba <<EOF
--format
prompt ============================
prompt == format
prompt ============================
prompt
set linesize 140 pagesize 50
col username for a30
col profile for a30
col resource_name for a30
col limit for a30
--check
prompt ============================
prompt == 1.sysdba用户远程登录限制
prompt ============================
prompt
show parameter remote_login_passwordfile
prompt 结果应为none.
prompt ======================
prompt == 2.resource_limit
prompt ======================
prompt
show parameter resource_limit
prompt 结果应为true.
prompt ===========================
prompt == 3.登录失败的帐号锁定策略
prompt ===========================
prompt
select * from dba_profiles order by 1;
prompt 关注FAILED_LOGIN_ATTEMPTS参数
prompt ===========================
prompt == 4.数据库用户帐号检查
prompt ===========================
prompt
select username,profile from dba_users where account_status='OPEN';
prompt 正常使用的用户列表
prompt ==========================
prompt == 5.范例数据库帐号
prompt ==========================
prompt
select * from all_users order by created;
prompt 关注有无示例账户scott
prompt ===========================
prompt == 6.dba权限账户检查
prompt ===========================
prompt
prompt ===========================
prompt == 7.数据库账户口令加密存储
prompt ===========================
prompt
prompt =============================
prompt == 8.数据库密码安全性校验函数
prompt =============================
prompt
select limit from dba_profiles where profile='DEFAULT' and resource_name='PASSWORD_VERIFY_FUNCTION';
prompt 结果应该不为null
--logoff database
EOF
# check the files
echo ===================
echo == 9.设定信任IP集
echo ===================
echo
more $ORACLE_HOME/network/admin/sqlnet.ora
#添加如下
#tcp.validnode_checking = yes
#tcp.invited_nodes = (ip1,ip2…)
echo ===================================
echo == 10.超时的空闲远程连接是否自动断开
echo ===================================
echo
#根据实际需要设置合适的数值。
more $ORACLE_HOME/network/admin/sqlnet.ora
#添加如下一行
#SQLNET.EXPIRE_TIME=10
3.安全加固执行safeExec.sh
#!/bin/bash
#name:safeExec.sh
#function:to execute the script for safe.
#usage: oracle用户登录,执行 sh safeExec.sh > /tmp/safeExec.log
#logon database
sqlplus -S / as sysdba <<EOF
--format
prompt ============================
prompt == format
prompt ============================
set linesize 140 pagesize 50
col username for a30
col profile for a30
col resource_name for a30
col limit for a30
--execute
prompt ============================
prompt == 1.sysdba用户远程登录限制
prompt ============================
alter system set remote_login_passwordfile=none scope=spfile;
prompt ======================
prompt == 2.resource_limit
prompt ======================
alter system set resource_limit=true;
prompt ===========================
prompt == 3.登录失败的帐号锁定策略
prompt ===========================
alter profile default limit FAILED_LOGIN_ATTEMPTS 10;
prompt ===========================
prompt == 4.数据库用户帐号检查
prompt ===========================
--select username,profile from dba_users where account_status='OPEN';
prompt I think I have nothing to do in this step.
prompt ===========================
prompt == 5.范例数据库帐号
prompt ===========================
prompt 是否删除范例scott用户?
--drop user scott cascade;
prompt ===========================
prompt == 6.dba权限账户检查
prompt ===========================
prompt I think I have nothing to do in this step.
prompt ===========================
prompt == 7.数据库账户口令加密存储
prompt ===========================
prompt 11g版本,数据库层面就是加密的嘛~
prompt =============================
prompt == 8.数据库密码安全性校验函数
prompt =============================
prompt 执行创建安全性校验函数的脚本
@?/rdbms/admin/utlpwdmg.sql
--logoff database
EOF
# check the files
echo ===================
echo == 9.设定信任IP集
echo ===================
more $ORACLE_HOME/network/admin/sqlnet.ora
#添加如下
#tcp.validnode_checking = yes
#tcp.invited_nodes = (ip1,ip2…)
echo ===================================
echo == 10.超时的空闲远程连接是否自动断开
echo ===================================
#根据实际需要设置合适的数值。
more $ORACLE_HOME/network/admin/sqlnet.ora
#添加如下一行
#SQLNET.EXPIRE_TIME=10
针对第9和第10步骤中的sqlnet.ora配置文件示例:
注意如果是ASM实例,sqlnet.ora配置文件是grid用户下$ORACLE_HOME/network/admin/sqlnet.ora的。
SQLNET.EXPIRE_TIME=10
tcp.validnode_checking = yes
tcp.invited_nodes = (192.168.99.*)
4. 数据库安全加固的产品
应用背景及存在问题
我国已有的安全建设重要围绕着网络防护、主机访问和应用层安全防护以及服务器层安全防护进行,但对真正核心的数据存储管理的核心数据库并没有采取有效的防护措施。网络层安全防护的主要产品有:防火墙、网路隔离设备、入侵检测、防病毒等;应用层安全防护的主要产品有:安全认证、统一授权等;服务器层安全防护的主要产品有:服务器防护、防病毒、入侵检测、主机审计等;数据层安全防护的主要产品有:数据库安全增强、数据库审计、文档防护等,数据层安全防护是存放于服务器内的数据本身的最后一道安全防护屏障,如果网络层、应用层和服务器层的安全防护被攻破,只要数据层安全防护有效,就不致予泄露敏感数据。可见数据层安全防护的重要性。
世界最大职业中介网站Monster遭到黑客大规模攻击,黑客窃取在网站注册的数百万求职者个人信息,并进行勒索;程序员程稚瀚四次侵入北京移动充值中心数据库,盗取充值卡密码,获利300 多万元。2003 年广东联通7 名人员,利用内部工号和密码,对欠费停机手机进行充值,使联通损失260 万元。2005 年12 月25 日,美国银行披露,2004 年12 月下旬,丢失了包括1200 万信用卡信息的磁带备份. ---Gartner Research;CSI/FBI 2005 年计算机犯罪和和安全会的相关报告中提到70%的信息系统数据丢失和遭受攻击,都来自于内部。
当前主流Oracle安全增强方案包括前置代理、应用加密和Oracle自带加密选件DTE等。前置代理需要应用大幅改造、大量Oracle核心特性无法使用;应用加密必须由应用实现数据加密,加密数据无法检索,已有系统无法透明移植;DTE不能集成国产加密算法,不符合国家密码政策。因此这几种方案一直未能得到有效推广。
5. 想开发一个应用程序,用户采用客户端的方式访问远程数据库,宜采用哪些安全手段加固系统
系统的安全与应用环境、业务内容、客户群都有密切关系。在该问题上可以采用一下几种方式:
1、采用VPN技术客户端和服务器端构造虚拟局域网,普通互联网客户无法访问。
2、服务器端设置防火墙,可按IP分段、时间段等手段进行控制访问。
3、在数据库级不仅设置登入用户/口令,还要设置各种权限,进行多层次访问控制。
4、在编制应用程序过程中,隐蔽登入口的访问路径、登入用户名、登入口令等。
6. 在测试验证数据库加固检查中,哪个内容是所有数据库检查中包含的
1. 修改sys, system的口令。
2. Lock,修改,删除默认用户: dbsnmp,ctxsys等。
3. 把REMOTE_OS_AUTHENT改成False,防止远程机器直接登陆。
4. 把O7_DICTIONARY_ACCESSIBILITY改成False。
5. 把一些权限从PUBLIC Role取消掉。
6. 检查数据库的数据文件的安全性。不要设置成666之类的。检查其他dba 用户。
7. 把一些不需要的服务(比如ftp, nfs等关闭掉)
8. 限制数据库主机上面的用户数量。
9. 定期检查Metalink/OTN上面的security Alert。比如:http://otn.oracle.com/deploy/security/alerts.htm
10. 把你的数据库与应用放在一个单独的子网中,要不然你的用户密码很容易被sniffer去。或者采用advance security,对用户登录加密。
11. 限止只有某些ip才能访问你的数据库。
12. lsnrctl 要加密码,要不然别人很容易从外面关掉你的listener。
13. 如果可能,不要使用默认1521端口
7. 关于oradc数据库系统加固要求描述正确的有哪些
网喷混凝土加固基坑壁施工施工要求:应该叫锚喷砼(喷谢砼),一般是按施工方案来做的,如没有的话,其施工要求:砼的标号,厚度,钢筋的锚固,锚杆的做法(是否是压力灌浆)与锚杆的深度与角度,护壁的土质与护坡坡度,顶部的密封与排水,上部重物的堆放要求。底部的排水沟处理。还有锚喷机械要求等等。
8. 一个好的数据库加密系统一般应满足哪些方面的要求
我认为,至少需要满足下面4个方面的要求。
1、保证数据库系统的整体性能没有明显下降
众所周知,数据库系统的数据处理性能对整个业务系统的整体性能表现有决定性的作用,在某些场合,数据库必须保证处理能力维持在某个较高水平才能满足业务需要。另一方面,数据库加密系统是一个对数据库中数据进行加密保护的应用系统,在数据从业务系统存储到数据库时要对数据进行加密,这个过程中明文数据需要被加密成密文,在数据由数据库中被读取出来传递到业务系统时要对数据进行解密,这个过程中密文需要被解密成明文。加密和解密是个根据一定的算法逻辑进行循环运算的过程,这个过程对CPU会产生一定的消耗,会影响数据库的性能。
数据库加密系统可以有多种技术路线来实现,业界已经验证和使用的技术路线包括应用系统加密、前置代理加密、后置代理加密、表空间透明数据加密、文件系统加密和磁盘加密。其中应用系统加密和前置代理加密技术会极大地影响数据库性能,仅适用于小量数据加密场景;后置代理加密技术在某些场景上也会大幅影响数据库性能,使用场景有明显限制;所以,好的数据库加密系统应该尽量使用后三种技术路线来实现。
2、保证数据安全
保存在数据库中的数据是用户的资产,因此,任何一个数据库加密系统都需要保证在有密钥的前提下能够对由自己加密的数据进行无损解密。因此,一个好的数据库加密系统应该具备密钥备份和恢复功能,以便于在加密机故障不可用时能够快速搭建新的加密机环境;另外,如果数据库加密系统提供了独立的工具或接口来实现加密机故障时用户数据的解密,则是更好的选择。
3、应用完全透明
数据库系统是为业务系统提供数据服务的,一个好的数据库加密系统应该对应用系统具备完全的透明性,这种透明性主要表现在:(1)部署数据库加密系统时,应用系统不需要做任何改造,即使是连接字符串都不需要修改;(2)在部署了数据库数据库加密系统后,数据库内部的存储过程、用户自定义函数、触发器、SQL代码段等可执行对象及主外键关系、各种索引、默认值、Check约束等均可以正常使用,也不需要做任何改变;(3)数据库自身的外围管理工具、第三方数据库工具等在部署数据库加密系统后仍然可以正常使用。
4、高可用性
数据库加密系统自身应具备高可用能力,可以以主备或多机的方式提供数据库加密服务,当其中的一台加密机发生故障时,其它加密机应可能快速接管加密服务,保证数据库系统和用户业务系统的可用性。
9. 关于红帽子linuxAS5中mysql加固
,1,在linux下的mysql服务器进行所有访问的审计这个网络上已经有人详细介绍过次方法了,具体可以查看http://www.2cto.com/database/201108/99590.html
2,对mysqld的启动项进行加固
–local-infile[={0|1}]
如果用–local-infile=0启动服务器,则客户端不能使用LOCAL in LOAD DATA语句。
–old-passwords
强制服务器为新密码生成短(pre-4.1)密码哈希。当服务器必须支持旧版本客户端程序时,为了保证兼容性这很有用。
(OBSOLETE) –safe-show-database
在以前版本的MySQL中,该选项使SHOW DATABASES语句只显示用户具有部分权限的数据库名。在MySQL 5.1中,该选项不再作为现在的 默认行为使用,有一个SHOW DATABASES权限可以用来控制每个账户对数据库名的访问。
–safe-user-create
如果启用,用户不能用GRANT语句创建新用户,除非用户有mysql.user表的INSERT权限。如果你想让用户具有授权权限来创建新用户,你应给用户授予下面的权限:
mysql> GRANT INSERT(user) ON mysql.user TO ‘user_name’@'host_name’;
这样确保用户不能直接更改权限列,必须使用GRANT语句给其它用户授予该权限。
–secure-auth
不允许鉴定有旧(pre-4.1)密码的账户。
10. 数据库安全的防护手段
Xsecure产品系列实现对数据库的全方位防护 ,需要覆盖数据库的事前、事中、事后安全;覆盖数据库应用安全、维护安全、使用安全和存储安全;是最全面的数据库防泄露产品。 数据库漏洞扫描系统Xsecure-DBScan ,是一款帮助用户对当前的数据库系统进行自动化安全评估的专业软件,能有效暴露当前数据库系统的安全问题,提供对数据库的安全状况进行持续化监控,帮助用户保持数据库的安全健康状态。
发现外部黑客攻击漏洞,防止外部攻击:实现非授权的从外到内的检测;模拟黑客使用的漏洞发现技术,在没有授权的情况下,对目标数据库的安全性作深入的探测分析;收集外部人员可以利用的数据库漏洞的详细信息。分析内部不安全配置,防止越权访问:通过只读账户,实现由内到外的检测;提供现有数据的漏洞透视图和数据库配置安全评估;避免内外部的非授权访问。
监控数据库安全状况,防止数据库安全状况恶化:对于数据库建立安全基线,对数据库进行定期扫描,对所有安全状况发生的变化进行报告和分析。 操作系统中的对象一般情况下是文件,而数据库支持的应用要求更为精细。通常比较完整的数据库对数据安全性采取以下措施:
(1)将数据库中需要保护的部分与其他部分相隔。
(2)采用授权规则,如账户、口令和权限控制等访问控制方法。
(3)对数据进行加密后存储于数据库。 由数据库管理系统提供一套方法,可及时发现故障和修复故障,从而防止数据被破坏。数据库系统能尽快恢复数据库系统运行时出现的故障,可能是物理上或是逻辑上的错误。比如对系统的误操作造成的数据错误等。