stringtranslate.com

Comparación de las características de autorización de privilegios

Varios sistemas operativos de computadoras emplean funciones de seguridad para ayudar a evitar que el software malicioso obtenga privilegios suficientes para comprometer el sistema informático. Los sistemas operativos que carecen de dichas funciones, como DOS , las implementaciones de Windows anteriores a Windows NT (y sus descendientes), CP/M-80 y todos los sistemas operativos Mac anteriores a Mac OS X, solo tenían una categoría de usuario a la que se le permitía hacer cualquier cosa. Con contextos de ejecución separados, es posible que varios usuarios almacenen archivos privados, que varios usuarios usen una computadora al mismo tiempo, para proteger el sistema contra usuarios maliciosos y para proteger el sistema contra programas maliciosos. El primer sistema seguro multiusuario fue Multics , que comenzó a desarrollarse en la década de 1960; no fue hasta UNIX , BSD , Linux y NT a fines de la década de 1980 y principios de la de 1990 que los contextos de seguridad multitarea se incorporaron a las máquinas de consumo x86 .

Introducción a las implementaciones

Microsoft Windows
macOS
Unix y similares

Consideraciones de seguridad

Entrada de usuario falsificada o interceptada

Una consideración de seguridad importante es la capacidad de las aplicaciones maliciosas de simular pulsaciones de teclas o clics del mouse, engañando o falsificando así la función de seguridad para que otorgue a las aplicaciones maliciosas privilegios mayores.

  • PolicyKit ( GNOME : indica al servidor X que capture todas las entradas del teclado y del mouse. Otros entornos de escritorio que utilizan PolicyKit pueden utilizar sus propios mecanismos.
  • gksudo - por defecto "bloquea" el teclado, el mouse y el foco de la ventana, [12] impidiendo que cualquier cosa que no sea el usuario real ingrese la contraseña o interfiera de alguna otra manera con el diálogo de confirmación .
  • UAC (Windows) : de manera predeterminada, se ejecuta en el Escritorio seguro , lo que evita que las aplicaciones maliciosas simulen hacer clic en el botón "Permitir" o interfieran de alguna otra manera con el cuadro de diálogo de confirmación. [13] En este modo, el escritorio del usuario aparece atenuado y no se puede interactuar con él.
Si la función de "bloqueo" de gksudo o el Escritorio Seguro de UAC se vieran comprometidos o deshabilitados, las aplicaciones maliciosas podrían obtener privilegios de administrador utilizando el registro de pulsaciones de teclas para registrar la contraseña del administrador; o, en el caso de UAC si se ejecuta como administrador, falsificando un clic del ratón en el botón "Permitir". Por este motivo, el reconocimiento de voz también tiene prohibido interactuar con el diálogo. [ cita requerida ] Tenga en cuenta que, dado que el indicador de contraseña de gksu se ejecuta sin privilegios especiales, las aplicaciones maliciosas aún pueden realizar el registro de pulsaciones de teclas utilizando, por ejemplo, la herramienta strace . [14] (ptrace estaba restringido en versiones posteriores del núcleo) [15]

Diálogos de autenticación falsos

Otra consideración de seguridad es la capacidad del software malicioso de falsificar diálogos que parecen solicitudes legítimas de confirmación de seguridad. Si el usuario ingresara sus credenciales en un diálogo falso, pensando que el diálogo es legítimo, el software malicioso sabría la contraseña del usuario. Si se deshabilitara el Escritorio seguro o una función similar, el software malicioso podría usar esa contraseña para obtener mayores privilegios.

UAC solicita la secuencia de atención segura en Windows 11, pidiendo al usuario que presione Ctrl+Alt+Supr primero para ingresar las credenciales, para evitar la suplantación de inicio de sesión.

Consideraciones de usabilidad

Otra consideración que se ha tenido en cuenta en estas implementaciones es la usabilidad .

Cuenta de administrador independiente

Sencillez del diálogo

Guardar credenciales

El enfoque de sudo es un equilibrio entre seguridad y usabilidad. Por un lado, un usuario sólo tiene que introducir su contraseña una vez para realizar una serie de tareas de administrador, en lugar de tener que introducir su contraseña para cada tarea. Pero al mismo tiempo, la superficie de ataque es mayor porque todos los programas que se ejecutan en ese tty (para sudo) o todos los programas que no se ejecutan en una terminal (para gksudo y kdesu) prefijados por cualquiera de esos comandos antes del tiempo de espera reciben privilegios de administrador. Los usuarios conscientes de la seguridad pueden eliminar los privilegios de administrador temporales al completar las tareas que los requieren utilizando el sudo -kcomando when desde cada tty o pts en el que se utilizó sudo (en el caso de pts, cerrar el emulador de terminal no es suficiente). El comando equivalente para kdesu es kdesu -s. No hay una opción de gksudo para hacer lo mismo; sin embargo, la ejecución sudo -kfuera de una instancia de terminal (por ejemplo, a través del cuadro de diálogo Alt + F2 "Ejecutar aplicación", desmarcando "Ejecutar en terminal") tendrá el efecto deseado.
La aplicación solo requiere autenticación una vez y se solicita en el momento en que la aplicación necesita el privilegio. Una vez "elevada", la aplicación no necesita autenticarse nuevamente hasta que se haya cerrado y reiniciado.
Sin embargo, existen distintos niveles de autenticación, conocidos como Derechos. El derecho que se solicita se puede mostrar expandiendo el triángulo que se encuentra junto a "detalles", debajo de la contraseña. Normalmente, las aplicaciones utilizan system.privilege.admin, pero se puede utilizar otro, como un derecho inferior por seguridad o un derecho superior si se necesita un mayor nivel de acceso. Si el derecho que tiene la aplicación no es adecuado para una tarea, es posible que la aplicación deba autenticarse nuevamente para aumentar el nivel de privilegio.

Cómo identificar cuándo se necesitan derechos administrativos

Para que un sistema operativo sepa cuándo solicitarle autorización al usuario, una aplicación o acción debe identificarse como una aplicación que requiere privilegios elevados. Si bien es técnicamente posible que se le solicite al usuario en el momento exacto en que se ejecuta una operación que requiere dichos privilegios, a menudo no es ideal solicitar privilegios en medio de la finalización de una tarea. Si el usuario no pudiera proporcionar las credenciales adecuadas, el trabajo realizado antes de solicitar privilegios de administrador tendría que deshacerse porque la tarea no podría completarse hasta el final.

En el caso de interfaces de usuario como el Panel de control de Microsoft Windows y los paneles de preferencias de Mac OS X, los requisitos de privilegios exactos están codificados en el sistema para que el usuario vea un cuadro de diálogo de autorización en el momento adecuado (por ejemplo, antes de mostrar información que sólo los administradores deben ver). Los diferentes sistemas operativos ofrecen métodos distintos para que las aplicaciones identifiquen sus requisitos de seguridad:

pete ALL = /usr/bin/contraseña [Az]*, !/usr/bin/contraseña raíz
<seguridad> <privilegios solicitados> <nivel de ejecución solicitado nivel= "requireAdministrator" uiAccess= "falso" /> </privilegios solicitados > </seguridad>      
Los archivos de manifiesto también se pueden compilar en el propio ejecutable de la aplicación como un recurso integrado . También se utiliza el escaneo heurístico, principalmente por compatibilidad con versiones anteriores. Un ejemplo de esto es mirar el nombre del archivo ejecutable; si contiene la palabra "Setup", se asume que el ejecutable es un instalador y se muestra un mensaje de UAC antes de que se inicie la aplicación. [20]
El UAC también distingue entre las solicitudes de elevación de un ejecutable firmado y de un ejecutable no firmado; y, en el caso del primero, si el editor es "Windows Vista" o no. El color, el icono y la redacción de las indicaciones son diferentes en cada caso: por ejemplo, se intenta transmitir una mayor sensación de advertencia si el ejecutable no está firmado que si no lo está. [21]

Véase también

Referencias

  1. ^ "Descripción general del control de cuentas de usuario". Microsoft . 2006-10-02. Archivado desde el original el 2011-08-22 . Consultado el 2007-03-12 .
  2. ^ "Runas". Documentación del producto Windows XP . Microsoft . Consultado el 13 de marzo de 2007 .
  3. ^ "Temas básicos (e intermedios) de "RunAs". Blog de Aaron Margosis . Blogs de MSDN. 23 de junio de 2004. Consultado el 13 de marzo de 2007 .
  4. ^ "Acerca de PolicyKit". Manual de referencia del lenguaje PolicyKit . 2007. Archivado desde el original el 18 de febrero de 2012. Consultado el 3 de noviembre de 2017 .
  5. ^ Miller, Todd C. "Una breve historia de Sudo". Archivado desde el original el 22 de febrero de 2007. Consultado el 12 de marzo de 2007 .
  6. ^ abc Miller, Todd C. "Sudo en pocas palabras" . Consultado el 1 de julio de 2007 .
  7. ^ "Página de inicio de GKSu".
  8. ^ "gksu PolicyKit en la wiki de Gnome".
  9. ^ Bellevue Linux (20 de noviembre de 2004). "El comando su de KDE". Archivado desde el original el 2 de febrero de 2007. Consultado el 12 de marzo de 2007 .
  10. ^ Canonical Ltd. (25 de agosto de 2007). "GutsyGibbon/Tribe5/Kubuntu" . Consultado el 18 de septiembre de 2007 .
  11. ^ Puedes leer más sobre beesu Archivado el 25 de julio de 2011 en Wayback Machine y descargarlo desde Koji
  12. ^ "gksu - una página de manual de Linux para Gtk+ su frontend". Archivado desde el original el 15 de julio de 2011. Consultado el 14 de agosto de 2007 .
  13. ^ "Indicaciones de control de cuentas de usuario en el escritorio seguro". UACBlog . Microsoft . 2006-05-03 . Consultado el 2007-03-04 .
  14. ^ "gksu: bloquear el mouse y el teclado no es suficiente para proteger contra el registro de teclas".
  15. ^ "Protección ptrace".
  16. ^ ab Allchin, Jim (23 de enero de 2007). "Características de seguridad frente a conveniencia". Blog del equipo de Windows Vista . Microsoft . Consultado el 12 de marzo de 2007 .
  17. ^ "Agente de autenticación". 2007. Archivado desde el original el 18 de febrero de 2012. Consultado el 15 de noviembre de 2017 .
  18. ^ Miller, Todd C. "Sudoers Manual" . Consultado el 12 de marzo de 2007 .
  19. ^ "Prácticas recomendadas y pautas para desarrolladores de aplicaciones en un entorno con privilegios mínimos". MSDN . Microsoft . Consultado el 15 de marzo de 2007 .
  20. ^ "Comprensión y configuración del control de cuentas de usuario en Windows Vista". TechNet . Microsoft . Consultado el 15 de marzo de 2007 .
  21. ^ "Indicaciones de UAC accesibles". Blog de Windows Vista . Microsoft. Archivado desde el original el 27 de enero de 2008. Consultado el 13 de febrero de 2008 .