Algunas carpetas en la variable PATH se pueden escribir por cualquier persona. ¿Peligroso o no?

20

Noté que algunas carpetas en la variable de entorno PATH (por ejemplo, C: \ Python ) otorgan privilegios de escritura a cualquier persona en la máquina, incluidos los usuarios sin derechos de administrador. Entiendo que la gente probablemente puede modificar los ejecutables de Python y las cosas en esa carpeta. Sin embargo, ¿qué tan peligroso es si no uso Python? Además, dado que la mayoría de los programas en Windows se llaman a través de GUI o con rutas absolutas, ¿podría este problema seguir afectando a otras carpetas más sensibles en PATH, como System32 ?

    
pregunta Shao Kun Deng 22.11.2016 - 16:11
fuente

3 respuestas

27
  

¿Qué tan peligroso es si no uso Python?

Su uso de Python es irrelevante para el riesgo.

La variable PATH proporciona un medio para invocar programas sin tener que escribir su ruta completa. Mientras que la gente de Unix consideraría poner un directorio público escribible (o.) En la variable PATH un pecado cardinal. El riesgo es que un atacante puede sustituir el programa que un usuario intenta ejecutar con su propio código malvado y, por lo tanto, engañar a la víctima para que lo ejecute.

En MS Windows, el riesgo es menor, pero es más difícil de mitigar:

  • la mayoría de las personas no usan líneas de comando en MS Windows
  • por lo general, los programas se inician desde el explorador, que utiliza una ruta completa al ejecutable
  • MS Windows siempre busca primero en el directorio actual antes de registrar un archivo ejecutable en% PATH% (es decir, el riesgo está incorporado a MS Windows por diseño)
respondido por el symcbean 22.11.2016 - 16:42
fuente
7

Exención de responsabilidad: la pregunta de OP es explícitamente para Windows, por lo que esta respuesta solo se enfoca en este sistema. Para un sistema similar a Unix o Unix, la respuesta sería diferente.

El problema no es realmente que algunas carpetas en PATH puedan escribirse por cualquier persona. El PATH es solo una lista de carpetas desde las que puede iniciar un comando con un nombre simple y no una ruta completa.

Pero el hecho de que cualquier carpeta que contenga comandos, ya sea que estén en PATH o no, puedan escribirse por cualquier persona es un riesgo de seguridad.

Si la máquina no tiene un servicio de servidor activo y está físicamente asegurada con un solo usuario, el riesgo puede ser aceptable: si borra / reescribe un archivo del sistema o cualquier otro ejecutable, debe saber por qué y nadie más. de lo que puedes ser culpable Pero de todos modos, las mejores prácticas (según lo dictado por Windows) recomiendan que se le advierta antes de realizar una tarea potencialmente peligrosa, por lo que las carpetas sistema deben requerir privilegios de administrador para poder escribir.

Pero si más de una persona (los administradores no están incluidos aquí) puede acceder a la máquina, entonces se convierte en un grave problema de seguridad. Uno podría voluntariamente o no reemplazar un ejecutable o una DLL, y otro podría lanzar un programa no deseado al ejecutar un script de Python. No hablar si System32 se puede escribir públicamente porque cualquier acción podría llevar a resultados inesperados.

TL / DR: a menos que sea el único usuario de la máquina, la carpeta de Python no debería poder ser grabada por todos, sino que debería requerir privilegios de administrador.

En un sistema Unix o similar a Unix, el problema será diferente. Las primeras instalaciones predeterminadas normalmente nunca hacen que las carpetas que contienen ejecutables puedan escribirse públicamente y el PATH se usa mucho. Así que, por supuesto, tener una carpeta en PATH de escritura pública sería per se un grave problema de seguridad. Pero Windows viene con diferentes usos ...

    
respondido por el Serge Ballesta 22.11.2016 - 17:30
fuente
0

Sí, puede ser un riesgo de seguridad si las protecciones GPO adecuadas contra la ejecución de ejecutables extranjeros no están en su lugar (lo que es un grave riesgo de seguridad en sí mismo).

Al cambiar una carpeta PATH por otra, puedes engañar a un usuario para que ejecute un ejecutable diferente al que está intentando ejecutar. Sin embargo, si tiene implementadas políticas de GPO razonables, lo más que haría esto es hacer que el usuario moleste el soporte técnico por unos minutos porque "su" programa no se ejecutará. Y eso es SI están utilizando scripts por lotes o línea de comandos. La mayoría de los usuarios no.

    
respondido por el 520 22.11.2016 - 18:00
fuente

Lea otras preguntas en las etiquetas