Gestión de memoria en Rust segura y protegida
¡Hola HN! He estado desarrollando un proyecto que maneja credenciales de alto valor dentro del proceso, y quería algo más robusto que simplemente poner a cero la memoria al liberarla. Un comentario en un reciente Show HN[0] me hizo darme cuenta de que el conocimiento sobre técnicas de protección de memoria de bajo nivel podría no estar tan extendido como pensaba. La idea aquí es reunir todas las herramientas en un solo crate, con una API relativamente simple. * mlock/VirtualLock para evitar que la memoria sensible sea intercambiada (por ejemplo, el volcado de KeePass) * Exclusión de volcados de memoria usando MADV_DONTDUMP en Linux y Android * mprotect para minimizar la exposición con el tiempo * Páginas de guarda para mitigar desbordamientos por debajo o por encima Después de algunas pruebas intensivas, el objetivo aquí es proporcionar una base de memoria más segura para cosas como gestores de contraseñas y carteras de criptomonedas. Este fue un proyecto divertido, y aprendí mucho. ¡Me encantaría recibir cualquier comentario! [0] - https://news.ycombinator.com/item?id=47073430
- Android
- Código Abierto
- FinTech
✨ Resumen de IA
Shrouded es una crate de Rust diseñada para mejorar la seguridad de la gestión de memoria en proceso para datos sensibles. Aprovecha técnicas de protección de memoria de bajo nivel para evitar el intercambio, excluir datos de volcados de memoria, minimizar la exposición con el tiempo y mitigar desbordamientos.
Ideal para
Desarrolladores de gestores de contraseñas, Desarrolladores de carteras de criptomonedas, Desarrolladores que manejan credenciales de alto valor en proceso
Por qué importa
Proporciona una base de memoria más robusta y segura para aplicaciones que manejan datos sensibles mediante la implementación de técnicas avanzadas de protección de memoria.
Funciones clave
- Evita que la memoria sensible se intercambie usando mlock/VirtualLock.
- Excluye la memoria de los volcados de núcleo en Linux y Android mediante MADV_DONTDUMP.
- Minimiza la exposición de la memoria con el tiempo usando mprotect.
- Mitiga los desbordamientos/subdesbordamientos con páginas de protección.
Casos de uso
- Un desarrollador de carteras de criptomonedas puede usar Shrouded para proteger las claves privadas en la memoria, evitando que se escriban en el disco a través de archivos de intercambio o se incluyan en volcados de memoria del sistema, mejorando así la seguridad contra ataques de acceso físico.
- Una aplicación de gestor de contraseñas puede aprovechar Shrouded para salvaguardar las credenciales de los usuarios mientras se utilizan activamente, asegurando que los datos sensibles no se expongan mediante inspección de memoria o registro accidental.
- Un desarrollador consciente de la seguridad que construye una base de datos en memoria para información altamente sensible puede integrar Shrouded para implementar protección granular de memoria, reduciendo el riesgo de fuga de datos a través de vulnerabilidades del sistema.