【情報収集】OpenSSHに関する脆弱性「CVE-2024-6387」について調べてみた

2024年7月5日

こんにちは、キクです。

本記事は、僕が情報収集で学んだことをアウトプットするシリーズになります。

今回は先日公表されたOpenSSHの脆弱性『CVE-2024-6387』について書いていこうと思います。

それでは、よろしくお願いします。

注意事項

本記事の内容は個人レベルでの情報収集が目的です。

そのため、本記事には網羅性の欠如や誤った情報が含まれる可能性もありますが、ご了承ください。

CVE-2024-6387とは

2024年7月1日に発表されたOpenSSHに関する脆弱性(レベル:Critical)

主な影響

  • リモートから認証なしで任意コードを実行される可能性(RCE)
  • リモートからSSHDのクラッシュを引き起こされる可能性

今回の件は、2006年に報告された脆弱性「CVE-2006-5051」の回帰策に起因していることが判明。
回帰の意味合いとしては、一度修正された欠陥がその後の変更やアップデートにより意図せず再投入されてしまったことを指す。

具体的には2020年10月に導入された「OpenSSH 8.5p1」により回帰しており、今回の事象の「影響あり」とされているバージョンである。

影響のあるバージョン

以下のバージョンが「脆弱性あり」とされている。

脆弱性のあるバージョン

OpenSSH 4.4p1未満

CVE-2006-5051およびCVE-2008-4109のパッチが適用されていなければ脆弱性あり

OpenSSH 8.5p1 ~ 9.7p1

回帰バグにより脆弱性が発生

以下のバージョンは「CVE-2006-5051」および「CVE-2008-4109」のパッチが適用済みのバージョンであるため「脆弱性なし」とされている。

脆弱性のないバージョン

OpenSSH 4.4p1 ~ 8.5p1未満

修正済みバージョン

各ディストリビュージョンおよびOSバージョンによって異なる。

本件に関する各ディストリビュージョン毎の対応方法は、以下のリンクから確認することができる。

  1. Red Hat Enterprise Linux / CentOS
    https://access.redhat.com/security/cve/CVE-2024-6387
  2. Ubuntu
    https://ubuntu.com/security/CVE-2024-6387
  3. Debian
    https://security-tracker.debian.org/tracker/CVE-2024-6387
  4. SUSE / openSUSE
    https://www.suse.com/security/cve/CVE-2024-6387.html

解決策 / 緩和策

最も確実性が高いのは「CVE-2024-6387」の修正済みバージョンに上げてしまうことではあるが、即時実行するのが難しい環境もある。

SSHの設定ファイル「sshd_config」において「LoginGraceTime」という項目を修正/追加するという緩和策もあるとのこと。

[原文]
Set LoginGraceTime to 0 in /etc/ssh/sshd_config.
This makes sshd vulnerable to a denial of service (the exhaustion of all MaxStartups connections),
but it makes it safe from this vulnerability.

[翻訳]
/etc/ssh/sshd_config で LoginGraceTime を 0 に設定します。
これにより、sshd はサービス拒否 (すべての MaxStartups 接続の枯渇) に対して脆弱になりますが、
この脆弱性からは保護されます。

参考:CVE-2024-6387(Ubuntu)

ローカル環境での実機確認

ローカルに以下2つの学習用環境があったので、試しに確認と対応を行ってみました。

  • CentOS 7
  • Ubuntu 22.04

CentOS 7

[root@server-centos ~]# cat /etc/os-release
NAME="CentOS Linux"
VERSION="7 (Core)"
ID="centos"
ID_LIKE="rhel fedora"
VERSION_ID="7"
PRETTY_NAME="CentOS Linux 7 (Core)"
ANSI_COLOR="0;31"
CPE_NAME="cpe:/o:centos:centos:7"
HOME_URL="<https://www.centos.org/>"
BUG_REPORT_URL="<https://bugs.centos.org/>"

CENTOS_MANTISBT_PROJECT="CentOS-7"
CENTOS_MANTISBT_PROJECT_VERSION="7"
REDHAT_SUPPORT_PRODUCT="centos"
REDHAT_SUPPORT_PRODUCT_VERSION="7"

導入済みパッケージバージョンの確認

[root@server-centos ~]# rpm -qa | grep openssh
openssh-server-7.4p1-23.el7_9.x86_64
openssh-7.4p1-23.el7_9.x86_64
openssh-clients-7.4p1-23.el7_9.x86_64

本件の「影響ありのバージョン」に含まれないバージョンであるため対応不要であることが分かる。

Ubuntu 22.04

root@server-ubuntu:~# cat /etc/os-release
PRETTY_NAME="Ubuntu 22.04.4 LTS"
NAME="Ubuntu"
VERSION_ID="22.04"
VERSION="22.04.4 LTS (Jammy Jellyfish)"
VERSION_CODENAME=jammy
ID=ubuntu
ID_LIKE=debian
HOME_URL="<https://www.ubuntu.com/>"
SUPPORT_URL="<https://help.ubuntu.com/>"
BUG_REPORT_URL="<https://bugs.launchpad.net/ubuntu/>"
PRIVACY_POLICY_URL="<https://www.ubuntu.com/legal/terms-and-policies/privacy-policy>"
UBUNTU_CODENAME=jammy

導入済みパッケージバージョンの確認

root@server-ubuntu:~# dpkg -l | grep openssh
ii  openssh-client                         1:8.9p1-3ubuntu0.6                      amd64        secure shell (SSH) client, for secure access to remote machines
ii  openssh-server                         1:8.9p1-3ubuntu0.6                      amd64        secure shell (SSH) server, for secure access from remote machines
ii  openssh-sftp-server                    1:8.9p1-3ubuntu0.6                      amd64        secure shell (SSH) sftp server module, for SFTP access from remote machines

影響のあるバージョン「OpenSSH 8.5p1~9.7p1」に含まれるため、対応が必要なバージョンであることが分かる。

以下の情報より、作業環境である「Ubuntu 22.04」においては「1:8.9p1-3ubuntu0.10」にて本件に関する修正が行われていることが分かる。

出典:USN-6859-1: OpenSSH vulnerability

今回はこのバージョンになるように作業を行う。

root@server-ubuntu:~# apt list --upgradable |grep openssh

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

openssh-client/jammy-updates,jammy-security 1:8.9p1-3ubuntu0.7 amd64 [upgradable from: 1:8.9p1-3ubuntu0.6]
openssh-server/jammy-updates,jammy-security 1:8.9p1-3ubuntu0.7 amd64 [upgradable from: 1:8.9p1-3ubuntu0.6]
openssh-sftp-server/jammy-updates,jammy-security 1:8.9p1-3ubuntu0.7 amd64 [upgradable from: 1:8.9p1-3ubuntu0.6]

現在のままだと「8.9p1-3ubuntu0.7」までしか上げることができない。

そのため、以下のコマンドでバージョンアップ可能なパッケージリストを更新する。

root@server-ubuntu:~# apt update

再度確認すると「8.9p1-3ubuntu0.10」まで上げることができるようになった。

root@server-ubuntu:~# apt list --upgradable |grep openssh

WARNING: apt does not have a stable CLI interface. Use with caution in scripts.

openssh-client/jammy-updates,jammy-security 1:8.9p1-3ubuntu0.10 amd64 [upgradable from: 1:8.9p1-3ubuntu0.6]
openssh-server/jammy-updates,jammy-security 1:8.9p1-3ubuntu0.10 amd64 [upgradable from: 1:8.9p1-3ubuntu0.6]
openssh-sftp-server/jammy-updates,jammy-security 1:8.9p1-3ubuntu0.10 amd64 [upgradable from: 1:8.9p1-3ubuntu0.6]

実際にOpenSSHのパッケージをバージョンアップしていく。

root@server-ubuntu:~# apt-get upgrade openssh-server

改めて導入済みのパッケージバージョンを確認すると、脆弱性を修正済みである「8.9p1-3ubuntu0.10 」になっていることが分かる。

root@server-ubuntu:~# dpkg -l |grep openssh
ii  openssh-client                         1:8.9p1-3ubuntu0.10                     amd64        secure shell (SSH) client, for secure access to remote machines
ii  openssh-server                         1:8.9p1-3ubuntu0.10                     amd64        secure shell (SSH) server, for secure access from remote machines
ii  openssh-sftp-server                    1:8.9p1-3ubuntu0.10                     amd64        secure shell (SSH) sftp server module, for SFTP access from remote machines
root@server-ubuntu:~# systemctl status sshd
● ssh.service - OpenBSD Secure Shell server
     Loaded: loaded (/lib/systemd/system/ssh.service; enabled; vendor preset: enabled)
     Active: active (running) since Wed 2024-07-03 16:52:51 JST; 11min ago
       Docs: man:sshd(8)
             man:sshd_config(5)
   Main PID: 27798 (sshd)
      Tasks: 1 (limit: 4515)
     Memory: 2.7M
        CPU: 70ms
     CGroup: /system.slice/ssh.service
             mq27798 "sshd: /usr/sbin/sshd -D [listener] 0 of 10-100 startups"

Jul 03 16:52:51 kikuchi-ubuntu01 systemd[1]: Starting OpenBSD Secure Shell server...
Jul 03 16:52:51 kikuchi-ubuntu01 sshd[27798]: Server listening on 0.0.0.0 port 22.
Jul 03 16:52:51 kikuchi-ubuntu01 sshd[27798]: Server listening on :: port 22.
Jul 03 16:52:51 kikuchi-ubuntu01 systemd[1]: Started OpenBSD Secure Shell server.

sshdも稼働しているので、今回の実機確認は完了とする。

おわりに

今回のKADOKAWAグループのサイバー障害は、企業全体のセキュリティ対策の見直しと強化の重要性を再認識させるものでした。

エンジニアとして、システムの脆弱性評価、セキュリティパッチの適用、社員教育など、日常的なセキュリティ対策を徹底することが求められます。
今回の事件から得た教訓を活かし、同様のサイバー攻撃を防ぐための対策を講じることが重要です。

僕自身もセキュリティ対策というものにより一層注意を向け、必要に応じて強化していく心構えを持たなければと感じました。

参考情報

参考:【重要】OpenSSHに含まれる脆弱性(CVE-2024-6387)について
参考:OpenSSHにおけるリモートコード実行の脆弱性
参考:OpenSSHで認証されていないリモート コードを実行される深刻な脆弱性(regreSSHion 、CVE-2024-6387)
参考:【緊急】OpenSSHの脆弱性について

-Linux, セキュリティ, 情報収集
-,