翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AL2023 の 6.1 Linux カーネルは、いくつかの強化オプションと機能を使用して設定および構築されています。
カーネル強化オプション (アーキテクチャに依存していません)
実行時に ACPI メソッドの挿入/置換を許可する (CONFIG_ACPI_CUSTOM_METHOD)
Amazon Linux では、root
ユーザーが任意のカーネルメモリに書き込むことができるため、このオプションは無効になっています。
このオプションは、カーネルセルフプロテクションプロジェクト推奨設定
その他のバイナリフォーマット (binfmt_misc
)
このオプションはカーネルセルフプロテクションプロジェクト (KSPP) の推奨設定
BUG()
サポート
このオプションは、カーネルセルフプロテクションプロジェクト推奨設定
カーネルメモリ構造の有効性をチェックしているときに、カーネルがデータ破損に遭遇した場合の BUG()
Linux カーネルの一部は、データ構造の内部整合性をチェックし、データ破損を検出した場合は BUG()
できます。
このオプションは、カーネルセルフプロテクションプロジェクト推奨設定
COMPAT_BRK
このオプションを無効にすると (Amazon Linux がカーネルを設定する方法)、randomize_va_space
sysctl
設定はデフォルトで 2
になり、mmap
ベース、スタック、VDSO ページのランダム化に加えてヒープのランダム化も有効になります。
1996 年以前の古い libc.so.5
バイナリとの互換性を保つため、このオプションはカーネルに組み込まれています。
このオプションは、カーネルセルフプロテクションプロジェクト推奨設定
COMPAT_VDSO
この設定オプションは x86-64
に関連しますが、aarch64
とは関係ありません。これを n
に設定すると、Amazon Linux カーネルは 32 ビットの仮想化動的共有オブジェクト (VDSO) を予測可能なアドレスに表示しなくなります。このオプションを n
に設定したことで障害が発生することがわかっている最新の glibc
は 2004 年の glibc
2.3.3です。
このオプションは、カーネルセルフプロテクションプロジェクト推奨設定
CONFIG_DEBUG
ゲートの強化
CONFIG_DEBUG
ゲートの Linux カーネル設定オプションは通常、デバッグ用の問題を想定して構築されたカーネルで使用するように設計されており、パフォーマンスなどは優先されません。AL2023 はCONFIG_DEBUG_LIST
強化オプションを有効にします。
IOMMU を設定する前に EFI スタブで PCI デバイスの DMA を無効にする
このオプションはカーネルセルフプロテクションプロジェクト (KSPP) の推奨設定
カーネルとユーザースペース間のメモリーコピーの の強化
カーネルがユーザーすペースにメモリーをコピーしたり、ユーザー空間からメモリーをコピーしたりする必要がある場合、このオプションはいくつかのチェックを有効にすることで、ある種のヒープオーバーフローの問題を防ぐことができます。
CONFIG_HARDENED_USERCOPY_FALLBACK
オプションはカーネル 4.16 から 5.15 までにあって、カーネルデベロッパーが不足している許可リストエントリを WARN()
経由で見つけやすくするためのものです。AL2023 には 6.1 カーネルが付属しているため、このオプションは AL2023 には関係ありません。
CONFIG_HARDENED_USERCOPY_PAGESPAN
オプションは主に開発者のデバッグオプションとしてカーネルに存在し、AL2023 の 6.1 カーネルには適用されません。
このオプションは、カーネルセルフプロテクションプロジェクト推奨設定
休止のサポート
このオプションはカーネルセルフプロテクションプロジェクト (KSPP) の推奨設定
乱数生成
AL2023 カーネルは、EC2 内で適切なエントロピーを使用できるように設定されています。
CONFIG_INET_DIAG
このオプションはカーネルセルフプロテクションプロジェクト (KSPP) の推奨設定
割り当て時と割り当て解除時に、カーネルページとスラブアロケータのすべてのメモリをゼロにする
このオプションはカーネルセルフプロテクションプロジェクト (KSPP) の推奨設定CONFIG_INIT_ON_ALLOC_DEFAULT_ON
init_on_alloc=1
動作はカーネルコマンドラインに追加することで有効にでき、CONFIG_INIT_ON_FREE_DEFAULT_ON
動作は init_on_free=1
に追加することで有効にできます。
すべてのスタック変数をゼロ (CONFIG_INIT_STACK_ALL_ZERO
) に初期化する
このオプションはカーネルセルフプロテクションプロジェクト (KSPP) の推奨設定
カーネルモジュール署名
AL2023 はカーネルモジュールの署名に署名して検証します。サードパーティモジュールを構築するユーザーの互換性を保つため、モジュールに有効な署名を要求する CONFIG_MODULE_SIG_FORCE
オプションは有効化されていません。すべてのカーネルモジュールが署名されていることを確認したいユーザは、これを強制するように Linux セキュリティモジュール (LSM) の ロックダウン を設定できます。
kexec
このオプションはカーネルセルフプロテクションプロジェクト (KSPP) の推奨設定kdump
機能を使用できるように有効になっています。
IOMMU
サポート
AL2023 は IOMMU サポートを有効にします。CONFIG_IOMMU_DEFAULT_DMA_STRICT
オプションはデフォルトでは有効になっていませんが、この機能はカーネルコマンドラインに iommu.passthrough=0 iommu.strict=1
を追加することで設定できます。
kfence
このオプションはカーネルセルフプロテクションプロジェクト (KSPP) の推奨設定
従来の pty
のサポート
AL2023 は最新のPTYインターフェイス () を使用しますdevpts
。
このオプションは、カーネルセルフプロテクションプロジェクト推奨設定
Linux セキュリティモジュール (LSM) の ロックダウン
AL2023 は LSM lockdown
を構築します。これにより、セキュアブートの使用時にカーネルが自動的にロックダウンされます。
CONFIG_LOCK_DOWN_KERNEL_FORCE_CONFIDENTIALITY
オプションは有効になっていません。このオプションはカーネルセルフプロテクションプロジェクト (KSPP) の推奨設定
ページポイズニング
このオプションはカーネルセルフプロテクションプロジェクト (KSPP) の推奨設定
スタックプロテクター
AL2023 カーネルは、 -fstack-protector-strong
オプションでGCC有効になっている のスタック保護機能を使用して構築されています。
このオプションは、カーネルセルフプロテクションプロジェクト推奨設定
seccomp BPF API
seccomp 強化機能は、systemd
およびコンテナランタイムなどのソフトウェアがユーザースペースアプリケーションを強化するために使用されます。
このオプションは、カーネルセルフプロテクションプロジェクト推奨設定
panic()
タイムアウト
AL2023 カーネルは、この値を に設定して設定されています。つまり0
、カーネルはパニック後に再起動しません。このオプションはカーネルセルフプロテクションプロジェクト (KSPP) の推奨設定sysctl
、/proc/sys/kernel/panic
、およびカーネルコマンドラインで設定できます。
セキュリティモデル
AL2023 は、デフォルトで SELinux を許容モードで有効にします。詳細については、「AL2023 の SELinux モードの設定」を参照してください。
Linux セキュリティモジュール (LSM) の ロックダウン および yama
モジュールも有効になっています。
/proc/kcore
このオプションはカーネルセルフプロテクションプロジェクト (KSPP) の推奨設定
システムコールエントリでのカーネルスタックオフセットのランダム化
このオプションはカーネルセルフプロテクションプロジェクト (KSPP) の推奨設定randomize_kstack_offset=on
を設定することで有効にできます。
参照カウントチェック (CONFIG_REFCOUNT_FULL
)
このオプションはカーネルセルフプロテクションプロジェクト (KSPP) の推奨設定
スケジューラーによる SMT コアの認識 (CONFIG_SCHED_CORE
)
AL2023 カーネルは で構築されておりCONFIG_SCHED_CORE
、ユーザースペースアプリケーションは を使用できますprctl(PR_SCHED_CORE)
。このオプションは、カーネルセルフプロテクションプロジェクト推奨設定
schedule()
(CONFIG_SCHED_STACK_END_CHECK
) 呼び出しでスタックに問題がないか確認する
AL2023 カーネルは、 CONFIG_SCHED_STACK_END_CHECK
を有効にして構築されています。このオプションは、カーネルセルフプロテクションプロジェクト推奨設定
メモリアロケータの強化
AL2023 カーネルでは、CONFIG_SHUFFLE_PAGE_ALLOCATOR
、、CONFIG_SLAB_FREELIST_HARDENED
および CONFIG_SLAB_FREELIST_RANDOM
オプションを使用してカーネルメモリアロケーターを強化できます。このオプションは、カーネルセルフプロテクションプロジェクト推奨設定
SLUB デバッグのサポート
AL2023 カーネルは、CONFIG_SLUB_DEBUG
このオプションにより、カーネルコマンドラインで有効にできるアロケーターのオプションデバッグ機能を有効にするため、 を有効にします。このオプションは、カーネルセルフプロテクションプロジェクト推奨設定
CONFIG_STATIC_USER_MODE_HELPER
このオプションはカーネルセルフプロテクションプロジェクト (KSPP) の推奨設定CONFIG_STATIC_USERMODEHELPER
で必要なためです。
読み取り専用カーネルテキストおよび rodata (CONFIG_STRICT_KERNEL_RWX
および CONFIG_STRICT_MODULE_RWX
)
AL2023 カーネルは、カーネルとカーネルモジュールのテキストとrodataメモリを読み取り専用としてマークし、非テキストメモリを実行可能としてマークするように設定されています。このオプションは、カーネルセルフプロテクションプロジェクト推奨設定
TCP syncookie のサポート (CONFIG_SYN_COOKIES
)
AL2023 カーネルは TCP シンクッキーのサポートで構築されています。このオプションは、カーネルセルフプロテクションプロジェクト推奨設定
ガードページ (CONFIG_VMAP_STACK
) 付きの仮想化マップスタック
AL2023 カーネルは で構築されておりCONFIG_VMAP_STACK
、ガードページを使用して仮想マッピングされたカーネルスタックを有効にします。このオプションは、カーネルセルフプロテクションプロジェクト推奨設定
コンパイラ警告をエラー (CONFIG_WERROR
) として構築する
このオプションはカーネルセルフプロテクションプロジェクト (KSPP) の推奨設定
関数 exit (CONFIG_ZERO_CALL_USED_REGS
) 時にレジスタをゼロにする
このオプションはカーネルセルフプロテクションプロジェクト (KSPP) の推奨設定
ユーザースペース割り当ての最小アドレス
この強化オプションは、カーネル NULL ポインターのバグの影響を軽減するのに役立ちます。このオプションは、カーネルセルフプロテクションプロジェクト推奨設定
clang
特定の強化オプション
AL2023 カーネルは GCCではなく で構築されているためclang、CONFIG_CFI_CLANG
強化オプションを有効にすることはできません。そのため、 も適用CONFIG_CFI_PERMISSIVE
できません。このオプションはカーネルセルフプロテクションプロジェクト (KSPP) の推奨設定
x86-64 固有のカーネル強化オプション
CONFIG オプション |
AL2023/6.1/aarch64 | AL2023/6.1/x86_64 | AL2023/6.12/aarch64 | AL2023/6.12/x86_64 |
---|---|---|---|---|
CONFIG_AMD_IOMMU | 該当なし |
y
|
該当なし |
y
|
CONFIG_AMD_IOMMU_V2 | 該当なし |
y
|
該当なし | 該当なし |
CONFIG_IA32_EMULATION | 該当なし |
y
|
該当なし |
y
|
CONFIG_INTEL_IOMMU | 該当なし |
y
|
該当なし |
y
|
CONFIG_INTEL_IOMMU_DEFAULT_ON | 該当なし |
n
|
該当なし |
n
|
CONFIG_INTEL_IOMMU_SVM | 該当なし |
n
|
該当なし |
n
|
CONFIG_LEGACY_VSYSCALL_NONE | 該当なし |
n
|
該当なし |
n
|
CONFIG_MODIFY_LDT_SYSCALL | 該当なし |
n
|
該当なし |
n
|
CONFIG_PAGE_TABLE_ISOLATION | 該当なし |
y
|
該当なし | 該当なし |
CONFIG_RANDOMIZE_MEMORY | 該当なし |
y
|
該当なし |
y
|
CONFIG_X86_64 | 該当なし |
y
|
該当なし |
y
|
CONFIG_X86_MSR | 該当なし |
y
|
該当なし |
y
|
CONFIG_X86_VSYSCALL_EMULATION | 該当なし |
y
|
該当なし |
y
|
CONFIG_X86_X32 | 該当なし | 該当なし | 該当なし | 該当なし |
CONFIG_X86_X32_ABI | 該当なし |
n
|
該当なし |
n
|
x86-64 サポート
基本的な x86-64 サポートには、物理アドレス拡張 (PAE) と実行なし (NX) ビットのサポートが含まれます。このオプションは、カーネルセルフプロテクションプロジェクト推奨設定
AMD と Intel IOMMU のサポート
AL2023 カーネルは、AMD と Intel をサポートする で構築されていますIOMMUs。このオプションは、カーネルセルフプロテクションプロジェクト推奨設定
CONFIG_INTEL_IOMMU_DEFAULT_ON
オプションは設定されていませんが、カーネルコマンドラインに intel_iommu=on
を渡すことで有効にできます。このオプションはカーネルセルフプロテクションプロジェクト (KSPP) の推奨設定
CONFIG_INTEL_IOMMU_SVM
AL2023 では、このオプションは現在有効になっていません。このオプションはカーネルセルフプロテクションプロジェクト (KSPP) の推奨設定
32 ビットユーザースペースのサポート
重要
32 ビット x86 ユーザースペースのサポートは廃止され、32 ビットユーザースペースバイナリの実行のサポートは Amazon Linux の今後のメジャーバージョンで削除される可能性があります。
注記
AL2023 には 32 ビットパッケージが含まれなくなりましたが、カーネルは引き続き 32 ビットユーザースペースの実行をサポートします。詳細については「32 ビット x86 (i686) パッケージ」を参照してください。
32 ビットユーザースペースアプリケーションの実行をサポートするために、AL2023 は CONFIG_X86_VSYSCALL_EMULATION
オプションを有効にせず、CONFIG_IA32_EMULATION
、CONFIG_COMPAT
、および CONFIG_X86_VSYSCALL_EMULATION
オプションを有効にします。このオプションはカーネルセルフプロテクションプロジェクト (KSPP) の推奨設定
64 ビットプロセッサ用の x32 ネイティブ 32 ビット ABI は有効になっていません (CONFIG_X86_X32
および CONFIG_X86_X32_ABI
)。このオプションは、カーネルセルフプロテクションプロジェクト推奨設定
x86 モデル固有レジスタ (MSR) のサポート
turbostat
をサポートするため CONFIG_X86_MSR
オプションは有効になっています。このオプションはカーネルセルフプロテクションプロジェクト (KSPP) の推奨設定
modify_ldt
システムコール
AL2023 では、ユーザープログラムが syscall を使用して x86 Local Descriptor Table (LDT) modify_ldt
を変更することはできません。この呼び出しは 16 ビットコードまたはセグメント化されたコードを実行するために必要です。この呼び出しがないと、WINE でプログラムを実行したり、非常に古いスレッドライブラリを実行したりする場合など、dosemu
などのソフトウェアが動作しなくなる可能性があります。このオプションは、カーネルセルフプロテクションプロジェクト推奨設定
ユーザーモードでカーネルマッピングを削除する
AL2023 は、カーネルアドレスの大部分がユーザースペースにマッピングされないようにカーネルを設定します。このオプションは、カーネルセルフプロテクションプロジェクト推奨設定
カーネルメモリセクションをランダム化する
AL2023 は、カーネルメモリセクションの基本仮想アドレスをランダム化するようにカーネルを設定します。このオプションは、カーネルセルフプロテクションプロジェクト推奨設定
aarch64 固有のカーネル強化オプション
CONFIG オプション |
AL2023/6.1/aarch64 | AL2023/6.1/x86_64 | AL2023/6.12/aarch64 | AL2023/6.12/x86_64 |
---|---|---|---|---|
CONFIG_ARM64_BTI |
y
|
該当なし |
y
|
該当なし |
CONFIG_ARM64_BTI_KERNEL | 該当なし | 該当なし | 該当なし | 該当なし |
CONFIG_ARM64_PTR_AUTH |
y
|
該当なし |
y
|
該当なし |
CONFIG_ARM64_PTR_AUTH_KERNEL |
y
|
該当なし |
y
|
該当なし |
CONFIG_ARM64_SW_TTBR0_PAN |
y
|
該当なし |
y
|
該当なし |
CONFIG_UNMAP_KERNEL_AT_EL0 |
y
|
該当なし |
y
|
該当なし |
ブランチターゲット識別
AL2023 カーネルは、ブランチターゲット識別 () のサポートを有効にしますCONFIG_ARM64_BTI
。このオプションは、カーネルセルフプロテクションプロジェクト推奨設定
AL2023 で GCC を使用して構築された CONFIG_ARM64_BTI_KERNEL
オプションは有効になっていません。また、gcc のバグ
ポインター認証 (CONFIG_ARM64_PTR_AUTH
)
AL2023 カーネルは、リターン指向プログラミング (ROP) 手法の軽減に役立つポインタ認証拡張機能 (ARMv8.3 拡張機能の一部) のサポートで構築されています。Graviton
CONFIG_ARM64_PTR_AUTH
オプションは有効になっており、ユーザースペースのポインター認証をサポートします。CONFIG_ARM64_PTR_AUTH_KERNEL
オプションも有効になっているため、AL2023 カーネルはそれ自体のリターンアドレス保護を使用できます。
このオプションは、カーネルセルフプロテクションプロジェクト推奨設定
TTBR0_EL1
切り替えを決してしない特権アクセスをエミュレートする
このオプションは、ユーザーアクセスルーチンによって一時的にのみ有効な値に設定される TTBR0_EL1
で、カーネルがユーザー空間のメモリに直接アクセスすることを防ぎます。
このオプションは、カーネルセルフプロテクションプロジェクト推奨設定
ユーザースペースでの実行時にカーネルをアンマップする
AL2023 カーネルは、ユーザースペース () で実行するときにカーネルのマッピングを解除するように設定されていますCONFIG_UNMAP_KERNEL_AT_EL0
。このオプションは、カーネルセルフプロテクションプロジェクト推奨設定