从黑客角度检验oracle数据库
【IT168 技术文档】本文讨论的是从一种安全的角度来看黑客是如何攻击你的数据库,我们应该做什么防范。
一 State of Oracle Security (oracle的安全状态)
1 来之媒体的报道:
超过十分之一的于internet上公司数据库有安全隐患。一份来之750家美国数据库开发商开始对数据库安全表示忧虑。
2 黑客世界的秘密:
讨论会对数据库被黑的报道增多。
– Blackhat, Defcon Expliots 蠕虫侵蚀着数据库
– Alpha Voyager
– Spida worm
攻击oracle的白皮书
3 oracle网站-Alerts Web page
4 防火墙后边神秘的oracle是安全的
大多数的折衷安全是内部工作的结果
内部威胁是最危险的
数据库中的非特权用户
5 面对这样状况我们要做什么
对漏洞的修复
警惕风险和威胁
找到正确的解决方案
二 Securing the Listener service
1 监听(listener)的脆弱
监听是客户端和数据库的代理
重要性:
i) 分离了鉴定和审核
ii) 以一个独立的进程运行
iii) 接受命令执行数据库的外部任务
监听服务的脆弱性
在客户端和数据库建立的连接进程中,监听作为一个代理。客户端指向对监听的一个连接,监听依次来和数据库进行连接握手。
问题存在于监听分离了鉴证,被外部数据库控制管理。监听作为一个独立的进程,在过去称为UID,接受命令执行任务。
2 监听服务的安全问题
带有password的监听是安全的
-默认配置是无
-lsnrctl设在password
必须建立一个健壮的password
-对暴力破解是不易攻击的
保护好listener.ora文件
-password存储在这里
不要远程管理监听
-在网络上password是不加密的。
如何对监听进行安全控制:
首先:在监听服务中设置passwod,许多DBA甚至没有意思到在必须在监听服务中设置password,监听服务接受远程的命令,如果你没有设置,任意人都可以发送命令。
两种设置方法:
1) 使用监听控制实用工具 – lsnrctl.
2) 在listener.ora文件中设置。
你必须设置一个强壮的password,一个不少于8位用数字和特殊单词组成的。如果设置比较脆弱,黑客程序将会试出你的密码。Password是存在listener.ora的文件中,如果用户可以读取,可以利用password日志远程的监听。同时也推荐你不要远程管理listener,因为密码在网上被明文传播,有可能被监听。推荐你只用来进行连接。
监听命令:
-LSNRCTL> help
The following operations are available
start stop status
quit exit set*
show*
password rawmode displaymode
trc_file trc_directory trc_level
log_file log_directory log_status
current_listener connect_timeout startup_waittime
use_plugandplay save_config_on_stop
可以通过set password来进行设置。有两个问题在password中:password是没有lockout feature。命令审核是和标准oracle的审核数据是分开的。Password是不过期的,因为没有passwod的管理特性。
3 监听包(listener packet)
当一个命令输入到监听控制器中会发生:
向监听发生一条命令,如果监听是远程的,命令通过网络传播,上图是发送的数据包,我们可以看到报头中一些特殊的字符。在报尾可以看到listener要执行的远程命令,在这个例子中:
COMMAND=status