セキュリティーの強化とセキュリティーの新機能
Ubuntu 26.10 で導入されたセキュリティーの強化とセキュリティーの新機能が以下で紹介されています。AI による脅威
ソフトウェアやシステム由来の脆弱性や、運用や人間由来の脆弱性を利用した攻撃により、機密情報が漏洩するアクシデントやインシデントは以前から発生していました。しかしここ昨今 AI の台頭により、攻撃者は効率的かつ効果的に攻撃を行えるようになり、アクシデントやインシデントの発生頻度や規模が急速に増大しています。
国内でも日々ニュースになっており、この出来事に注目しているユーザーも多いのではないでしょうか。
タイムラグ
ソフトウェアに脆弱性が見つかった時に、そのソフトウェアが修正されシステムにその修正が適用されるまでの間、システムは脆弱な状態が続きます。このようなタイムラグは以前から存在していますが、OS が攻撃者が攻撃可能な範囲を狭めることで、少しでも脆弱な状態を緩和できるようになります。
Ubuntu に耐性を持たせよう
Ubuntu では攻撃対象となる実装を減らしたり、より安全な実装に置き換えるなど、継続的にセキュリティーを強化する取り組みを行っています。セキュアブートと GRUB
Ubuntu を起動する際、Ubuntu の起動には複数のソフトウェアが関与しています。UEFI セキュアブート
UEFI セキュアブートは信頼された安全なソフトウェアのみを実行できるようにする仕組みです。PC 側に実装されている UEFI ファームウェアがこの機能を提供しています。
Windows でもよく耳にする言葉ですね。
shim
Ubuntu では信頼された安全なソフトウェアとして、Ubuntu が提供する shim を UEFI に登録しています。
この shim は UEFI で実行可能なソフトウェアの一種であり、UEFI セキュアブートで信頼可能なソフトウェアとして署名されています。
GRUB
そしてその shim が Linux のブートマネージャーである GRUB を起動し、その GRUB が Ubuntu を起動しています。この GRUB にも署名が施されており、正当なソフトウェアの検証に活用されています。
起動までの一連の流れ
つまりユーザーが PC の電源を入れると、UEFI > shim > GRUB > Ubuntu という順で、Ubuntu が起動することになります。多機能な GRUB
さてソフトウェアというものは、機能が増えれば増える程、攻撃者が攻撃に利用できる攻撃面が増加していきます。もちろん GRUB も例外ではなく、GRUB にはファイルシステムやイメージ形式、パーティション構成の解析など、様々な機能が含まれています。
ファイルシステムの例
Windows ではファイルシステムに NTFS を採用しており、Windows ユーザーは NTFS でフォーマットされたボリュームに Windows をインストールすることになります。しかし Ubuntu(Linux)のファイルシステムは多種多様です。
デフォルトでは Ubuntu はファイルシステムに ext4 を採用していますが、ext4 以外のファイルシステムも利用可能です。
そのためそれぞれのファイルシステムごとに、そのファイルシステムを解析する機能を GRUB に持たせないと、そのファイルシステムから Ubuntu を起動することができません。
ファイルシステム一つとっても複数の種類があり、その種類ごとに機能が増えていくことになります。
セキュアブートを回避する要因になっていた
GRUB の多機能さはユーザーから見て嬉しいことなのですが、この多機能さがセキュアブートの回避に利用可能な脆弱性を生み出す要因にもなっています。GRUB の機能削減
というわけで Ubuntu 26.10 では、署名付き GRUB のセキュリティーを強化するため、Ubuntu の起動に必要な機能のみを残すように、署名付き GRUB から機能の一部が削減されることになりました。署名付き GRUB
Ubuntu が提供している GRUB にはいくつか種類があり、署名付き GRUB は UEFI セキュアブート環境に対応した GRUB です。ちなみに署名付き GRUB は UEFI セキュアブートが無効になっている環境や、そもそも UEFI セキュアブートに対応していない環境でも利用できるようになっています。
/boot でサポートするファイルシステムやイメージ形式
/boot でサポートするファイルシステムやイメージ形式は、以下の4種類に限定されます。- ext4
- FAT
- ISO9660
- squashfs(Snap パッケージ向け)
以下のファイルシステムは /boot でサポートされなくなりました。
- Btrfs
- HFS+
- XFS
- ZFS
- LVM
- RAID1 以外のソフトウェア RAID で構成されるファイルシステム
- LUKS で暗号化されたファイルシステム
他にも削除された機能
JPEG や PNG 画像を読み込みブートマネージャーの背景に設定する機能や、Apple パーティションテーブルのサポートも削除されました。署名付き GRUB を対象とした変更
今回の変更はあくまで署名付き GRUB を対象とした変更です。また GRUB 以降の Ubuntu の起動であれば引き続き LVM/RAID/LUKS/Btrfs/ZFS を利用できます。
言い換えると Linux kernel は引き続きこれらのファイルシステムをサポートしています。
TPM/FDE のサポート拡大
次に TPM を利用したディスク全体の暗号化(TPM/FDE)のサポートが拡大されました。TPM/FDE とロックの解除
TPM/FDE は TPM を活用してデータを暗号化し保護する仕組みであり、ハードウェアと OS の起動に使用するソフトウェアが変更されていない場合にのみ、ディスクのロックが自動的に解除されます。このディスクロックの自動解除のために、デバイス側にセキュリティーチップ(ACM/PSB)の搭載が必要になります。
2021年以降に発売された大半の PC が、このセキュリティーチップを搭載しています。
もしシステムが変更されていた場合、ディスクのロックは自動的に解除されず、復旧にリカバリーキーが必要になります。
サポートデバイスの拡大
さて Ubuntu 26.10 でセキュリティーチップを搭載していないデバイスでも TPM/FDE を利用できるようになりました。これにより2018年以降に発売された多くの PC もサポート対象になりました。
ただしディスクのロックは自動的に解除できないため、ユーザーはインストール時にディスクのロック解除に使用する PIN コードもしくはパスフレーズを設定する必要があります。
ファームウェアの更新フローの改善
デバイスのファームウェアをアップデートする一連の手続きが改善されました。リカバリーキー
リカバリーキーは暗号化されたディスク上のデータを復号するためのキーです。ハードウェアコンポーネントを変更した時や、PIN コードやパスフレーズを忘れてしまった時など、最後の砦として利用するキーであり、厳重な保管が求められます。
リカバリーキーの要求改善
さて今までデバイスのファームウェアをアップデートした時に、ディスクロックの自動解除に影響がないケースでも、リカバリーキーの確認が求められていました。ディスクロックの自動解除に影響がないケースでは、リカバリーキーの確認が求められなくなりました。
Ubuntu 26.04 LTS にもバックポート
この改善は Ubuntu 26.04 LTS にも取り込まれています。コアユーティリティーがすべて Rust 製に
Ubuntu 26.04 LTS でもすでに Rust 製のコアユーティリティーが導入されていますが、互換性の問題により以下のコマンドは従来の GNU 版コアユーティリティーが利用されていました。- cp
- mv
- rm
Rust 製に完全移行
Ubuntu 26.10 では上記のコマンドに関する互換性の問題が解消され、すべてのコアユーティリティーが Rust 製のコアユーティリティーに置き換えられました。シェルスクリプトの確認を
それでも Rust版/GNU版のコアユーティリティーは、お互いに100%の互換性はありません。互換性の問題が解消されたといっても、それはあくまで Ubuntu 基準の話であって、100%の互換性を何ら保証するものではありません。
そのためコアユーティリティーを利用するシェルスクリプトで、Rust 製のコアユーティリティーでも意図した通りの結果になるかどうか、事前に確認しておきましょう。
OpenSSL 4.0 の採用
OpenSSL 4.0 が採用されました。ポスト量子暗号
実用的な量子コンピューターの登場に備え、以下の暗号アルゴリズムを利用できるようになっています。- ML-KEM
- ML-DSA
- SLH-DSA
また通信相手が対応している場合、OpenSSL の TLS 設定により、ポスト量子暗号と従来の暗号を組み合わせたハイブリッド鍵交換がデフォルトで優先的に使用されるようになっています。
OpenSSL 4.0 の機能追加
OpenSSL 4.0 で以下の機能が追加されました。- curveSM2MLKEM768(ハイブリッド鍵交換グループ)
- ML-DSA-MU(擬似ダイジェスト )
- cSHAKE 関数
Encrypted Client Hello に対応
Encrypted Client Hello に対応しており、対応するアプリケーションとサーバー間で ECH が有効になっている場合、要求先のサーバー名も含め、TLS 内側の ClientHello が保護されるようになっています。ただしこの機能は宛先 IP アドレスの隠蔽や、トラフィック分析を防止するものではありません。
またすべてのアプリケーションで自動的に ECH が有効になるものでもないため、この機能を利用したい場合は、事前に設定を確認しておきましょう。
upki の導入
Firefox や Chromium などのブラウザーには、証明書の失効を確認するための仕組みがあります。しかし curl コマンドのように Linux のコマンドには、同様の仕組みが十分に整っていません。
この状況を改善するため upki が導入されました。
upki は証明書の失効情報を CRLite からダウンロードしてローカルにキャッシュしておき、コマンドやアプリはその失効情報をチェックすることで、証明書の失効を確認できます。
この upki により、証明書の失効を確認する共通の基盤を整えることができます。
upki は失効情報をバックグラウンドで定期的に取得して、ローカルにキャッシュするようになっています。
そして今回 curl コマンドが upki と連携して動作するようになりました。
ENGINE インターフェースの廃止と Provider への移行
ENGINE インターフェースが廃止され、Provider へ移行しました。HSM や PKCS#11 トークン、TPM によって保護された鍵を ENGINE インターフェース経由で利用している場合、Provider へ移行してください。
厳格化・廃止されたインターフェースとアルゴリズム
- SSLv3 のサポート削除
- TLS で非推奨になった楕円曲線と、明示的な楕円曲線パラメーターのサポートの無効化
- 証明書と失効情報の検証強化により、厳格な X.509 検証が有効にな場合、認証局鍵識別子の追加チェック
OpenSSH 10.5 の採用
OpenSSH 10.5 が採用されました。ハイブリッド鍵交換方式がデフォルト
OpenSSH 10.5 では、引き続きハイブリッド鍵交換方式がデフォルトになります。プリンシパル検証の厳格化
authorized_keys の principals= オプションを使用して証明書を検証する際、証明書のプリンシパルリストが空であっても、すべてのプリンシパルを許可するワイルドカードとして扱われなくなりました。ECDSA アルゴリズムの制限を適切に適用
sshd は許可する ECDSA アルゴリズムの制限を正しく適用するようになりました。ユーザー名の検証
コマンドラインで指定されたユーザー名を検証する際、従来より早い段階で検証が行われるようになり、ssh_config の設定トークンを介してシェルのメタ文字が意図せず展開されてしまう問題に対応しました。dbus-daemon から dbus-broker へ移行
D-Bus はアプリケーションやサービス間の通信を仲介する仕組みです。Wi-Fi への接続や USB ドライブのマウントなど、様々な処理で利用されています。
いわゆる IPC の一種なのですが、権限のないプロセスが権限を有するプロセスにアクセスできてしまうと、脆弱性に繋がります。
AppArmor によるアクセスの制限と制御
Ubuntu では Snap アプリや重要なパッケージがアクセス可能な D-Bus インターフェースを AppArmor で制御しています。dbus-broker への置き換え
さて Ubuntu では今まで D-Bus の実装に dbus-daemon を採用してきました。dbus-daemon は Ubuntu が登場した2004年から長らく使われてきました。
しかし Ubuntu 26.10では、より新しい実装である dbus-broker に置き換えられました。
dbus-brokerではイベント駆動型のアーキテクチャを採用しており、リソースの使用状況の管理や信頼性、拡張性が向上しています。
Ubuntu の新規インストール時はもちろんのこと、アップグレード時にもシステムバス及びすべてのユーザーセッションバスが dbus-broker に変更されます。
引き続き AppArmor が制御する
dbus-broker に置き換わっても、ソフトウェアがアクセス可能な D-Bus インターフェースは、引き続き AppArmor が担当します。ntpd-rs が利用可能に
ntpd-rs は Rust による NTP の実装です。公式リポジトリーから利用可能
Ubuntu 26.10 の公式リポジトリーから ntpd-rs を導入できるようになりました。今回はあくまで利用できるようになったというだけで、Ubuntu 26.10 の NTP は、ntpd-rs に置き換わっていません。
Ubuntu 27.04 でデフォルトに
次期バージョンの Ubuntu 27.04 でデフォルトの NTP が ntpd-rs に置き換わる予定です。Canonical による資金提供
ntpd-rs への置き換えを目指し ntpd-rs の開発を加速させるため、Canonical は Trifecta Tech Foundation のゴールドスポンサーとなり、資金提供を行っています。この資金は chrony と同等の機能を実装するための開発資金として提供されています。この開発にはマルチスレッド対応の NTP サーバーや、GPSd のサポート、そして AppArmor と seccomp によるプロセスの隔離機能の強化も含まれています。
クラウドIDプロバイダーのサポート強化
authd はクラウドベースの ID プロバイダー(クラウド上の認証サービス)と Ubuntu のユーザー認証を連携させる認証デーモンです。Microsoft アカウントのサポート
Microsoft アカウントのパスワードによるサインインがサポートされました。また Microsoft Authenticator による多要素認証(MFA)もサポートされました。
これによりユーザーは Microsoft Authenticator を通じて直接承認リクエストを受け取り、Microsoft 資格情報を使用して認証できるようになります。
UID と GID のサポート
ID プロバイダーの属性情報から直接 UID と GID の値を取得する機能がサポートされます。これにより管理対象のシステム全体で、ファイルの所有権や権限の一貫性を向上させることができます。
ローカルパスワード認証の無効化
管理者はリモート管理しているユーザーのローカルパスワード認証を無効化できるようになり、必要に応じて ID プロバイダーベースの認証ポリシーを強制できるようになります。VPN のサポート強化
VPN のサポートが強化されました。PKCS#11 と スマートカード認証のサポート
NetworkManager で PKCS#11 及びスマートカード認証がサポートされました。これにより標準的なデスクトップインターフェースを通じて、YubiKey のようなハードウェアトークンを使った VPN 認証が可能になります。
デスクトップで音声認識
Ubuntu Desktop 26.10 で音声認識が導入されました。Myna
Myna はデスクトップで音声認識を担うソフトウェアです。Myna は推論スナップを通じてローカルで音声認識を実行するように設計されており、インターネット接続なしで音声入力が可能になります。
プライバシーの保護
ローカルでの実行に加え、音声はメモリー上で処理され、使用後は音声データが破棄されるようになっています。また外部の文字起こしサービスへのアップロードも行われません。
生成されたテキスト
音声認識によって生成されたテキストは、ユーザーが利用しているアプリに送られるようになっています。アプリに送られたテキストはアプリの領域で扱われるようになるため、プライバシーの保護はそのアプリ次第になります。
Linux kernel 7.3
Ubuntu 26.10 では Linux kernel 7.3 が採用されました。Linux kernel 7.3 では、Landlock/AppArmor/SELinux/Smack セキュリティーモジュールのアップデートや、TPM ドライバーのアップデートが含まれています。
また投機的実行でポインター情報の漏洩を防止する修正が BPF 検証器に含まれています。
他にも NTFS3 のセキュリティー強化や、ネットワークやファイルシステム、仮想化に関する実装で見つかった、解放済みメモリーへのアクセス(use-after-free)及びオーバーフローの不具合など、多数のメモリー安全性に関する修正が含まれています。
Ubuntu 28.04 LTS に向けた第一歩
Ubuntu 26.10 は次期 LTS リリースの Ubuntu 28.04 LTS に向けた第一歩となります。現在最新版の LTS リリースは Ubuntu 26.04 LTS ですが、次期 LTS リリースの Ubuntu 28.04 LTS の間に通常リリースを3回控えています。
- Ubuntu 26.10
- Ubuntu 27.04
- Ubuntu 27.10
LTS 手前の通常リリースは、次期 LTS リリースの Ubuntu に向けた布石となります。
Ubuntu 26.10 に取り込まれた様々な変更や改良は、Ubuntu 28.04 LTS を見据えた変更や改良になります。
