OpenBSD 7.9: 보안, 하드웨어 현대화, 그리고 60번째 0릴리스

OpenBSD 7.9의 출시는 중요한 이정표를 나타냅니다. 바로 운영체제의 60번째 공식 릴리스입니다. 보안과 코드 정확성에 대한 타협 없는 태도로 잘 알려진 OpenBSD는 현대적인 하드웨어 지원을 추가하는 것과 "보안 우선(security by default)"이라는 핵심 철학 사이의 균형을 맞추며 생태계를 지속적으로 개선하고 있습니다.

이번 릴리스는 단순한 유지 관리 업데이트가 아닙니다. 커널 스케줄러에 중요한 아키텍처 변경을 도입하고, 현대적인 ARM 및 RISC-V 아키텍처 지원을 확장하며, 업계 표준인 OpenSSH 및 LibreSSL 제품군에 필수적인 보안 패치를 제공합니다.

커널 및 스케줄러 진화

7.9에서 가장 눈에 띄는 추가 사항 중 하나는 이기종 CPU 코어를 관리하기 위한 새로운 메커니즘입니다. 현대적인 프로세서가 점점 더 "big.LITTLE" 아키텍처(성능 및 효율 코어 혼합)를 채택함에 따라, OpenBSD는 hw.blockcpu sysctl 변수를 도입했습니다. 이를 통해 관리자는 SMT, Performance (P), Efficient (E), 또는 Lethargic (L) 중 어떤 유형의 코어를 스케줄러에서 제외할지 지정할 수 있습니다.

스케줄링을 넘어 커널은 여러 내부 최적화를 거쳤습니다:

  • 잠금 메커니즘(Locking Mechanisms): 커널 뮤텍스(mutex)의 cas 스핀락(spinlock)이 효율성을 높이기 위해 "parking" 락으로 교체되었습니다.
  • 메모리 관리: 페이지 데몬(page daemon)의 자유 메모리 생성 전략이 메모리 단편화를 더 잘 방지하도록 수정되었으며, 새로운 메커니즘을 통해 swapencrypt 경로 내에서의 메모리 할당을 방지합니다.
  • 최면(Hibernation): "지연된 최면(delayed hibernation)" 기능이 구현되어, 중단된 시스템이 설정된 시간 후에 깨어나 최면 상태로 전환되도록 하여 긴 중단 기간 동안 배터리 소모를 방지합니다.

하드웨어 및 아키텍처 지원

OpenBSD 7.9는 특히 신흥 아키텍처에 초점을 맞추어 하드웨어 호환성을 지속적으로 넓히고 있습니다:

RISC-V 및 ARM64

riscv64에서 SpacemiT K1 SoC에 대한 지원이 크게 확장되었으며, 클록/리셋 컨트롤러 및 GPIO를 위한 새로운 드라이버가 포함되었습니다. arm64에서는 RK3588 및 RK3576 SoC 지원과 Genesys Logic GL9755 SDHC 컨트롤러 지원이 추가되어 특정 Apple Silicon 노트북에서 OpenBSD를 사용할 수 있게 되었습니다.

AMD64 및 x86

AMD 사용자들을 위해, 이번 릴리스는 suspend 상태 동안 더 낮은 전력 상태를 활성화하기 위해 amdpmc(4)에 SMU 지원을 추가하고 Zen/Zen+ 프로세서의 부동 소수점 상태 유출을 완화합니다. 또한, 최대 CPU 개수(MAXCPUs)가 255로 증가했습니다.

네트워킹 및 무선

무선 네트워킹은 기본적인 802.11ax (WiFi 6) 지원의 도입으로 큰 도약을 이루었습니다. 또한 5 GHz 대역에서 160 MHz 채널 폭을 지원하며, 여러 드라이버(iwm, iwx, qwx)에 걸쳐 보호된 관리 프레임(Protected Management Frames, PMF)을 구현했습니다.

보안 및 도구 업데이트

OpenSSH 10.3

OpenSSH는 이번 릴리스의 초석입니다. 버전 10.3은 ssh(1)의 셸 메타문자 검증 버그와 sshd(8)의 principal matching 오류를 포함한 여러 보안 취약점을 해결합니다. 새로운 기능으로는 에이전트 포워딩을 위한 IANA 지정 코드포인트 지원과 ED25519 키를 PKCS8 형식으로 작성할 수 있는 기능이 포함됩니다.

LibreSSL 4.3.0

LibreSSL 4.3.0은 양자 내성 암호화를 향해 나아가며 TLS에서 MLKEM768_X25519 키셰어(keyshares)를 지원합니다. 또한 메서드 수준에서 TLSv1.1 및 그 이하 버전을 비활성화하고, 여러 레거시 CBC 취약점 완화책을 제거합니다.

시스템 강화(System Hardening)

OpenBSD는 pledge(2)unveil(2) 프리미티브를 지속적으로 개선합니다. tmppath 약속(promise)은 더 세밀한 unveil 조합을 대신하여 폐지되었으며, 새로운 __pledge_open(2) 시스템 호출을 통해 libc가 광범위한 권한을 부여하지 않고도 내부 파일을 액세스할 수 있도록 합니다.

커뮤니티 관점 및 트레이드오프

이번 릴리스스는 일관성과 바이너리 블롭(binary blobs)에 대한 "단호한" 접근 방식 덕분에 찬사를 받고 있습니다. 한 커뮤니티 구성원은 다음과 같이 언급했습니다:

"그들의 수십 년간 지속된 보안 중심적 태도는 타의 추종을 경을 뛰어넘습니다... 여기서는 '다 되면 하면 된다'는 식의 태도가 아닙니다. 일 년에 두 번, 시계처럼 정확하게, 그들은 속도를 늦추고, 작업장을 정리하고, 실험을 정리하고, 릴리스를 준비합니다."

하지만 프로젝트의 철학에 대한 엄격한 준수는 특정 누락 사항을 유리로 이끌어냅니다. 일부 사용자들은 저널링 파일 시스템(journaled filesystem)과 블루투스 지원의 지속적인 부재가 OpenBSD를 주요 데스크톱 OS로 사용하려는 사용자들에게 큰 장벽이 될 수 있다고 지적합니다.

주요 구성 요소 요약

구성 요소 버전/업데이트
OpenSSH 10.3
LibreSSL 4.3.0
Kernel 새로운 hw.blockcpu 스케줄러 제어
Wireless 기본적인 802.11ax (WiFi 6) 지원
Virtualization 지원 Apple Virtualization
Ports amd64용 over 13,000개 패키지

Sources