Wins Security Information

보안 정보

앞 내용 보기 다음 내용 보기
보안 동향안드로이드도 러스트 프로그래밍 지원
작성일 2021-04-08 조회 14

 

 

구글은 러스트 프로그래밍을 지원하는 안드로이드 오픈 소스 버전이 추가될 것이라고 밝혔다. 러스트를 통해 메모리 관련 이슈를 해결하는 것이 주된 이유다. 구글은 러스트와 함께 18개월 동안 안드로이드 오픈 소스 프로젝트(AOSP)를 구축해왔다. 앞으로 러스트가 운영체제의 많은 측면을 다루기 위해 확장할 계획을 가지고 있다.

 

구글은 이전에 자바와 코틀린과 같은 언어가 안드로이드 앱 개발을 위한 최적의 언어라고 말한 바 있다. 안드로이드는 자바를 광범위하게 사용하여 안드로이드 플랫폼에서 나타나는 메모리 관련 이슈를 효과적으로 예방한다.

 

 

[그림 1. 버그가 패치되는 과정]

 

하지만 낮은 레벨의 OS 계층으로 내려가면 자바와 코틀린을 사용하기 어려워진다. 따라서, 낮은 레벨에선 C 나 C++을 이용하여 개발이 이뤄지고 있다. 하지만 C 및 C++의 메모리 버그가 안드로이드에서 발견된 취약점 중 70%를 차지할 정도로 메모리 관련 이슈가 많이 일어나고 있다. 구글은 C와 C++개발에서 나타나는 이런 메모리 관련 이슈들을 효과적으로 예방하기 위해 러스트어를 채택한 것이다. 구글은 기존 OS에서 사용하는 C, C++ 코드 중 메모리 버그 가능성이 높은 부분을 위주로 러스트어로 변환할 예정이다.

 

구글이 러스트어를 활용하기 시작한 것은 이 뿐만이 아니다. 작년엔 안드로이드 11에서 Gabeldorsche라고 불리는 안드로이드 블루투스 스택을 완전히 러스트어로 변환시키는데 성공했다. 안드로이드를 대체할 OS라고 불리는 Fuchsia에서는 Network 스택을 러스트 기반으로 개발했다.

 

 

Learn AWS Lambda in 5 minutes. Introduction to a famous serverless… | by  Jo-Yu Liao | Medium

[그림 2. AWS lambda도 러스트 기반으로 개발]

 

러스트는 컴파일하는 단계에서 컴파일 타임 체크(compile-time check)와 런타임 체크(runtime check)를 통해 메모리의 안전을 보장한다. 추가로 러스트는 ownership이라는 새로운 시스템을 통해 메모리를 관리한다. 이를 통해 C++만큼의 성능을 보장하면서 메모리를 효율적으로 관리한다. Webassembly에서도 컴파일이 가능할 정도로 이식성이 좋으며 node js의 npm과 같이 cargo를 두고 있어 많은 패키지들을 보유하고 있다.이런 장점들로 C나 C++를 대체하는 언어로 많이 활용되고 있는 것이다. 현재 Dropbox, Cloudfare, AWZ Lambda는 러스트 언어로 이뤄져 있다.

 

 

출처

https://thehackernews.com/2021/04/android-to-support-rust-programming.html

https://medium.com/@kwoncharles/rust-%EB%9F%AC%EC%8A%A4%ED%8A%B8%EC%9D%98-%EA%BD%83-ownership-%ED%8C%8C%ED%97%A4%EC%B9%98%EA%B8%B0-2f9c6b744c38

https://www.youtube.com/watch?v=S-01KjUJ3_Q

첨부파일 첨부파일이 없습니다.
태그 Rust  Android  Fuchsia