- Android 플랫폼에서 Rust 도입 이후 메모리 안전 취약점 비율이 전체의 20% 이하로 감소, 보안성과 개발 효율이 동시에 향상됨
- Rust 코드는 C/C++ 대비 메모리 안전 취약점 밀도가 1000배 낮고, 롤백률 4배 감소, 코드 리뷰 시간 25% 단축
- Rust 사용 확대는 커널, 펌웨어, 1st-party 앱으로 확장되어, 시스템 전반의 기본 보안 수준 향상에 기여
- CrabbyAVIF에서 발견된 Rust 기반 첫 메모리 안전 취약점 ‘거의 발생’ 사례를 통해 Scudo 할당자와 안전한 unsafe 코드 교육의 중요성 확인
- Rust 전환은 보안 강화와 개발 속도 향상을 동시에 달성하는 새로운 소프트웨어 개발 패러다임으로 평가됨
Rust 도입의 효과와 2025년 데이터
- 2025년 Android의 메모리 안전 취약점 비율이 20% 미만으로 감소, Rust 중심의 보안 전략이 유효함을 입증
- Rust는 C/C++ 대비 메모리 안전 취약점 밀도 1000배 감소, 롤백률 4배 낮음, 코드 리뷰 시간 25% 단축
- Rust 도입은 단순한 보안 개선을 넘어 소프트웨어 전달 속도 향상으로 이어짐
- 데이터는 Android 플랫폼 내 C, C++, Java, Kotlin, Rust 전반의 1st-party 및 3rd-party 코드 변경을 포함
시스템 언어 전환과 개발 생산성
- Android는 시스템 프로그래밍 언어로 Rust를 C/C++의 대안으로 채택, 유사한 제어 수준을 제공하면서 위험을 줄임
- 1st-party 코드 기준으로 Rust 코드 증가세가 C++을 추월, 두 언어 간 개발 지표 비교가 가능해짐
- DORA 프레임워크를 활용해 Throughput(전달 속도) 과 Stability(안정성) 을 측정
- Rust와 C++의 코드 크기, 개발자 풀, 시간 경향을 통제하여 비교 수행
Throughput: 코드 리뷰 효율 향상
- Rust 코드는 C++ 대비 20% 적은 수정(revision) 이 필요하며, 코드 리뷰 시간 25% 단축
- 2023~2024년 사이 Rust 전문성 향상으로 리뷰 효율이 크게 개선
- 리뷰 및 재작업 감소는 생산성 향상으로 이어지며, 안정성 개선이 가장 큰 효과 요인으로 작용
Stability: 롤백률 감소와 품질 향상
- DORA 기준에서 Rust의 롤백률은 C++ 대비 약 4배 낮음, 특히 중대형 변경에서 두드러짐
- 낮은 롤백률은 생산성 향상에 직접 기여, 빌드 재작업·포스트모템·팀 차단 등 부수적 비용을 줄임
- 2022년 Google 엔지니어 설문에서도 Rust가 리뷰가 쉽고 정확도가 높다는 평가를 받음
- 데이터는 이러한 인식을 실증적으로 뒷받침
보안과 생산성의 동시 향상
- 과거에는 보안 강화가 성능 저하나 개발 지연을 초래했으나, Rust 전환은 보안과 효율을 동시에 개선
- Rust 도입으로 보안, 개발 효율, 제품 안정성 모두 향상되는 구조 형성
Rust 확산 영역
-
커널: Android 6.12 Linux 커널에서 Rust 지원 및 첫 Rust 드라이버 도입
- Arm·Collabora와 협력해 Rust 기반 GPU 드라이버 개발 진행 중
-
펌웨어: Rust 도입으로 고권한·제약 환경의 보안성 강화, 관련 튜토리얼·교육·코드 공개
- Arm과 협력한 Rusted Firmware-A 프로젝트 진행
-
1st-party 앱:
- Nearby Presence: Bluetooth 기반 기기 탐색 프로토콜을 Rust로 구현, Google Play Services에서 실행
- MLS: RCS 메시징용 보안 프로토콜을 Rust로 구현, 향후 Google Messages 앱에 포함 예정
- Chromium: PNG, JSON, 웹폰트 파서를 Rust로 교체, Rule of 2 준수 용이
Rust 기반 첫 메모리 안전 취약점 ‘거의 발생’ 사례
- CrabbyAVIF에서 선적 직전 버퍼 오버플로우 취약점(CVE-2025-48530) 발견, 공개 전 수정 완료
- Scudo hardened allocator가 가드 페이지로 인해 취약점을 비악용 가능(non-exploitable) 상태로 만듦
- Scudo는 Pixel 등에서 기본 사용 중이며, 파트너사에도 의무화 추진 중
- 크래시 리포팅 개선으로 오버플로우 감지 신호 명확화
Unsafe 코드 관리와 교육 강화
- OS 개발에는 불가피하게 unsafe 코드(C/C++ 또는 unsafe Rust) 필요
- Google은 Comprehensive Rust 교육 과정에 unsafe 코드 심화 모듈 추가
- unsafe 코드의 건전성(soundness), 정의되지 않은 동작, 안전 주석, 안전 추상화 기법 등을 다룸
- unsafe Rust의 이해도 향상은 Android 및 오픈소스 생태계 전반의 코드 품질 향상으로 이어짐
취약점 밀도 비교
- Android Rust 코드 약 500만 줄 중 1건의 잠재적 취약점 발견 → Rust 취약점 밀도 0.2/MLOC
- C/C++의 과거 평균은 1,000/MLOC, 즉 1000배 이상 감소
- 메모리 안전 취약점 밀도 감소는 전체 보안 아키텍처의 효과성 강화로 이어짐
- Rust 코드 중 약 4%는
unsafe{}블록이지만, 데이터상 C/C++보다 버그 가능성이 낮음- 이유로는 안전 검사 유지, 캡슐화, 추가 검토 강화 등이 있음
결론
- 과거에는 보안 확보를 위해 정적 분석·샌드박싱·패치 등 고비용 대응이 필요했음
- Rust 전환은 보안성과 효율성을 동시에 확보하는 새로운 접근
- 이제는 “빠르게 개발하고 나중에 고치는” 방식이 아니라, “빠르게 개발하면서 동시에 고치는” 단계로 진입
- 보안이 강화될수록 성능과 생산성 회복 가능성도 커짐
감사
- CVE-2025-48530 분석, Scudo 개선, unsafe Rust 교육 개발, Rust 활용 정보 제공 등 기여자 다수 언급
- Android Rust 팀과 전체 Android 조직의 지속적 품질 개선 노력에 감사 표시