피드로 돌아가기
GeekNewsSecurity
원문 읽기
Google, Pixel 10 베이스밴드 펌웨어에 Rust 도입
Pixel 10 베이스밴드 펌웨어 내 Rust DNS 파서 도입 및 no_std 통합 성공
AI 요약
Context
외부 공격 표면이 넓은 셀룰러 베이스밴드의 C/C++ 기반 구조로 인한 메모리 안전 취약점 상존. 특히 신뢰할 수 없는 데이터를 처리하는 DNS 파싱 영역의 구조적 위험 제거가 시급한 상황.
Technical Solution
- 메모리 안전성 확보를 위해 오픈소스 hickory-proto 라이브러리를 채택한 Rust 기반 DNS 파서 설계
- 베어메탈 환경 구동을 위한 no_std 지원 부족 문제를 관련 crate 및 의존성 직접 수정 및 upstream 기여로 해결
- 기존 모뎀 빌드 시스템(Pigweed/GN)에 Rust 컴파일 단계를 직접 통합하고 cargo-gnaw를 통한 빌드 규칙 자동화
- FFI를 활용해 Rust 메모리 할당기와 panic 처리 로직을 기존 펌웨어의 allocator 및 crash backend와 연동
- 응답 파싱은 Rust가 수행하고 기존 C 메모리 구조 업데이트는 C 함수 콜백을 재사용하는 하이브리드 인터페이스 구축
- compiler_builtins가 기존 최적화 memcpy/memset을 덮어쓰는 성능 저하 문제를 스크립트 기반 제거로 최적화
실천 포인트
1. 저수준 펌웨어에 Rust 도입 시 no_std 지원 여부와 의존성 라이브러리의 bare-metal 호환성 우선 검토
2. 이기종 언어 통합 시 FFI 계층에서 기존 시스템의 Allocator 및 Error Handling 체계와 정밀하게 연동
3. 빌드 시스템 파편화를 막기 위해 Cargo-GN과 같은 도구로 기존 빌드 툴체인(GN, Bazel 등)에 직접 통합