Oracle數(shù)據(jù)庫(kù)安全防范:典型問(wèn)題和解決思路
數(shù)據(jù)安全是個(gè)很廣的話題,它包括了網(wǎng)絡(luò)安全、操作系統(tǒng)安全、應(yīng)用層安全和數(shù)據(jù)庫(kù)安全等。數(shù)據(jù)安全的目標(biāo)是敏感數(shù)據(jù)"看不見",核心數(shù)據(jù)"拿不走",運(yùn)維操作"能審計(jì)"。
常見的安全風(fēng)險(xiǎn)主要有外部攻擊和內(nèi)部威脅兩大類:
1、外部的攻擊:可能使用的軟件漏洞,繞過(guò)登錄信息,破解密碼等方式登錄系統(tǒng);拒絕服務(wù):通過(guò)請(qǐng)求有限的資源,如端口分配給未授權(quán)用戶;未經(jīng)授權(quán)的數(shù)據(jù)和服務(wù)的訪問(wèn):當(dāng)一個(gè)外部的人通過(guò)了認(rèn)證,就認(rèn)為是一個(gè)內(nèi)部的人;
2、內(nèi)部威脅(大部分的錯(cuò)誤都是有內(nèi)部原因造成的):濫用特權(quán);偷竊數(shù)據(jù)或者服務(wù);數(shù)據(jù)破壞,惡意修改數(shù)據(jù);
Oracle數(shù)據(jù)庫(kù)本身包含了多種的手段來(lái)保證數(shù)據(jù)的安全,比如強(qiáng)身份認(rèn)證、審計(jì)、數(shù)據(jù)加密和編輯、細(xì)粒度審計(jì)、安全標(biāo)簽和數(shù)據(jù)屏蔽等等;除此之外,還有很多外部措施和技術(shù)可以用來(lái)進(jìn)行安全防范。
在上個(gè)星期舉辦的“Oracle數(shù)據(jù)庫(kù)安全防范技術(shù)應(yīng)用交流”中,集中討論了Oracle數(shù)據(jù)庫(kù)安全相關(guān)的問(wèn)題,同時(shí)也拓展到了其它方面,比如高可用、備份恢復(fù)和性能調(diào)優(yōu),很多這方面的高手參與,在此特邀活動(dòng)嘉賓、同時(shí)也是活動(dòng)中技術(shù)文檔的分享者 royalwzy(海通證券 數(shù)據(jù)庫(kù)架構(gòu)師)對(duì)問(wèn)答進(jìn)行整理和歸類,方便大家直接參考。
(本文亦有以下社區(qū)會(huì)員的貢獻(xiàn):willow、mczmiao、yhd_my、zyclove2008 等等)
一、數(shù)據(jù)庫(kù)安全類
問(wèn):對(duì)于數(shù)據(jù)庫(kù)審計(jì)的安全問(wèn)題,可否提供一點(diǎn)較為詳細(xì)的文檔或者產(chǎn)品?
答:
可以參考社區(qū)的兩篇文章
1.Oracle審計(jì)技術(shù)介紹:http://www.aixchina.net/Question/228291
2.Oracle細(xì)粒度審計(jì):http://www.aixchina.net/Question/228297
---
問(wèn):請(qǐng)教專家,在ORACLE 11G環(huán)境下,如何從數(shù)據(jù)庫(kù)本身加強(qiáng)安全認(rèn)證?在oracle數(shù)據(jù)庫(kù)應(yīng)用中,其安全要求涉及很多方面,從數(shù)據(jù)庫(kù)本身如何加強(qiáng)安全認(rèn)證?請(qǐng)專家給出幾個(gè)具體的提高安全保障要求的詳細(xì)配置案例的做法。
答:
以下幾個(gè)方面僅供參考:
1.最小權(quán)限原則:
1)在機(jī)器上,只安裝需要的軟件;
2)只激活機(jī)器上必須的服務(wù);
3)只給必要的人訪問(wèn)數(shù)據(jù)庫(kù)和操作系統(tǒng)的權(quán)限;
4)顯示使用root和admin權(quán)限訪問(wèn)操作系統(tǒng);
5)限制sysdba和sysoper用戶訪問(wèn)數(shù)據(jù)庫(kù);
6)限制用戶只能訪問(wèn)工作中必須的的數(shù)據(jù)庫(kù)對(duì)象;
2.定義安全策略;
3.加強(qiáng)服務(wù)器保護(hù):
1)只保留必要的服務(wù),不但可以減少服務(wù)器的負(fù)載,也降低了安全的風(fēng)險(xiǎn);比如內(nèi)網(wǎng)數(shù)據(jù)庫(kù)服務(wù)器禁用掉除1521之外的非必須的端口;負(fù)面的例子,有人在服務(wù)器上安裝360;
2)限制特權(quán)用戶的個(gè)數(shù),比如操作系統(tǒng)的權(quán)限,數(shù)據(jù)庫(kù)的權(quán)限和應(yīng)用程序的權(quán)限等等;
3)使用服務(wù)的安全特性,比如添加審計(jì)功能,比如vsftpd服務(wù)的chroot功能;
4)應(yīng)用安全補(bǔ)丁和解決辦法,及時(shí)查看軟件供應(yīng)商發(fā)布的安全補(bǔ)丁;
5)保護(hù)備份,備份數(shù)據(jù)和源數(shù)據(jù)同等重要;
6)對(duì)內(nèi)部開發(fā)的系統(tǒng)進(jìn)行安全測(cè)試,包括一些邊際測(cè)試,功能測(cè)試,壓力測(cè)試等;
7)需要強(qiáng)密碼,要滿足一定的密碼復(fù)雜度,比如說(shuō)至少8位,必須包含大寫/小寫/數(shù)字/特殊字符中的三個(gè);
8)控制物理訪問(wèn),還是前面提到的,要保證物理機(jī)器的安全;
9)審計(jì),用來(lái)探測(cè)可以的活動(dòng);比如用戶登錄,非法操作;
10)使用入侵檢測(cè)工具,比如使用tripwire工具來(lái)檢測(cè)等等;
4.維護(hù)數(shù)據(jù)的完整性:
1)標(biāo)準(zhǔn)審計(jì):可以記錄訪問(wèn)的時(shí)間,誰(shuí)訪問(wèn)的哪一個(gè)數(shù)據(jù)對(duì)象,和使用的權(quán)限;
2)細(xì)粒度審計(jì):可以查看到調(diào)用的SQL語(yǔ)句,結(jié)合閃回功能可以查看到之前訪問(wèn)的數(shù)據(jù);
3)特權(quán)用戶審計(jì):可以記錄sysdba用戶的相關(guān)操作;
4)網(wǎng)絡(luò)加密:防止數(shù)據(jù)在傳輸過(guò)程中被篡改;
5.訪問(wèn)控制;
---
問(wèn):Oracle數(shù)據(jù)庫(kù)一般部署在核心區(qū)域,怎么在網(wǎng)絡(luò)上隔離各類攻擊行為?
答:
幾個(gè)方面吧:1.限制只有應(yīng)用或者中間件的服務(wù)器可以訪問(wèn)數(shù)據(jù)庫(kù)服務(wù)器;2.前面使用多道防火墻;3.劃分好DMZ區(qū)
在網(wǎng)絡(luò)acl上嚴(yán)格控制對(duì)數(shù)據(jù)庫(kù)監(jiān)聽端口的訪問(wèn)(通過(guò)網(wǎng)絡(luò)防火墻實(shí)現(xiàn))、同時(shí),在數(shù)據(jù)庫(kù)本機(jī)的防火墻策略中也添加訪問(wèn)策略。在網(wǎng)絡(luò)上,還可利用入侵檢測(cè)設(shè)備等進(jìn)行防范。
---
問(wèn):有關(guān)數(shù)據(jù)存儲(chǔ)加密的技術(shù)趨勢(shì)。這一兩年內(nèi)有些外資銀行提出包含客戶數(shù)據(jù)的存儲(chǔ)加密--data encryption at rest,主要是防范操作系統(tǒng)管理員的越權(quán)獲取客戶數(shù)據(jù)得目的。16年該概念在Oracle和IBM有一些嘗試但是尚未有大規(guī)模的行業(yè)部署,不知大家對(duì)數(shù)據(jù)存儲(chǔ)加密的技術(shù)趨勢(shì)有無(wú)看法?
答:
這方面前段時(shí)間在做論文的時(shí)候涉獵一些,難點(diǎn)主要集中在加密密鑰管理和元數(shù)據(jù)的管理上吧。
---
問(wèn):請(qǐng)教如何防止SQL注入?
答:
通過(guò)數(shù)據(jù)庫(kù)審計(jì)系統(tǒng)實(shí)現(xiàn)SQL語(yǔ)句的行為審計(jì),區(qū)分合法SQL和惡意注入,聯(lián)動(dòng)防火墻或IPS進(jìn)行攔截。
從根源上進(jìn)行防范的效果最佳,嚴(yán)格審查web應(yīng)用程序和其他可進(jìn)行sql語(yǔ)句輸入的字段、隱藏字段等。
---
問(wèn):Oracle數(shù)據(jù)庫(kù)安全基線綜合評(píng)分體系探討。在按照安全基線對(duì)Oracle數(shù)據(jù)庫(kù)的安全配置項(xiàng)進(jìn)行修改后,如何對(duì)配置修改的效果進(jìn)行評(píng)估呢? 是否可以按照配置項(xiàng)的重要程度,采用加權(quán)累計(jì)方式進(jìn)行評(píng)估,或者大家是否有一套完善的評(píng)估體系? 針對(duì)每一個(gè)安全配置評(píng)估項(xiàng)目,按重要程度,形成一套量化的評(píng)分標(biāo)準(zhǔn)呢?
答:
比如從如下檢查項(xiàng)(包括但不限于)的重要程度:如口令策略、帳號(hào)鎖定策略、日志文件保護(hù)策略、限制SYSDBA帳號(hào)遠(yuǎn)程登錄、public權(quán)限、日志審計(jì)策略、數(shù)據(jù)字典保護(hù)等。
---
問(wèn):數(shù)據(jù)庫(kù)應(yīng)用用戶權(quán)限過(guò)大的處理。很多情況下,應(yīng)用自稱需要某某權(quán)限,然后帶著該權(quán)限上線了,之后發(fā)現(xiàn)并不需要此權(quán)限,此時(shí)如何處理比較好?如果直接簡(jiǎn)單粗暴地revoke回來(lái)有可能導(dǎo)致正常業(yè)務(wù)無(wú)法執(zhí)行,風(fēng)險(xiǎn)難以控制,后果難以預(yù)計(jì)呀!
答:
這個(gè)從流程和技術(shù)兩個(gè)方面考慮吧。
流程方面:如果應(yīng)用想要申請(qǐng)足夠高的權(quán)限,可以通過(guò)團(tuán)隊(duì)協(xié)作留痕,保證有據(jù)可查。
技術(shù)方面:之后發(fā)現(xiàn)權(quán)限太大,擔(dān)心風(fēng)險(xiǎn)發(fā)生,繼而可以通過(guò)審計(jì)的技術(shù)手段對(duì)用戶的權(quán)限使用進(jìn)行記錄。發(fā)生問(wèn)題時(shí)有責(zé)可追。
---
問(wèn):應(yīng)用用戶具有DBA權(quán)限,密碼明文,這種應(yīng)用隨處可見,從數(shù)據(jù)庫(kù)管理角度,如何保證這種用戶的數(shù)據(jù)安全,數(shù)據(jù)不被篡改。
答:
可以考慮使用審計(jì)功能;
二、其它問(wèn)題
問(wèn):關(guān)于金融行業(yè)oracle的數(shù)據(jù)安全。在金融行業(yè),雙活是一個(gè)重要課題,可以保證應(yīng)用的高可用性。那么在數(shù)據(jù)庫(kù)層面目前有無(wú)數(shù)據(jù)庫(kù)雙活的架構(gòu)設(shè)計(jì),在雙機(jī)房進(jìn)行時(shí)數(shù)據(jù)同步時(shí),ADG和OGG是如何區(qū)分應(yīng)用場(chǎng)景進(jìn)行使用的,二者有何本質(zhì)區(qū)分?另外oracle12C的新版本具有多租戶的概念,這種系統(tǒng)架構(gòu)目前有無(wú)實(shí)際應(yīng)用案例,它與傳統(tǒng)部署方式在數(shù)據(jù)權(quán)限控制方面有無(wú)一定的風(fēng)險(xiǎn)?
答:
1.同城雙活的話可以考慮使用 Oracle Extended Distance Clusters
2.OGG類似于DG的邏輯備機(jī),是基于日志挖掘的方式做同步的,優(yōu)點(diǎn)就是可以在備機(jī)做操作。
3.12cR2已經(jīng)發(fā)布了,準(zhǔn)備要升級(jí)的公司還是蠻多的,PDB特別適合很多小庫(kù)的場(chǎng)景,可以把不同的業(yè)務(wù)隔離開。數(shù)據(jù)權(quán)限根之前基本一樣,多了一個(gè)COMMON用戶的概念。
---
問(wèn):大型系統(tǒng)中有大量用到oracle數(shù)據(jù)庫(kù),通常在購(gòu)買license上考慮到節(jié)約,請(qǐng)問(wèn)這樣會(huì)有安全問(wèn)題產(chǎn)生嗎?比如:100臺(tái)oracle服務(wù)器,只買了2個(gè)license。
答:
首先說(shuō)明一下,這樣做對(duì)安全本身是沒(méi)有影響的。只是商務(wù)的問(wèn)題。能使用的功能和安全的特性取決于你安裝的版本。
---
問(wèn):Oracle不等規(guī)模的數(shù)據(jù)庫(kù)備份措施有哪些?數(shù)據(jù)庫(kù)備份是很重要的一環(huán),那么在企業(yè)當(dāng)中我們遇到的數(shù)據(jù)庫(kù)規(guī)模和量級(jí)也是不一樣的。那么在針對(duì)不同規(guī)模的數(shù)據(jù)庫(kù)備份的時(shí)候,具體的備份措施有哪些?
目前我們可以先安裝數(shù)據(jù)量大小來(lái)分:1. 小于1TB 場(chǎng)景;2. 大于5T<10T場(chǎng)景;3. 大于10T的場(chǎng)景。
答:
目前大部分公司都采用災(zāi)備的方式來(lái)代替真正的備份工作,就算小于1T的場(chǎng)景,真正出了故障,恢復(fù)也要很久。所以采用DG,ADG,OGG等方式才是高效的備份方案。有了這個(gè),你再加上套備份就更好了,通常采用Oracle自帶的Rman技術(shù),大庫(kù)可以采用NBU或TSM備份到帶庫(kù)。
---
問(wèn):備份軟件備份數(shù)據(jù)庫(kù)時(shí)如何規(guī)劃對(duì)數(shù)據(jù)庫(kù)性能影響小?比如有的看客戶需要做增量備份,將增量備份的的時(shí)間周期設(shè)置每1分在備份一次,此時(shí)頻繁調(diào)用數(shù)據(jù)庫(kù)的rman腳步執(zhí)行任務(wù),性能是否影響很大。
答:
這是一個(gè)很實(shí)用的問(wèn)題,可以從以下幾個(gè)方面考慮:
1.首先要明確,備份的目的是什么?一方面?zhèn)浞莸哪康氖钱?dāng)數(shù)據(jù)庫(kù)損壞時(shí)進(jìn)行還原,而還原時(shí)的速度很大程度上也取決于備份的方式;另一方面?zhèn)浞葸€可以用于做測(cè)試環(huán)境,搭建備機(jī)等等。
2.在Oracle中1級(jí)增量備份分為累計(jì)增量備份和差異增量備份;作用是備份上次備份后所有發(fā)生變化的數(shù)據(jù)塊;優(yōu)點(diǎn)是提高備份速度;原理是每次比對(duì)數(shù)據(jù)文件的SCN號(hào)碼,備份差異的塊,通過(guò)開啟數(shù)據(jù)庫(kù)的塊改變跟蹤功能,來(lái)記錄發(fā)生改變的快,大大提高差異備份的效率:
3.一分鐘一次的增量備份是太頻繁了,保護(hù)好歸檔日志本身也可以算是增量備份的一種方式;
4.如果想要減少性能影響甚至沒(méi)有影響,可以考慮在DataGuard的物理備機(jī)進(jìn)行備份。
---
問(wèn):Oracle RAC部署與雙活是一回事嗎?如不是,二者有什么區(qū)別?
答:
嚴(yán)格來(lái)講,Oracle RAC只能算是數(shù)據(jù)庫(kù)實(shí)例級(jí)別的雙活,這種技術(shù)只保護(hù)實(shí)例,不保證數(shù)據(jù)。雙活的標(biāo)準(zhǔn)看要求的哪一個(gè)級(jí)別了,當(dāng)然還有應(yīng)用雙活,更大一點(diǎn)的雙活數(shù)據(jù)中心等等。
ORACLE 的同城雙活可以用 Oracle Extended Distance Clusters,也可以用 OGG 來(lái)實(shí)現(xiàn),但OGG 有延時(shí),可能對(duì)并發(fā)量很大的系統(tǒng),會(huì)存在問(wèn)題。
---
問(wèn):Oracle數(shù)據(jù)庫(kù)是如何解決超大表問(wèn)題的(10G以上)?原理是什么?需要更改應(yīng)用程序嗎?
答:
Oracle處理大表常用的手段主要有三種:分區(qū)表和分區(qū)索引;并行;物化視圖。另外在數(shù)據(jù)倉(cāng)庫(kù)中還會(huì)用到星星模型和雪花模型。這些技術(shù)的使用都不用修改應(yīng)用程序。
至于原理的話,可以針對(duì)每個(gè)技術(shù)深入了解。例如物化視圖,可以查一下它的兩個(gè)特性:快速刷新和查詢重寫。
下面是Oracle超大數(shù)據(jù)庫(kù)的一些指導(dǎo),可以閱讀以下。
Database VLDB and Partitioning Guide:http://docs.oracle.com/cd/E11882_01/server.112/e25523/toc.htm
---
數(shù)據(jù)庫(kù)安全可以安全基線為基礎(chǔ),涉及主題有:身份鑒別、基本訪問(wèn)控制和審計(jì)等,需要專業(yè)服務(wù)支持。
但實(shí)施安全基線比較麻煩,需要評(píng)估等一系列影響。還可以考慮專業(yè)硬軟件,這部分就多了,有原廠的,有第三方的。
實(shí)現(xiàn)目的是:事前可預(yù)警、事中可控制和事后可追查。