欧美乱码精品一区二区三区,风流少妇又紧又爽又丰满,被债主在夫面前人妻被强,国产精品视频永久免费观看

?
內容中心
按關鍵字查找
Oracle中泄露“天機”的TNS
作者:思成 發(fā)布時間:2016-06-29

數(shù)據(jù)庫的安全是長期存在的問題。在目前大量的數(shù)據(jù)泄露事件以及漏洞面前,大家看到的大都是SQl注入、越權操作、緩沖區(qū)溢出等這些具體漏洞。往往卻 忽視了造成這些問題的前提,黑客想要入侵數(shù)據(jù)庫一定會嘗試獲取數(shù)據(jù)庫ip、端口和數(shù)據(jù)庫版本號。沒有ip和端口黑客對數(shù)據(jù)庫的攻擊將無從下手,也就無法對 數(shù)據(jù)庫發(fā)動真正有效的進攻。所以防止數(shù)據(jù)庫ip 、端口和版本號的泄露是防止黑客入侵數(shù)據(jù)庫的第一道防線。

數(shù)據(jù)庫版本號的泄露途徑

要想防止黑客盜取數(shù)據(jù)庫版本信息。首先就要弄清黑客是從哪些渠道獲取數(shù)據(jù)庫版本信息的,然后才能提出切實有效的防御方案。本文僅針對Oracle講 解黑客獲取Oracle數(shù)據(jù)庫版本號的方式以及預防措施。除去社會工程學從技術角度出發(fā)TNS(ORTACLE的網(wǎng)絡核心組件)是泄露數(shù)據(jù)庫版本號的一個 重要功能。

安華金和數(shù)據(jù)庫攻防實驗室結合多年的經(jīng)驗與實踐總結出黑客通過TNS獲取ORACLE數(shù)據(jù)庫版本信息主要有以下三種方式:

1. 身份驗證前部分函數(shù)泄露數(shù)據(jù)庫版本

在TNS的通訊包中存在大量的函數(shù)調用。這些函數(shù)調用中有一部分函數(shù)會在進行身份驗證之前被運行,其中一部分函數(shù)會導致數(shù)據(jù)庫版本信息外泄。從而使得只要黑客知道數(shù)據(jù)庫ip和端口以及實例名就可以成功騙去數(shù)據(jù)庫版本信息。其中最有代表的函數(shù)是0x3B TTC函數(shù)。

客戶端接收到服務器發(fā)送的接收包,服務器可能會選擇商議附加的網(wǎng)絡服務,約定客戶端和服務器采用的身份驗證、加密、數(shù)據(jù)完整性和管理等。在ANO商議頭(下面包中的0XDEADBEEF)后面的3個字節(jié)中可以找到服務器的數(shù)據(jù)庫版本信息。

圖中紅線所指地方0x0a200100就是數(shù)據(jù)庫版本信息,只觀可以判斷版本為10.2.0.1.0(a在16進制里是10)。

2.TNS報錯信息泄露數(shù)據(jù)庫版本

如果TNS接到一個它無法識別的TNS命令(是格式正確,但內容不對),就會會送一個錯誤,在這個錯誤中包含VSNNUM,它保存了一個十進制數(shù) 字,把該數(shù)字轉成十六進制會得到數(shù)據(jù)庫版本號。這種方式比上一種方式需求的信息更少,只需要數(shù)據(jù)庫的IP和端口就可以進行數(shù)據(jù)庫版本號的騙取。 
 例如:C:\Documents and Settings\lsc>sqlplus scott/tig@192.168.0.60:1521/or(實例名、密碼全不對,但格式正確。)

服務器會回答一個錯誤應答包如下圖所示:

箭頭所指的方向 VS NNUM=169869568 是ORACLE客戶端的版本號。把這組數(shù)轉成16進制變成 A200100

3. TNS命令不合理使用泄露數(shù)據(jù)版本

第三種也是最危險的一種。只需要有IP就能獲取端口號、數(shù)據(jù)庫版本號甚至操作系統(tǒng)版本號。危險的來源是本來lsnrctl的命令應該只在本地執(zhí)行, 但oracle為了照顧操作的靈活性,某些版本支持lsnrctl 遠程使用。僅通過IP信息可以獲取目標數(shù)據(jù)庫所有外圍敏感信息。例如我們ping 192.168.0.60發(fā)現(xiàn)可以ping 通。直接設置監(jiān)聽目標ip (set current_listener 192.168.0.60)執(zhí)行命令version獲取目標IP數(shù)據(jù)庫的端口、數(shù)據(jù)庫版本以及操作系統(tǒng)版本。

對比3種獲取數(shù)據(jù)庫版本信息的方法,第三種方法要求最低,收益最高,但缺點是這種方式只支持到Oracle10R2版本。而方法一和方法二,則是任何一個版本的oracle數(shù)據(jù)庫都存在安全隱患。

防止泄露數(shù)據(jù)庫版本號的方法

知道了黑客采集數(shù)據(jù)庫版本的辦法,我們就可以針對性的進行防御。安華金和數(shù)據(jù)庫攻防實驗室根據(jù)多年經(jīng)驗以及攻防測試總結出以下4點有助于加固TNS的解決法辦法。

1.設置TNS Listener 口令

默認情況下,TNS Listener 沒有設置口令,任何可以連接到系統(tǒng)的人都可以管理它。設置Listener口令可以防止對Listener的無授權管理。為了設置口令,編輯 listener.ora 加入PASSWORDS_LISTENERNAME.按步操作,直到完成整個加口令過程。

2.開啟 Admin Restrictions

通過開啟Admin Restrictions(管理限制)可防止對Listener的未授權管理。隨著Admin Restrictions的開啟,一些命令將不能被遠程調用。及時提供Listener口令也不行。為開啟Admin Restrictions,將下面的代碼行添加到Listener.ora文件中。

ADMIN_RESTRICTIONS_listencername =ON

3.開啟TCP有效節(jié)點檢查

TCP有效節(jié)點檢驗可以用來允許某些主機連接到數(shù)據(jù)庫而阻止其他服務器鏈接。為開啟TCP有效節(jié)點檢驗,按如下方式編譯代碼:

TCP.VALIDNODE_CHECKING = YES

TCP.EXCLUDED_NODES={List of ip addresses separated by a comma}

或者

TCP.INVITED_NODES={List of ip addresses separated by a comma}

4.網(wǎng)絡通信量加密

利用Oracle Net Manager實現(xiàn)對客戶機和數(shù)據(jù)庫服務器之間的通訊進行加密。注意此處的加密指的是協(xié)議加密,而并非數(shù)據(jù)加密。

根據(jù)安華金和數(shù)據(jù)庫攻防實驗室的實踐以上四點能夠有效的防止黑客獲取數(shù)據(jù)庫版本信息。從而使黑客無法對數(shù)據(jù)庫進行針對性的攻擊。通過加固TNS將避免一些設計帶來的問題,有利于保護數(shù)據(jù)庫版本信息不被泄露 ,從而保障數(shù)據(jù)庫安全。


?
定陶县| 忻州市| 海丰县| 北海市| 中西区| 泸西县| 揭西县| 泰顺县| 苏州市| 偏关县| 建水县| 普陀区| 灵武市| 柞水县| 宁国市| 志丹县| 呼伦贝尔市| 新平| 马山县| 措美县| 邯郸市| 永安市| 江永县| 钦州市| 若尔盖县| 津南区| 双江| 昌黎县| 阿拉善左旗| 长海县| 随州市| 宁国市| 涿鹿县| 双柏县| 炎陵县| 乌兰浩特市| 沙河市| 怀集县| 通道| 柳江县| 和硕县|