环境:Windows 2008 R2 + Oracle 10.2.0.3
应用最新bundle patch后,扫描依然报出漏洞 Oracle Database Server 'TNS Listener'html" target="_blank">远程数据投毒漏洞(CVE-2012-1675)
•1.确定解决方案
•2.应用解决方案
•3.验证修补情况
•4.Reference
1.确定解决方案
安全厂家给出的解决办法:
链接:http://www.oracle.com/technetwork/topics/security/alert-cve-2012-1675-1608180.html
根据此链接得到解决方法:
Solution Recommendations 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.
目前这里环境不是RAC,参考文档1453883.1:
Using Class of Secure Transport (COST) to Restrict Instance Registration (文档 ID 1453883.1)
找到两种解决方案:
SOLUTION There 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.应用解决方案
2.1 确定现状
监听配置文件:listener.ora
存放路径:cd %ORACLE_HOME%/network/admin
内容(保证安全,所有IP相关信息已二次处理):
# 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
数据库监听信息,原始都是空值:
SQL> show parameter local_listener NAME TYPE VALUE ------------------------------------ ----------- --------------------------- local_listener string SQL> show parameter remote_listener; NAME TYPE VALUE ------------------------------------ ----------- --------------------------- remote_listener string SQL>
2.2 尝试应用解决方案
2.2.1 停止监听
lsnrctl stop listener
2.2.2 修改监听配置文件
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)
实际修改过程:
切换到监听配置文件所在路径:
cd %ORACLE_HOME%/network/admin
直接修改listener.ora文件,在文件的末尾添加一行:
SECURE_REGISTER_LISTENER = (TCP)
2.2.3 启动监听
启动监听:
lsnrctl start listener
立即注册动态监听:
SQL> alter system register;
2.2.4 设置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 查看监听服务信息
lsnrctl services listener E:\oracle\product\10.2.0\db_1\network\ADMIN>lsnrctl services listener LSNRCTL for 32-bit Windows: Version 10.2.0.3.0 - Production on 21-9月 -2016 10:2 2:02 Copyright (c) 1991, 2006, Oracle. All rights reserved.
正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521))) 服务摘要.. 服务 "PLSExtProc" 包含 1 个例程。 例程 "PLSExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序... 处理程序: "DEDICATED" 已建立:0 已被拒绝:0 LOCAL SERVER 服务 "orcl" 包含 1 个例程。 例程 "orcl", 状态 UNKNOWN, 包含此服务的 1 个处理程序... 处理程序: "DEDICATED" 已建立:3 已被拒绝:0 LOCAL SERVER 命令执行成功
3.验证修补情况
3.1 注释COST规则验证监听情况
3.1.1 注释掉listener.ora文件的COST规则并重启监听
Comment the COST rule in listener.ora and restart the listener.
直接修改listener.ora文件,在之前添加的一行前面加上"#"注释此行。
#SECURE_REGISTER_LISTENER = (TCP)
重启监听:
lsnrctl stop listener lsnrctl start listener
3.1.2 设置remote_listener后查看监听服务信息
设置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
快速动态监听注册:
SQL> alter system register;
查看监听服务信息,发现有“REMOTE SERVER”字样,说明此时漏洞存在:
E:\oracle\product\10.2.0\db_1\network\ADMIN>lsnrctl services listener LSNRCTL for 32-bit Windows: Version 10.2.0.3.0 - Production on 21-9月 -2016 10:4 4:18 Copyright (c) 1991, 2006, Oracle. All rights reserved. 正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521))) 服务摘要.. 服务 "PLSExtProc" 包含 1 个例程。 例程 "PLSExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序... 处理程序: "DEDICATED" 已建立:0 已被拒绝:0 LOCAL SERVER 服务 "orcl" 包含 2 个例程。 例程 "orcl", 状态 UNKNOWN, 包含此服务的 1 个处理程序... 处理程序: "DEDICATED" 已建立:0 已被拒绝:0 LOCAL SERVER 例程 "orcl", 状态 READY, 包含此服务的 2 个处理程序... 处理程序: "DEDICATED" 已建立:0 已拒绝:0 状态:ready LOCAL SERVER "DEDICATED" 已建立:0 已拒绝:0 状态:ready REMOTE SERVER (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521))) 服务 "orclXDB" 包含 1 个例程。 例程 "orcl", 状态 READY, 包含此服务的 1 个处理程序... 处理程序: "D000" 已建立:0 已被拒绝:0 当前: 0 最大: 1002 状态: ready DISPATCHER <machine: INSPUR-IRMS-138, pid: 6728> (ADDRESS=(PROTOCOL=tcp)(HOST=INSPUR-IRMS-138)(PORT=52676)) 服务 "orcl_XPT" 包含 1 个例程。 例程 "orcl", 状态 READY, 包含此服务的 2 个处理程序... 处理程序: "DEDICATED" 已建立:0 已拒绝:0 状态:ready LOCAL SERVER "DEDICATED" 已建立:0 已拒绝:0 状态:ready REMOTE SERVER (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521))) 命令执行成功
3.2 取消注释COST规则验证监听情况
3.2.1 取消注释COST规则重启监听并快速注册,验证监听服务信息
去掉监听文件末尾行前的“#”号:
SECURE_REGISTER_LISTENER = (TCP)
重启监听:
lsnrctl stop listener lsnrctl start listener
快速注册动态监听:
SQL> alter system register;
验证监听服务信息,按官档描述,正常应该没有“REMOTE SERVER”字样:
E:\oracle\product\10.2.0\db_1\network\ADMIN>lsnrctl services listener LSNRCTL for 32-bit Windows: Version 10.2.0.3.0 - Production on 21-9月 -2016 11:0 0:23 Copyright (c) 1991, 2006, Oracle. All rights reserved. 正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521))) 服务摘要.. 服务 "PLSExtProc" 包含 1 个例程。 例程 "PLSExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序... 处理程序: "DEDICATED" 已建立:0 已被拒绝:0 LOCAL SERVER 服务 "orcl" 包含 2 个例程。 例程 "orcl", 状态 UNKNOWN, 包含此服务的 1 个处理程序... 处理程序: "DEDICATED" 已建立:1 已被拒绝:0 LOCAL SERVER 例程 "orcl", 状态 READY, 包含此服务的 1 个处理程序... 处理程序: "DEDICATED" 已建立:0 已拒绝:0 状态:blocked REMOTE SERVER (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521))) 服务 "orclXDB" 包含 1 个例程。 例程 "orcl", 状态 READY, 包含此服务的 1 个处理程序... 处理程序: "D000" 已建立:0 已被拒绝:0 当前: 0 最大: 1002 状态: ready DISPATCHER <machine: INSPUR-IRMS-138, pid: 6728> (ADDRESS=(PROTOCOL=tcp)(HOST=INSPUR-IRMS-138)(PORT=52676)) 服务 "orcl_XPT" 包含 1 个例程。 例程 "orcl", 状态 READY, 包含此服务的 1 个处理程序... 处理程序: "DEDICATED" 已建立:0 已拒绝:0 状态:blocked REMOTE SERVER (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521))) 命令执行成功 实际发现有“REMOTE SERVER”字样,但是对应的监听都是blocked.
3.2.2 查看监听日志
cd %ORACLE_HOME%/network/log
listener.log日志文件已经有TNS-01194信息,跟官档一致:
21-9月 -2016 11:00:23 * (CONNECT_DATA=(CID=(PROGRAM=)(HOST=)(USER=Administrator))(COMMAND=services)(ARGUMENTS=64)(SERVICE=listener)(VERSION=169870080)) * services * 0 21-9月 -2016 11:00:54 * service_register_NSGR * 1194 TNS-01194: 监听程序命令未到达安全传输 21-9月 -2016 11:01:54 * service_register_NSGR * 1194 TNS-01194: 监听程序命令未到达安全传输 21-9月 -2016 11:02:54 * service_register_NSGR * 1194 TNS-01194: 监听程序命令未到达安全传输
3.2.3 还原remote_listener设置
测试完成,还原remote_listener设置
alter system set remote_listener='' scope=memory; SQL> alter system set remote_listener='' scope=memory;
3.2.4 查看监听服务信息
E:\oracle\product\10.2.0\db_1\network\ADMIN>lsnrctl services listener LSNRCTL for 32-bit Windows: Version 10.2.0.3.0 - Production on 21-9月 -2016 11:2 2:17 Copyright (c) 1991, 2006, Oracle. All rights reserved. 正在连接到 (DESCRIPTION=(ADDRESS=(PROTOCOL=IPC)(KEY=EXTPROC1521))) 服务摘要.. 服务 "PLSExtProc" 包含 1 个例程。 例程 "PLSExtProc", 状态 UNKNOWN, 包含此服务的 1 个处理程序... 处理程序: "DEDICATED" 已建立:0 已被拒绝:0 LOCAL SERVER 服务 "orcl" 包含 1 个例程。 例程 "orcl", 状态 UNKNOWN, 包含此服务的 1 个处理程序... 处理程序: "DEDICATED" 已建立:1 已被拒绝:0 LOCAL SERVER 命令执行成功
4.Reference
•Using Class of Secure Transport (COST) to Restrict Instance Registration (文档 ID 1453883.1)
该版本现已分配给CVE-2022-22965。除了下面的好答案之外,请查看Spring Framework RCE:早期发布,因为它是本期最可靠和最新的网站。 根据不同的来源,我们在使用Spring Core库时似乎遇到了严重的安全问题。 https://securityboulevard.com/2022/03/new-spring4shell-zero-day-vulnerability-co
我目前的项目完全与大量Spring Boot容器对接。它们中的大多数都是使用log4j2(对于java8,小于2.7)版本构建的。如何充分证明来自JNDI攻击CVE-2021-45105的应用程序? 我知道最好的解决方案是用log4j版本重建这些容器,但这需要时间和预算。 但是,如果我使用下面的命令,在docker compose级别为每个容器禁用查找功能,它能工作吗? “JVM_EXTRA_OP
本文向大家介绍iscroll动态加载数据完美解决方法,包括了iscroll动态加载数据完美解决方法的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了iscroll动态加载数据的具体代码,供大家参考,具体内容如下 js. css 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。
我对CVE-2022-22950和相应的Spring建议有点困惑。后者表示,可以通过以下方式利用该漏洞: […]巧尽心思构建的SpEL表达式[…] 但是,允许用户制作SpEL表达式的应用程序允许这些用户做几乎任何事情。包括代码注入,它对机密性、完整性和可用性有充分的影响。这里还有很多其他DoS机会。以这个SpEL片段为例,它执行命令: 这个命令是相当无害的,但它可以被任何东西替代!现在,SpEL支
我正在做一个Spring Boot项目,我正在检查它是否与这个漏洞有关,我没有任何Log4j核心依赖,但是我正在使用Hibernate核心5.0.12,它使用jboss日志3.3.1 当我检查jboss日志依赖时,我看到log4j: 先谢谢你
描述中说: 在2020-11-10之前的Rust模型箱中发现了一个问题。共享数据结构具有发送和同步特征的实现,而不考虑内部类型。 什么是模型板条箱?抱歉,如果它的愚蠢的问题,但我是新的CVE漏洞。