不专业的“漏洞扫描软件”,是否吓到你?

服务器

浏览数:141

2019-9-15

很多人经常喜欢下载一些漏洞扫描软件,这扫扫,那扫扫,自然也扫出很多“高危漏洞”。看到这些高危漏洞,你是不是有点小紧张呢?那么看完这篇文章,你会了解这Oracle patch的原理,也就豁然了。

针对常见的漏洞扫描软件,Oracle官方明确表达,不授权和认可任何第三方软件的漏洞扫描结果。

而事实上,漏洞扫描软件,也真的没有做到高大上的功能,它们并没有技术能力发现Oracle软件自身的漏洞。很多漏洞都是在一些******之后,Oracle原厂自行修复,并提供相应的补丁来防止相关风险的发生。很多扫描软件,不但没有做到高大上,在Oracle漏洞方面,做的却非常业余。

只不过通过检查Oracle的软件补丁发布情况,和DB是否应有最新的Patch,而报出漏洞的信息,来吓唬客户,体现自身低微的价值。

这些第三方软件所做的工作,对应Oracle来说,就是很简单的一个检查步骤(一条命令,两个文档列表),就能解决是否存在漏洞的问题。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
一个命令:
$ORACLE_HOME/OPatch/opatch lsinventory
Patch列表
Quick Reference to Patch Numbers for Database/GI PSU, SPU(CPU), Bundle Patches and Patchsets (Doc ID 1454618.1)
和CVE漏洞信息列表
http://www.oracle.com/technetwork/topics/security/public-vuln-to-advisory-mapping-093627.html
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

1. 既然扫描软件扫描到漏洞,好吧,我们来看看他们的建议是什么呢?自然是打补丁了,但是打什么补丁呢?CPU,CPU,CPU啊,重要的事情说三遍。

看看下面两个漏洞的建议,需要应用两个不同的CPU来解决这个问题(两个CPU是不能同时打的,冲突)。

每当我遇到这个建议的时候,都想说:“大哥,出来混,专业一点好不好?做扫描软件,超贵的License费用,你就给我看这个?”

2. 下图就是扫描软件提供的报告

3. 我们来了解一下Oracle的Patch结构,大家就清楚了。为什么第三方扫描软件的不专业。

 One of Patch:针对一个bug,解决的方法

Merge Patch:针对多个bug,需要多个patch修复。但是patch的应用,原本就是oracle software的文件替换,在多个patch修改同一个文件的不同位置时,就会出现冲突的情况。为了解决这个冲突,oracle提供了Merge patch,即将两个小patch需要修改的代码,融合到一个替换文件中。

Bundle patch:补 丁集,修复多个Bug。在Windows平台上的Oracle没有小补丁,只有这种Bundle Patch。 这种补丁集会周期性的发布(至少每季一次)。这种补丁集是累积型的(cumulative),也就是每个Bundle patch 会包含之前的所有的Bundle Patch。 比如Windows Bundle Patch 16,它会包含之前所有15个Bundle Patch,所以我们总是推荐安装最新的Bundle Patch。Oracle的集群软件和数据库软件的Window Bundle Patch是同一个,比如Windows Bundle Patch 16(补丁号16167942,既可以打在集群上,也可以打在数据库上) 。

要了解Windows Bundle Patch的补丁号,可以参考MOS文档:

Note 161549.1 Oracle Database, Networking and Grid Agent Patches for Microsoft Platforms

Critical Patch Update (CPU):每季度发布一次,用来修复安全方面的一些补丁,是累积型的。目前已经更名为Security Patch Update (SPU)。

点击下面的链接查看各个CPU所修复的具体问题:

http://www.oracle.com/technetwork/topics/security/alerts-086861.html

Patch Set Update (PSU):每 季度发布一次,修复比较严重的一些问题,包含每季的CPU,是累积型的。虽然在描述PSU的时候会用到数据库版本第5位,比如Database PSU 11.2.0.3.5,但实际上打完PSU后并不会真正改变数据库的版本,从v$version中看到的版本还是4位的(11.2.0.3.0),第5位 仍然是0。注意,Windows上没有CPU和PSU,Oracle的集群软件和数据库软件使用不同的PSU。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

上面引用Oracle官方blog https://blogs.oracle.com/database4cn/oracle-v4

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


4. 这里,我们比较关心的是CPU和PSU的关系,到底是什么?        

下面这段官方描述,解释他们的关系:

Critical Patch Updates (CPU) address security vulnerabilities, Patch Set Updates (PSU) address proactive, critical fixes and security vulnerabilities.

The Patch Set Updates and Critical Patch Updates that are released each quarter contain the same security fixes. However, they use different patching mechanisms, and Patch Set Updates include both security and recommended bug fixes. Consider the following guidelines when you are deciding to apply Patch Set Updates instead of Critical Patch Updates.

  • Critical Patch Updates are applied only on the base release version, for example 10.2.0.4.0.

  • Patch Set Updates can be applied on the base release version or on any earlier Patch Set Update. For example, 11.1.0.7.2 can be applied on 11.1.0.7.1 and 11.1.0.7.0.

  • Once a Patch Set Update has been applied, the recommended way to get future security content is to apply subsequent Patch Set Updates. Reverting from an applied Patch Set Update back to the Critical Patch Update, while technically possible, requires significant time and effort, and is not advised.

For more information on Patch Set Updates, see Note 854428.1, Patch Set Updates for Oracle Products.

总结:就是PSU包含CPU, PSU可以累加往上应用,但是CPU必须先回滚,才能继续应用。

Oracle Support很多年,似乎客户都是使用PSU来修复问题,极少有客户使用CPU的,毕竟PSU的延续性,似乎更好。


5. 概念都了解之后,我们再回头看扫描软件扫描出的漏洞,我们该如何解决。

漏洞查询网址如下

 http://www.oracle.com/technetwork/topics/security/public-vuln-to-advisory-mapping-093627.html

(如果这个连接失效,使用下面步骤进入到CVE的信息查询页面

 OPN.oracle.com -> Topic Centers (www.oracle.com/technetwork/topics/index.html) -> Security -> View the most recent Critical Patch Update Advisory -> Map of Public Vulnerability to Advisory/Alert  

6. 例如,下面提示的漏洞,根据漏洞发现时间,结合文档,根据修复日期,查找相对应的PSU/CPU复Quick Reference to Patch Numbers for Database PSU, SPU(CPU), Bundle Patches and Patchsets (Doc ID 1454618.1)

可以查询到11.2.0.3.13(发布的时间是 JAN2015)版本之后的PSU,就已经修复了下面这些问题了。

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Oracle Database Server JPublisher组件代码执行漏洞(CVE-2014-6546)  -------------CVE-2014-6546       Oracle Critical Patch Update October 2014
Oracle Database Server JPublisher组件代码执行漏洞(CVE-2014-6545)  -------------CVE-2014-6545       Oracle Critical Patch Update October 2014
Oracle Database Server Java VM组件代码执行漏洞(CVE-2014-6467)     -------------CVE-2014-6467       Oracle Critical Patch Update October 2014
Oracle Database Server SQLJ组件代码执行漏洞(CVE-2014-6455)        -------------CVE-2014-6455       Oracle Critical Patch Update October 2014
Oracle Database 远程安全漏洞(CVE-2014-2406)                       -------------CVE-2014-2406       Oracle Critical Patch Update April 2014
Oracle Database 远程安全漏洞(CVE-2014-2408)                       -------------CVE-2014-2408       Oracle Critical Patch Update April 2014
Oracle Database Server远程安全漏洞(CVE-2014-4236)                  -------------CVE-2014-4236       Oracle Critical Patch Update July 2014
Oracle Database Server Jpublisher组件漏洞(CVE-2014-6477)           -------------CVE-2014-6477       Oracle Critical Patch Update October 2014
Oracle Database Server Spatial组件本地安全漏洞(CVE-2014-0378)    -------------CVE-2014-0378       Oracle Critical Patch Update January 2014
Oracle Database Server Core RDBMS组件远程安全漏洞(CVE-2013-5858)  -------------CVE-2013-5858       Oracle Critical Patch Update January 2014
Oracle Database Server Core RDBMS组件远程信息泄露安全漏洞(CVE-2014-0377) -----CVE-2014-0377       Oracle Critical Patch Update January 2014
Oracle Database Server远程安全漏洞(CVE-2014-4237)                  -------------CVE-2014-4237       Oracle Critical Patch Update July 2014
Oracle Database Server远程安全漏洞(CVE-2014-4245)                   -------------CVE-2014-4245       Oracle Critical Patch Update July 2014
Oracle Database Server Java VM组件代码执行漏洞(CVE-2014-6560)        ------------- CVE-2014-6560       Oracle Critical Patch Update October 2014
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

7. 文档数据库patch版本列表

Quick Reference to Patch Numbers for Database PSU, SPU(CPU), Bundle Patches and Patchsets (Doc ID 1454618.1)

看完本文,是不是发现那些骗钱的“扫描软件”真的很Low?

一条命令,两个文档。完美解决“扫描软件”解决的问题,并且,在PSU和CPU(SPU)这件事上,“扫描软件”的工程师们,明显不了解Oracle的游戏规则。

真心奉劝:“大哥,出来混,专业一点,好不好?不要天天没事刷存在感,研究研究内在的原理和规则,你们会做的更好。”

针对Patch,是不是要打上。虽然Oracle官方推荐是最新版本的数据库,应用最新发布的PSU。

但是对于生产系统,还是建议慎重。如果没有遇到严重的安全隐患,和bug问题,不建议去打patch。

PSU的升级,还好。release版本的升级,就必须要经过严格的性能测试的,不同版本的CBO等优化器的理念都是有差异的。不测试的升级,很可能直接导致升级后的系统水土不服,慎重瘫痪。(我也是真正遇到过一个工厂的核心生产系统,11.2.0.2升级到11.2.0.4,系统完全无法使用,不得不回滚的情况)。

所以Patch是好东西,但是也要按需“服用”。

补充,Oracle大版本软件,是可以在ww.oracle.com上下载的(当然,商业使用是需要付License费的)。

可以下载的版本是11.2.0.1.0,12.0.1.2.0,12.2.0.1.0

只有买了Oracle support服务(每年付费),有metalink账号,才能登陆metalink.oracle.com下载任何需要的Patch的。没有账号,就无法下载。

在补充,刚刚原厂专家Time’Square美女更正,12.2版本之后,PSU改名叫RU了,看来我真的OUT了。

你的支持,我的动力,谢谢!

作者:hsbxxl