在 GeoScene Data Store 中运行 Log4Shell 修复脚本指南

0
分享 2021-12-30
 前言

尽管GeoScene Data Store未直接使用 log4j 2版本,但其中包含的依赖项之一,用于时空数据存储实现的elasticsearch库,确实使用了 log4j 。无论使用GeoScene Data Store配置了哪种类型的数据存储,我们建议遵循本文中的步骤来降低被漏洞利用的风险。

工作原理

该脚本实现的是Apache官方的漏洞修改方法,从 log4j jar文件中获取JndiLookup类并删除,以致无法利用该漏洞。此脚本会识别GeoScene Data Store目录中此类所在的所有位置,然后删除这些类文件。该脚本有两个版本——一种用于Linux,另一种用于Windows。这些相同的脚本可用于 GeoScene Portal 和 GeoScene Server,因此,如果您已下载了这些产品的 Log4Shell 修复脚本,则可以重复使用它。

先决条件:

Windows-该脚本需要安装Python 3.5及以上版本,而 Python 2.7 将无法使用。如果 GeoScene Data Store安装在已安装 GeoScene Server 或 GeoScene Portal 的计算机上,则可以使用这些软件组件附带的 Python3,前提是 Python3.5或更高版本。如果两者都未安装,则需要安装 Python3 以运行此脚本。如果您的系统以前没有安装 Python,我们建议在脚本完成运行后删除  Python,以最小化系统的攻击面。如果您是从 GeoScene Server 或 Portal 运行 Python3,那么可以在这里找到 Python 的安装位置。

GeoScene Server:Python 3通常安装在\framework\runtime\arcgis\bin\Python\envs\arcgispro-py3目录下的GeoScene Server目录(通常为 C:\Program Files\GeoScene\Server)中。

GeoScene Portal:Python安装在门户安装目录(通常是 C:\Program Files\GeoScene\Portal)的 \framework\runtime\Python 目录下。


Linux-该脚本需要安装bashshell和zip命令。操作系统很可能已经安装了bash,那便不需要安装它。根据所使用的Linux发行版和版本,您可能需要使用apt get或yum安装zip程序。

——Windows版本操作步骤——


1. 以管理员身份或运行 GeoScene Data Store 帐户登录。此帐户必须具有修改 GeoScene Data Store 目录中文件的权限。
2. 下载 log4shells.python.zip(链接:https://pan.baidu.com/s/1z7INc9FMvMxaQW1w5--PBg 提取码:4919 )到 GeoScene Data Store 机器,并解压缩。这个.py 脚本可以放置在任何位置。
3. 以管理员身份启动命令提示符。
4. 将目录(“cd”)更改为放置脚本的目录。
5. 输入以下命令:
<full path to Python>\python.exe log4shellmitigation.py --list <data store directory>
下面是该命令的一个示例:
"c:\Program Files\GeoScene\Portal\framework\runtime\python\python.exe" log4shellmitigation.py --list "C:\Program Files\GeoScene\DataStore"
这将列出所有要更改的文件。记下这些位置,以防以后要恢复更改。
如果已在GeoScene Data Store中配置时空数据存储组件,则还应运行此命令。
<full path to Python>\python.exe log4shellmitigation.py --list <data store data directory>
此命令的一个示例是:
"c:\Program Files\GeoScene\Portal\framework\runtime\python\python.exe" log4shellmitigation.py --list "C:\geoscene\datastore"
如果您没有配置时空数据存储,那么运行第二个命令没有什么害处,它不会报告任何错误。
注:
Data Store目录通常为“C:\Program Files\GeoScene\DataStore”。如果 Python 或 DataStore 的路径中有空格,请在路径周围加引号(“)。
运行此脚本可能需要一分钟,因为它正在查看 GeoScene Data Store 目录中的每个文件。这将列出在“delete”模式下运行脚本时要更新的文件。注意这些,以防需要恢复更改。
脚本执行
6. 停止 GeoScene Data Store 服务。如果正在运行 GeoScene Data Store,则以下命令将无法修改文件。
7. 输入以下命令:
<full path to Python>\python.exe log4shellmitigation.py --delete <data store directory>
下面是该命令的一个示例:
"c:\Program Files\GeoScene\Portal\framework\runtime\python\python.exe" log4shellmitigation.py --delete "C:\Program Files\GeoScene\DataStore"
如果已配置时空数据存储,还应运行以下命令:
<full path to Python>\python.exe log4shellmitigation.py --delete <data store data directory>
下面是该命令的一个示例:
"c:\Program Files\GeoScene\Portal\framework\runtime\python\python.exe" log4shellmitigation.py --delete "C:\geoscene\datastore"
即使未配置时空数据存储,运行此命令也没有什么害处,但该命令不会产生任何影响。
这是修改 JAR 文件的命令,以致 log4 漏洞不能被利用。
8. 启动GeoScene Data Store服务。

——Linux版本操作步骤——


1. 使用安装 GeoScene Data Store 的帐户登录运行 GeoScene Data Store 的 Linux 计算机。请勿使用其他非root帐户、root帐户或超级用户。
2. 下载 log4shellmitigation.linux.zip  (链接:https://pan.baidu.com/s/1q_ywb8GiwkEOqqXQGg6TnA 提取码:e6tm )到 GeoScene Data Store 计算机,然后将其解压缩。这个 sh 脚本必须放在 GeoScene Data Store 位置的根目录中。
例如,如果 GeoScene Data Store 安装在 /opt/geoscene/datastore 中,则需要将脚本放置在/opt/geoscene目录中。
注:
如果在具有相同父目录的同一台计算机上安装了多个 GeoScene Enterprise 产品,并且已经从同一个位置运行了 log4shellmitigation.sh 脚本,无需再次运行。从父目录运行脚本将应用于共享同一父目录的所有产品。
3. 将目录切换到放置 log4shellmitigation.sh 所在目录。
4. 使用以下命令执行脚本:
chmod 500 log4shellmitigation.sh
5. 使用-l 选项运行脚本,以标识将要更改的所有文件。
./log4shellmitigation.sh -l 
这将列出所有要修改的文件。此脚本不会备份这些文件。如果要备份这些原始文件,请立即将它们复制到其他位置。
6. 停止 GeoScene Data Store 服务。您可以使用通常使用的任何方法,不过使用运行在<datastoreinstallationlocation>/geoscene/datastore 中的 stopdatastore.sh 脚本是比较通用的方法。
7. 运行不带参数的脚本:
./log4shellmitigation.sh
8. 出现提示时,输入“y”确认继续执行。
9. 启动 GeoScene Data Store 服务。您可以使用通常使用的任何方法,不过使用运行在 <datastoreinstallationlocation>/geoscene/datastore 中的 startdatastore.sh 脚本是比较通用的方法。
 

0 个评论

要回复文章请先登录注册