m6米乐安卓版下载-米乐app官网下载
暂无图片
13

oracle log4j 漏洞修复及 ahf 的简单使用 -m6米乐安卓版下载

991

 

log4j 简介

apache log4j 是一款开源的 java 日志框架,被广泛地应用在中间件、开发框架与 web 应用中,用来记录日志信息。

漏洞描述:

1. cve-2021-44228,apache log4j 远程代码执行漏洞:

2.0-beta9 <= apache log4j 2.x < 2.15.0,该漏洞利用难度低,严重 程度高,影响面非常大。

2. cve-2021-45046,apache log4j 拒绝服务与远程代码执行漏洞:2.0-beta9 <= apache log4j 2.x < 2.15.0。

3. cve-2021-4104,apachelog4j 1.2 jmsappender 远程代码执行漏洞:apache log4j = 1.2。

4. cve-2021-45105,apache log4j2 拒绝服务漏洞:2.0-beta9 <= apache log4j <= 2.16.0。

5. cve-2021-44832,jdbcappender 代码执行漏洞:2.0-beta7 <= apache log4j <= 2.17.0(注:只有 log4j-core jar 文件受此漏洞影响)。

受影响版本

2.0 <= apache log4j 2.x <= 2.17.0。

不受影响版本

apache log4j 2.17.1 及以上版本(支持 java 8 及以上)

apache log4j 2.12.4(支持 java 7)

apache log4j 2.3.2(支持 java 6)

排查方法

检查是否使用 log4j,find / -name log4j*.jar

(1)、检查部署包、部署环境中是否存在 log4j-core-2.x.jar 包,查看版本

meta-inf/manifest.mf 文件下的 implementation-version 属性值。

(2)、对于第三方包,java jar 解压后是否存在 org/apache/logging/log4j 相关路径结构,判断是否使用了存在漏洞的组件,若使用了,则极可能存在该漏洞。

(3)、针对源码工程,查看依赖,查看是否存在 org.apache.logging.log4j 的 log4j-core。

(4)、开源漏扫部署包。

修复建议

1) 安全版本

jdk8 及以上环境:升级到高阶版本:

目前官方发布的 apache log4j 2.17.1 及以上版本已修复上述漏洞。

https://mvnrepository.com/artifact/org.apache.logging.log4j/log4j-core/2.17.1

jdk7 环境:升级至 apache log4j 2.12.4

jdk6 环境:升级至 apache log4j 2.3.2

2) 缓释措施

针对最严重的 cve-2021-44228 漏洞,

在无法升级情况下,采用缓解措施:

(1)添加 jvm 启动参数 -dlog4j2.formatmsgnolookups=true

(2)在应用程序的 classpath 下添加 log4j2.component.properties 配置文件,文件内容:log4j2.formatmsgnolookups=true

(3)移除 log4j-core 包中 jndilookup 类文件,并重启服务,具体命令:zip -q -d log4j-core-*.jar org/apache/logging/log4j/core/lookup/jndilookup.class

接下来我们看数据库中 log4j 漏洞都存在那些地方,我们 find 查找一下。

[root@test19crac1 ~]# find /u01 -name log4j*.jar
/u01/app/19c/grid/suptools/tfa/release/tfa_home/jlib/log4j-api-2.9.1.jar
/u01/app/19c/grid/suptools/tfa/release/tfa_home/jlib/log4j-core-2.9.1.jar
/u01/app/19c/grid/tfa/test19crac1/tfa_home/jlib/log4j-api-2.9.1.jar
/u01/app/19c/grid/tfa/test19crac1/tfa_home/jlib/log4j-core-2.9.1.jar
/u01/app/oracle/product/19c/db_1/suptools/tfa/release/tfa_home/jlib/log4j-api-2.9.1.jar
/u01/app/oracle/product/19c/db_1/suptools/tfa/release/tfa_home/jlib/log4j-core-2.9.1.jar
/u01/app/oracle/product/19c/db_1/md/property_graph/lib/log4j-jcl-2.11.0.jar
/u01/app/oracle/product/19c/db_1/md/property_graph/lib/log4j-slf4j-impl-2.11.0.jar
/u01/app/oracle/product/19c/db_1/md/property_graph/lib/log4j-api-2.11.0.jar
/u01/app/oracle/product/19c/db_1/md/property_graph/lib/log4j-core-2.11.0.jar

如下所示,数据库没有打任何补丁,db 版本为 19.3,log4j 版本有两个,一个为 tfa 所用的 2.9.1 版本,另一个为数据库实例目录下 2.11.0 的版本。


[oracle@test19crac2 ~]$ $oracle_home/opatch/opatch version
opatch version: 12.2.0.1.17
opatch succeeded.
[oracle@test19crac2 ~]$ $oracle_home/opatch/opatch lspatches
29585399;ocw release update 19.3.0.0.0 (29585399)
29517242;database release update : 19.3.0.0.190416 (29517242)
opatch succeeded.

然后可以发现,在 grid 的家目录下 suptools 目录中同时存在 orachk、oratop、tfa 三种监控检查工具。

[root@test19crac1 suptools]# cd /u01/app/19c/grid/suptools
[root@test19crac1 suptools]# ls
orachk oratop tfa

如果我们的数据库打了补丁,这里以 19c rac 为例,11g 环境请自行测试。如果补丁版本过低,那么 gi 目录下的 log4j 已经不存在了,但是 ahf 框架下还存在 2.13.3 版本的受影响的 ahf,那么这种情况下可以采取继续更新高版本的 ru15-ru20 均可,也可以单独升级 ahf,后文有讲到如何升级。

那么,单机文件系统的oracle 19c 呢(19.3 未打补丁的情况),在 tfa_home 目录下同样存在log4j-core-2.9.1.jar 受影响的版本,生产环境建议打补丁,补丁升级到 ru19.12 或 ru19.15 以上版本,单机环境补丁更新停机时间也就三十多分钟的样子,具体补丁升级方法可参考我以前写的文章:《ru15补丁更新》。当然你也可以尝试下载高版本的 log4j 文件通过软链接的形式来替换,下文中同样有讲到,你可以在测试环境中自行测试。

/u01/app/oracle/product/19.0.0/dbhome_1/suptools/tfa/release/tfa_home/jlib 

下面我们来插播一下 tfa 的简单使用情况

tfa 使用简介

查看 tfa:trace file analyzer 状态和版本。

tfa 更多帮助命令

[grid@test19crac2 ~]$ tfactl --help
warning - tfa software is older than 180 days. please consider upgrading tfa to the latest version.
unknown option: -help
usage : /u01/app/19c/grid/bin/tfactl  [options]
commands:diagcollect|collection|analyze|ips|run|start|stop|print|directory|toolstatus|setupmos|upload|events|search|changes
for detailed help on each command use:
/u01/app/19c/grid/bin/tfactl  -help
tfactl> 

由此可以发现 tfactl 命令可以 |start|stop|print |toolstatus 等操作。

删除 180 天以前的自动诊断存储库日志和跟踪文件,参数 dryrun 先预估要删除的文件和释放的空间,然后去掉参数 dryrun 在执行删除。

/u01/app/19c/grid/bin/tfactl managelogs -purge -older 180d -dryrun

当然也可以按照 gi 和 database 分别删除

$ tfactl managelogs -purge -older 30d

$ tfactl managelogs -purge -older 30d –gi

$ tfactl managelogs -purge -older 30d -database

--查看目录使用情况

$ tfactl managelogs -show usage

$ tfactl managelogs -show usage –gi

$ tfactl managelogs -show usage -database

/u01/app/19c/grid/bin/tfactl managelogs -purge -older 30d -gi

/u01/app/19c/grid/bin/tfactl managelogs -show usage -gi

tfa 的更多实用操作请查看官方文档,这里不在演示了。

参考文档:

tfa 升级

下载最新的 ahf (autonomous health framework) oracle自治运行状况框架,在 19c 后来的版本中,官方建议使用 ahf 来代替tfa 框架,所以这里我们直接下载最新的 ahf,mos 文档doc id:1513912.1 可以下载,也可本公众号后台回复【ahf】获取此软件包。

  1. 上传此软件包到服务器 rac1并解压

unzip ahf-linux_v23.6.0.zip -d ahf_23.6

  1. 安装ahf

官方文档附录中给出了安装命令,我们可以参考,指定相关参数运行,也可以直接运行ahf_setup 命令(升级同样也是运行此命令),仅在节点1运行即可,安装或升级过程中需要输入节点 2 root 密码。

./ahf_setup
[-ahf_loc ahf location]
[-data_dir ahf repository]
[-nodes node1,node2]
[-extract[orachk|exachk|-notfasetup]]
[-force]
[-local]
[-silent]
[-tmp_loc directory]
[-debug [-level 1-6]]


[root@test19crac1 ahf_23.6]# ./ahf_setup
ahf installer for platform linux architecture x86_64
ahf installation log : /tmp/ahf_install_236000_26649_2023_07_31-10_51_26.log
starting autonomous health framework (ahf) installation
ahf version: 23.6.0 build date: 202306301433
tfa is already installed at : /u01/app/19c/grid/tfa/test19crac1/tfa_home
installed tfa version : 183300 build id : 20190315044534
default ahf location : /opt/oracle.ahf
do you want to install ahf at [/opt/oracle.ahf] ? [y]|n : y
ahf location : /opt/oracle.ahf
ahf data directory stores diagnostic collections and metadata.
ahf data directory requires at least 5gb (recommended 10gb) of free space.
choose data directory from below options :
1. /u01/app/grid [free space : 5701 mb]
2. enter a different location
choose option [1 - 2] : 1
ahf data directory : /u01/app/grid/oracle.ahf/data
shutting down tfa : /u01/app/19c/grid/tfa/test19crac1/tfa_home
copying tfa data files from /u01/app/19c/grid/tfa/test19crac1/tfa_home
uninstalling tfa : /u01/app/19c/grid/tfa/test19crac1/tfa_home
do you want to add ahf notification email ids ? [y]|n : n
ahf will also be installed/upgraded on these cluster nodes :
1. test19crac2
the ahf location and ahf data directory must exist on the above nodes
ahf location : /opt/oracle.ahf
ahf data directory : /u01/app/grid/oracle.ahf/data
do you want to install/upgrade ahf on cluster nodes ? [y]|n : y
extracting ahf to /opt/oracle.ahf
configuring tfa services
copying tfa data files to ahf
discovering nodes and oracle resources
starting tfa services
created symlink from /etc/systemd/system/multi-user.target.wants/oracle-tfa.service to /etc/systemd/system/oracle-tfa.service.
created symlink from /etc/systemd/system/graphical.target.wants/oracle-tfa.service to /etc/systemd/system/oracle-tfa.service.
.--------------------------------------------------------------------------------.
| host | status of tfa | pid | port | version | build id |
 ------------- --------------- ------- ------ ------------ ---------------------- 
| test19crac1 | running | 34212 | 5000 | 23.6.0.0.0 | 23600020230630143300 |
| test19crac2 | running | 10468 | 5000 | 18.3.3.0.0 | 18330020190315044534 |
'------------- --------------- ------- ------ ------------ ----------------------'
running tfa inventory...
adding default users to tfa access list...
.------------------------------------------------------------------.
| summary of ahf configuration |
 ----------------- ------------------------------------------------ 
| parameter | value |
 ----------------- ------------------------------------------------ 
| ahf location | /opt/oracle.ahf |
| tfa location | /opt/oracle.ahf/tfa |
| orachk location | /opt/oracle.ahf/orachk |
| data directory | /u01/app/grid/oracle.ahf/data |
| repository | /u01/app/grid/oracle.ahf/data/repository |
| diag directory | /u01/app/grid/oracle.ahf/data/test19crac1/diag |
'----------------- ------------------------------------------------'
starting orachk scheduler from ahf
setting up ahf cli and sdk
ahf install completed on test19crac1
installing ahf on remote nodes :
ahf will be installed on test19crac2, please wait.
ahf will prompt twice to install/upgrade per remote node. so total 2 prompts
do you want to continue y|[n] : y
ahf will continue with installing on remote nodes
installing ahf on test19crac2 :
[test19crac2] copying ahf installer
root@test19crac2's password:
[test19crac2] running ahf installer
root@test19crac2's password:
ahf binaries are available in /opt/oracle.ahf/bin
ahf is successfully installed
do you want ahf to store your my oracle support credentials for automatic upload ? y|[n] : n
moving /tmp/ahf_install_236000_26649_2023_07_31-10_51_26.log to /u01/app/grid/oracle.ahf/data/test19crac1/diag/ahf/
[root@test19crac1 ahf_23.6]#

3)检查版本

[root@test19crac1 ahf_23.6]# ahfctl version

[root@test19crac1 ahf_23.6]# tfactl version

[root@test19crac1 ahf_23.6]# tfactl status

4)删除grid用户下 家目录 suptools下所有的log4j*.jar(如果存在)

我这里 grid 下的 log4j 已经被自动删除了,如果还存在,可以手动删除。 /opt 显示的 log4j-core.jar 已经是符合要求的版本了,至于 db目录 property_graph 下的这个需要打补丁,然后会自动删除这个文件。这里我做一个大胆的尝试,直接删除这个文件然后重启主机,看看数据库能不能正常启动(ps:生产环境不建议这么玩,推荐 ru 补丁更新),当然也可以删除这两个文件后使用高版本的 log4j-core 对其做一个软链接指向低版本的 log4j。

#cp /u01/app/oracle/product/19c/db_1/md/property_graph/lib/log4j* /home/oracle
#rm -rf /u01/app/oracle/product/19c/db_1/md/property_graph/lib/log4j-api-2.11.0.jar
#rm -rf /u01/app/oracle/product/19c/db_1/md/property_graph/lib/log4j-core-2.11.0.jar
#cp /opt/oracle.ahf/common/jlib/log4j-api-2.17.1.jar /u01/app/oracle/product/19c/db_1/md/property_graph/lib/
#cp /opt/oracle.ahf/common/jlib/log4j-core-2.17.1.jar /u01/app/oracle/product/19c/db_1/md/property_graph/lib/
#chown oracle:oinstall /u01/app/oracle/product/19c/db_1/md/property_graph/lib/log4j*
# su - oracle
$ ln -s /u01/app/oracle/product/19c/db_1/md/property_graph/lib/log4j-core-2.17.1.jar log4j-core-2.11.0.jar
$ ln -s /u01/app/oracle/product/19c/db_1/md/property_graph/lib/log4j-api-2.17.1.jar log4j-api-2.11.0.jar
#reboot

重启后检查数据库状态,这里数据库一切正常。

ahf 卸载

使用 root 用户或者安装者用户执行 tfactl 或 ahfctl uninstall命令卸载,首先要停止 orachk,然后停止 tfa,最后删除 ahf 安装目录 /opt/oracle.ahf。

running the command:

stops oracle orachk

stops oracle trace file analyzer

deletes the oracle autonomous health framework installation directory

ahfctl uninstall -deleterepo -silent

ahf 常用命令

ahfctl statusahf -all

ahfctl showrepo -all

获取 cpu 内存资源限制

ahfctl getresourcelimit

限制 cpu 核数为 2

ahfctl setresourcelimit -value 2

限制内存使用 500m

ahfctl setresourcelimit -resource kmem -value 500

限制内存和 swap 内存总和为 1024m

ahfctl setresourcelimit -resource swmem -value 1024

分析所有错误信息(包括数据库 ora 错误和 gi 错误)

tfactl analyze -type error

同样,也可以使用 tfactl 来清理诊断日志

tfactl purge -older 30d

更多使用命令请查看官方文档,这里不在演示。

ogg log4j漏洞

最后,花一点儿时间来简单说一下 ogg log4j 漏洞,正常 ogg19c 以上版本中是不存在此漏洞的,但我这里还有oracle goldengate for big data version 12.3.2.1.1 的版本,此版本同样使用了 log4j-core-2.9.1.jar 的包。同样解决此漏洞可以打补丁,也可以升级 ogg 更可以使用高版本的ogg,只不过这三种办法均不常用,一般也很少有人使用,我这里大胆一些,在测试环境中我直接删除了 log4j-core-2.9.1.jar 这个包,服务均可正常使用,安全稳定运行一年多时间,生产环境中我使用高版本软链接的方式替换这个包,也已经安全稳定运行一周了。如下是操作过程:

[root@cs-ogg lib]# cd /goldengate/ggjava/resources/lib/optional
[root@cs-ogg optional]# ll log*
-rwxr-xr-x 1 oracle oracle 239856 5 1 2018 log4j-api-2.9.1.jar
-rwxr-xr-x 1 oracle oracle 1549865 5 1 2018 log4j-core-2.9.1.jar
-rwxr-xr-x 1 oracle oracle 23153 5 1 2018 log4j-slf4j-impl-2.9.1.jar
[root@cs-ogg lib]# su - oracle
[oracle@cs-ogg optional]$ cd /goldengate/ggjava/resources/lib/optional/
[oracle@cs-ogg optional]$ mv log4j-core-2.9.1.jar log4j-core-2.9.1.jar_bak20230728
[oracle@cs-ogg optional]$ ln -s /goldengate/ggjava/resources/lib/optional/log4j-core-2.17.1.jar log4j-core-2.9.1.jar
[oracle@cs-ogg optional]$ ll
总用量 3560
-rwxr-xr-x 1 oracle oracle 239856 5 1 2018 log4j-api-2.9.1.jar
-rw-r--r-- 1 oracle oracle 1770490 3 9 2022 log4j-core-2.17.1.jar
lrwxrwxrwx 1 oracle oracle 63 7 28 16:00 log4j-core-2.9.1.jar -> /goldengate/ggjava/resources/lib/optional/log4j-core-2.17.1.jar
-rwxr-xr-x 1 oracle oracle 1549865 5 1 2018 log4j-core-2.9.1.jar_bak20230728
-rwxr-xr-x 1 oracle oracle 23153 5 1 2018 log4j-slf4j-impl-2.9.1.jar
drwxr-xr-x 2 oracle oracle 32 7 14 2018 logback
-rwxr-xr-x 1 oracle oracle 6983 5 1 2018 slf4j-jcl-1.7.25.jar
-rwxr-xr-x 1 oracle oracle 8460 5 1 2018 slf4j-jdk14-1.7.25.jar
-rwxr-xr-x 1 oracle oracle 12244 5 1 2018 slf4j-log4j12-1.7.25.jar
-rwxr-xr-x 1 oracle oracle 4007 5 1 2018 slf4j-nop-1.7.25.jar
-rwxr-xr-x 1 oracle oracle 15257 5 1 2018 slf4j-simple-1.7.25.jar
[oracle@cs-ogg optional]$ chmod a x log4j-core-2.17.1.jar
[oracle@cs-ogg optional]$ ll
总用量 3560
-rwxr-xr-x 1 oracle oracle 239856 5 1 2018 log4j-api-2.9.1.jar
-rwxr-xr-x 1 oracle oracle 1770490 3 9 2022 log4j-core-2.17.1.jar
lrwxrwxrwx 1 oracle oracle 63 7 28 16:00 log4j-core-2.9.1.jar -> /goldengate/ggjava/resources/lib/optional/log4j-core-2.17.1.jar
-rwxr-xr-x 1 oracle oracle 1549865 5 1 2018 log4j-core-2.9.1.jar_bak20230728
-rwxr-xr-x 1 oracle oracle 23153 5 1 2018 log4j-slf4j-impl-2.9.1.jar
drwxr-xr-x 2 oracle oracle 32 7 14 2018 logback
-rwxr-xr-x 1 oracle oracle 6983 5 1 2018 slf4j-jcl-1.7.25.jar
-rwxr-xr-x 1 oracle oracle 8460 5 1 2018 slf4j-jdk14-1.7.25.jar
-rwxr-xr-x 1 oracle oracle 12244 5 1 2018 slf4j-log4j12-1.7.25.jar
-rwxr-xr-x 1 oracle oracle 4007 5 1 2018 slf4j-nop-1.7.25.jar
-rwxr-xr-x 1 oracle oracle 15257 5 1 2018 slf4j-simple-1.7.25.jar
[oracle@cs-ogg goldengate]$ ./ggsci
oracle goldengate for big data
version 12.3.2.1.1 (build 005)
oracle goldengate command interpreter
version 12.3.0.1.2 oggcore_oggadp.12.3.0.1.2_platforms_180712.2305
linux, x64, 64bit (optimized), generic on jul 13 2018 00:46:09
operating system character set identified as utf-8.
米乐app官网下载 copyright (c) 1995, 2018, oracle and/or its affiliates. all rights reserved.
ggsci (cs-ogg) 1> stop *
ggsci (cs-ogg) 2> sart *
ggsci (cs-ogg) 3> info all
program status group lag at chkpt time since chkpt
manager running
replicat running rep01 00:00:13 00:00:01
replicat running rep02 00:00:00 00:00:09 

全文完,希望可以帮到正在阅读的你,如果觉得此文对你有帮助,可以分享给你身边的朋友,同事,你关心谁就分享给谁,一起学习共同进步~~~

欢迎关注我的公众号【jiekexu dba之路】,第一时间一起学习新知识!
————————————————————————————
公众号:jiekexu dba之路
csdn :https://blog.csdn.net/jiekexu
墨天轮:https://www.modb.pro/u/4347
腾讯云:https://cloud.tencent.com/developer/user/5645107
————————————————————————————

暂无图片 


最后修改时间:2023-08-01 10:17:21
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【米乐app官网下载的版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

网站地图