ArtículosSoftware

Qué es kernel y para qué sirve

El kernel es posiblemente, una de las partes más importantes de un sistema operativo, y sin el cual, ninguno de ellos podría funcionar. Muy poca gente sabe lo que es el kernel y qué importancia tiene. No es que vamos a hacer que con este artículo puedas crear el tu propio kernel ni versión de Linux. Pero sí que servirá para que entiendas su importancia, como por qué es un enorme fallo de seguridad que un sistema anticheat de un juego sea a nivel de kernel.

¿Qué un kernel?

Un kernel, tal y como lo conocemos hoy día; es un programa informático que se encuentra en el núcleo del sistema operativo de un ordenador. Este tiene un control total sobre todo lo que hay en el sistema.

Es la parte del código del sistema operativo que siempre reside en la memoria y facilita las interacciones entre los componentes de hardware y software. Uno completo controla todos los recursos de hardware a través de los diferentes controladores de dispositivos, es el que arbitra conflictos entre procesos relativos a dichos recursos y el quee optimiza la utilización de recursos comunes. También es uno de los primeros programas que se cargan al arrancar, después del gestor de arranque.

Sistema de USER y KERNEL MODE en Windows

Su código crítico del kernel suele cargarse en una zona separada de la memoria, protegida del acceso del software de aplicación o de otras partes menos críticas del sistema operativo, salvo que le demos permiso de administrador en su instalación. El núcleo realiza diferentes en su espacio protegido del núcleo; mientras que el resto de programas utilizan un área de memoria separada. Así se evita que los datos de usuario y los del núcleo interfieran entre sí, e impiden el mal funcionamiento de las aplicaciones afectando a otras aplicaciones.

Seguridad del kernel

En los sistemas en los que el kernel está incluido en los espacios de direcciones de las aplicaciones, se utiliza la protección de memoria para evitar que aplicaciones no autorizadas modifiquen el kernel. Una interfaz del kernel es una capa de bajo nivel. Cuando un proceso solicita un servicio del kernel, debe invocar una llamada al sistema, normalmente a través de una función envoltorio.

¿Qué hace el kernel con las diferentes partes del PC?

Memoria RAM

La memoria RAM se utiliza para almacenar tanto instrucciones de programa como datos. Ambos deben estar presentes en la memoria para que un programa pueda ejecutarse. En ocasiones, múltiples programas querrán acceder a la memoria.. El núcleo es responsable de decidir qué memoria puede utilizar cada proceso, determina qué hacer cuando no hay suficiente memoria disponible.

Puertos de entrada y salida

En este caso, el kernel define el dominio de ejecución y el mecanismo de protección utilizado para mediar en el acceso a los recursos dentro de un dominio. Los núcleos del kernel también proporcionan métodos para la sincronización y la comunicación entre procesos. Estas implementaciones pueden estar localizadas dentro del propio kernel o que el kernel dependa de otros procesos que esté ejecutando.

Los núcleos también deben proporcionar a los programas en ejecución un método para realizar peticiones para acceder a estas facilidades. También es responsable del cambio de contexto entre procesos o hilos.

¿Qué es el kernel y cómo está formado?

Dicho de una forma sencilla, el kernel es una pieza fundamental del sistema operativo. Se almacena en memoria de forma protegida. Un kernel está formado por códigos y módulos que indican las prioridades y cómo manejar cada parte del hardware con el software, y los drivers.

En una forma muy simple, el kernel es el motor del sistema operativo. Imagina un coche sin motor, la pieza central y más importante de un coche, y la que más afecta a su rendimiento.

¿Dónde se encuentra el kernel?

El kernel se encuentra en el sistema operativo. Una vez iniciado el PC, el kernel se carga en un espacio dedicado y aislado de la memoria por motivos de seguridad.

¿Cuáles son los tipos de kernel?

  • Monolíticos: se ejecutan completamente en un único espacio de direcciones con la CPU ejecutándose en modo supervisor, principalmente por velocidad.
  • Microkernels: ejecutan la mayoría de sus servicios, aunque no todos, en el espacio de usuario, como lo hacen los procesos de usuario, principalmente por resistencia y modularidad.
  • Kernel Modular: se le puede insertar y eliminar módulos de kernel cargables en tiempo de ejecución.
  • Nanokernels: delega todos los servicios en los controladores de dispositivos para que el requisito de memoria del núcleo sea aún menor que el de un micronúcleo tradicional.
  • Exokernels: Enfoque aún experimental del diseño de sistemas operativos. Limitan su funcionalidad a la protección y multiplexación del hardware en bruto, sin proporcionar abstracciones de hardware sobre las que desarrollar aplicaciones. Esta separación permite a los desarrolladores determinar cómo hacer el uso más eficiente del hardware disponible para cada programa específico.
  • Multikernel: Un sistema operativo multinúcleo trata un multikernel como una red de núcleos independientes. No asume la memoria compartida. Implementa las comunicaciones entre procesos como paso de mensajes.

¿Cuál sería el kernel de Windows?

Durante los años noventa, Microsoft usaba el kernel Windows 9x, que se parecía mucho a MS-DOS y necesitaba recurrir a él para operar. Para el lanzamiento de Windows 2000, Microsoft desarrolló el kernel Windows NT para servidores. Su versión 5.1 fue la primera en llegar de forma masiva a los usuarios junto a Windows XP.

Todas las versiones posteriores de Windows han estado usando avances de Windows NT. Windows NT es conocido por ser muy modular y tener dos capas principales, también denominado como kernel híbrido.

¿Qué es el kernel en un sistema operativo open source?

Independientemente de que sea un sistema operativo de código abierto, el kernel sigue siendo el mismo motor bajo el que se mueve el sistema operativo. Cuando hablamos de la historia de Linux, hablamos de que Richard Stallman estaba creando su propio sistema operativo, y unir su sistema operativo con el kernel que estaba desarrollando Linus Torvalds. Este kernel es el que se conoce como kernel de Linux, un sistema operativo open source que permite que te modifiques el sistema operativo y luego hagas con él lo que quieras, incluso tener una versión comercial.

¿Cómo funciona el kernel de Linux?

El kernel de Linux comunica entre sí y gestiona los recursos de la manera más eficiente posible, o para la que ha sido programada, pues es uno de los resultados del código libre de Linux. Se encuentra dentro del sistema operativo, y controla todas las funciones principales del hardware, independientemente del tipo de hardware que sea.

linux sistema operativo amd valve steam steamdeck deck kernel fallo error seguridad

En Linux, su kernel se encargara de la gestión de la memoria, de los procesos, de los controladores de los dispositivos, y de la seguridad. Esto es lo que hace en cada sección:

  • En la gestión de la memoria supervisa cuánta memoria se utiliza para almacenar qué tipo de elementos y el lugar en que los guarda.
  • Durante la Gestión de los procesos, el kernel es el que elige qué procesos pueden usar la CPU y cómo la usan.
  • Para los controladores de dispositivos, el kernel actúa como mediador o intérprete entre el hardware y los procesos.
  • En el apartado de Seguridad, este recibe solicitudes de servicio por parte de los procesos para acceder a partes del sistema operativo que necesiten para su funcionamiento.

¿Cómo saber el kernel de mi Android?

El kernel de tu android lo puedes conocer mirando en la aplicación de Ajustes de móvil. Una vez entres, le das al apartado de Información del dispositivo. En cada sabor de de Android de cada fabricante, se incluye el dato en un lugar ligeramente distinto.

kernel de android menu ajustes

Para encontrarlo fácilmente, busca “kernel” en el buscador de la aplicación de ajustes, y podrás encontrar rápidamente qué kernel estás usando en tu Android.

¿Por qué los anticheat de Valorant y Genshin Impact a nivel de kernel son un problema de seguridad?

Ponemos de ejemplo lo que ha pasado con Valorant, y su sistema anticheats que controla a nivel de Ring 0. Para que el software de Riot Games anti-cheat funcione correctamente, requiere un archivo de servicio denominado VGK.SYS que necesita ser ejecutado con permisos de kernel. Cualquier software o sistema operativo basado en la arquitectura x86 se basa en anillos de seguridad, siendo Ring 0 el más interno y con más privilegios. Algunas aplicaciones se ejecutan dentro del Ring 0, de forma que toman el control completo del Kernel.

valorant shooter riot games kernel

EL probnlema con VGK.SYS de Riot Games para Valorant reside en que se ejecuta cuando se inicia el sistema operativo, accediendo al Kernel Mode. Esto da un peligroso agujero de seguridad, además de afectar al rendimiento, aunque no juguemos a Valorant. Está siempre activo en segundo plano consumiendo recursos innecesariamente. De aparecer un bug o exploit en VHK.SYS, el equipo estará completamente expuesto y cualquier atacante malicioso podrá tomar el control del sistema si se encontrara un exploit.

¿Qué pasó con Genshin Impact y su anticheat?

En el caso de Genshin Impact, su protección anticheats es mhyprot2.sys. A finales de julio de 2022, un se descubrió que el juego tendría problemas mucho más importantes relacionados con ese mismo archivo. Funciona como un controlador de dispositivo y tiene autorización a nivel de kernel dentro del ordenador. Aprovechando la popularidad del juego, se distribuyó una versión infectada del anti-cheat acompañada de un archivo kill.svc, que instala bael servicio y ejecutaba un falso antivirus AVG descargando varios archivos como ransomware. Este ransomware también cerraría varios otros antivirus que normalmente protegerían a los usuarios. La carga del ransomware cifraba archivos y los inutilizaba, para desplegarse en otros ordenadores a través de un proceso PsExec. Esto daba la posibilidad de que un ransomware se abriera abrirse paso por la red si estuviera conectado, e infectaría a más ordenadores.

Así que, si manejas un ordenador que esté conectado por red a otros sistemas con material delicado, no innstales ningún juego que tenga un anti-cheat a nivel de kernel.

Mostrar más

Benjamín Rosa

Madrileño cuya andadura editorial empezó en 2009. Me encanta investigar curiosidades que después os traigo a vosotros, lectores, en artículos. Estudié fotografía, habilidad que utilizo para crear fotomontajes humorísticos.

Publicaciones relacionadas

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Botón volver arriba
Cerrar

Bloqueador de anuncios detectado

Este sitio se financia mediante el uso de publicidad, miramos en todo momento que la misma no sea demasiado intrusiva para el lector y priorizamos la experiencia del mismo en la web. Pero si bloquea los anuncios, parte de nuestra financiación se verá mermada.