數據安全:獨立發佈的Oracle嚴重 CVE-2018-3110 公告

專業數據庫服務:http://www.enmotech.com/services/service.html

原文鏈接:http://enmotech.com/web/detail/1/565/1.html

更多數據庫諮詢精彩早知道:“數據和雲”公衆號

在 2018年8月10日,Oracle 獨立的發送了一封"安全警告"郵件給所有的 Oracle 用戶,這封郵件的標題是:Oracle Security Alert for CVE-2018-3110。這也是今年 Oracle 第一次獨立針對一個 CVE 安全風險發佈預警。

 

正常情況下,Oracle 每個季度發佈一次安全補丁更新,今年的下一次發佈應該在10月16日。所以針對 CVE-2018-3110 的預警就非常值得大家重視。

 

CVE 的英文全稱是“Common Vulnerabilities & Exposures”公共漏洞和暴露。CVE就好像是一個字典表,爲廣泛認同的信息安全漏洞或者已經暴露出來的弱點給出一個公共的名稱。幫助用戶在各自獨立的各種漏洞數據庫中和漏洞評估工具中共享數據,CVE因此成爲了安全信息共享的“關鍵字”。在一個漏洞報告中指明的一個漏洞,如果有CVE名稱,你就可以快速地在任何其它CVE兼容的數據庫中找到相應修補的信息,解決安全問題。

  •  

預警的郵件內容如下:

預警1.jpg

 

影響範圍和版本

 

 

 

CVE-2018-3110 影響範圍是所有當前在支持的數據庫版本,但是一部分版本已經在2018年7月的CPU中修訂,所以如果此前應用了 7 月的CPU,則本次主要針對Windows 提出修訂,還有主要是針對剛剛發佈的 Oracle 18.3 版本的修正。

 

詳細說明如下:

 

  1. 修正了Windows上版本11.2.0.4和12.2.0.1中的Oracle數據庫漏洞。 CVE-2018-3110的CVSS v3基本分數爲9.9,可能會導致Oracle數據庫和對底層服務器的shell訪問完全受損。 

  2. CVE-2018-3110還影響Windows上的12.1.0.2以及Linux和Unix上的Oracle數據庫,但是這些版本和平臺的補丁包含在2018年7月的CPU中。

 

如果您在Windows上運行Oracle數據庫版本11.2.0.4和12.2.0.1,請應用下面指出的修補程序。 如果您在Windows或Linux或Unix上的任何版本的數據庫上運行版本12.1.0.2並且尚未應用2018年7月的CPU,請執行此操作。

 

由於此漏洞的性質,Oracle強烈建議客戶立即採取措施。

 

除了以上聲明的版本,其他過期版本同樣會受到影響,只是 Oracle 不再單獨列出和提供獨立的補丁而已。

 

嚴重程度

 

本次警告之所以獨立發出,重點預警,是因爲這個漏洞的危險性非常高,CVSS V3的評分高達 9.9 ,也就幾乎是能夠『完全控制系統』的安全威脅。

 

CVSS : Common Vulnerability Scoring System,即“通用漏洞評分系統”,是一個“行業公開標準,其被設計用來評測漏洞的嚴重程度,並幫助確定所需反應的緊急度和重要度”。  CVSS的目標是爲所有軟件安全漏洞提供一個嚴重程度的評級,這個評分系統把能夠完全攻破操作系統層的已知安全漏洞評爲基準分數10.0分。換句話說,CVSS基準分數爲10.0分的安全漏洞一般指能夠完全攻破系統的安全漏洞,典型的結果是攻擊者完全控制一個系統,包括操作系統層的管理或者“根”權限。

 

當然這個漏洞是需要前提條件的,CVE-2018-3110 需要一個數據庫用戶,具備最基本的CREATE SESSION,也就是說能夠創建會話,連接到數據庫。然後,基於對於公共 JAVA 對象的訪問,獲得權限提升,直至全部控制數據庫。

這個漏洞的組件是:Java VM。

預警2.jpg

 

在 2018年7月發佈的CPU中,包含的 CVE-2018-3004 是和 3110 同源的漏洞,是在上一次實現攻擊的基礎上,有了進一步的簡化攻擊,從而其風險分值上升到 9.9 。

預警3.jpg

 

補丁列表

 

在 MOS 的以下文檔,可以找到適用於各個版本的補丁:

Critical Patch Update (CPU) Program July 2018 Patch Availability Document (PAD) (文檔 ID 2394520.1)。

 

針對 Oracle 18c ,也就是剛剛發佈的 18.3 以及 12.2 的補丁列表如下,大家可以通過MOS找到適用於自己環境的補丁:

預警4.jpg

 

風險示例

 

 

很多客戶可能會關心,如果不升級,到底會有多大的影響?

 

有些安全漏洞,需要特殊的權限,複雜的攻擊注入方式,所以及時存在,重現不容易,威脅也就不大,例如2018年1月發佈的安全補丁,其中一個漏洞已經存在了很久,以下連接中重現了 CVE-2017-10282 漏洞,其評分是 9.1 :

安全警報:Oracle 2018一月號安全補丁修復由來已久安全漏洞

 

而本次警示的 CVE-2018-3110 其評分是 9.9 ,需要的權限更少,更容易重現。

 

除非您能明確控制 Java VM 組件對象授權,並且能夠確保每一個連接數據庫的用戶的身份和操作控制,否則強烈建議應用補丁,防範風險。

 

如果你不需要JAVA組件,建議在安裝數據庫時不要選擇,否則就可能面臨一系列的麻煩。在 Oracle 11.2.0.1 版本中,就曾經幾度發生過注入漏洞。

 

這些麻煩多數是過度授權,將一些JAVA對象授權給 Public 執行權限,就導致了問題。例如 11.2.0.1 的 CPU 修正 9454036,其補丁腳本 jvm_exp.sql 的最後一段正是對於權限的回收,這個命令回收了 create session 用戶也能執行 DBMS_JVM_EXP_PERMS 的問題:

begin

initjvmaux.exec(‘revoke execute on sys.dbms_jvm_exp_perms from PUBLIC’);

exception

when others then

if sqlcode not in (-01927, -06550, -06512) then raise; end if;

end;

/

關於 DBMS_JVM_EXP_PERMS 的執行權限的漏洞是,可以通過類似如下代碼給自己授予JAVA的系統執行權限,就可以隨時提權成爲DBA了:

DECLARE

POL DBMS_JVM_EXP_PERMS.TEMP_JAVA_POLICY;

CURSOR C1 IS SELECT ‘GRANT’,USER(), ‘SYS’,’java.io.FilePermission’,’<<ALL FILES>>‘,’execute’,’ENABLED’ from dual;

BEGIN

OPEN C1;

FETCH C1 BULK COLLECT INTO POL;

CLOSE C1;

DBMS_JVM_EXP_PERMS.IMPORT_JVM_PERMS(POL);

END;

/

 

此前 CPU 修訂的另外一個漏洞則是和 DBMS_JAVA 的執行權限有關,通過這個Package的調用,可以隨意執行系統命令,進一步提升權限:

SELECT DBMS_JAVA.RUNJAVA('oracle/aurora/util/Wrapper /bin/sh -c /usr/bin/id>/dev/shm/out') FROM DUAL;

 

這些方法都是在『DBA的暗世界』裏廣爲流傳的,如果您的數據庫不能及時應用修正,又缺乏良好的權限控制,那麼你的數據就早已經是明朗的天空了。

 

 

 

如果您還運行在低版本的數據庫上,建議大家關注安全問題了。

 

參考文獻:

http://www.oracle.com/technetwork/security-advisory/alert-cve-2018-3110-5032149.html

Critical Patch Update (CPU) Program July 2018 Patch Availability Document (PAD) (文檔 ID 2394520.1)

我的博客即將搬運同步至騰訊雲+社區,邀請大家一同入駐:https://cloud.tencent.com/developer/support-plan?invite_code=1hgka56hiexc

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章