최근 ONCD(국가 사이버 국장실)는 19페이지 분량의 보고서에서 중요한 점을 지적했습니다. 개발자는 Rust 언어와 같이 메모리에 안전한 프로그래밍 언어를 채택해야 합니다. 보고서는 메모리 안전 프로그래밍 언어를 선택하는 것이 소프트웨어가 안전한 설계 방식으로 개발되도록 하는 핵심 방법이라고 지적합니다.
ONCD는 또한 보고서의 권장 사항이 기술 회사, 학계 및 기타 기관과 협력하여 개발되었으며 HP, Accenture 및 Palantir를 포함한 여러 유명 기술 회사의 지원을 받았다고 지적했습니다.
신고 주소 : https://www.whitehouse.gov/wp-content/uploads/2024/02/Final-ONCD-Technical-Report.pdf
사실 이건 에서 공식적으로 올린 글이 아닙니다 미국 처음으로 조직에서는 C 및 C++에서 벗어날 것을 요구하고 있습니다.
작년 12월, 미국 사이버보안 인프라 기관(CISA)은 다른 기관들과 함께 "메모리 보안 로드맵 가이드"를 발표하여 C와 C++를 메모리에 안전하지 않은 프로그래밍 언어로 지적하고 소프트웨어 개발 공급업체가 해야 할 일을 강조했습니다. Rust 및 Java와 같은 다른 메모리 안전 프로그래밍 언어를 채택하십시오. 이 가이드의 목적은 소프트웨어 개발 시 메모리 안전 문제에 대한 인식을 높이고 잠재적인 보안 취약성을 줄이기 위해 보다 안정적인 프로그래밍 언어의 채택을 장려하는 것입니다. CISA는 악의적인 공격과 데이터 유출 위험을 줄이는 데 도움이 되는 메모리 안전 프로그래밍 언어 채택의 중요성을 특히 강조합니다. 이러한 움직임은 소프트웨어 개발 산업의 발전을 더욱 안전하고 신뢰할 수 있는 방향으로 촉진하기 위한 것이기도 합니다.
출처: https://www.cisa.gov/sites/default/files/2023-12/ The-Case -for-Memory-Safe-Roadmaps-508c.pdf
메모리 안전 프로그래밍 언어의 사용을 강조하는 것이 중요합니다. 메모리 안전은 버퍼링과 같은 발생을 방지할 수 있기 때문입니다. 영역 오버플로 및 댕글링 포인터와 같은 문제는 버그와 취약점으로 이어질 수 있습니다. 따라서 메모리 안전성의 개념을 이해하는 것이 중요합니다.
메모리 불안은 얼마나 해로운가요? 2019년 Microsoft 보안 엔지니어들은 보안 문제의 약 70%가 메모리 안전 문제로 인해 발생했다고 보고했습니다. 2020년에 Google은 Chromium 브라우저에서 발견된 버그에 대해 유사한 데이터를 보고했습니다.
프로그래밍 언어의 경우 C와 C++ 모두 경계 검사 없이 직접 메모리 주소를 사용하여 임의 포인터 연산을 허용합니다. 보고서는 전문가들이 C 및 C++로 대표되는 일부 프로그래밍 언어에 메모리 안전 관련 기능이 부족하고 일부 중요한 시스템에 널리 퍼져 있다는 사실을 발견했다고 지적합니다. 따라서 C 및 C++는 "안전하지 않은" 프로그래밍 언어로 간주됩니다.
C 및 C++에 해당하는 Rust는 메모리에 안전한 프로그래밍 언어의 전형적인 예로 간주됩니다. Rust는 안전, 특히 동시성 안전에 초점을 맞춘 시스템 프로그래밍 언어입니다. 함수형, 명령형, 일반 프로그래밍 패러다임 등 다중 패러다임 언어를 지원하며, 텐서플로우 같은 딥러닝 프레임워크에서도 탁월한 프론트엔드 언어로 활용됩니다.
프로그래머 질문 및 답변 웹 사이트 Stack Overflow의 2021년 개발자 설문 조사 보고서에서 Rust 언어는 개발자들 사이에서 가장 인기 있는 프로그래밍 언어가 되었습니다. Rust가 시스템 프로그래밍 세계에서 인기 있는 이유 중 하나는 메모리 관련 보안 취약점을 제거하는 데 도움이 되기 때문입니다.
Rust의 메모리 안전 기능은 오랫동안 업계에서 검증되었습니다. 2021년 4월, Google은 Android가 Rust 언어에 대한 지원을 추가할 것이라고 발표했습니다. 그 이유는 C 및 C++의 메모리 안전 버그는 해결하기 가장 어려운 오류 원인이며, Google은 이러한 버그를 감지, 수정, 완화하고 수많은 버그가 유입되는 것을 효과적으로 방지하기 위해 많은 노력과 자원을 투자해 왔기 때문입니다. 안드로이드 버전.
그러나 이러한 노력에도 불구하고 메모리 안전 버그는 여전히 안정성 문제의 주요 원인으로 남아 있으며 시간이 지남에 따라 Android의 심각한 보안 취약점 중 약 70%를 차지합니다. 따라서 Google은 운영 체제 개발자를 위해 세 번째 옵션인 Rust를 추가했습니다.
워싱턴 대학의 컴퓨터 과학 교수인 Dan Grossman은 수십 년 동안 모두가 C와 C++의 위험성에 대해 알고 있었으며 이제는 마침내 메모리 안전 프로그래밍 언어를 홍보할 좋은 시기라고 말했습니다. 실용적이고 성숙한 대안입니다.
그는 또한 C와 C++를 없애는 것이 하루아침에 이루어질 수 없다고 믿습니다. 특히 임베디드 시스템에서는 더욱 그렇습니다. 그러나 시스템 소프트웨어에서 Rust와 같은 다른 프로그래밍 언어가 더욱 널리 사용됨에 따라 이러한 프로세스는 더욱 가속화될 것으로 예상됩니다.
C와 C++에 대한 공식적인 태도를 보면 더 많은 사람들이 이를 구매하지 않는 것 같습니다.
어떤 사람들은 최신 C++가 메모리에 안전하고 모든 운영 체제가 프로그래밍에 C 또는 C++를 사용한다고 생각합니다. 일부 사람들은 C++가 메모리에 안전하지 않더라도 최신 C++에는 더 많은 "가드레일"이 있고 비용이 저렴하거나 심지어 무료라고 믿습니다.
메모리 안전성을 위해 "손으로 선택한" Rust의 경우 일부 사람들은 지원 수준이 그다지 높지 않고 정부 시스템에 통합할 가치가 없다고 생각합니다.
2022년 11월 NSA(국가 안보국)는 고려 사항을 자세히 설명하는 사이버 보안 정보 시트를 발표했습니다. 메모리에 안전한 프로그래밍 언어
점점 더 많은 세상이 디지털화됨에 따라 더 나은 코딩이 점점 더 중요해지고 나쁜 코드가 악의적으로 사용될 수 있습니다.
Rust 언어
Rust 언어는 Mozilla가 주도하는 범용 컴파일 프로그래밍 언어입니다. 설계 기준은 "안전성, 동시성 및 실용성"이며 기능적, 동시성, 절차적 및 객체 지향 프로그래밍 스타일을 지원합니다.
Rust 언어의 가장 두드러진 장점은 추가적인 성능 손실 없이 메모리 안전을 보장할 수 있다는 것입니다. 전통적인 시스템 수준 프로그래밍 언어(C/C++)의 개발 과정에서는 널 포인터, 와일드 포인터, 메모리 누수, 메모리 아웃 오브 바운드, 세그폴트 등 다양한 메모리 오류로 인한 크래시나 버그가 자주 발생한다. 데이터 경합, 장치 오류 등.
메모리 문제는 프로그램 안정성과 보안에 영향을 미치는 주요 숨겨진 위험이며, 개발 효율성에 영향을 미치는 주요 요인입니다. 두 거대 기술 기업인 Google과 Microsoft는 자사 제품의 프로그램 보안 문제 중 70%가 메모리 문제로 인해 발생한다고 밝혔으며, 두 거대 기업 모두 메모리 안전 문제를 해결하기 위해 Rust 언어를 사용하는 것을 고려하고 있습니다.
또한 Rust는 뛰어난 크로스 플랫폼 기능을 갖추고 있으며 크로스 컴파일을 지원하며 임베디드 환경에도 친화적입니다.
그러나 Rust 언어에는 몇 가지 까다로운 단점도 있습니다.
우선 Rust에는 특별한 구문이 있기 때문에 "lifetime"과 같은 초보자가 시작하기에는 조금 어렵습니다. 이에 비해 Python 및 Java와 같은 언어는 더 간단하고 배우기 쉽습니다. 그러나 C++ 언어를 이미 알고 있다면 Rust 언어를 배우는 것이 C++ 구문을 많이 차용하기 때문에 훨씬 쉽습니다.
둘째, Rust 언어의 컴파일러 검사는 매우 엄격하며 대부분의 개발 프로세스는 컴파일 문제를 해결하는 데 소비됩니다. 그러나 일단 컴파일이 통과되면 개발자는 메모리 안전, 메모리 누수 및 기타 문제에 대해 걱정할 필요가 없으며 비즈니스 로직에만 집중하면 됩니다.
위 내용은 백악관은 개발자들에게 C와 C++를 포기할 것을 촉구하는 문서를 발표했습니다. Rust는 메모리 안전을 위해 '손으로 선택'되었습니다.의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!