環(huán)境:Windows 2008 R2 + Oracle 10.2.0.3
應(yīng)用最新bundle patch后,掃描依然報(bào)出漏洞 Oracle Database Server 'TNS Listener'遠(yuǎn)程數(shù)據(jù)投毒漏洞(CVE-2012-1675)
•1.確定解決方案
•2.應(yīng)用解決方案
•3.驗(yàn)證修補(bǔ)情況
•4.Reference
1.確定解決方案
安全廠家給出的解決辦法:
鏈接:http://www.oracle.com/technetwork/topics/security/alert-cve-2012-1675-1608180.html
根據(jù)此鏈接得到解決方法:
SolutionRecommendations for protecting against this vulnerability can be found at:My Oracle Support Note 1340831.1 for Oracle Database deployments that use Oracle Real Application Clusters (RAC).My Oracle Support Note 1453883.1 for Oracle Database deployments that do not use RAC.
目前這里環(huán)境不是RAC,參考文檔1453883.1:
Using Class of Secure Transport (COST) to Restrict Instance Registration (文檔 ID 1453883.1)
找到兩種解決方案:
SOLUTIONThere are two methods that can be used to protect the listener using COST "SECURE_REGISTER_listener_name =" in stand alone database installations.1) Restricting registration to the TCP protocol (Requires the fix for BUG:12880299)- or - 2) Restricting registration to the IPC protocol (The patch for BUG:12880299 is NOT required for the IPC method)Either method accomplishes the same goal but it is your choice which type to implement subject to the restriction* noted below. Both methods will be discussed.•The second method (using IPC) cannot be used if the database is a member of an Oracle Data Guard broker configuration.
我這里選擇第一種解決方案:
1) Restricting registration to the TCP protocol (Requires the fix for BUG:12880299)。
2.應(yīng)用解決方案
2.1 確定現(xiàn)狀
監(jiān)聽配置文件:listener.ora
存放路徑:cd %ORACLE_HOME%/network/admin
內(nèi)容(保證安全,所有IP相關(guān)信息已二次處理):
# listener.ora Network Configuration File: E:/oracle/product/10.2.0/db_1/NETWORK/ADMIN/listener.ora# Generated by Oracle configuration tools.LISTENER =(DESCRIPTION_LIST =(DESCRIPTION =(ADDRESS = (PROTOCOL = IPC)(KEY = EXTPROC1521))(ADDRESS = (PROTOCOL = TCP)(HOST =192.168.1.138)(PORT = 1521))))SID_LIST_LISTENER =(SID_LIST =(SID_DESC =(SID_NAME = PLSExtProc)(ORACLE_HOME = E:/oracle/product/10.2.0/db_1)(PROGRAM = extproc)(ENVS = "EXTPROC_DLLS=ANY"))(SID_DESC =(GLOBAL = orcl)(ORACLE_HOME = E:/oracle/product/10.2.0/db_1)(SID_NAME = orcl)))ADR_BASE_LISTENER = E:/oracle
數(shù)據(jù)庫(kù)監(jiān)聽信息,原始都是空值:
SQL> show parameter local_listenerNAME TYPE VALUE------------------------------------ ----------- ---------------------------local_listener stringSQL> show parameter remote_listener;NAME TYPE VALUE------------------------------------ ----------- ---------------------------remote_listener stringSQL>
2.2 嘗試應(yīng)用解決方案
2.2.1 停止監(jiān)聽
lsnrctl stop listener
2.2.2 修改監(jiān)聽配置文件
Add the COST TCP protocol restriction "SECURE_REGISTER_[listener_name] = (TCP)" to the listener.ora.Match the COST parameter variable listener_name with the name of the listener you are using in the listener.ora, e.g., If your listener name is "LISTENER_PROD" then use SECURE_REGISTER_LISTENER_PROD = (TCP)
實(shí)際修改過程:
切換到監(jiān)聽配置文件所在路徑:
cd %ORACLE_HOME%/network/admin
直接修改listener.ora文件,在文件的末尾添加一行:
SECURE_REGISTER_LISTENER = (TCP)
2.2.3 啟動(dòng)監(jiān)聽
啟動(dòng)監(jiān)聽:
lsnrctl start listener
立即注冊(cè)動(dòng)態(tài)監(jiān)聽:
SQL> alter system register;
2.2.4 設(shè)置local_listener
alter system set local_listener='(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST =192.168.1.138)(PORT = 1521)))' scope = both;show parameter local_listener
2.2.5 查看監(jiān)聽服務(wù)信息
lsnrctl services listenerE:/oracle/product/10.2.0/db_1/network/ADMIN>lsnrctl services listenerLSNRCTL for 32-bit Windows: Version 10.2.0.3.0 - Production on 21-9月 -2016 10:22:02Copyright (c) 1991, 2006, Oracle. All rights reserved.
正在連接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))服務(wù)摘要..服務(wù) "PLSExtProc" 包含 1 個(gè)例程。例程 "PLSExtProc", 狀態(tài) UNKNOWN, 包含此服務(wù)的 1 個(gè)處理程序...處理程序:"DEDICATED" 已建立:0 已被拒絕:0LOCAL SERVER服務(wù) "orcl" 包含 1 個(gè)例程。例程 "orcl", 狀態(tài) UNKNOWN, 包含此服務(wù)的 1 個(gè)處理程序...處理程序:"DEDICATED" 已建立:3 已被拒絕:0LOCAL SERVER命令執(zhí)行成功
3.驗(yàn)證修補(bǔ)情況
3.1 注釋COST規(guī)則驗(yàn)證監(jiān)聽情況
3.1.1 注釋掉listener.ora文件的COST規(guī)則并重啟監(jiān)聽
Comment the COST rule in listener.ora and restart the listener.
直接修改listener.ora文件,在之前添加的一行前面加上"#"注釋此行。
#SECURE_REGISTER_LISTENER = (TCP)
重啟監(jiān)聽:
lsnrctl stop listenerlsnrctl start listener
3.1.2 設(shè)置remote_listener后查看監(jiān)聽服務(wù)信息
設(shè)置remote_listener:
SQL> alter system set remote_listener='(ADDRESS = (PROTOCOL = TCP)(HOST =192.168.1.138)(PORT = 1521))' scope=memory;SQL> show parameter remote_listener
快速動(dòng)態(tài)監(jiān)聽注冊(cè):
SQL> alter system register;
查看監(jiān)聽服務(wù)信息,發(fā)現(xiàn)有“REMOTE SERVER”字樣,說明此時(shí)漏洞存在:
E:/oracle/product/10.2.0/db_1/network/ADMIN>lsnrctl services listenerLSNRCTL for 32-bit Windows: Version 10.2.0.3.0 - Production on 21-9月 -2016 10:44:18Copyright (c) 1991, 2006, Oracle. All rights reserved.正在連接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))服務(wù)摘要..服務(wù) "PLSExtProc" 包含 1 個(gè)例程。例程 "PLSExtProc", 狀態(tài) UNKNOWN, 包含此服務(wù)的 1 個(gè)處理程序...處理程序:"DEDICATED" 已建立:0 已被拒絕:0LOCAL SERVER服務(wù) "orcl" 包含 2 個(gè)例程。例程 "orcl", 狀態(tài) UNKNOWN, 包含此服務(wù)的 1 個(gè)處理程序...處理程序:"DEDICATED" 已建立:0 已被拒絕:0LOCAL SERVER例程 "orcl", 狀態(tài) READY, 包含此服務(wù)的 2 個(gè)處理程序...處理程序:"DEDICATED" 已建立:0 已拒絕:0 狀態(tài):readyLOCAL SERVER"DEDICATED" 已建立:0 已拒絕:0 狀態(tài):readyREMOTE SERVER(DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))服務(wù) "orclXDB" 包含 1 個(gè)例程。例程 "orcl", 狀態(tài) READY, 包含此服務(wù)的 1 個(gè)處理程序...處理程序:"D000" 已建立:0 已被拒絕:0 當(dāng)前: 0 最大: 1002 狀態(tài): readyDISPATCHER <machine: INSPUR-IRMS-138, pid: 6728>(ADDRESS=(PROTOCOL=tcp)(HOST=INSPUR-IRMS-138)(PORT=52676))服務(wù) "orcl_XPT" 包含 1 個(gè)例程。例程 "orcl", 狀態(tài) READY, 包含此服務(wù)的 2 個(gè)處理程序...處理程序:"DEDICATED" 已建立:0 已拒絕:0 狀態(tài):readyLOCAL SERVER"DEDICATED" 已建立:0 已拒絕:0 狀態(tài):readyREMOTE SERVER(DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))命令執(zhí)行成功
3.2 取消注釋COST規(guī)則驗(yàn)證監(jiān)聽情況
3.2.1 取消注釋COST規(guī)則重啟監(jiān)聽并快速注冊(cè),驗(yàn)證監(jiān)聽服務(wù)信息
去掉監(jiān)聽文件末尾行前的“#”號(hào):
SECURE_REGISTER_LISTENER = (TCP)
重啟監(jiān)聽:
lsnrctl stop listenerlsnrctl start listener
快速注冊(cè)動(dòng)態(tài)監(jiān)聽:
SQL> alter system register;
驗(yàn)證監(jiān)聽服務(wù)信息,按官檔描述,正常應(yīng)該沒有“REMOTE SERVER”字樣:
E:/oracle/product/10.2.0/db_1/network/ADMIN>lsnrctl services listenerLSNRCTL for 32-bit Windows: Version 10.2.0.3.0 - Production on 21-9月 -2016 11:00:23Copyright (c) 1991, 2006, Oracle. All rights reserved.正在連接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))服務(wù)摘要..服務(wù) "PLSExtProc" 包含 1 個(gè)例程。例程 "PLSExtProc", 狀態(tài) UNKNOWN, 包含此服務(wù)的 1 個(gè)處理程序...處理程序:"DEDICATED" 已建立:0 已被拒絕:0LOCAL SERVER服務(wù) "orcl" 包含 2 個(gè)例程。例程 "orcl", 狀態(tài) UNKNOWN, 包含此服務(wù)的 1 個(gè)處理程序...處理程序:"DEDICATED" 已建立:1 已被拒絕:0LOCAL SERVER例程 "orcl", 狀態(tài) READY, 包含此服務(wù)的 1 個(gè)處理程序...處理程序:"DEDICATED" 已建立:0 已拒絕:0 狀態(tài):blockedREMOTE SERVER(DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))服務(wù) "orclXDB" 包含 1 個(gè)例程。例程 "orcl", 狀態(tài) READY, 包含此服務(wù)的 1 個(gè)處理程序...處理程序:"D000" 已建立:0 已被拒絕:0 當(dāng)前: 0 最大: 1002 狀態(tài): readyDISPATCHER <machine: INSPUR-IRMS-138, pid: 6728>(ADDRESS=(PROTOCOL=tcp)(HOST=INSPUR-IRMS-138)(PORT=52676))服務(wù) "orcl_XPT" 包含 1 個(gè)例程。例程 "orcl", 狀態(tài) READY, 包含此服務(wù)的 1 個(gè)處理程序...處理程序:"DEDICATED" 已建立:0 已拒絕:0 狀態(tài):blockedREMOTE SERVER(DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))命令執(zhí)行成功 實(shí)際發(fā)現(xiàn)有“REMOTE SERVER”字樣,但是對(duì)應(yīng)的監(jiān)聽都是blocked.
3.2.2 查看監(jiān)聽日志
cd %ORACLE_HOME%/network/log
listener.log日志文件已經(jīng)有TNS-01194信息,跟官檔一致:
21-9月 -2016 11:00:23 * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=)(USER=Administrator))(COMMAND=services)(ARGUMENTS=64)(SERVICE=listener)(VERSION=169870080)) * services * 021-9月 -2016 11:00:54 * service_register_NSGR * 1194TNS-01194: 監(jiān)聽程序命令未到達(dá)安全傳輸21-9月 -2016 11:01:54 * service_register_NSGR * 1194TNS-01194: 監(jiān)聽程序命令未到達(dá)安全傳輸21-9月 -2016 11:02:54 * service_register_NSGR * 1194TNS-01194: 監(jiān)聽程序命令未到達(dá)安全傳輸
3.2.3 還原remote_listener設(shè)置
測(cè)試完成,還原remote_listener設(shè)置
alter system set remote_listener='' scope=memory;SQL> alter system set remote_listener='' scope=memory;
3.2.4 查看監(jiān)聽服務(wù)信息
E:/oracle/product/10.2.0/db_1/network/ADMIN>lsnrctl services listenerLSNRCTL for 32-bit Windows: Version 10.2.0.3.0 - Production on 21-9月 -2016 11:22:17Copyright (c) 1991, 2006, Oracle. All rights reserved.正在連接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521)))服務(wù)摘要..服務(wù) "PLSExtProc" 包含 1 個(gè)例程。例程 "PLSExtProc", 狀態(tài) UNKNOWN, 包含此服務(wù)的 1 個(gè)處理程序...處理程序:"DEDICATED" 已建立:0 已被拒絕:0LOCAL SERVER服務(wù) "orcl" 包含 1 個(gè)例程。例程 "orcl", 狀態(tài) UNKNOWN, 包含此服務(wù)的 1 個(gè)處理程序...處理程序:"DEDICATED" 已建立:1 已被拒絕:0LOCAL SERVER命令執(zhí)行成功
4.Reference
•Using Class of Secure Transport (COST) to Restrict Instance Registration (文檔 ID 1453883.1)
新聞熱點(diǎn)
疑難解答
圖片精選