
구글 엔지니어팀이 안드로이드 운영체제 보안 강화를 위한 핵심 요소로 프로그래밍 언어 러스트를 지목했다.
안드로이드 보안 엔지니어 제프리 반더 스토에프(Jeffrey Vander Stoep)는 블로그 게시글을 통해 “구글은 지난 3년간 심각한 메모리 취약점이 상당히 감소했다. 그 이유는 운영체제에 C와 C++과 같이 메모리 보호 기능이 취약한 언어 사용률이 감소했기 때문이다”라고 주장했다.
3년 전에는 안드로이드에서 발생한 버그 중 65%가 아웃 오브 바운드(out-of-bounds) 메모리 접근 오류와 같이 심각도 높은 버그 혹은 심각도 높은 메모리 안전 버그였다.
러스트 덕분에 메모리 안전 취약점이 감소했으나 다른 유형의 취약점은 여전히 남아 있다. 현재 매달 20개의 신규 취약점이 발견되고 있다. 하지만 새로 발견되는 취약점이 메모리 안전 취약점만큼 심각하지는 않다. 그렇다고 해서 구글은 C와 C++ 언어 사용을 완전히 중단하지는 않았다.
구글은 스쿠도(Scudo), 하드웨어 기반 주소 검사기(HWASAN), GWP-ASAN, 안드로이드 기기를 위한 커넬일렉트릭펜스(KFENCE) 고정 할당자 등 더욱 안전하게 C, C++ 코드를 작성하게 하는 도구에 꾸준히 투자할 예정이라고 밝혔다. 구글은 소프트웨어 취약점의 원인을 분석하는 퍼징(fuzzing) 시험의 사용도 늘렸다.
구글은 기존 코드를 개선하는 대신 정기적으로 새로운 러스트 코드를 작성해 안드로이드에 추가하고 있다. 결과적으로 결함의 수는 현저히 감소했으며 메모리 안전 취약점이 더는 안드로이드 운영 체제의 최대 문제점이 아니다.
반더 스토에프는 “2019년부터 2022년까지 연간 메모리 안전 취약점이 223개에서 85개로 줄었다”라고 설명했다. 2021년 10월 출시한 안드로이드 12의 경우 운영체제가 대부분 러스트로 작성되었다.
지금까지 안드로이드 러스트 코드에서 발견된 메모리 안전 취약점은 없다. 반더 스토에프는 “영원히 러스트 코드에서 취약점이 발견되지 않으리라 기대하지 않는다. 하지만 안드로이드의 최신 두 버전에서 작성된 러스트 코드의 양과 사용한 보안 민감 요소를 고려하면 의미 있는 결과이다”라며, 러스트가 보안 취약점에 강한 모습을 보여주었으나 미래에 얼마든지 달라질 수 있다고 전했다.
[저작권자ⓒ CWN(CHANGE WITH NEWS). 무단전재-재배포 금지]