黑客狙击Oracle系统的八大常用套路
2007-12-19 14:56:29 来源:WEB开发网
就算数据库管理员已经很勤奋的把这些默认配对都改了,有时候想猜出登录密码也不是一件困难的事情,逐个试试“oracle”、“oracle4”、“oracle8i”、“oracle11g”,看看碰巧是不是有一个能登录上去的。
Pete Finnigan提供了一份关于缺省用户和对应密码的名单,该名单非常全面而且是最新的,并包括已经加密的密码。如果你用all_users来进行查询,可以尝试并比较一下这份名单,详细名单请参阅:http://www.petefinnigan.com/default/default_password_list.htm。
防范此类攻击的方法
作为数据库管理员,应该定期审核所有的数据库密码,如果某些商业方面的阻力使你不能轻易更改容易被人猜出的密码,你可以尽量心平气和地和相关人员解释,用一些直观的例子来阐明如果不修改密码的话会有什么不好的事情发生,会有什么样的风险存在。
Oracle也提供了密码安全profile,你可以激活该profile,在某种水平上加强数据库密码的复杂性,还可以执行定期密码失效。要注意要把这个功能设置为只对通过网络服务器或中间层应用服务器登录的事件起作用。
2. 蛮力攻击(Brute Force)
蛮力攻击,就像其名字所暗示的,就是不停的撬,直到“锁”打开为止的方法。对于Oracle数据库来说,就是用某种自动执行的进程,通过尝试所有的字母数字组合来破解用户名和密码。
Unix的管理员就可以利用一款名为John the Ripper的密码破解软件来执行这类的攻击。现在如果你下载某个补丁,你也可以利用这款软件来对Oracle进行蛮力攻击,敲开其密码。不过根据密码的复杂程度不同,这可能是个很费时的过程,如果你想加快这个进程,可以事先准备一张包含所有密码加密的表,这样的表叫做Rainbow table,你可以为每个用户名准备一张不同的rainbow table,因为这种密码加密算法把用户名作为助燃剂。在这里就不再深入介绍更多的细节问题了,大家可以查阅http://www.antsight.com/zsl/rainbowcrack/获得更多信息。
Oracle服务器的默认设置是,对某个特定帐户输错密码达十次就会自动锁定该帐户。不过通常“sys as sysdba”权限没有这个限制,这可能是因为如果你锁定了管理员,那所有人都将被锁定。这样的设置为我们黑客破解软件(OraBrute)如开辟了一条生路,它们会昼夜不停地敲打你数据库的前门,直到它乖乖打开为止。
防范此类攻击的方法
想要抵御此类攻击,可以使用之前提及的对付预设密码攻击的方法。不过好奇心过重的数据库管理员也可能下载上面提到的工具侵入自己的系统。这说明了你真正的风险来自何方。
4. 从后门偷窃数据
在安全领域,这个概念被称为数据向外渗漏(exfiltration),这个词来自军事术语,其反面是向敌人内部渗透(infiltration),意思就是在不被发现的情况下偷偷潜出。对于从目标数据库获取数据的过程,可能就像从一些磁带备份中挑拣数据和还原数据库或者像从一个被毁坏的磁盘重复制一份拷贝一样简单。不过,也有可能涉及到窥探网络传输以获得相关的数据包。
Oracle有一个名为UTL_TCP的程序包,能够使外部连接指向其他服务器。对它稍微改编一下,就可以利用它从数据库发送一套低带宽数据流到远程主机。Oracle也附带了一些有用的程序包来隐藏数据流里的信息,如果你在发动潜入行动的时候担心入侵检测系统会监测到你的不法活动,那么可以充分利用这些功能秘密嵌入,包括DBMS_OBFUSCATION_TOOLKIT和DBMS_CRYPTO。
防范此类攻击的方法
防范此类攻击的最佳办法是安装入侵检测系统,这些系统能够检测网络中流入和流出的数据包。有一些检测系统还提供深入数据包检测,可以确实检查某些SQL,并可以通过设定规则在某种情况下触发报警器。这些工具还能够查找泄密迹象,例如添加的UNION、各种类型的short- circuiting命令、利用“--”注释进行截断等等。
5. 监听器
计算机世界最让人觉得了不起的事情就是,不管有多么困难的事,总有办法驯服它。尤其是在安全领域,一些漏洞如此的简单,而这些漏洞的出现仅仅是因为用户(也包括我们现在扮演的角色——黑客)并没有像软件设计者(程序员或软件开发员)本来预想的那样思考和行动。
Oracle监听器的设置是为了能够实现远程管理。那么如果攻击者把监听器的logfile设置为Unix .rhosts文件呢?这样攻击者就可以轻松的对.rhosts文件进行写操作。Unix上的这个文件设置了什么人可以不用密码而使用rsh、rlogin和rcp命令登录。你可以想想将会发生什么事情。
这其实只是围绕Oracle监听器安全问题的冰山一角而已。其他的还有缓冲区溢出等一大堆问题需要注意。事实上Litchfield的《Oracle黑客手册》里花了一整章的内容来讨论这个主题。
防范此类攻击的方法
从预防的角度而言,Oracle已经做出了一定措施来更好的保障系统安全,前提是你能够把它实施到位。首先,为监听器设置一个管理密码。对于担负着管理不断增加的密码重担的管理员而言,这看起来像是多余的,不过在你需求其他途径来保障监听器安全之前,好好地想想上面提到的和没提到的威胁。Oracle也添加了ADMIN_RESTRICTIONS,能够阻止特定的远程控制事件。
- ››oracle 中 UPDATE nowait 的使用方法
- ››Oracle ORA-12560解决方法
- ››Oracle 10g RAC 常用维护命令
- ››Oracle如何在ASM中定位文件的分布
- ››Oracle的DBMS_RANDOM.STRING 的用法
- ››oracle 外部表导入时间日期类型数据,多字段导入
- ››Oracle中查找重复记录
- ››oracle修改用户登录密码
- ››Oracle创建删除用户、角色、表空间、导入导出等命...
- ››Oracle中登陆时报ORA-28000: the account is lock...
- ››Oracle数据库在配置文件中更改最大连接数
- ››Oracle中在pl/sql developer修改表的两种方式
更多精彩
赞助商链接