구글의 보안 연구팀이 픽셀 10 스마트폰의 셀룰러 모뎀에 메모리 안전성을 강화하기 위한 Rust(러스트) 기반 구성요소를 추가하는 방식으로 보안 취약점 위험을 줄이고자 했다고 Ars Technica가 보도했다. 공격자가 모뎀(기지대역, baseband) 영역을 노려 원격 코드 실행 같은 치명적 결과를 유발할 수 있다는 점에서, 구글은 ‘전체 펌웨어를 새로 쓰기’보다 현실적인 보완 전략으로 기존 C/C++ 코드의 취약 지점을 Rust로 우회하는 접근을 택했다.
이번 접근의 배경에는 Project Zero를 비롯한 보안 연구자들이 제기해 온 현실적인 문제들이 있다. 모뎀 펌웨어는 오랜 기간 축적된 기술 부채와 함께, 메모리 관리가 어려운 레거시 C/C++ 기반으로 작성되는 경우가 많다. 그 결과 버퍼 오버플로우, 메모리 누수 같은 메모리 안전성 결함이 공격 표면이 되며, 실제 제품 환경에서 모뎀을 노린 취약점이 보고되어 왔다.
왜 모뎀을 ‘검증 가능한 방식’으로 바꾸기 어려운가
스마트폰의 운영체제는 여러 계층에서 보안을 강화하지만, 휴대전화 모뎀은 별도의 운영체제처럼 동작하는 경우가 많아 OS 보안 대책과 별개로 취약점 위험이 남는다는 것이 핵심이다. Ars Technica에 따르면 구글은 과거에도 픽셀 모뎀에서 인터넷을 통한 원격 코드 실행이 가능할 수 있음을 시연한 연구가 있었고, 이에 따라 구글은 모뎀 보안을 다시 점검하게 됐다고 한다.
문제는 모뎀 펌웨어의 규모와 구조다. 3GPP 규격 기반으로 수십 년간 축적된 코드와 검증 체계가 존재하는데다, 모뎀은 실시간 통신을 수행해야 해 C/C++의 성능 요구를 쉽게 대체하기 어렵다. 더구나 이해관계 측면에서도 모뎀 내부 구현은 종종 기업의 기술 비밀로 취급돼 전체를 공개적으로 재작성하기가 쉽지 않다. 따라서 구글이 선택한 방식은 “모든 것을 Rust로 전면 교체”가 아니라, 취약성이 큰 특정 구성요소를 Rust로 안전하게 감싸는 ‘부분 적용’이다.
구글은 ‘DNS 파서’를 Rust로 안전화했다
구글은 모뎀 보안 강화를 위해 전체 펌웨어를 갈아엎기보다는, 공격자가 노릴 수 있는 구성요소 중 하나로 DNS 파서를 겨냥했다고 Ars Technica는 설명한다. 셀룰러 기능이 점차 데이터 네트워크 중심으로 이동하면서 DNS는 휴대전화 동작에 핵심이 됐고, 그만큼 신뢰할 수 없는 입력값(untrusted data)을 파싱해야 하는 구조가 보안 위험을 키운다는 것이다.
이에 구글은 Rust DNS 라이브러리인 hickory-proto를 활용하되, 모뎀 환경에 맞게 표준 라이브러리 의존성을 제거해 더 빠른 실행이 가능하도록 빌드 조건을 조정했다. 그리고 이 Rust 구성요소를 기존 모뎀의 C/C++ 코드에 ‘이식(graft)’하는 형태로 결합했다. Ars Technica가 언급한 바에 따르면 Rust로 추가된 구성요소의 크기는 371KB 수준이었다.
Rust가 기대되는 이유는 가비지 컬렉션(GC)에 의존하지 않고도 메모리 안전성을 확보하는 방식에 있다. Rust는 컴파일 단계에서 메모리 소유권과 참조 규칙을 강제하는 ‘borrow checker’를 통해, 런타임에 메모리 해제를 깜빡하거나 잘못 참조하는 유형의 오류가 컴파일 자체에서 차단되도록 한다는 점이 특징이다. 모뎀처럼 실시간성을 요구하는 환경에서는 GC 기반 접근이 어려울 수 있는데, Rust는 이 제약을 피할 수 있다는 논리다.
‘부분 적용’ 전략의 의미: 속도·현실성·보안의 균형
이번 소식이 주목받는 이유는 보안 업계가 자주 맞닥뜨리는 딜레마를 정면으로 다루기 때문이다. 메모리 안전 언어로의 전환은 이상적이지만, 실제 제품에서는 코드 규모, 성능 제약, 검증 비용, 공급망(벤더) 문제 등 때문에 ‘전면 전환’이 어렵다. 구글의 접근은 그 한계를 인정하면서도, 공격 표면이 큰 모듈부터 우선순위 기반으로 안전성을 높이는 방향을 제시한다.
또한 Ars Technica는 구글이 특히 Exynos 기반 모뎀에서 다수 취약점이 보고되어 왔으며, 그 복잡성 때문에 추가 취약점이 존재할 가능성이 크다고 지적한 점을 함께 전했다. 즉, 완벽한 보안은 어려울 수 있지만, 최소한 메모리 안전성 붕괴가 유발하는 대표적 클래스의 취약점 위험을 낮추는 방식은 장기적으로 방어력을 끌어올릴 수 있다.
사용자는 무엇을 기대할 수 있나
이 변경은 겉으로 드러나는 기능 업데이트라기보다는, 보이지 않는 저수준 보안 강화를 통한 위험 완화에 가깝다. 구글이 Rust 기반 모듈을 통해 DNS 파싱과 같은 특정 경로를 강화했다면, 향후 모뎀 관련 공격에서 메모리 안전 취약점이 악용되는 난이도는 올라갈 수 있다. 다만 취약점은 다양한 형태로 발생하며, Rust 적용 범위가 늘어날수록(또는 다른 고위험 파서로 확장될수록) 효과가 더 커질 여지가 있다.
이번 단계는 ‘한 번에 전체를 바꾸는’ 방식이 아니라, 공격 가능성이 큰 지점을 찾아 안전한 언어 구성요소로 보완하는 점진적 보안 전환의 신호로 읽힌다.
무엇을 지켜봐야 하나
향후 관전 포인트는 (1) Rust 기반 구성요소의 적용 범위가 DNS 외 다른 파싱 로직이나 통신 경로로 확장되는지, (2) 모뎀 벤더와의 협업 구조 속에서 동일한 접근이 다른 기기/칩셋에도 전파될 수 있는지, (3) 이런 보안 설계가 실제 보안 보고(취약점 발생 및 악용 난이도 변화)에서 어떤 흔적을 남기는지다.
또한 구글이 공개하는 방식이 제한적일 수 있지만, 모뎀 보안이 OS 보안과 분리된 ‘별도 방어 영역’이라는 점을 감안하면, 이번과 같은 부분 적용 전략이 향후 스마트폰 보안의 표준 방법론으로 자리 잡을 가능성도 있다. 보이지 않는 부분에서의 방어가 강화될 때, 사용자 체감은 당장 크지 않을 수 있지만 장기적으로는 원격 공격의 파급력을 줄이는 데 중요한 의미가 있다.
—CONTENT—
댓글