심각한 Rust 결함으로 인해 특정 Windows 사용 사례에서 악용 위협 발생

심각한 Rust 결함으로 인해 특정 Windows 사용 사례에서 악용 위협 발생

심각한 Rust 결함으로 인해 특정 Windows 사용 사례에서 악용 위협 발생 PlatoBlockchain Data Intelligence 수직 검색. 일체 포함.

Rust 프로젝트는 취약점 연구원이 Windows 시스템에서 배치 파일을 실행하는 데 사용되는 특정 기능이 주입 결함을 통해 악용될 수 있음을 발견한 후 표준 라이브러리에 대한 업데이트를 발표했습니다.

표준 라이브러리로 알려진 Rust 프로그래밍 언어에 포함된 공통 기능 세트는 Command API를 통해 Windows 배치 파일을 실행할 수 있는 기능을 제공합니다. 그러나 이 함수는 실행에 코드를 삽입할 가능성을 제거할 만큼 엄격하게 API에 대한 입력을 처리하지 않았습니다. Rust 보안 대응 실무 그룹 자문 9월 XNUMX일 출판.

애플리케이션 보안 회사인 JFrog의 수석 취약성 연구원인 Yair Mizrahi는 Rust가 메모리 안전 기능으로 잘 알려져 있지만 이번 사건은 프로그래밍 언어가 논리 버그에 대한 증거가 아니라는 점을 강조했다고 말했습니다.

“전반적으로 Rust의 메모리 안전성은 주목할 만한 이점이지만 개발자는 Rust 기반 애플리케이션의 전반적인 보안과 안정성을 보장하기 위해 논리적 버그의 가능성에도 세심한 주의를 기울여야 합니다.”라고 그는 말합니다. "이러한 논리적 문제를 해결하기 위해 Rust는 엄격한 테스트 및 코드 검토 프로세스는 물론 정적 분석 도구를 사용하여 논리적 버그를 식별하고 완화할 것을 권장합니다."

Rust는 매우 안전한 프로그래밍 언어라는 평판을 얻었습니다. 왜냐하면 애플리케이션이 메모리 안전 취약점으로 알려진 종종 심각한 종류의 결함에 노출되지 않기 때문입니다. Google은 메모리에 안전하지 않은 코드 감소 Rust 및 Kotlin과 같은 메모리 안전 언어로의 전환에 대해 Microsoft는 2018년까지 메모리 안전 언어로 전환할 때까지 이러한 취약점이 정기적으로 발생한다는 사실을 발견했습니다. 전체 보안 문제의 70%를 차지.

Windows는 일련의 문제를 제기합니다

최근 문제는 메모리 안전성 취약점이 아니라 신뢰할 수 없는 입력을 처리하는 데 사용되는 로직의 문제입니다. Rust 표준 라이브러리의 일부를 사용하면 개발자가 처리를 위해 배치 파일을 Windows 시스템으로 보내는 함수를 호출할 수 있습니다. 프로그래밍 언어 관리자와 Rust 생태계를 지원하는 Rust Foundation의 기술 이사인 Joel Marcey는 코드를 배치 파일로 호스트에 제출하는 데에는 이유가 있다고 말합니다.

"배치 파일은 시스템에서 여러 가지 이유로 실행되며 Rust는 이러한 파일을 상당히 쉽게 실행할 수 있도록 API를 제공합니다."라고 그는 말합니다. “그래서 이것이 반드시 Rust의 가장 일반적인 사용 사례는 아니지만, API는 수정된 패치가 구현되기 전에 이론적으로 악의적인 행위자가 임의의 명령을 실행하여 시스템을 장악할 수 있었으며 이는 확실히 중요한 취약점입니다.”

일반적으로 개발자는 표준 라이브러리의 일부인 Command API(응용 프로그래밍 인터페이스)를 통해 일괄 프로세스로 실행되도록 워크로드를 Windows 호스트에 전달할 수 있습니다. 일반적으로 Rust는 Command API에 대한 모든 호출의 안전을 보장하지만, 이 경우 Rust 프로젝트는 모든 인수의 실행을 방지하는 방법을 찾을 수 없습니다. 주로 Windows는 어떤 종류의 표준도 준수하지 않기 때문입니다. API를 사용하면 공격자가 실행될 코드를 제출할 수 있습니다.

Rust 보안 대응 WG에 따르면 "안타깝게도 우리의 이스케이프 로직이 충분히 철저하지 않았으며 임의의 셸 실행을 초래할 수 있는 악의적인 인수를 전달하는 것이 가능하다는 보고가 있었습니다."라고 합니다.

Rust 프로젝트의 반응성이 입증됨

어떤 취약점을 처리하는 것은 골치 아픈 일이 될 수 있지만, 전문가들은 Rust 프로젝트를 통해 그룹이 문제를 신속하게 해결한다는 사실을 보여주었다고 말합니다. 표준 라이브러리 취약점, CVE-2024-24576, 이는 궁극적으로 Windows 일괄 처리 문제의 문제이며 Windows 일괄 처리에 전송된 인수를 적절하게 구문 분석하지 않는 경우 다른 프로그래밍 언어에 영향을 줍니다. JFrog의 Mizrahi는 Rust 프로젝트가 Windows CMD.exe 프로세스에 인수를 전달하기 위한 수정 사항을 최초로 공개한 것으로 보인다고 말합니다.

그룹은 문제를 완전히 제거할 수는 없지만 함수에 전달된 기능 보강이 안전하지 않을 때 Command API는 오류를 반환하지 않을 것이라고 Rust 프로젝트는 말했습니다. 

JFrog의 Mizrahi는 Rust가 정적 애플리케이션 보안 테스트의 사용을 확대하고 퍼징 및 동적 테스트의 사용을 확대할 것을 촉구합니다.

“전반적으로 Rust는 메모리 안전성을 강조하고 엄격한 테스트 관행을 장려함으로써 올바른 길을 가고 있습니다.”라고 그는 말합니다. "이러한 노력과 정적 분석 및 퍼징의 지속적인 발전을 결합하면 Rust 커뮤니티와 광범위한 소프트웨어 산업이 앞으로 몇 년 동안 논리적 버그와 입력 검증 결함을 해결하는 데 상당한 진전을 이룰 수 있습니다."

타임 스탬프 :

더보기 어두운 독서