磚最近發表一篇博客Log4j 2脆弱性(cve - 2021 - 44228)的研究和評估。磚不直接使用Log4j版本已知受此影響的脆弱性在磚平台在某種程度上我們理解可能是脆弱的。Beplay体育安卓版本
如果使用Log4j集群內(例如,如果您正在處理用戶控製字符串通過Log4j),使用可能容易受到攻擊如果你有安裝,使用,或影響版本也取決於一個影響版本的安裝服務。
這篇文章解釋了如何檢查您的集群安裝的Log4j版本2和如何升級這些實例。
檢查Log4j 2是安裝
檢查手動安裝
如果你安裝了顯式的Log4j版本通過Maven 2,它是列在庫集群中的UI (AWS|Azure|GCP)。
掃描路徑
掃描來檢查類路徑的Log4j版本2。
- 開始您的集群。
- 附加一個筆記本到您的集群。
- 運行這段代碼掃描你的類路徑:
scala % {scala.util進口。{嚐試,成功,失敗}導入. lang。ClassNotFoundException (forname (“org.apache.logging.log4j.core試試。記錄器”,假,this.getClass.getClassLoader)){匹配成功案例(loggerCls) = >選項(loggerCls.getPackage){匹配情況下一些(pkg) = > println (s”版本:${包裹。getSpecificationTitle} $ {pkg.getSpecificationVersion}”)情況下沒有= > println(“無法確定Log4J 2版本”)}失敗案例(e: ClassNotFoundException) = > println(“不能裝入Log4J 2類”)情況下失敗(e) = > println (s“意想不到的錯誤:$ e”)把e}}
- 如果Log4j 2不存在在您的類路徑中,可以看到結果是這樣的:
無法加載Log4J 2類
- 如果Log4j 2存在在您的類路徑中,您應該看到這樣的結果,其中包括Log4j 2版:
版本:Apache Log4j 2.15.0核心
掃描所有用戶安裝jar
定位上的所有用戶安裝jar文件您的集群並運行一個掃描儀檢查脆弱Log4j 2版本。
- 開始您的集群。
- 附加一個筆記本到您的集群。
- 運行這段代碼來識別jar文件的位置:
% scala org.apache.spark進口。_ val sparkEnv = sparkEnv。得到val字段= SparkEnv.get.getClass.getDeclaredField (driverTmpDir) field.setAccessible(真正的)println (s”你的罐子是安裝在$ {field.get (sparkEnv) .asInstanceOf[選項[String]] . get} \ n”)
- 代碼顯示jar文件的位置。
你的罐子是安裝在/ local_disk0 /火花- 1 - a6be695 - 9318 - 463 - 256 c - b966 c32e3771c / userfiles - 582 - ca64b - 93 - c9 - 444 - c - 85 - b8 - 7779 - bd2c5e52
- jar文件下載到您的本地機器上。
- 運行一個掃描器Logpresso2檢查脆弱Log4j版本。
升級你的Log4j版本2
通過集群升級界麵
- 如果您手動安裝Log4j 2通過集群UI,確保它是版本2.17或更高版本。在這種情況下,不需要操作。
- 如果您手動安裝Log4j 2通過集群UI,它等於或低於2.16,您應該卸載的圖書館集群(AWS|Azure|GCP)和安裝版本2.17或更高版本。
通過命令行升級
如果您已經安裝了Log4j 2通過命令行(或通過SSH),使用相同的方法來Log4j 2升級到一個安全的版本。
升級自定義構建jar
如果你在自定義構建jar包括Log4j 2, Log4j 2升級到一個安全的版本,重建你的罐子。
重新更新jar集群。
重新啟動集群升級之後
重新啟動集群升級之後Log4j 2。