Kernel Patch Protection ( KPP ), conocida informalmente como PatchGuard , es una característica de las ediciones de 64 bits ( x64 ) de Microsoft Windows que impide aplicar parches al kernel . Se introdujo por primera vez en 2005 con las ediciones x64 de Windows XP y Windows Server 2003 Service Pack 1. [1]
"Parchear el kernel" se refiere a la modificación no compatible del componente central o kernel del sistema operativo Windows. Microsoft nunca ha respaldado dicha modificación porque, según Microsoft, puede reducir en gran medida la seguridad, la confiabilidad y el rendimiento del sistema. [1] Aunque Microsoft no lo recomienda, es posible parchear el kernel en las ediciones x86 de Windows; sin embargo, con las ediciones x64 de Windows, Microsoft optó por implementar protección adicional y barreras técnicas para la aplicación de parches al kernel.
Dado que es posible aplicar parches al kernel en las ediciones de Windows de 32 bits (x86), varios desarrolladores de software antivirus utilizan parches del kernel para implementar antivirus y otros servicios de seguridad. Estas técnicas no funcionarán en computadoras que ejecutan ediciones x64 de Windows. Debido a esto, Kernel Patch Protection hizo que los fabricantes de antivirus tuvieran que rediseñar su software sin utilizar técnicas de parcheo del kernel.
Sin embargo, debido al diseño del kernel de Windows, Kernel Patch Protection no puede impedir completamente la aplicación de parches al kernel. [2] [3] Esto ha llevado a la crítica de que dado que KPP es una defensa imperfecta, los problemas causados a los proveedores de antivirus superan los beneficios porque los autores de software malicioso simplemente encontrarán formas de eludir sus defensas. [4] [5] Sin embargo, Kernel Patch Protection aún puede prevenir problemas de estabilidad, confiabilidad y rendimiento del sistema causados por software legítimo que parchea el kernel de manera no compatible.
El kernel de Windows está diseñado para que los controladores de dispositivos tengan el mismo nivel de privilegio que el propio kernel. [6] Se espera que los controladores de dispositivos no modifiquen ni parcheen las estructuras centrales del sistema dentro del kernel. [1] Sin embargo, en las ediciones x86 de Windows, Windows no impone esta expectativa. Como resultado, algunos programas x86, en particular ciertos programas antivirus y de seguridad , fueron diseñados para realizar tareas necesarias mediante la carga de controladores que modifican las estructuras centrales del núcleo. [6] [7]
En las ediciones x64 de Windows, Microsoft comenzó a imponer restricciones sobre qué estructuras los controladores pueden y no pueden modificar. Kernel Patch Protection es la tecnología que hace cumplir estas restricciones. Funciona comprobando periódicamente que las estructuras protegidas del sistema en el kernel no hayan sido modificadas. Si se detecta una modificación, Windows iniciará una verificación de errores y apagará el sistema, [6] [8] con una pantalla azul y/o reiniciará. El número de verificación de error correspondiente es 0x109, el código de verificación de error es CRITICAL_STRUCTURE_CORRUPTION. Las modificaciones prohibidas incluyen: [8]
Kernel Patch Protection solo protege contra controladores de dispositivos que modifican el kernel. No ofrece ninguna protección contra un controlador de dispositivo que parchee a otro. [10]
En última instancia, dado que los controladores de dispositivos tienen el mismo nivel de privilegios que el propio kernel, es imposible evitar por completo que los controladores pasen por alto la protección de parches del kernel y luego parcheen el kernel. [2] Sin embargo, KPP presenta un obstáculo importante para el éxito de la aplicación de parches al kernel. Con un código muy confuso y nombres de símbolos engañosos, KPP emplea seguridad mediante oscuridad para impedir los intentos de eludirlo. [6] [11] Las actualizaciones periódicas de KPP también lo convierten en un "objetivo móvil", ya que las técnicas de derivación que pueden funcionar durante un tiempo probablemente dejen de funcionar con la siguiente actualización. Desde su creación en 2005, Microsoft ha lanzado hasta ahora dos actualizaciones importantes para KPP, cada una diseñada para romper las técnicas de derivación conocidas en versiones anteriores. [6] [12] [13]
Microsoft nunca ha apoyado la aplicación de parches al kernel porque puede causar una serie de efectos negativos. [7] Kernel Patch Protection protege contra estos efectos negativos, que incluyen:
Las preguntas frecuentes sobre la protección de parches del kernel de Microsoft explican con más detalle:
Debido a que los parches reemplazan el código del kernel con código desconocido y no probado, no hay forma de evaluar la calidad o el impacto del código de terceros... Un examen de los datos del Análisis de fallas en línea (OCA) en Microsoft muestra que las fallas del sistema comúnmente resultan de ambos Software malicioso y no malicioso que parchea el kernel.
— "Protección de parches del kernel: preguntas frecuentes". Microsoft . 22 de enero de 2007 . Consultado el 22 de febrero de 2007 .
Algunos programas de seguridad informática, como McAfee VirusScan de McAfee y Norton AntiVirus de Symantec , funcionaban parcheando el kernel en sistemas x86. [ cita necesaria ] Se sabe que el software antivirus creado por Kaspersky Lab hace un uso extensivo de parches de código del kernel en las ediciones x86 de Windows. [16] Este tipo de software antivirus no funcionará en computadoras que ejecutan ediciones x64 de Windows debido a Kernel Patch Protection. [17] Debido a esto, McAfee pidió a Microsoft que eliminara KPP de Windows por completo o hiciera excepciones para el software creado por "empresas de confianza" como ellos mismos. [4]
El software antivirus corporativo de Symantec [18] y la gama Norton 2010 y posteriores [19] funcionaron en ediciones x64 de Windows a pesar de las restricciones de KPP, aunque con menos capacidad para brindar protección contra malware de día cero. Software antivirus fabricado por los competidores ESET , [20] Trend Micro , [21] Grisoft AVG, [22] avast! , Avira Anti-Vir y Sophos no parchean el kernel en las configuraciones predeterminadas, pero pueden parchear el kernel cuando funciones como "protección avanzada de procesos" o "evitar la terminación no autorizada de procesos" están habilitadas. [23]
Microsoft no debilita la protección de parches del kernel haciendo excepciones, aunque se sabe que Microsoft relaja sus restricciones de vez en cuando, por ejemplo, en beneficio del software de virtualización de hipervisor . [10] [24] En cambio, Microsoft trabajó con empresas de terceros para crear nuevas interfaces de programación de aplicaciones que ayudan al software de seguridad a realizar las tareas necesarias sin parchear el kernel. [15] Estas nuevas interfaces se incluyeron en Windows Vista Service Pack 1 . [25]
Debido al diseño del kernel de Windows, Kernel Patch Protection no puede impedir completamente la aplicación de parches al kernel. [2] Esto llevó a los proveedores de seguridad informática McAfee y Symantec a decir que, dado que KPP es una defensa imperfecta, los problemas causados a los proveedores de seguridad superan los beneficios, porque el software malicioso simplemente encontrará formas de sortear las defensas de KPP y el software de seguridad de terceros tendrá menos libertad de acción para defender el sistema. [4] [5]
En enero de 2006, investigadores de seguridad conocidos con los seudónimos "skape" y "Skywing" publicaron un informe que describe métodos, algunos teóricos, a través de los cuales se podría eludir la protección de parches del kernel. [26] Skywing publicó un segundo informe en enero de 2007 sobre cómo evitar la versión 2 de KPP, [27] y un tercer informe en septiembre de 2007 sobre la versión 3 de KPP. [28] Además, en octubre de 2006, la empresa de seguridad Authentium desarrolló un método de trabajo para evitar KPP. [29]
Sin embargo, Microsoft ha declarado que está comprometido a eliminar cualquier falla que permita omitir KPP como parte de su proceso estándar del Centro de respuesta de seguridad. [30] De acuerdo con esta declaración, Microsoft ha lanzado hasta ahora dos actualizaciones importantes para KPP, cada una diseñada para romper las técnicas de derivación conocidas en versiones anteriores. [6] [12] [13]
En 2006, la Comisión Europea expresó su preocupación por la Kernel Patch Protection, diciendo que era anticompetitiva . [31] Sin embargo, el propio producto antivirus de Microsoft, Windows Live OneCare , no tenía ninguna excepción especial a KPP. En cambio, Windows Live OneCare utilizó (y siempre había utilizado) métodos distintos de parchear el kernel para proporcionar servicios de protección antivirus. [32] Aún así, por otras razones, una edición x64 de Windows Live OneCare no estuvo disponible hasta el 15 de noviembre de 2007. [33]
Artículos de Uninformed.org:
Enfoques de bypass de trabajo
Avisos de seguridad de Microsoft: