무슨 일이 있었나?
구글의 메모리 안전성 향상을 위한 여정은 20년 넘게 이어져 왔습니다. "구글과 함께 더 안전하게: 메모리 안전성 향상"이라는 제목의 최근 블로그 게시물에서 핵심 개발자인 알렉스 레버트, 챈들러 카루스, 젠 엥겔, 앤디 친은 구글 보안 프레임워크의 최신 업데이트를 공개했습니다. 구글은 메모리 안전하지 않은 코드와 관련된 취약점을 줄이는 데 주력하고 있으며, 이는 심각한 소프트웨어 취약점의 약 70%를 차지합니다.
이 문제를 해결하기 위해 구글은 두 가지 접근 방식을 취하고 있습니다. 첫째, 러스트, 자바, 파이썬과 같은 메모리 안전한 언어(MSL)의 사용을 늘리고, 둘째, C와 C++와 같은 메모리 안전하지 않은 언어(MUL)로 작성된 기존 코드에 안전성을 추가하고 있습니다. 이러한 노력은 이미 안드로이드에서 가시적인 성과를 올렸고, 메모리 안전성 취약점이 2019년 220개에서 2024년 말까지 36개로 줄어들었습니다.
주요 시사점
-
메모리 안전한 언어의 채택: 구글은 러스트와 같은 MSL의 광범위한 채택을 촉진하고 있으며, 이는 메모리 관련 오류의 위험을 급격히 줄입니다. 러스트의 안전 기능은 C++가 전통적으로 지배해온 낮은 수준 환경에 이상적입니다.
-
C++ 강화: C++에서의 전환이 시간이 걸릴 것임을 인식하고, 구글은 경계 검사와 "MiraclePtr"와 같은 도구를 도입하여 기존 코드베이스의 취약점을 줄이는 안전 방안을 시행하고 있습니다.
-
퍼징 및 버그 탐지: 구글의 퍼저, 샌타이저, OSS-Fuzz와 같은 지속적인 퍼징 도구의 사용은 850개 오픈 소스 프로젝트에서 8,800개 이상의 취약점을 발견하여 소프트웨어 버그를 예방하는 데 효과적인 방법임을 강조합니다.
-
글로벌 리더십: 구글은 자신의 도구를 오픈 소스화하고 기술 커뮤니티와 협력함으로써 전 세계 메모리 안전성 향상을 위한 기준을 세우고 있으며, 산업 전반에 걸쳐 사이버 보안 위험을 크게 줄일 수 있는 잠재력을 가지고 있습니다.
심층 분석
구글의 메모리 안전한 언어, 특히 러스트로의 전환은 성능과 보안을 균형 있게 고려한 사항입니다. C++가 전통적으로 사용되었던 임베디드 시스템이나 안드로이드 장치와 같은 고성능 환경에서 러스트는 "대여 검사기"와 같은 기능을 제공하여 메모리 관련 버그를 발생하기 전에 예방합니다. 이러한 전환은 안드로이드 플랫폼에서 취약성을 크게 줄이는 결과를 가져왔으며, 구글 전략의 효과를 보여줍니다.
그러나 구글은 메모리 안전하지 않은 언어에서 완전히 전환하는 데는 많은 기존 C++ 코드가 있기 때문에 긴 시간이 필요하다는 점을 인정합니다. 이에 따라 구글은 C++ 코드에 안전 기능을 추가하여 경계 검사와 같은 기법을 구현함으로써 위험을 줄이고 있습니다. 구글의 접근 방식은 새로운 코드와 기존 레거시 코드베이스를 모두 다루어 사용자가 메모리 안전한 언어로의 전환 중에도 보호받을 수 있도록 포괄적입니다.
더욱이, 기계 학습 가이드 퍼징 및 메모리 태깅 확장(MTE)과 같은 하드웨어 기반 솔루션에 대한 구글의 투자는 취약점을 발견하는 것뿐만 아니라 발생하기 전에 이를 예방하려는 구글의 의지를 강조합니다.
알고 계셨나요?
- 구글은 OSS-Fuzz라는 지속적인 퍼징 도구를 통해 850개 오픈 소스 프로젝트에서 8,800개 이상의 취약점을 발견했습니다.
- 메모리 안전성 취약점은 제로 데이 악용의 약 75%를 차지하므로, 메모리 안전성에 대한 구글의 초점은 디지털 생태계를 보호하는 중요한 조치입니다.
- 2024년까지 안드로이드의 메모리 안전성 취약점은 2019년 220개에서 불과 36개로 감소했으며, 이는 구글의 메모리 안전한 언어(러스트) 사용 증가 덕분입니다.
결론적으로, 구글의 메모리 안전성을 향상시키기 위한 선제적인 조치는 악의적인 공격으로부터 소프트웨어를 보호하기 위한 대담하고 필요한 단계입니다. 메모리 안전한 언어를 통합하고 기존 코드에 안전성을 추가함으로써 구글은 자신의 서비스뿐만 아니라 소프트웨어 보안에 대한 새로운 산업 기준을 설정하고 있습니다. 이러한 다면적인 접근 방식은 개발자와 사용자 모두에게 디지털 세계를 더 안전하게 만드는 데 큰 영향을 미칠 가능성이 높습니다.