¿Es seguro usar archivos .netrc para almacenar credenciales para herramientas como curl o ftp?

3

El archivo .netrc puede contener credenciales de nombre de usuario y contraseña para varios sitios, para permitir una invocación más sencilla de herramientas. Por ejemplo, curl con la opción -n leerá las credenciales del archivo, para el sitio de destino dado. O FTP hace lo mismo.

También se pueden diseñar scripts y herramientas de línea de comandos escritas para leer las credenciales del mismo archivo.

Suponiendo que el archivo en sí tiene 0400 permisos, ¿Se considera generalmente que esto es seguro? diferentes personas parecen tener diferentes opiniones.

    
pregunta Cheeso 21.07.2015 - 23:41
fuente

2 respuestas

4

El almacenamiento de credenciales en texto sin cifrar en su computadora es un negocio riesgoso, ya que cualquier aplicación que se ejecute en su computadora tiene acceso a estas credenciales. Las credenciales también se exponen en copias de seguridad, zip, etc.

Los archivos

.netrc son un objetivo principal para los atacantes que buscan expandirse a otras computadoras.

    
respondido por el Neil Smithline 21.07.2015 - 23:54
fuente
1

Hay mucho debate sobre esto. Si bien la respuesta de Neil es correcta, el almacenamiento de cualquier credencial en su computadora es inherentemente riesgoso. Incluso si los cifra y los almacena en una ubicación única, el software que ejecute necesita acceso a las claves de cifrado. Si ingresa las claves de cifrado cada vez (o una contraseña para desbloquearlas o similar), puede ser tan fácil ingresar las credenciales.

Este problema no es exclusivo de las contraseñas. Un * x tiende a depender en gran medida de los permisos de archivos (control de acceso) pero no pueden diferenciar un proceso que se ejecuta como usuario de otro. Las claves privadas SSH almacenadas en ~/.ssh también son un riesgo, por ejemplo.

El principal beneficio de una ubicación estándar para credenciales como .netrc es mantenerlos separados de los scripts u otros programas que los usan. Por ejemplo, si escribe un script de shell que automatiza una sesión FTP, incrustar el nombre de usuario y la contraseña en el script en lugar de un archivo .netrc puede hacer que las credenciales se compartan inadvertidamente, ya que el script se almacena en el control de origen o se copia en otros sistemas.

El uso de una ubicación central como .netrc también permite que las personas tengan sus propias credenciales para acceder a los sistemas. Las cuentas compartidas son mal vistas porque sus actividades no pueden atribuirse a un individuo. De lo contrario, las personas necesitan sus propias copias de los scripts.

El segundo beneficio es tener un solo lugar para actualizar las credenciales modificadas. Si varios scripts o programas usan las mismas pero antiguas credenciales, puede bloquear cuentas. Cambiar el archivo .netrc puede actualizar varios scripts o programas al mismo tiempo.

Dicho esto, el cifrado de contraseñas en reposo evita el acceso involuntario a las contraseñas, como a través de copias de seguridad, navegación de hombro o similar. Si debe almacenar las credenciales en un sistema, considere algo como un almacén encriptado sobre el archivo de texto plano .netrc si hay uno disponible. Por ejemplo, git ahora es compatible archivos .netrc cifrados .

    
respondido por el akton 28.05.2016 - 03:46
fuente

Lea otras preguntas en las etiquetas