Ubuntu 24.04 LTSのセキュリティの新機能

by Canonical on 17 June 2024

新しいUbuntu 24.04 LTSリリースであるNoble Numbatは、優れた新機能を備えています。Ubuntuの他のリリースと同様、Ubuntu 24.04 LTSにもメインリポジトリの5年間の無償セキュリティメンテナンスが付属します。サポートはさらに5年間延長でき、Ubuntu Proを購入するとUniverseリポジトリも含めることができます。大きなアップグレードなしにシステムのセキュリティを維持したい組織は、Legacy Supportアドオンでサポートを10年以上に延長することもできます。Ubuntu ProとLegacy Supportによるセキュリティ強化も併せ、Ubuntu 24.04 LTSは、リスクの大きい環境でアプリケーションやサービスを開発および展開するためのセキュアな基盤となります。このブログ記事では、土台となるUbuntu 22.04 LTSと比べ、Noble Numbatで強化された点やセキュリティ機能をご紹介します。

Ubuntu 24.04 LTSのセキュリティの新機能

非特権ユーザーネームスペースの制約

非特権ユーザーネームスペースは広く使用されているLinuxカーネルの機能であり、セキュリティ上のアプリケーションの分離を強化するとともに、サンドボックス環境の一環としてもよく採用されます。これにより、制約のある環境内でアプリケーションが使用する許可が増えます。アプリケーションの中で信頼性が高い部分だけがこの追加の許可を使用してさらに制約の厳しいサンドボックス環境を作成します。信頼性の低い部分はその中で実行されます。一般的なユースケースは、新しいウェブブラウザで採用されているサンドボックス処理で、(信頼済みの)アプリケーション自体がサンドボックスを作成し、その中で信頼済みでないウェブコンテンツを実行するものです。しかし、このような追加のアクセス許可を提供することで、非特権ユーザーネームスペースはLinuxカーネル内に新たな攻撃対象領域を生み出すことになります。非特権ユーザーネームスペースは、各種のカーネルの脆弱性を悪用するために長い間使われてきました。Ubuntuの最新の中間リリースである23.10では、非特権ユーザーネームスペースの使用を、そのようなアクセスを本当に必要とするアプリケーションのみに制限できます。Ubuntu 24.04 LTSではこの機能がさらに改良され、Ubuntu内とサードパーティーの両方で追加のアプリケーションをカバーするとともに、機能のデフォルトのセマンティクスが改善されました。このような場合にUbuntu 24.04 LTSでは、すべてのアプリケーションに対して非特権ユーザーネームスペースの使用が許可されますが、ネームスペース内での追加アクセス許可へのアクセスは拒否されます。これにより、多くのアプリケーションがこのデフォルトの制約をうまく扱うことができる一方で、ユーザーネームスペースを悪用してLinuxカーネル内の追加の攻撃対象領域にアクセスしようとする悪用の試みは阻止されます。

バイナリ強化

現在のツールチェーンやコンパイラは、各種の防御機構を含むバイナリを作成できるよう、多くの拡張が組み込まれています。起きる可能性がある各種のバッファオーバーフロー条件を検出して回避する機能や、分岐保護など新しいプロセッサの機能を活用し、コード再利用攻撃への防御を強化する機能などがあります。

GNU CライブラリはUbuntu上の多くのアプリケーションで基盤として使用され、特定のタイプのバッファオーバーフロー事例や、_FORTIFY_SOURCEマクロの使用による特定の危険な文字列処理動作をランタイムに検出して防護します。FORTIFY_SOURCEは0から3までのさまざまなレベルに指定でき、数字が増えるほどセキュリティ機能が強化されます。Ubuntuの新しいリリースはすべてFORTIFY_SOURCE=2を使用し、これにはsprintf()やstrcpy()などの文字列処理関数でのバッファオーバーフローの可能性や、さまざまな事例における%n書式指定子による書式文字列の脆弱性を検出するチェックが含まれており、強固な基盤となります。Ubuntu 24.04 LTSでは、FORTIFY_SOURCE=3を使用すると、さらに追加のセキュリティ機能が有効になります。レベル3ではmemmove()、memcpy()、snprintf()、vsnprintf()、strtok()、strncat()など、他の多くの一般的なメモリ管理関数の危険な使用の可能性を検出する機能が大幅に強化されます。この機能はUbuntu 24.04 LTS内のgccコンパイラではデフォルトで有効なため、Ubuntuアーカイブ内でgccによりコンパイルされたすべてのパッケージと、Ubuntu 24.04 LTSのgccでコンパイルされたすべてのアプリケーションには、この追加の保護機能が使用されます。

Armv8-Mハードウェアアーキテクチャ(Ubuntuの「arm64」ソフトウェアアーキテクチャにより提供されます)には、ハードウェアにより強制されるポインタ認証と分岐ターゲット識別の機能があります。ポインタ認証により、スタックに格納されているポインタを攻撃者がコントロールする場所にリダイレクトすることを目的とする、悪意のスタックバッファ改変が検出でき、分岐ターゲット識別は特定の間接分岐命令と、そのターゲットとなり得る場所を追跡するために使用されます。このような正当な場所を追跡することで、既存の間接分岐を使用して、コード内の他のガジェットにジャンプすることを目的とする、ジャンプを使用する悪意のプログラミングの攻撃を検出できます。gccコンパイラは、-mbranch-protectionオプションにより、これらの機能をサポートします。Ubuntu 24.04 LTSでは、dpkgパッケージで-mbranch-protection=standardが有効になったため、Ubuntuアーカイブ内のすべてのパッケージにおいて、使用可能な部分ではこれらのハードウェア機能のサポートが有効です。

AppArmor 4

前に述べた非特権ユーザーネームスペースの制限はすべて、AppArmor必須アクセス制御システムにより支えられています。AppArmorにより、システム管理者はアプリケーションがどのリソースにアクセスを許可されるかを定義し、それ以外のアクセスをすべて拒否することで、最小権限の原則を実装できます。AppArmorは、アプリケーションとシステムのセキュリティプロファイルを定義するために使用されるユーザー空間パッケージと、ポリシーの適用を行うLinuxカーネル内のAppArmor Linuxセキュリティモジュールとで構成されます。Ubuntu 24.04 LTSには最新のAppArmor 4.0リリースが含まれており、セキュリティポリシー(高レベルプロトコルだけでなく)で許可されるネットワークアドレスとポートの指定や、さまざまな条件によってより複雑なポリシーを表現するなど、多くの新機能がサポートされています。Ubuntu 24.04 LTSのAppArmor 4に含まれている、新たに開発された魅力的機能として、アクセス制御の決定を信頼済みのユーザー空間プログラムに委任するというものがあります。ユーザー空間内ではさらに多くのコンテキストが利用可能で、ユーザーやシステム管理者とリアルタイムの形式で対話することも可能なため、これによって非常に高度な意思決定を実装可能です。たとえば、実験的なsnapdプロンプト機能ではこれを活用して、snapがユーザーのホームディレクトリ内でどのファイルにアクセス可能かをユーザーが直接制御できます。最後に、AppArmorにはユーザーネームスペースとio_uringサブシステムへのアクセスを調停する機能が追加されました。このどちらも、悪意のアプリケーションに対するカーネルの攻撃対象領域を歴史的に増やしてきたものです。

古いTLSのバージョンの無効化

プライベート通信での暗号の使用は、現代のインターネットのバックボーンです。TLS(Transport Layer Security)プロトコルは、1999年にTLS 1.0で最初に標準化されたときから、インターネット通信の機密性と整合性に貢献してきました。このプロトコルは、それ以来多くの改訂が行われ、新たなセキュリティ機能が追加されるとともに、標準の以前のバージョンに付きものだった、さまざまなセキュリティ上の問題点を回避してきました。TLSには多くのバージョンが存在し、それぞれで広範なオプションがサポートされているため、現代のインターネットシステムはセキュアな通信リンクを確立するときにオートネゴシエーションのプロセスを使用して、プロトコルのバージョンとパラメータの適切な組み合わせを選択します。Ubuntu 24.04 LTSでは、ユーザーがTLSのダウングレード攻撃にさらされ、機密情報が漏えいすることを避けるため、TLS 1.0、1.1、およびDTLS 1.0はすべて強制的に無効になります(基盤となるopensslまたはgnutlsライブラリを使用するすべてのアプリケーションについて)。

アップストリームカーネルセキュリティの機能

Linux kernel v5.15は、以前のUbuntu 22.04 LTSリリースでLinuxカーネルの基礎として使用されていました。これには、コアのスケジューリング、カーネルスタックのランダム化、非特権のBPF制限など、多くのカーネルのセキュリティ機能があります。それ以降、アップストリームのLinuxカーネルのコミュニティは、カーネルのセキュリティ機能をせっせと追加してきました。Ubuntu 24.04 LTSに含まれているv6.8 Linuxカーネルには、次のような新しいセキュリティ機能があります。

Intelのシャドースタックのサポート

現代のIntel CPUは、特定のタイプのROP(復帰指向プログラミング)と、呼び出しスタックの悪意での破損を目的とする他の攻撃を防止することを目的とする、新しいハードウェア機能がサポートされています。シャドースタックはハードウェアで強制されるスタックの復帰アドレスのコピーで、CPUが直接変更できません。プロセッサが関数呼び出しから復帰するとき、スタックの復帰アドレスがシャドースタックの値と比較されます。双方が異なる場合、ROP攻撃の可能性を防止するため、プロセスは中断されます。コンパイラでのこの機能のサポートは、Ubuntu 19.10からユーザー空間パッケージで有効になっていましたが、カーネルとCライブラリでもサポートされるまで活用できませんでした。Ubuntu 24.04 LTSには、このシャドースタックへの追加サポートが含まれているため、GLIBC_TUNABLES=glibc.cpu.hwcaps=SHSTK環境変数を設定することで、必要に応じてこの機能を有効にできます。

AMD SEV-SNPIntel TDXによるセキュアな仮想化

コンフィデンシャルコンピューティングは、オペレーティングシステム、ハイパーバイザー、ファームウェアなど特権システムソフトウェアの複雑なコードベースの脆弱性が、コードとデータ両方の機密性と整合性に対して継続的なリスクになる、従来型の脅威モデルとは根本的に一線を画するものです。同様に、悪意のクラウド管理者による未認可アクセスは、VM(仮想マシン)とその環境のセキュリティを危うくするものです。Ubuntu Confidential VMは、シリコンレベルでのTrusted Execution Environments(信頼できる実行環境)のイノベーションを基礎としており、VMのセキュリティアシュアランスの制御を取り戻すことを目的とするものです。

x86アーキテクチャでは、AMDとIntelの両方のプロセッサが、メモリの暗号化と整合性保護の機能を持つ仮想マシンの実行をサポートするハードウェア機能があります(それぞれ、AMD SEV SNPとIntel TDXと呼ばれています)。これらの機能により、仮想マシンに格納されているデータには、ハイパーバイザーからも、インフラストラクチャの演算子からもアクセス不可能となります。これらの機能をゲスト仮想マシンとして使用するためのサポートは、アップストリームLinuxカーネルのバージョン5.19で導入されました。

Ubuntu Confidential VMを使用することで、ユーザーはサードパーティーにより提供されるコンピューティングリソースを使用しながら、メモリ暗号化やその他の機能を使用して、データの整合性と機密性を維持できます。パブリッククラウドでは、Ubuntuは最も広範な機密VMのポートフォリオを提供しています。これらは両方のハードウェア機能のイノベーションを基盤として構築されており、Microsoft Azure、Google Cloud、Amazon AWSのすべてにわたってサービスが提供されています。

エンタープライズのお客様が自社のプライベートデータセンター内でコンフィデンシャルコンピューティングを活用するには、完全に有効化されたソフトウェアスタックが不可欠です。このスタックは、ゲスト側(カーネルとOVMF)およびホスト側(kernel-KVM、QEMU、Libvirt)の両方を包含しています。現在のところ、ホスト側のパッチはまだアップストリームではありません。この問題に対処するため、CanonicalとIntelはUbuntuのお客様がIntelに最適化されたTDX Ubuntuビルドを使用できるよう、戦略的提携を確立しました。このサービスには、Ubuntu 23.10から始まり、24.04やそれ以後までにわたる、必要なすべてのゲストおよびホスト用のパッチが含まれ、まだアップストリームに結合されていないものも含まれています。完全なTDXソフトウェアスタックは、このgithubリポジトリから入手できます。

この共同作業により、当社のお客様はIntel TDXのセキュリティアシュアランスをすぐに活用できます。また、この共同作業により、シリコンのイノベーションとソフトウェアの対応とのギャップを狭めることもできます。このギャップはIntelが第5世代のIntel Xeonスケーラブルプロセッサや、さらにそれ以後のプロセッサで、ハードウェアのイノベーションの境界を広げるにつれ、広がっているものです。

コンパイル時の厳格な境界チェック

ライブラリ内のバイナリと、Ubuntuで配布されるアプリケーションを強化するのと同様に、Linuxカーネル自体も、memcpy()ファミリの関数の境界チェックの改善により、コンパイル時にバッファオーバーフローの可能性を検出するサポートが強化されました。カーネル内では、FORTIFY_SOURCEマクロにより、memcpy()やmemset()などのメモリ管理関数で、デスティネーションオブジェクトが指定された量のメモリを保持できる大きさがあるかどうかをチェックし、十分な大きさがない場合はコンパイル処理をアボートできます。これにより、各種の小さな、しかしオブジェクトがより大きなオブジェクトに埋め込まれている場合などの複雑な事例では正しく処理できなかった、メモリ管理の問題を捕捉できます。これはカーネル内では非常に一般的なパターンで、アップストリーム5.18のカーネルバージョンでは、このような各種の事例を列挙して修正するため導入された変更により、この機能が大幅に改良されました。現在は、コンパイラがサブオブジェクトに対してメモリ操作を行うとき、他のオブジェクトのメンバが意図せずに上書きされないよう厳格なチェックを強制できるようになったため、カーネル内でバッファオーバーフローが起きる脆弱性を防止できるようになりました。

まとめ

Ubuntu 24.04 LTSは、過去のUbuntuリリースを強固な基盤としてさまざまなセキュリティ機能が改良され、これまでで最も安全なリリースになりました。カーネルとユーザー空間、およびディストリビューション全体にわたる追加機能の組み合わせが、あらゆる脆弱性と攻撃対象領域に対処します。最大12年のサポートを受けられるUbuntu 24.04 LTSは、Linuxのサービスやアプリケーションを開発して展開する最も優れた安全な基盤です。Ubuntu Proの利用者には、Ubuntu環境のセキュリティを強化するExpanded Security Maintenance、カーネルのライブパッチ、追加サービスがすべて提供されます。

ニュースレターのサインアップ

Ubuntuニュースレターの配信登録

お客様が購読登録を行われる場合、以下の条件に同意されたことになります。Canonicalのプライバシーに関するお知らせ個人情報保護ポリシー

関連記事

Canonical、Landscape 24.04 LTSを公開

12年間のサポートに対応するLandscape 24.04 LTSでは、新しいシステム管理ウェブポータル/APIにsnapおよびリポジトリ管理機能を追加しました。 Canonicalは本日、Landscapeの最初のLTSリリースを発表しました。Landscape 24.04 LTSにはバージョン管理されたAPI、アクセシビリティとパフォーマンスに配慮した新しいウェブポータル、直感的なソフトウェア配信管理機能が搭載されています。Landscape 24.04 LTSは、Landscape ServerとLandscape Clientで構成されます。モダナイズされたバックエンドとウェブポータルが搭載されているため、エンジニアリングチームは効率的に作業を行い、パッチや新機能 […]

Canonical Jobs – Linuxエンジニア

Linuxフィールドエンジニア IoT分野における当社の主力製品、Ubuntu Coreはユニークな存在です。最高の信頼性、セキュリティ、フットプリントを実現するため、Linuxを再発明したものと言えます。当社の顧客は、自動車、市販電子機器、医療機器、産業システム、ロボティクス、ゲートウェイなど、さまざまな業界にわたりますが、厳しい品質とセキュリティの要件を満たすよう迫られているという点では共通しています。 日本市場での急速な展開に対応するため、当社はデバイス部門のフィールドエンジニアチームの拡大を検討しています。この重要なポジションは、新しいテクノロジーを迅速に習得し、多くの業界の最先端でお客様のソリューション構築を支援することが求められるため、能力ある候補者はキャリア […]

CentOSからUbuntuへの移行:システム管理者とDevOpsのためのガイド

CentOS 7は2024年6月30日に提供終了(EoL)を迎えます。この日以降、CentOS Projectは重要なセキュリティパッチを含む更新やサポートを提供しません。RHELベースのエコシステムから離れることは困難に見えるかもしれませんが、Ubuntuなら切り替えは簡単かつ経済的です。 自動セキュリティ検証の最先端を走るPenteraは、この移行の容易性について説得力のあるケーススタディを紹介しています。同社は、どのように自社のコンテナベースのセットアップが最小限の調整でUbuntuに移行され、セキュリティ対策の強化につながったかについて詳しく説明しています。この移行は同社のクライアントからも好意的に受け止められており、広範なコミュニティサポートに支えられて過去20 […]