Свойства безопасности Rust
Что такое Свойства безопасности Rust?
Свойства безопасности RustRust обеспечивает безопасность памяти и потоков на этапе компиляции через владение, заимствования и времена жизни, устраняя UAF и гонки данных без сборщика мусора.
Проверка заимствований Rust статически гарантирует, что у каждого значения один владелец, а ссылки — это либо одно эксклюзивное изменяемое заимствование, либо несколько неизменяемых — все в пределах ограниченного времени жизни. Это конструктивно устраняет use-after-free, double-free, инвалидацию итераторов и большинство гонок данных. Проверки границ слайсов и типы Option/Result убирают разыменования null и необработанные ошибки. Низкоуровневые операции вынесены в явные блоки unsafe, которые подлежат аудиту и минимизации; стандартная библиотека и многие крейты оборачивают unsafe в безопасные API. Rust не отменяет логические ошибки, риски цепочки поставок, побочные каналы и обязанность ревью unsafe-кода.
● Примеры
- 01
Borrow checker отклоняет функцию, возвращающую ссылку, переживающую владельца.
- 02
Переписанный на Rust парсер устраняет найденный фаззером UAF без накладных расходов.
● Частые вопросы
Что такое Свойства безопасности Rust?
Rust обеспечивает безопасность памяти и потоков на этапе компиляции через владение, заимствования и времена жизни, устраняя UAF и гонки данных без сборщика мусора. Относится к категории Безопасность приложений в кибербезопасности.
Что означает Свойства безопасности Rust?
Rust обеспечивает безопасность памяти и потоков на этапе компиляции через владение, заимствования и времена жизни, устраняя UAF и гонки данных без сборщика мусора.
Как работает Свойства безопасности Rust?
Проверка заимствований Rust статически гарантирует, что у каждого значения один владелец, а ссылки — это либо одно эксклюзивное изменяемое заимствование, либо несколько неизменяемых — все в пределах ограниченного времени жизни. Это конструктивно устраняет use-after-free, double-free, инвалидацию итераторов и большинство гонок данных. Проверки границ слайсов и типы Option/Result убирают разыменования null и необработанные ошибки. Низкоуровневые операции вынесены в явные блоки unsafe, которые подлежат аудиту и минимизации; стандартная библиотека и многие крейты оборачивают unsafe в безопасные API. Rust не отменяет логические ошибки, риски цепочки поставок, побочные каналы и обязанность ревью unsafe-кода.
Как защититься от Свойства безопасности Rust?
Защита от Свойства безопасности Rust обычно сочетает технические меры и операционные практики, как описано в определении выше.
Какие есть другие названия Свойства безопасности Rust?
Распространённые альтернативные названия: Безопасность Rust, Borrow checker.
● Связанные термины
- appsec№ 670
Безопасность памяти
Безопасность памяти — свойство, при котором программа никогда не читает, не пишет и не исполняет память, которую она не выделяла легитимно, что устраняет целые классы уязвимостей.
- appsec№ 671
Языки с безопасной памятью
Языки с безопасной памятью, такие как Rust, Go, Swift, Java и C#, исключают пространственные и временные ошибки памяти, на которых строится большинство эксплойтов C и C++.
- appsec№ 217
Целостность потока управления
Целостность потока управления (CFI) ограничивает непрямые вызовы и возвраты программы заранее вычисленным множеством легитимных целей, блокируя ROP и JOP.
- attacks№ 1116
Атака на цепочку поставок
Атака, при которой компрометируется доверенный сторонний поставщик ПО, оборудования или услуг с целью добраться до его конечных клиентов.