기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
AL2023 커널 하드닝
AL2023 버전의 6.1 Linux 커널은 몇 가지 강화 옵션 및 기능으로 구성 및 구축되었습니다.
커널 강화 옵션 (독립 아키텍처)
런타임 시 ACPI 메서드를 삽입/교체할 수 있도록 허용 (CONFIG_ACPI_CUSTOM_METHOD)
root
사용자가 임의의 커널 메모리에 쓸 수 있으므로 Amazon Linux에서 이 옵션은 비활성화됩니다.
이 옵션은 커널 자체 보호 프로젝트 권장 설정
기타 바이너리 포맷 (binfmt_misc
)
이 옵션은 커널 자체 보호 프로젝트 (KSPP) 권장 설정
BUG()
지원
이 옵션은 커널 자체 보호 프로젝트 권장 설정
커널 메모리 구조의 유효성을 검사할 때 커널에서 데이터 손상이 발생하면 BUG()
가 생깁니다.
Linux 커널 기능으로 데이터 구조의 내부 일관성을 검사할 수 있으며 데이터 손상이 감지되면 BUG()
가 발생합니다.
이 옵션은 커널 자체 보호 프로젝트 권장 설정
COMPAT_BRK
이 옵션을 비활성화(Amazon Linux에서 커널 구성)하면 randomize_va_space
sysctl
설정은 2
로 기본 설정되며 mmap
베이스, 스택 및 VDSO 페이지 무작위화를 기반으로 힙 무작위화도 활성화됩니다.
이 옵션은 1996년 이전의 libc.so.5
바이너리와 호환하기 하기 위해 커널에 존재합니다.
이 옵션은 커널 자체 보호 프로젝트 권장 설정
COMPAT_VDSO
이 구성 옵션은 aarch64
가 아닌 x86-64
에 해당합니다. 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) 권장 설정
커널과 사용자 공간 간 메모리 복제를 위한 강화
커널이 사용자 공간으로 메모리를 복사하거나 사용자 공간 메모리를 복사해야 하는 경우 이 옵션을 사용하면 일부 검사 기능을 통해 일부 클래스의 힙 오버플로 문제를 방지할 수 있습니다.
커널 4.16~5.15에는 커널 개발자가 WARN()
를 통해 누락된 허용 목록 항목을 찾을 수 있도록 하는 CONFIG_HARDENED_USERCOPY_FALLBACK
옵션이 있었습니다. AL2023 버전은 6.1 커널을 제공하기 때문에 이 옵션은 더 이상 AL2023 버전과 관련이 없습니다.
이 CONFIG_HARDENED_USERCOPY_PAGESPAN
옵션은 주로 개발자를 위한 디버깅 옵션으로 커널에 존재했으며 AL2023 6.1 커널에는 더 이상 적용되지 않습니다.
이 옵션은 커널 자체 보호 프로젝트 권장 설정
하이버네이트 지원
이 옵션은 커널 자체 보호 프로젝트 (KSPP) 권장 설정
난수 생성
AL2023 커널은 EC2 내에서 적절한 엔트로피를 사용할 수 있도록 구성되어 있습니다.
CONFIG_INET_DIAG
이 옵션은 커널 자체 보호 프로젝트 (KSPP) 권장 설정
할당 및 할당 해제 시 모든 커널 페이지 및 슬래브 할당자 메모리를 0으로 설정합니다.
이 옵션은 커널 자체 보호 프로젝트 (KSPP) 권장 설정init_on_alloc=1
을 추가하면 CONFIG_INIT_ON_ALLOC_DEFAULT_ON
동작을 활성화할 수 있고, 추가하여 init_on_free=1
를 추가하면 CONFIG_INIT_ON_FREE_DEFAULT_ON
동작을 활성화할 수 있습니다.
모든 스택 변수를 0(CONFIG_INIT_STACK_ALL_ZERO
)으로 초기화합니다.
이 옵션은 커널 자체 보호 프로젝트 (KSPP) 권장 설정
커널 모듈 서명
AL2023 는 커널 모듈의 서명을 서명하고 서명을 검증합니다. 모듈에 유효한 서명이 있어야 하는 이 CONFIG_MODULE_SIG_FORCE
옵션은 타사 모듈을 구축하는 사용자의 호환성을 유지하기 위해 활성화되지 않습니다. 모든 커널 모듈에 서명이 있는지 확인하고 싶은 사용자는 이것이 적용된 Lockdown 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
를 사용합니다.
이 옵션은 커널 자체 보호 프로젝트 권장 설정
Lockdown Linux 보안 모듈(LSM)
AL2023 는 lockdown
LSM을 빌드하며, LSM은 보안 부팅을 사용할 때 커널을 자동으로 잠급니다.
CONFIG_LOCK_DOWN_KERNEL_FORCE_CONFIDENTIALITY
옵션이 활성화되어 있지 않습니다. 이 옵션은 커널 자체 보호 프로젝트 (KSPP) 권장 설정
페이지 포이즈닝
이 옵션은 커널 자체 보호 프로젝트 (KSPP) 권장 설정
스택 프로텍터
AL2023 커널은 스택 프로텍터 기능을 옵션으로 GCC 활성화하여 빌드되었습니다. -fstack-protector-strong
이 옵션은 커널 자체 보호 프로젝트 권장 설정
seccomp BPF API
seccomp 강화 기능으로 systemd
와 컨테이너 런타임과 같은 소프트웨어에서 사용자 공간 애플리케이션을 강화할 수 있습니다.
이 옵션은 커널 자체 보호 프로젝트 권장 설정
panic()
타임아웃
AL2023 커널은 이 값을 로 설정하여 구성되어 있습니다. 즉0
, 패닉이 발생한 후 커널이 재부팅되지 않습니다. 이 옵션은 커널 자체 보호 프로젝트 (KSPP) 권장 설정sysctl
, /proc/sys/kernel/panic
및 커널 명령줄로 구성할 수 있습니다.
보안 모델
AL2023 는 기본적으로 허용 모드에서 SELinux를 활성화합니다. 자세한 정보는 AL2023 SELinux 모드 설정을 참조하세요.
Lockdown Linux 보안 모듈(LSM) 및 yama
모듈도 활성화되어 있습니다.
/proc/kcore
이 옵션은 커널 자체 보호 프로젝트 (KSPP) 권장 설정
시스템 호출 입력 시 커널 스택 오프셋 랜덤
이 옵션은 커널 자체 보호 프로젝트 (KSPP) 권장 설정randomize_kstack_offset=on
로 설정하면 이 기능을 활성화할 수 있습니다.
참조 카운팅 검사 (CONFIG_REFCOUNT_FULL
)
이 옵션은 커널 자체 보호 프로젝트 (KSPP) 권장 설정
스케줄러의 SMT 코어 인식 (CONFIG_SCHED_CORE
)
사용자 공간 애플리케이션에서 사용할 수 있는 CONFIG_SCHED_CORE
AL2023 커널이 내장되어 있습니다. 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 디버깅 지원
이 옵션을 사용하면 커널 CONFIG_SLUB_DEBUG
명령줄에서 활성화할 수 있는 할당자에 대한 선택적 디버깅 기능을 사용할 수 있으므로 AL2023 커널이 활성화됩니다. 이 옵션은 커널 자체 보호 프로젝트 권장 설정
CONFIG_STATIC_USERMODEHELPER
이 옵션은 커널 자체 보호 프로젝트 (KSPP) 권장 설정CONFIG_STATIC_USERMODEHELPER
를 사용하려면 배포판의 특별 지원이 필요한데 현재 Amazon Linux에는 없습니다.
읽기 전용 커널 텍스트 및 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) 권장 설정
함수를 종료(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 |
---|---|---|
CONFIG_AMD_IOMMU | N/A |
y
|
CONFIG_AMD_IOMMU_V2 | 해당 사항 없음 |
y
|
CONFIG_IA32_EMULATION | 해당 사항 없음 |
y
|
CONFIG_INTEL_IOMMU | 해당 사항 없음 |
y
|
CONFIG_INTEL_IOMMU_DEFAULT_ON | 해당 사항 없음 |
n
|
CONFIG_INTEL_IOMMU_SVM | 해당 사항 없음 |
n
|
CONFIG_LEGACY_VSYSCALL_NONE | 해당 사항 없음 |
n
|
CONFIG_MODIFY_LDT_SYSCALL | 해당 사항 없음 |
n
|
CONFIG_PAGE_TABLE_ISOLATION | 해당 사항 없음 |
y
|
CONFIG_RANDOMIZE_MEMORY | 해당 사항 없음 |
y
|
CONFIG_X86_64 | 해당 사항 없음 |
y
|
CONFIG_X86_MSR | 해당 사항 없음 |
y
|
CONFIG_X86_VSYSCALL_EMULATION | 해당 사항 없음 |
y
|
CONFIG_X86_X32 | 해당 사항 없음 | 해당 사항 없음 |
CONFIG_X86_X32_ABI | N/A |
n
|
x86-64 지원
물리적 주소 확장(PAE) 및 실행 안 함(NX) 비트 지원이 x86-64 기본 지원입니다. 이 옵션은 커널 자체 보호 프로젝트 권장 설정
AMD와 Intel IOMMU를 지원합니다.
AL2023 커널은 AMD와 IOMMUs 인텔을 지원하여 빌드됩니다. 이 옵션은 커널 자체 보호 프로젝트 권장 설정
이 CONFIG_INTEL_IOMMU_DEFAULT_ON
옵션은 설정되지 않았지만 커널 명령줄로 intel_iommu=on
를 작성하면 활성화됩니다. 이 옵션은 커널 자체 보호 프로젝트 (KSPP) 권장 설정
이 CONFIG_INTEL_IOMMU_SVM
옵션은 현재 AL2023 버전에서 활성화되어 있지 않습니다. 이 옵션은 커널 자체 보호 프로젝트 (KSPP) 권장 설정
32비트 사용자 공간 지원
중요
32비트 x86 사용자 공간 지원은 중단되었으며 향후 Amazon Linux 주요 버전에서 32비트 사용자 공간 바이너리를 실행할 수 없습니다.
참고
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) 지원
이 CONFIG_X86_MSR
옵션은 turbostat
지원을 위해 활성화되어 있습니다. 이 옵션은 커널 자체 보호 프로젝트 (KSPP) 권장 설정
modify_ldt
시스콜
AL2023 사용자는 사용자 프로그램이 syscall을 사용하여 x86 로컬 디스크립터 테이블 (LDT) 을 수정하는 것을 허용하지 않습니다. modify_ldt
이 호출을 사용하려면 16비트 또는 세그먼트 코드를 실행해야 하며 이 호출이 없으면 dosemu
소프트웨어, WINE에서 실행하는 프로그램, 실행하거나 아주 오래된 스레딩 라이브러리가 중단됩니다. 이 옵션은 커널 자체 보호 프로젝트 권장 설정
사용자 모드에서 커널 매핑을 제거합니다.
AL2023 커널 주소의 대부분이 사용자 공간에 매핑되지 않도록 커널을 구성합니다. 이 옵션은 커널 자체 보호 프로젝트 권장 설정
커널 메모리 섹션 무작위화
AL2023 커널 메모리 섹션의 기본 가상 주소를 무작위로 지정하도록 커널을 구성합니다. 이 옵션은 커널 자체 보호 프로젝트 권장 설정
aarch64 전용 커널 강화 옵션
CONFIG 옵션 |
AL2023/6.1/aarch64 | AL2023/6.1/x86_64 |
---|---|---|
CONFIG_ARM64_BTI |
y
|
N/A |
CONFIG_ARM64_BTI_KERNEL | 해당 사항 없음 | 해당 사항 없음 |
CONFIG_ARM64_PTR_AUTH |
y
|
해당 사항 없음 |
CONFIG_ARM64_PTR_AUTH_KERNEL |
y
|
해당 사항 없음 |
CONFIG_ARM64_SW_TTBR0_PAN |
y
|
해당 사항 없음 |
CONFIG_UNMAP_KERNEL_AT_EL0 |
y
|
N/A |
브랜치 타겟 식별
AL2023 커널을 사용하면 분기 대상 식별 () 을 지원할 수 있습니다. CONFIG_ARM64_BTI
이 옵션은 커널 자체 보호 프로젝트 권장 설정
이 CONFIG_ARM64_BTI_KERNEL
옵션은 GCC로 빌드되어 AL2023에서 사용할 수 없으며, 이 옵션으로 커널 빌드하기는 gcc
포인터 인증 (CONFIG_ARM64_PTR_AUTH
)
AL2023 커널은 포인터 인증 확장 (ARMv8.3 확장의 일부) 을 지원하도록 구축되었으며, 이는 반환 지향 프로그래밍 (ROP) 기법을 완화하는 데 사용할 수 있습니다. Graviton
이 CONFIG_ARM64_PTR_AUTH
옵션은 활성화되어 있으며 사용자 공간 포인터 인증을 지원합니다. 이 CONFIG_ARM64_PTR_AUTH_KERNEL
옵션도 활성화되었으므로 AL2023 커널은 자체적으로 반송 주소 보호 기능을 사용할 수 있습니다.
이 옵션은 커널 자체 보호 프로젝트 권장 설정
권한 있는 액세스 에뮬레이션 (TTBR0_EL1
전환 사용하지 않음)
사용자 액세스 루틴으로만 일시적으로만 TTBR0_EL1
이 유효한 값으로 설정되므로 이 옵션으로 커널이 사용자 공간 메모리에 직접 액세스하는 것을 방지할 수 있습니다.
이 옵션은 커널 자체 보호 프로젝트 권장 설정
사용자 공간에서 실행 중인 경우 커널 매핑을 해제합니다.
AL2023 커널은 userspace () CONFIG_UNMAP_KERNEL_AT_EL0
에서 실행할 때 커널 매핑을 해제하도록 구성되어 있습니다. 이 옵션은 커널 자체 보호 프로젝트 권장 설정