#26 No, al final todos los Windows estan igual de abiertos. Pero Microsoft sabe que lo que dice no es cierto, lo sabe, aunque esto que dice pueda parecer cierto, no lo es. Lo medioexplico en #96.
Por otra parte, una vez dejas acceso a kernel, se abre la veda, cosas como PatchGuard y demas estan ahi, pero kernel es kernel... ( si, puedes usar HyperVisor y se usa cuando esta disponible y si se mete Hyper-V o tal, pero... incluso con un hypervisor "mirando" puedes hacer de todo en modo kernel ).
Dicho todo esto, pero, aqui se han juntado varios temas, y la culpa, siento decirlo, es enteramente de CrowdStrike.
#16 Pues es algo mediorecurrente o un lloro/pataleta de Microsoft que no es la primera vez que sale, aunque sea en ambitos de desarrollo de drivers o temas de software de seguridad. Pero el caso es que es una verdad a medias o a cuartas...
Es cierto que Microsoft quiere y por lo general intenta hacer las cosas internamente y no lo pone facil para que otros desarrolladores actuen a su mismo nivel ( esto es hablando de nivel de abstraccion, no de privilegios ).
Sin embargo, si que hay APIs e incluso frameworks para que los desarrolladores de drivers puedan hacer filtros de ficheros, filtros de disco, filtros PnP, filtros de RED ( WFP y NDIS ),..., que basicamente son la forma ordenada de interceptar actividad de bajo nivel para los fabricantes de AntiVirus y otro software de seguridad.
A Microsoft le jode, sobre todo, que se hagan cosas a lo hackish y que por culpa de terceros Windows tenga mas BSODs de la cuenta y gane mala fama por ello.
En esa linea, ademas de proveer esas APIs y frameworks, ofrece y exige tests de certificacion y firmado de esos drivers de terceros. Estos tests solo son obligatorios en ciertos escenarios, segun driver, version de Windows y requisitos de logo y demas. Lo minimo es que los drivers esten firmados por la empresa que sea.
Tambien esta el famoso PatchGuard, que intenta evitar que desarrolladores de software de seguridad Y desarrolladores de malware, ambos, hagan hooks en el sistema operativo ( sean de codigo directo, sea en punteros en tablas de native API, sean en imports o exports de drivers o kernel,...
El tema es que:
- La adherencia a las reglas de APIs y framworks ayuda, pero su complejidad, interaccion con otros softwares de seguridad, etc. hace del ecosistema un entorno relativamente hostil...
- PatchGuard se puede saltar ( en caliente o en arranque ), aunque cueste y cada version de Windows suponga un trabajo extra para saltarselo. Y tanto malware como parte del software de seguridad se lo salta ( para cosas algo... bueno, digamos que esos frameworks y APIs no llegan a ciertas cosas y puede hacer falta hooks.
- Aunque Microsoft pudiera cerrar mucho mas la cosa, deberia dejar, como minimo, ejecucion en modo kernel, o sea, drivers, no hay tu tia, salvo que fuerces a terceros a hacer "drivers" de modo usuario y nada mas. Pero es Windows el que no esta preparado para eso ( si, hay un framework de drivers de modo usuario, pero esta limitado a unas pocas cosas ). Y una vez tienes que dejar poder cargar modulos de modo kernel, por mucho que Microsoft "cerrara" eso que llora, las empresas de seguridad abririan lo que haga falta, hubiese APIs o no, hubiese frameworks o no,...
- La firma de drivers, sea por Microsoft habiendo pasado certificaciones o sea solo por la empresa de software de seguridad, tambien tiene su discusion y medias verdades:
- al igual que PatchGuard, las empresas de software de seguridad o los que hacen malware, pueden saltarse el tema ( las empresas de software teniendo un primer driver firmado pero luego cargando modulos "manualmente", que es lo que parece que ha sido uno de los temas en este caso de CrowdStrike, esos "dodgy channel files" son drivers pequeños que se despliegan y cargan como plugins, parece, y el despliegue y carga de ese C-00000291-...sys ha fallado, porque esta todo lleno de 00s en fichero, se envia mal, no se sanitiza al cargar y ejecuta basura o ni siquiera ejecuta, peta al procesarse ) y los desarrolladores de malware consiguiendo certificados para firma de forma fraudulenta.
Fdo.: Alguien que trabaja para empresas de seguridad haciendo este tipo de software.