Skip to content

기글하드웨어기글하드웨어

인터넷 / 소프트웨어 : 윈도우즈, 리눅스, 기타 운영체제, 각종 어플리케이션, 프로그램, 소프트웨어, 인터넷, 인터넷 서비스에 대한 이야기, 소식, 테스트, 정보를 올리는 게시판입니다.

Extra Form
참고/링크 https://security.googleblog.com/2021/04/...tform.html

꽤 인상적인 블로그가 올라왔네요.

 

요약하자면 안드로이드의 C/C++ 메모리 보안 취약점은 고위험 취약점의 70%을 차지하고 인적, 경제적 비용이 많이 들고 있다고 설명했습니다. 그리고 AOSP는 이제 메모리 안전 언어로 코틀린/자바외에 Rust언어를 추가한다고 공지했네요.

 

이하 구글 번역(+수정)

 

- 시스템 프로그레밍

 

Java 및 Kotlin과 같은 관리 언어(역주: 자동 메모리 관리 언어)는 Android 앱 개발을위한 최상의 옵션입니다. 이러한 언어는 사용 용이성, 휴대 성 및 안전을 위해 설계되었습니다. Android 런타임 (ART)은 개발자를 대신하여 메모리를 관리합니다. Android OS는 Java를 광범위하게 사용하여 Android 플랫폼의 상당 부분을 메모리 버그로부터 효과적으로 보호합니다. 불행히도 OS의 하위 계층의 경우 Java 및 Kotlin은 옵션이 아닙니다. 

 

image.png

 

로우 레벨 OS에는 C, C ++ 및 Rust와 같은 시스템 프로그래밍 언어가 필요합니다. 이러한 언어는 제어 및 예측 가능성을 목표로 설계되었습니다. 저수준 시스템 리소스 및 하드웨어에 대한 액세스를 제공합니다. 리소스가 적고 예측 가능한 성능 특성이 있으며 C 및 C ++의 경우 개발자가 메모리 수명 관리를 담당합니다. 불행히도, 특히 복잡하고 다중 스레드 코드베이스에서이 작업을 수행 할 때 실수하기 쉽습니다. 

 

Rust는 메모리 액세스가 유효한지 확인하고 객체 수명 / 소유권 및 런타임 검사를 시행하기 위해 컴파일 시간 검사의 조합을 사용하여 메모리 안전 보장을 제공합니다. 이러한 안전성은 C 및 C ++와 동등한 성능을 제공하면서 달성됩니다.

 

 

- 샌드박스의 한계

 

C 및 C ++ 언어는 이와 동일한 안전 보장을 제공하지 않으며 강력한 격리가 필요합니다. 모든 Android 프로세스는 샌드 박스 처리되며, 기능에 추가 격리 및 박탈이 필요한지 여부를 결정하기 위해 규칙 2를 따릅니다. 2의 규칙은 간단합니다. 세 가지 옵션이 주어지면 개발자는 다음 세 가지 옵션 중 두 가지만 선택할 수 있습니다.

 

image.png

Android의 경우 이는 코드가 C / C ++로 작성되고 신뢰할 수없는 입력을 파싱하는 경우 엄격하게 제한되고 권한이없는 샌드박스 내에 포함되어야 함을 의미합니다. Rule of 2를 준수하면 보안 취약성의 심각도와 악용 가능성을 줄이는 데 효과적이지만 제한이 있습니다. 샌드 박싱은 비용이 많이 듭니다. 필요한 새 프로세스는 추가 오버 헤드를 소비하고 IPC 및 추가 메모리 사용으로 인해 대기 시간을 발생시킵니다. 샌드 박싱은 코드에서 취약점을 제거하지 않으며 높은 버그 밀도로 인해 효율성이 감소하여 공격자가 여러 취약점을 함께 연결할 수 있습니다. Rust와 같은 메모리 안전 언어는 두 가지 방법으로 이러한 한계를 극복하는 데 도움이됩니다.     

 

1)코드 내의 버그 밀도를 낮추어 현재 샌드 박싱의 효율성을 높입니다.    

2)샌드 박싱 요구 사항을 줄여 리소스에 대해 더 안전하고 가벼운 새로운 기능을 도입 할 수 있습니다.

 

-중략-

 

- 예방 우선 

 

Rust는 다양한 다른 언어 특징을 현대화하여 코드의 정확성을 향상시킵니다.     

 

1.메모리 안전성- 컴파일러와 런타임 검사의 조합을 통해 메모리 안전성을 강화합니다.

    

2. 데이터 동시성- 데이터 경합을 방지합니다. 이를 통해 사용자가 효율적이고 스레드로부터 안전한 코드를 쉽게 작성할 수있게되면서 Rust의 Fearless Concurrency(두려움 없는 동시성) 슬로건에 부합합니다.

    

3. 보다 표현적인 유형 시스템- 논리적 프로그래밍 버그 (예 : newtype 래퍼, 내용이있는 열거 형 변형)를 방지합니다.     참조 및 변수는 기본적으로 변경 불가능합니다. 개발자가 최소 권한의 보안 원칙을 따르고 실제로 의도 한 경우에만 참조 또는 변수를 변경 가능하도록 표시하도록 지원합니다. C ++에는 const가 있지만 자주 사용되지 않고 일관성없이 사용되는 경향이 있습니다. 이에 비해 Rust 컴파일러는 결코 변경되지 않는 변경 가능한 값에 대한 경고를 제공하여 잘못된 가변성 주석을 방지하는 데 도움을줍니다.    

 

4. 표준 라이브러리에서 더 나은 오류 처리- Result에서 잠재적으로 실패한 호출을 래핑하여 컴파일러가 필요한 값을 반환하지 않는 함수에 대해서도 사용자가 실패를 확인하도록 요구합니다. 이는 처리되지 않은 오류로 인해 발생하는 Rage Against the Cage 취약점과 같은 버그로부터 보호합니다. ?연산자를 통해 오류를 쉽게 전파 할 수 있습니다. 운영자와 낮은 오버 헤드를 위해 결과를 최적화하는 Rust는 사용자가 오류가있는 함수를 동일한 스타일로 작성하고 동일한 보호를 받도록 권장합니다.    

 

5. 초기화- 사용하기 전에 모든 변수를 초기화해야합니다. 초기화되지 않은 메모리 취약점은 역사적으로 Android 보안 취약점의 3-5 %의 근본 원인이었습니다. Android 11에서는이 문제를 줄이기 위해 C / C ++에서 메모리를 자동 초기화하기 시작했습니다. 그러나 0으로 초기화하는 것이 항상 안전하지는 않습니다. 특히 반환 값과 같은 경우 잘못된 오류 처리의 새로운 원인이 될 수 있습니다. Rust는 사용하기 전에 모든 변수를 해당 유형의 유효한 멤버로 초기화하여 의도하지 않게 안전하지 않은 값으로 초기화하는 문제를 방지해야합니다. C / C ++ 용 Clang과 유사하게 Rust 컴파일러는 초기화 요구 사항을 인식하고 이중 초기화의 잠재적 인 성능 오버 헤드를 방지합니다.    

 

6. 더 안전한 정수 처리- 기본적으로 Rust 디버그 빌드에 대해 오버플로 삭제 기능이 설정되어있어 프로그래머가 실제로 오버플로를 계산하려는 경우에는 Wrapping_add를 지정하고 그렇지 않은 경우에는 saturating_add를 지정하도록 권장합니다. Android의 모든 빌드에 대해 오버플로 삭제를 활성화하려고합니다. 또한 모든 정수 유형 변환은 명시적 형변환입니다. 개발자는 변수에 할당 할 때 또는 다른 유형으로 산술을 시도 할 때 함수 호출 중에 실수로 형변환 할 수 없습니다.

 

- 다음 계획

 

Android 플랫폼에 새로운 언어를 추가하는 것은 큰 작업입니다. 유지 관리해야하는 툴체인 및 종속성, 업데이트해야하는 테스트 인프라 및 도구, 교육을 받아야하는 개발자가 있습니다. 지난 18 개월 동안 우리는 Android 오픈 소스 프로젝트에 Rust 지원을 추가했으며 앞으로 몇 달 동안 공유 할 얼리 어답터 프로젝트가 몇 개 있습니다. 이를 더 많은 OS로 확장하는 것은 다년간의 프로젝트입니다. 이 블로그에 더 많은 업데이트를 게시 할 예정입니다. 

 

 



  • profile
    엠폴 2021.04.15 14:55
    글 쓰는 도중에 블로그에서 구글이 Rust를 리눅스 커널에 추가하는 작업에 도움을 주고 있다고 언급했습니다.
    출처: https://security.googleblog.com/2021/04/rust-in-linux-kernel.html
  • ?
    치킨코테지 2021.04.15 14:56
    퓨시아에도 러스트가 approved되었죠.
    고랭은 그저 지못미....
  • profile
    엠폴 2021.04.15 17:32
    제가 알기론 Go는 하이레벨 프로그래밍에서 많이 쓰인다고 하네요.
    꽤 간단하고 외우기 쉬워서요.
  • ?
    고슴도치 2021.04.15 23:32
    BPF 쪽에서는 이미 고랭이 적용된 사례가 있어요. 물론 고랭은 그보단 하이레벨이 주류긴 하지만요.
  • ?
    치킨코테지 2021.04.16 00:27
    넹....퓨시아도 로우레벨 네트웤 부분은 고랭으로 짰지염. 바꾸고 싶은데 힘들어서 안바꾸고 그냥 쓴다고...데노도 Go를 기반으로 작성했다가 러스트로 바꾸고...1.17때 제레릭이 나와도 그닥 인기가 많아질 것 같지는 않습니당...저잘쓰긴 하지만ㅠ
  • ?
    고슴도치 2021.04.16 02:02
    인기가 없다고 하기엔 이미 너무 커진거 같습니다. 인프라쪽은 이제 고랭없으면 유지가 안되는 수준이에요.
    러스트는 성장가능성은 크지만, 반대로 지금당장 없어져도 큰 문제는 없다는게 현실이고요. ㅠ

    그래도 요즘 추세를 보면
    커널-러스트, 인프라-고랭, 애플리케이션-기타등등
    요 구도로 갈꺼같다는 생각이 드네요.
  • profile
    엠폴 2021.04.16 12:44
    모질라가 rust 개발자들 해고한 이후 아마존이 대부분의 개발자를 고용하고 rust에 적극적 지원을 약속을 했기 때문에 쉽게 망하진 않을 거라 보고 있습니다.
    출처: https://aws.amazon.com/ko/blogs/opensource/why-aws-loves-rust-and-how-wed-like-to-help/
  • profile
    title: 컴맹칼토로스 2021.04.15 18:30
    이러면 c/c++도 레거시 언어로 밀려나는 건가요
    몇년 뒤면 rust가 로우레벨 주력 언어로 되는 건가
  • profile
    엠폴 2021.04.15 18:45
    안드로이드는 년단위 장기 계획으로 가고 있고. 리눅스쪽은 신규 드라이버등 리눅스 커널 코어 부분외에 새로운 기능들에 한하여 rust가 적용됩니다. 아무래도 수천만줄의 코드를 쉽사리 바꾸지 못하죠.

    근데 언어를 바꾸는데 엄청난 비용과 시간이 드는데도 실행하는 것은 그만큼 c/c++의 메모리 관리가 힘들다는 것이겠죠.
  • ?
    title: 가난한아이들링 2021.04.15 21:02
    파이어폭스가 낳았던 자식이 파이어폭스보다 더 잘나가는 느낌이군요
  • profile
    엠폴 2021.04.15 22:45
    저도 그렇게 생각합니다.
  • profile
    ForGoTTen      결제중.... 2021.04.15 21:09
    사실 시스템의 최하위 부분은 네이티브 코드가 필요하니...
    다른 언어들이 날고 긴다고 해도... 결국 최하위 단에는 OS와 연결시켜줄 네이티브단이 필요하죠.

    지금까지는 C/C++에게 전담시켰던 부분들도... 시대에 변화에 맞춰서 바뀌어야 한다는건 모두가 동의하나...
    누가 바통을 이어받을지는....
  • profile
    엠폴 2021.04.15 22:46
    가장 스트레스 쌓이는 메모리 보안 취약점을 근본적으로 해결하는게 엄청나게 크죠.
    컴파일 단계에서 메모리 버그를 잡아주니 얼마나 편리하겠어요.

작성된지 4주일이 지난 글에는 새 코멘트를 달 수 없습니다.


  1. 윈도우 언어설정?? 질문드립니다.

    안녕하세요   회사 컴퓨터르 바꾸면서 언어추가가 이상하게 되었는지 아래 사진처럼 중국어로 표기가 되는 현상이 있는데 혹시 비슷한 증상을 경험해 보신분이 계실까요?    
    Date2024.03.28 질문 By염마 Reply1 Views235 file
    Read More
  2. No Image

    구글, 스냅드래곤+윈도우에 최적화된 크롬을 출시

    구글이 스냅드래곤 X 엘리트 프로세서에서 실행하는 Arm 버전 윈도우에 최적화된 크롬 브라우저를 출시합니다. x86 에뮬레이트 버전보다 성능이 크게 향상됐다고 합니다.
    Date2024.03.28 소식 By낄낄 Reply21 Views595 update
    Read More
  3. No Image

    T우주 유튜브 프리미엄 요금 인상

    6월 1일부터 T우주 구독 서비스에서 유튜브 프리미엄을 이용할 경우 요금이 인상됩니다   T우주에서 유튜브 프리미엄을 이용할 수 있는 구독은 총 3종 - 우주패스 all - 우주패스 life - 우주패스 with YouTube Premium   이 중 all의 경...
    Date2024.03.28 소식 By메이드아리스 Reply6 Views586 update
    Read More
  4. No Image

    AI 워크로드에 대한 최초의 대규모 공격

    https://www.ray.io/   AI 워크로드와 더불어 자격 증명을 저장하는 수천대의 서버가 Ray 프레임워크에 대한 대규모 공격에 털렸습니다. 정확하겐 CVE-2023-48022라는 Ray 프레임워크의 취약점으로 이를 뚫어뻥 했는데요...   최소 7개월...
    Date2024.03.28 소식 Bytitle: 폭8책읽는달팽 Reply5 Views442 update
    Read More
  5. No Image

    구글 드라이브를 너무 믿으면 안되겠어요

    테스트용 컴퓨터 3대, 작업실의 메인 시스템, 집에 있는 서브 컴퓨터를 오가면서 파일 동기화하는 용도로 구글 드라이브를 매우 잘 쓰고 있습니다. 요새는 날이 추워서 작업할 게 있을 때만 작업실을 쓰고, 어지간하면 메인 시스템에서 다...
    Date2024.03.28 일반 By낄낄 Reply4 Views694 update
    Read More
  6. NVIDIA, 문장을 3D 모델로 만드는 생성 AI 공개

    NVIDIA가 문장을 제시하면 그걸로 3D 모델을 만드는 AI 모델 기술인 LATT3D를 공개했습니다. 1초만에 완전한 3D 모델을 만들어 준다고 합니다. 지오메트리와 텍스처를 따로 만들어 사실적인 모델을 생성하고, 문장을 모델로 만드는 시간...
    Date2024.03.26 소식 By낄낄 Reply1 Views683 file
    Read More
  7. No Image

    F1 레이싱 팀의 자재 관리를 엑셀에서 전용 시스템으로 교체

    James Vowles는 메르세데스 F1 팀에서 윌리엄스 F1 팀의 최고 기술 책임자로 이직했습니다. 그리고 이 팀이 부품 관리에 엑셀을 사용한다는 사실을 발견했습니다. F1 레이싱 카의 기술은 매년 업그레이드되어 맞춤 부품의 사용량이 갈수...
    Date2024.03.26 소식 By낄낄 Reply1 Views607
    Read More
  8. No Image

    MS, 러시아 기업용 클라우드 서비스 폐쇄

    마이크로소프트는 작년 12월에 EU 규제 부서에서 발표한 러시아 제재에 다라, 3월 말에 러시아 기업에 제공하던 50개 이상의 클라우드 서비스를 폐쇄합니다. 원래 24년 3월 20일에 실행될 예정이었으나 대체제를 찾는데 필요한 시간을 주...
    Date2024.03.26 소식 By낄낄 Reply0 Views338
    Read More
  9. [GDC 2024]다이렉트X - 'State of The Union''(다이렉트 슈퍼 해상도)' 기술 소개 내용

        ▶ 마이크로소프트, 'GDC 2024' 컨퍼런스'에서 발표된 '다이렉트X 기술' 발표[Direct Super Resolution(다이렉트 슈퍼 해상도) ☞ 기술 발표 설명자 ① 마이크로소프트 : Shawn Hargreaves(다이렉트3D 개발 매니저), Austin Kinross(PIX...
    Date2024.03.24 소식 By블레이더영혼 Reply2 Views522 file
    Read More
  10. Procyon에 AI 이미지 생성 벤치마크 추가

    UL 솔루션이 Procyon 벤치마크에 AI 이미지 생성 측정 기능인 AI Image Generation Benchmark을 추가해 25일에 출시합니다. 인텔 OpenVINO, NVIDIA의 TensorRT, ONNX Runtime with DirectML을 지원하며 GPU를 사용하는 걸 염두에 둔 테스...
    Date2024.03.24 소식 By낄낄 Reply3 Views348 file
    Read More
  11. No Image

    에픽 게임즈, iOS에서 윈도우와 똑같은 수수료를 매김

    에픽 게임즈가 애플 앱스토어 대신 iOS의 자체 앱스토어를 통해 판매하는 앱에서 12%의 수수료를 부과합니다. 윈도우/맥 버전과 똑같이 처음 6개월 동안은 수수료가 없고 이후부터 12%를 징수합니다. 다른 세부 규칙도 대충 같습니다. htt...
    Date2024.03.24 소식 By낄낄 Reply0 Views520
    Read More
  12. VR 화면에 가짜 레이어를 추가하는 공격 수법

    VR을 대상으로 한 공격 수법입니다. 일반적으로 VR 홈 스크린에서 VR 앱을 실행하는데, 그 위에 인셉션 레이어라는 가짜 홈스크린을 띄우고 거기에서 VR 앱을 실행하면서 얻는 모든 상호 작용을 탈취하는 수법입니다. 인셉션 레이어를 띄...
    Date2024.03.24 소식 By낄낄 Reply3 Views575 file
    Read More
  13. 메모장, 맞춤법 검사 기능 추가

    윈도우 11의 인사이더 프리뷰 버전에서 메모장에 맞춤법 검사 기능이 추가됩니다. 메모장이 등장한지 41년만의 일입니다. 시프트+F10을 누르거나 단어를 클릭/탭하면 권장 단어를 보여줍니다. 다만 기본적으로는 이 기능이 꺼져 있으며, ...
    Date2024.03.23 소식 By낄낄 Reply5 Views799 file
    Read More
  14. No Image

    코인베이스, 도지코인의 선물 거래를 미국에 신청

    가상화폐 거래소인 코인베이스가 도지코인, 라이트코인, 비트코인 캐시의 미국 정부 규제 선물 거래를 미국 삼품선물거래위원회 CFTC에 신청했습니다. 신청일은 3월 7일이며 CFTC가 거부하지 않는 한 선물 거래는 4월 1일부터 시작됩니다.
    Date2024.03.23 소식 By낄낄 Reply1 Views422
    Read More
  15. 어도비 서브스탠스 3D, 생성 AI 기능 추가

    어도비 서브스탠스 3D에 생성 AI 기능이 추가됐습니다. 이건 문장 입력으로 생성된 3D 오브젝트 텍스처입니다. 이건 배경 생성 기능으로 만든 이미지입니다. 3D 오브젝트가 정말 저 위치에 있는 것처럼 보이는 이미지를 문장 입력만드로 ...
    Date2024.03.22 소식 By낄낄 Reply0 Views359 file
    Read More
목록
Board Pagination Prev 1 2 3 4 5 6 7 8 9 10 ... 572 Next
/ 572

최근 코멘트 30개

MSI 코리아
AMD
한미마이크로닉스
더함

공지사항        사이트 약관        개인정보취급방침       신고와 건의


기글하드웨어는 2006년 6월 28일에 개설된 컴퓨터, 하드웨어, 모바일, 스마트폰, 게임, 소프트웨어, 디지털 카메라 관련 뉴스와 정보, 사용기를 공유하는 커뮤니티 사이트입니다.
개인 정보 보호, 개인 및 단체의 권리 침해, 사이트 운영, 관리, 제휴와 광고 관련 문의는 이메일로 보내주세요. 관리자 이메일

sketchbook5, 스케치북5

sketchbook5, 스케치북5

나눔글꼴 설치 안내


이 PC에는 나눔글꼴이 설치되어 있지 않습니다.

이 사이트를 나눔글꼴로 보기 위해서는
나눔글꼴을 설치해야 합니다.

설치 취소