¿La mejor práctica para protegerse contra una aplicación que copia las claves privadas ssh almacenadas en ~ / .ssh?

2

Dado que cualquier aplicación que se ejecute como usuario registrado tendrá acceso de lectura a la carpeta ~/.ssh de ese usuario, parece trivial que la aplicación copie la clave privada de ese usuario y la envíe por la red.

¿Se considera inseguro mantener las claves SSH por debajo de ~/.ssh por este motivo? Si es así, ¿cuál es la forma recomendada de administrar las claves SSH?

    
pregunta Amol D 26.08.2015 - 02:50
fuente

5 respuestas

4

Como Naftuli Tzvi Kay declaró que una solución bien usada es usar un dispositivo de hardware para administrar sus claves. Algunas alternativas para una solución de software incluyen:

  • Haciendo que sus claves privadas solo sean legibles por root / sudo
  • Encriptando su clave privada con una contraseña , por lo que Por lo menos, no será trivial que el atacante lo rompa si roban.
  • Almacénelos en un directorio encriptado en algún lugar de su máquina local
respondido por el Nic Barker 26.08.2015 - 04:48
fuente
0

Almacene sus claves privadas en un dispositivo de seguridad de hardware .

    
respondido por el Naftuli Kay 26.08.2015 - 04:00
fuente
0

Simplemente no permita que sus claves privadas sean legibles en todo el mundo. No todo en ~/.ssh son claves privadas. authorized_keys y eso está bien para leer.

También, puede beneficiarse de hacer algún tipo de monitoreo de red (tal vez incluso una inspección profunda de paquetes, aunque probablemente no sea tan eficiente) y / o auditar las sesiones de los usuarios para que al menos pueda detectar si envían las llaves a la nave nodriza puedes generar otros nuevos.

Como alternativa, tal como se indicó anteriormente, puede almacenarlo en un dispositivo de hardware, pero mi problema es que puede perder el dispositivo.

    
respondido por el Michael Bailey 26.08.2015 - 02:56
fuente
0
  

Dado que cualquier aplicación que se ejecute como usuario registrado tendrá acceso de lectura a la carpeta ~ / .ssh de ese usuario, parece trivial para la aplicación copiar la clave privada de ese usuario y enviarla a través de la red.

Sí, eso es correcto. Algunas medidas de seguridad para evitar la extracción de su clave privada son:

  • Cuentas de función : ejecute cualquier programa que no sea de confianza utilizando una cuenta de función propia. De esta manera, una aplicación no tendrá permisos de lectura en su clave privada. Esta es la razón por la que la mayoría de las aplicaciones de servidor estándar se ejecutan bajo sus propias cuentas de rol restringido. P.ej. nginx, mysql, apache, PassengerAgent se ejecutan como nginx, mysql, www-data, nadie respectivamente

  • Guarde su clave privada con una contraseña segura. De esta manera, incluso si está comprometido, será difícil descifrarlo utilizando la fuerza bruta. Puede usar ssh-agent para evitar ingresar la contraseña cada vez.

  • Asegúrese de que los permisos de su clave privada estén configurados en 400 -r-------- .

Hay aplicaciones que deben ejecutarse como usted (usuario), por ejemplo. Aplicaciones de escritorio como google chrome y reproductor multimedia. Asegúrese de descargar estas aplicaciones de una fuente confiable. No instale programas de fuentes que no sean de confianza ni añada PPA a ciegas a su catálogo de software sin verificar la autenticidad .

    
respondido por el CodeExpress 26.08.2015 - 06:24
fuente
0

Además de los permisos sobre los archivos dentro de ~ / .ssh, dependiendo de la plataforma, puede monitorear cualquier acceso a los archivos dentro del directorio usando auditd. Esto le permitiría ver quién / qué está accediendo a esos archivos en cualquier momento y alertarle sobre cualquier actividad desconocida / desagradable.

    
respondido por el A. Smith 26.08.2015 - 17:49
fuente

Lea otras preguntas en las etiquetas