Parte de una serie sobre |
Seguridad de información |
---|
Categorías de seguridad relacionadas |
Amenazas |
|
Defensas |
|
La escalada de privilegios es el acto de aprovechar un error , una falla de diseño o una supervisión de la configuración en un sistema operativo o aplicación de software para obtener un acceso elevado a los recursos que normalmente están protegidos de una aplicación o usuario . El resultado es que una aplicación con más privilegios de los previstos por el desarrollador de la aplicación o el administrador del sistema puede realizar acciones no autorizadas .
La mayoría de los sistemas informáticos están diseñados para usarse con múltiples cuentas de usuario, cada una de las cuales tiene capacidades conocidas como privilegios . Los privilegios comunes incluyen ver y editar archivos o modificar archivos del sistema.
La escalada de privilegios significa que los usuarios reciben privilegios a los que no tienen derecho. Estos privilegios se pueden utilizar para eliminar archivos, ver información privada o instalar programas no deseados, como virus. Por lo general, ocurre cuando un sistema tiene un error que permite eludir la seguridad o, alternativamente, tiene supuestos de diseño defectuosos sobre cómo se utilizará. La escalada de privilegios se produce de dos formas:
Este tipo de escalamiento de privilegios ocurre cuando el usuario o proceso puede obtener un nivel de acceso más alto que el que pretendía un administrador o desarrollador de sistema, posiblemente mediante la realización de operaciones a nivel de kernel .
En algunos casos, una aplicación con altos privilegios supone que solo se le proporcionará una entrada que coincida con la especificación de su interfaz, por lo que no valida esta entrada. Entonces, un atacante puede aprovechar esta suposición para ejecutar código no autorizado con los privilegios de la aplicación:
/etc/cron.d
, solicitar que se realizara un volcado del núcleo en caso de que fallara y luego otro proceso lo matara . El archivo de volcado del 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 que le indicaría que ejecute los programas según lo programado. Debido a que el contenido del archivo estaría bajo el control del atacante, el atacante podría ejecutar cualquier programa con privilegios de root .Un jailbreak es el acto o herramienta que se utiliza para realizar el acto de salir de un chroot o jail en sistemas operativos tipo UNIX [2] 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 también romper las restricciones de tipo chroot. El término se originó en la comunidad de jailbreak de iPhone / iOS y también se ha utilizado como término paraPiratería de PlayStation Portable ; estos dispositivos han estado sujetos repetidamente a jailbreak, lo que permite la ejecución de código arbitrario y, a veces, esos jailbreak han sido desactivados por las actualizaciones de los proveedores.
Los sistemas iOS , incluidos iPhone , iPad y iPod touch, han estado sujetos a esfuerzos de liberación de iOS desde su lanzamiento y continúan con cada actualización de firmware. [3] [4] Las herramientas de jailbreak de iOS incluyen la opción de instalar Cydia o Sileo, alternativas de terceros a la App Store , como una forma de encontrar e instalar ajustes y binarios del sistema. Para evitar el jailbreak de iOS, Apple ha hecho que la ROM de arranque del dispositivo ejecute comprobaciones de blobs SHSHpara no permitir la carga de kernels personalizados y evitar la degradación del software a un 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 cargador de arranque de bajo nivel parcheado o piratear el kernel para enviar el kernel con jailbreak después de la verificación SHSH.
Existe un método similar de jailbreak para los teléfonos inteligentes de la plataforma S60 , donde utilidades como HelloOX permiten la ejecución de código sin firmar y acceso completo a los archivos del sistema. [5] [6] o firmware editado (similar al firmware pirateado M33 utilizado para PlayStation Portable ) [7] para eludir las restricciones sobre el código sin firmar . Desde entonces, Nokia ha publicado actualizaciones para frenar el jailbreak no autorizado, de una manera similar a Apple.
En el caso de las consolas de juegos, el jailbreak se usa a menudo 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 asociados del grupo fail0verflow por hacer jailbreak a la PlayStation 3 (ver Sony Computer Entertainment America contra George Hotz y PlayStation Jailbreak ).
Los teléfonos Android se pueden rootear oficialmente pasando por un proceso controlado por los fabricantes, utilizando un exploit para obtener el rooteo o mediante la actualización personalizada de la recuperación. Los fabricantes permiten el enraizamiento a través de un proceso que controlan, mientras que algunos permiten que el teléfono sea enraizado 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 anula la garantía de forma permanente, incluso si el dispositivo se quita de raíz y se actualiza. Las vulnerabilidades de software comúnmente se dirigen a un proceso de nivel raíz que es accesible para el usuario, mediante el uso de una vulnerabilidad específica 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:
La escalada horizontal de privilegios 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 con 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 suposición no autorizada de la capacidad de hacerse pasar por otros usuarios).
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 aplicaciones web que pueden conducir a esta condición incluyen:
Solo quería hacerles saber que el foro no tiene mantenimiento.
Volverá a estar en línea en un día más o menos (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)