Logstash开源组件漏洞升级步骤

Logstash7.15.1开源组件升级步骤

Tips:生产上logstash扫描出开源组件漏洞,因一些jar包官方没有升级,只能手动升级版本,记录如下


一、升级涉及组件

组件名当前版本扫描/jar包路径推荐版本升级版本
Kramdown1.14.0logstash/Gemfile.lock2.3.12.3.1
Snakeyaml1.23logstash/logstash-core/lib/jars/snakeyaml-1.23.jar1.261.26
Jackson-dataformat-cbor2.9.10logstash/logstash-core/lib/jars/jackson-dataformat-cbor-2.9.10.jar2.11.42.11.4
Ruby-i18n1.8.10logstash/Gemfile.locknull1.8.11
Bouncy Castle1.65logstash/logstash-core/lib/jars/jackson-dataformat-cbor-2.9.10.jar/META-INF/jruby.home/lib/ruby/stdlib/org/bouncycastle1.671.68
Guava24.1.1-jrelogstash/logstash-core/lib/jars/guava-24.1.1-jre.jar30.1.1-android30.1.1-android
Json for ruby1.8.6logstash/Gemfile.lock2.3.02.3.0

二、环境准备

1.安装gem

因为logstash的插件时基于ruby语言编写的,故需要安装gem进行插件安装

步骤如下:

wget https://rubygems.org/rubygems/rubygems-2.6.12.zip

unzip rubygems-2.6.12.zip

cd rubygems-2.6.12
sudo ruby setup.rb --通过执行setup.rb安装

gem -v --查看版本

三、升级步骤

1、下载需要升级的gem文件
下载i18n-1.8.11.gems、kramdown-2.3.1.gem、json-2.3.0-java.gem    

下载地址:https://rubygems.org/downloads/i18n-1.8.11.gem、https://rubygems.org/downloads/kramdown-2.3.1.gem、https://rubygems.org/downloads/json-2.3.0-java.gem

对应安装命令:gem install i18n、gem install kramdown、gem install json -v 2.3.0
2、升级替换
1、安装完成后在当前目录会生成对应的文件夹,然后替换掉/elk/logstash/vendor/bundle/jruby/2.5.0/gems下对应的i18n-1.8.10、kramdown-1.14.0、json-1.8.6-java 这三个文件夹




2.查找所有1.8.6-java相关包

find . -name "*2.3.0-java*"

 

3.修改./vendor/bundle/jruby/2.5.0/specifications/json-1.8.6-java.gemspec目录下的文件名json-1.8.6-java.gemspec 为 json-2.3.0-java.gemspec
vi json-2.3.0-java.gemspec 将内容1.8.6改为2.3.0

修改./vendor/bundle/jruby/2.5.0/specifications/i18n-1.8.10.gemspec目录下的文件名i18n-1.8.10.gemspec 为 i18n-1.8.11.gemspec
vi i18n-1.8.11.gemspec 将内容1.8.10改为1.8.11

修改./vendor/bundle/jruby/2.5.0/specifications/kramdown-1.14.0.gemspec目录下的文件名kramdown-1.14.0.gemspec 为 kramdown-2.3.1.gemspec
vi kramdown-2.3.1.gemspec 将内容1.14.0改为2.3.1


4.替换 /elk/logstash/logstash-core/lib/jars  中的 snakeyaml-1.23.jar、jackson-dataformat-cbor-2.9.10.jar、guava-24.1.1-jre.jar
为:snakeyaml-1.26.jar  jackson-dataformat-cbor-2.11.4.jar  guava-30.1.1-android.jar

5.将 jruby-complete-9.2.19.0.jar 中的:
jruby-complete-9.2.19.0\META-INF\jruby.home\lib\ruby\stdlib\org\bouncycastle\bcpkix-jdk15on\1.65\bcpkix-jdk15on-1.65.jar
jruby-complete-9.2.19.0\META-INF\jruby.home\lib\ruby\stdlib\org\bouncycastle\bcprov-jdk15on\1.65\bcprov-jdk15on-1.65.jar
jruby-complete-9.2.19.0\META-INF\jruby.home\lib\ruby\stdlib\org\bouncycastle\bctls-jdk15on\1.65\bctls-jdk15on-1.65.jar

三个jar全部替换为对应的1.68版本,并修改上级1.65目录名为1.68,修改对应的.jrubydir文件中的目录名

修改jar包中\META-INF\jruby.home\lib\ruby\stdlib的oppenssl -->verion.rb的 BOUNCY_CASTLE_VERSION = '1.68'
BOUNCY_CASTLE_VERSION = '1.68'

将修改好的jruby-complete-9.2.19.0.jar  上传到 /elk/logstash/logstash-core/lib/jars/ 目录下。


6./elk/logstash/vendor/jruby/lib/ruby/stdlib/org/bouncycastle 中的三个jar,按上面的步骤替换
/elk/logstash/vendor/jruby/lib/ruby/stdlib/org/bouncycastle/bcpkix-jdk15on/1.65/bcpkix-jdk15on-1.65.jar
/elk/logstash/vendor/jruby/lib/ruby/stdlib/org/bouncycastle/bcprov-jdk15on/1.65/bcprov-jdk15on-1.65.jar
/elk/logstash/vendor/jruby/lib/ruby/stdlib/org/bouncycastle/bctls-jdk15on/1.65/bctls-jdk15on-1.65.jar
为1.68版本,并修改上级1.65目录名为1.68,修改对应的.jrubydir文件中的目录名

7.修改/elk/logstash/vendor/jruby/lib/ruby/gems/shared/specifications/default/jruby-openssl-0.10.5-java.gemspec 的1.651.68  

  s.requirements = ["jar org.bouncycastle:bcprov-jdk15on, 1.68".freeze, "jar org.bouncycastle:bcpkix-jdk15on, 1.68".freeze, "jar org.bouncycastle:bctls-jdk15on,  1.68".freeze]

8.修改logstash根目录下的Gemfile.lock

将i18n、kramdown、json的版本声明修改为下列版本:
i18n (1.8.11) 
kramdown (2.3.1)
json (2.3.0-java)
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值