openSSHで脆弱性の大きな問題が発生 ( openSSH / openSSL / SLUBStick )

1.概要

openSSHで脆弱性の大きな問題が発生して対応した内容です。既に過去のことになっていますが、openSSHで問題が発生すると影響が大きいので、すぐに修正を適用しましょう。

また、openSSHに関連したツール類の利用に関して試したことを追記しています。色々なことがopenSSHを基盤に実施することができます。参考にしてください。

2.詳細

ubuntu terminalから下記コマンドでsshのVersionを確認します。
ssh -V

(a) ubuntu 20.04.6

6月頃の少し古い環境です
OpenSSH_8.2p1 Ubuntu-4ubuntu0.11, OpenSSL 1.1.1f  31 Mar 2020
アップデートをしました。
OpenSSH_8.2p1 Ubuntu-4ubuntu0.11, OpenSSL 1.1.1f  31 Mar 2020
このバージョンは過去に修正済みで問題ないようです。

(b) ubuntu 22.04.4

6月頃の少し古い環境です
OpenSSH_8.9p1 Ubuntu-3ubuntu0.7, OpenSSL 3.0.2 15 Mar 2022
アップデートをしました。
OpenSSH_8.9p1 Ubuntu-3ubuntu0.10, OpenSSL 3.0.2 15 Mar 2022

(c) ubuntu 24.04

6月頃の少し古い環境です
OpenSSH_9.6p1 Ubuntu-3ubuntu13, OpenSSL 3.0.13 30 Jan 2024
アップデートをしました。
OpenSSH_9.6p1 Ubuntu-3ubuntu13.3, OpenSSL 3.0.13 30 Jan 2024

3.所見

OpenSSHは利用されている範囲が広く、使われているOS環境も異なります。修正情報を提供する側も大変ですが、適用する側も間違えないように適用するのは大変です。

4.追加

本件に関連して調べたことや試したことを参考として追記します。

(1) openSSHで脆弱性の大きな問題が発生をWindows11のwslで確認

Windows11のWSL上のopenSSH脆弱性対応が気になったので試してみました。
まず、Windows updateを実行しました。しかし、ubuntu関連への修正は適用されません。
Windows Updateでは変更されないようなので、手作業でopenSSH修正が必要です。

$ sudo apt update
$ sudo apt upgrade

(2) ubuntu-24.04のopenSSH修正が再修正されました

ubuntu-24.04のopenSSH修正に問題があったようです。適用しました。

(3) xzにbackdoorが仕掛けられていた

2024-03-29に公開された情報ですが、私は先週末気が付きました。CVE-2024-3094に詳細情報は記載されていますが、xz 5.6.0、5.6.1にbackdoorが仕掛けられていたとのことです。ubuntuは24.04-preが影響しています。

OSSであったからこそ見つかったことかもしれません。該当する製品を利用している場合は対処しましょう。私もubuntu-24.04-preを利用しているので、全て削除をしました。

(4) opensslが更新されました

opensslが更新されました。opnessh問題時には変更はなく、静かに更新されました。

(5) sshを利用してremote serverで処理を実行する方法

sshの接続先のマシン上でshellを実行したい場合、sshでlogin後にshellを起動します。これをsshのコマンドでshell実行まで可能になっています。以前はrshを利用していましたが、sshで便利に利用できます。この内容を記述します。

(a) 環境

以下のような環境を準備しました。

ssh server host : 192.168.20.20
ssh client host : 192.168.20.10
ssk-key : id_key
user : username

(b) 実行するshell

ssh server host上のusernameアカウントにtest.shを作成します

#!/bin/bash
ls -l $1

(c) 処理の実行

ssh client host上にtest.dataを作成します。

test.data内容

1234567890
abcdefghij

test.dataをssh server hostに転送後、test.shを実行して確認する処理です。

ssh client host上にremote_job.shを作成します。

#!/bin/bash
scp -i ~/.ssh/id_key test.data username@192.168.20.20:./
ssh -i ~/.ssh/id_key username@192.168.20.20 sh test.sh test.data

実行します

sh remote_job.sh

test.data                                                         100%   23     1.6KB/s   00:00    
-rw-rw-r-- 1 username username 23 Oct  4 23:01 test.data

(6) sshfsを利用したremote file systemのmount

sshを利用したfile system mountができないかと考えてネットを調べるとFUSEベースのFile System Clientとしてsshfsを見つけました。早速、試してみたので、その内容を記述します。

(a) 準備

参考資料に沿って作業をするために、KVM環境にubuntu-20.04 serverを2台構築します。
KVM仮想マシンの作成方法は省略します。本ブログ内に複数あります(例:kubernates in KVM)
作成した仮想マシンは下記内容です。ubuntu install時にopensshを導入しています。

ubuntu201  1 core 2GB memory 25GB disk ip=192.168.122.201
ubuntu202  1 core 2GB memory 25GB disk ip=192.168.122.202

(b) ssh動作確認

ubuntu terminalからsshコマンドでuser/passwordでloginします
ssh username@192.168.122.201

home directory上にdirectoryとfileを確認用に設定します。
mkdir share
cd share
touch test.txt

新しいubuntu terminalから2台目にuser/passwordでloginします。
ssh username@192.168.122.202

一台目からscpでファイルをコピーできることを確認します。
scp username@192.168.122.201:./share/test.txt ./

(c) sshfsの導入

2台目(192.168.122.202)にsshfsを導入します。
sudo apt install sshfs
sshfs --version
SSHFS version 2.10.0
FUSE library version: 2.9.9
fusermount version: 2.9.9
using FUSE kernel interface version 7.19

(d) mount確認

mountしてみます。
mkdir sshfs-mnt
sshfs username@192.168.122.201: sshfs-mnt
ls ./sshfs-mnt/
share
username@ubuntu201:~$ ls ./sshfs-mnt/share/
test.txt

想定通りに動作します。

(7) ssh port forwardを試してみました

sshを利用した接続ができる環境があると、ssh port forward機能を利用して、ssh接続先のlocal環境に存在するサービスに接続することができます。まず、sshコマンドで接続先のIP-addressのPostgreSQLへのトンネルを設定します。次に、psqlを利用して、トンネル経由で接続先IP-addressのPostgreSQLへ接続します。

(a) 環境

localPCのIP-addressを192.168.20.20とします。
PostgreSQLが動作するIP-addressを192.168.10.10

(b) sshコマンドによるトンネル設定( terminal-1 で実行 )

ssh -i .ssh/id_ed25519.pem -L 15432:192.168.20.20:5432 192.168.10.10

id_ed25519.pemは、sshで192.168.10.10に接続するための鍵です。
この設定の意味は、LocalPC(192.168.20.20)のport 15432に接続すると
192.168.10.10のport 5432にforwardすると言うことです。

(c) psql接続( terminal-2 で実行 )

psql -h localhost -p 15432 -U my_user my_database

この設定の意味は、localhost(192.168.20.20)のport 15432に
psqlでmy_userでmy_databaseに接続することです。

つまり、192.168.10.10にはmy_databaseが存在し、my_userで接続できることが前提です。

(8) KVMマシン内ubuntu serverのterminalでcopy & pasteするには

KVM環境を良く利用します。Ubuntu desktopを仮想マシンとして動作させることが多いのですが、ubuntu serverを仮想マシンとして動作させたときに、copy & pasteができないことに気が付きました。これはubuntu serverにはGUIがないためです。ネットを調べても良い方法がすぐに見つかりません。ふと、クラウド環境を利用するときにssh接続をすることを思いだして、試してみました。

ubuntu serverの22.04をisoファイルからKVM環境に導入するときに、OpenSSH Serverを導入します。InstallerはOpenSSHの必要性をわかっているようで、Install時に選択できます。

Install完了後、Consoleからloginして、作成したVirtual Machine のip addressを調べます。
ip a
このipを利用して
ubuntu desktopのterminalからssh接続します。
ssh username@ip-address

desktop terminalで接続できるとcopy & pasteの問題は改善できます。 

(9) openssl

opensslが更新されました。opnessh問題時には変更はなく、静かに更新されました。何となく嫌な感じがします。本更新では、snapdも更新されています。ubuntuLTS 20.04 22.04 24.04は同じような更新が実施されました。security updatesとの記載があるので、予防措置として、早めに修正をしましょう。

(a) ubuntu-20.04.6

openssl 1.1.1f-1ubuntu2.23
snapd 2.63+20.04ubuntu0.1

(b) ubuntu-22.04.4

openssl 3.0.2-0ubuntu1.17
snapd 2.63+22.04ubuntu0.1

(c) ubuntu-24.04

openssl 3.0.13-0ubuntu3.2
snapd 2.63+24.04ubuntu0.1

(10) SLUBStick

Linux kernelの脆弱性が発表されました。すぐにパッチを適用しましょう。
対象kernel範囲が異なっています。

(a) 脆弱性はバージョン5.14以降から6.6までのLinux カーネル
(b) SLUBStickを悪用するには既知のヒープ脆弱性が必要となる。
  研究では2021年から2023年までに発見された次の脆弱性を悪用しており、
  Linuxカーネルバージョン5.19から6.2にて動作が実証

最新パッチ適用状態を調べました。

ubuntu-20.04.6、ubuntu-22.04.4は微妙な感じです。
ubuntu-24.04は大丈夫そうです。

(a) ubuntu-24.04
  kernel 6.8.0-40
  
(b) ubuntu-22.04.4
  kernel 6.5.0-45

(c) ubuntu-20.04.6
  kernel 5.15.0-117

(11) kernelが更新されました

Linux kernelの脆弱性に対して、ubuntu-22.04.4がkernel-6.8.0-40に変わりました
今日更新を実行すると以下のように変わりました。

(a) ubuntu-24.04 (変化なし)
  kernel 6.8.0-40
  
(b) ubuntu-22.04.4
  kernel 6.8.0-40

(c) ubuntu-20.04.6 (変化なし)
  kernel 5.15.0-117

参考

[本ブログ内参照]
nfs4のサーバー機能をコンテナで実現する方法
Google driveのアクセス方法とその他の手段について ( gdrive / rclone / sshfs / gio / google-drive-ocumlfuse )
[外部サイト参照]
CVE-2024-6387
OpenSSHにリモートコード実行の脆弱性⁠⁠、約20年ぶりの“回帰バグ”が発生
USN-6887-1: OpenSSH vulnerability
XZ Utilsに悪意のあるコードが挿入された問題(CVE-2024-3094)について
・Linux Kernel 権限昇格の脆弱性で悪用の可能性(CVE-2024-1086)

コメント