Privilege escalation is the act of exploiting a bug, a design flaw, or a configuration oversight in an operating system or software application to gain elevated access to resources that are normally protected from an application or user. The result is that an application with more privileges than intended by the application developer or system administrator can perform unauthorized actions.
Most computer systems are designed for use with multiple user accounts, each of which has abilities known as privileges. Common privileges include viewing and editing files or modifying system files.
Privilege escalation means users receive privileges they are not entitled to. These privileges can be used to delete files, view private information, or install unwanted programs such as viruses. It usually occurs when a system has a bug that allows security to be bypassed or, alternatively, has flawed design assumptions about how it will be used. Privilege escalation occurs in two forms:
This type of privilege escalation occurs when the user or process is able to obtain a higher level of access than an administrator or system developer intended, possibly by performing kernel-level operations.
In some cases, a high-privilege application assumes that it would only be provided with input matching its interface specification, thus doesn't validate this input. Then, an attacker may be able to exploit this assumption, in order to run unauthorized code with the application's privileges:
/etc/cron.d
, solicitara que se realizara un volcado de núcleo en caso de que fallara y luego otro proceso lo eliminara . El archivo de volcado de núcleo se habría colocado en el directorio actual del programa, es decir, /etc/cron.d
y cron
lo habría tratado como un archivo de texto indicándole que ejecutara los programas según lo programado. Debido a que el contenido del archivo estaría bajo el control del atacante, este podría ejecutar cualquier programa con privilegios de root .En seguridad informática, el jailbreak se define como el acto de eliminar las limitaciones que un proveedor intentó codificar en su software o servicios. [2] Un ejemplo común es el uso de conjuntos de herramientas para salir de un chroot o jail en sistemas operativos tipo UNIX [3] o eludir la gestión de derechos digitales (DRM). En el primer caso, permite al usuario ver archivos fuera del sistema de archivos que el administrador pretende poner a disposición de la aplicación o usuario en cuestión. En el contexto de DRM, esto permite al usuario ejecutar código definido arbitrariamente en dispositivos con DRM, así como romper restricciones tipo chroot. El término se originó en la comunidad de jailbreak de iPhone / iOS y también se ha utilizado como término para hackear PlayStation Portable ; Estos dispositivos han estado sujetos repetidamente a jailbreak, lo que permite la ejecución de código arbitrario y, en ocasiones, han desactivado esos jailbreak mediante actualizaciones de proveedores.
Los sistemas iOS , incluidos iPhone , iPad y iPod Touch, han estado sujetos a esfuerzos de jailbreak de iOS desde su lanzamiento y continúan con cada actualización de firmware. [4] [5] Las herramientas de jailbreak de iOS incluyen la opción de instalar interfaces de paquetes como Cydia e Installer.app , alternativas de terceros a la App Store , como una forma de buscar e instalar ajustes y archivos binarios del sistema. Para evitar el jailbreak de iOS, Apple ha hecho que la ROM de arranque del dispositivo ejecute comprobaciones de blobs SHSH para no permitir la carga de kernels personalizados y evitar degradaciones de software a firmware anterior con jailbreak. En un jailbreak "sin ataduras", el entorno de iBoot se cambia para ejecutar un exploit de ROM de arranque y permitir el envío de un gestor de arranque de bajo nivel parcheado o piratear el kernel para enviar el kernel liberado después de la verificación SHSH.
Existe un método similar de jailbreak para los teléfonos inteligentes con plataforma S60 , donde utilidades como HelloOX permiten la ejecución de código sin firmar y acceso completo a los archivos del sistema. [6] [7] o firmware editado (similar al firmware pirateado M33 utilizado para PlayStation Portable ) [8] para eludir las restricciones sobre el código sin firmar . Desde entonces, Nokia ha publicado actualizaciones para frenar el jailbreak no autorizado, de manera similar a Apple.
En el caso de las consolas de juegos, el jailbreak se suele utilizar para ejecutar juegos caseros . En 2011, Sony , con la ayuda del bufete de abogados Kilpatrick Stockton , demandó a George Hotz, de 21 años, y a sus asociados del grupo fail0verflow por hacer jailbreak a la PlayStation 3 (ver Sony Computer Entertainment America contra George Hotz y PlayStation Jailbreak ).
El jailbreak también puede ocurrir en sistemas y software que utilizan modelos de inteligencia artificial generativa, como ChatGPT . En los ataques de jailbreak a sistemas de inteligencia artificial , los usuarios pueden manipular el modelo para que se comporte de manera diferente a como fue programado, lo que permite revelar información sobre cómo se instruyó al modelo e inducirlo a responder de manera anómala o dañina. [9] [10]
Los teléfonos Android se pueden rootear oficialmente ya sea mediante un proceso controlado por el fabricante, utilizando un exploit para obtener root o actualizando una recuperación personalizada. Los fabricantes permiten el rooteo a través de un proceso que ellos controlan, mientras que algunos permiten que el teléfono sea rooteado simplemente presionando combinaciones de teclas específicas en el momento del arranque, o mediante otros métodos autoadministrados. El uso de un método del fabricante casi siempre restablece los valores de fábrica del dispositivo, lo que hace que el rooting sea inútil para las personas que desean ver los datos y también anula la garantía de forma permanente, incluso si el dispositivo se desrootea y se actualiza. Los exploits de software comúnmente se dirigen a un proceso de nivel raíz al que puede acceder el usuario, mediante el uso de un exploit específico del kernel del teléfono o mediante un exploit de Android conocido que ha sido parcheado en versiones más recientes; al no actualizar el teléfono o degradar intencionalmente la versión.
Los sistemas operativos y los usuarios pueden utilizar las siguientes estrategias para reducir el riesgo de escalada de privilegios:
Investigaciones recientes han demostrado qué puede proporcionar protección eficaz contra ataques de escalada de privilegios. Entre ellas se incluye la propuesta del observador de kernel adicional (AKO), que previene específicamente ataques centrados en vulnerabilidades del sistema operativo. Las investigaciones muestran que AKO es, de hecho, eficaz contra ataques de escalada de privilegios. [13]
La escalada de privilegios horizontal ocurre cuando una aplicación permite al atacante obtener acceso a recursos que normalmente habrían estado protegidos de una aplicación o usuario . El resultado es que la aplicación realiza acciones con el mismo usuario pero en un contexto de seguridad diferente al previsto por el desarrollador de la aplicación o el administrador del sistema ; Esta es efectivamente una forma limitada de escalada de privilegios (específicamente, la asunción no autorizada de la capacidad de hacerse pasar por otros usuarios). En comparación con la escalada de privilegios vertical, la horizontal no requiere actualizar los privilegios de las cuentas. A menudo se basa en errores del sistema. [14]
Este problema ocurre a menudo en aplicaciones web . Considere el siguiente ejemplo:
Esta actividad maliciosa puede ser posible debido a debilidades o vulnerabilidades comunes de las aplicaciones web.
Las posibles vulnerabilidades o situaciones de las aplicaciones web que pueden provocar esta condición incluyen:
Sólo quería hacerles saber que el foro está inactivo por mantenimiento. Volverá a estar en línea en aproximadamente un día (arruiné un poco los archivos de configuración y necesito restaurar la copia de seguridad de un día, así que pensé por qué no actualizar toda la plataforma del servidor)