Una aplicació que s'executa a Windows bàsicament el que fa és processar els missatges que va rebent. Qualsevol programa té la capacitat d'enviar missatges a d'altres programes i no hi ha cap sistema d'autenticació, el que obre la possibilitat a un nou món de vulnerabilitats de seguretat.
“Exploiting design flaws in the Win32 API for privilege escalation – or Shatter Attacks – How to break Windows” és un article que presenta un nou mètode per a atacar els sistemes basats en Win32 (i amb la possibilitat que d'altres entorns basats en el procés de missatges es vegin igualment afectats). El més important d'aquesta vulnerabilitat és que no té una solució fàcil. Almenys no mitjançant l'aplicació d'un simple pegat, ja que es tracta d'un problema en el propi disseny de l'entorn.
És possible que els lectors recordin que fa uns mesos, en ple procés antimonopoli, un vicepresident de Microsoft va indicar que no era possible publicar el codi font de Windows ja que això posaria al descobert l'existència d'alguns problemes de seguretat, especialment en la gestió de missatges per part del nucli. De ser identificats aquests problemes, argumentava, es posaria la seguretat nacional (dels EUA) en compromís.
Si bé les declaracions d'aquest vicepresident van ser ràpidament desmentides, l'autor de l'article al que fem referència, va començar a investigar com funciona la gestió de missatges en els sistemes operatius Windows.
L'estructura d'un programa Windows es pot simplificar, molt superficialment, de la següent forma: el programa està constantment rebent missatges que són enviats pel nucli i els altres programes en execució. La seva missió consisteix a processar tots aquells per als quals el programador ha inclòs alguna acció. Per exemple, cada vegada que es prem una tecla, Windows envia el missatge WM_KEYDOWN a l'aplicació que està en primer pla. Tots els missatges generats es situen en una cua i són processats de forma seqüencial per cada aplicació.
El problema de seguretat es troba en el fet que Windows permet a una aplicació en execució enviar un missatge a qualsevol finestra oberta al mateix ordinador (o escriptori, per a ser més exactes), amb independència de si la finestra receptora té alguna relació amb l'aplicació que emet el missatge o de si el receptor de missatges desitja rebre els missatges que li són enviats. Addicionalment, Windows no facilita a les aplicacions cap mecanisme per a determinar l'autenticació de l'emissor del missatge.
És justament aquesta manca de funcions d'autenticació la qual pot ser aprofitada en aquest tipus d'atacs. Una aplicació malèvola pot enviar un missatge a un programa que s'està executant amb el qual pot manipular les finestres i els processos del programa receptor del missatge.
La bona notícia és que aquesta mena d'atacs, ara per ara, només poden realitzar-se en local.
Per a saber més
Exploiting design flaws in the Win32 API for privilege escalation – or Shatter Attacks – How to break Windows
http://www.zerosecurity.de/...
Alguns problemes de Windows, pels quals no hi ha (ni haurà) cap solució
http://www.caballe.com/categories/seguretat/2003/10/19.html#a793
Resposta de Microsoft: 'Això no és un problema de seguretat'
http://security.tombom.co.uk/response.txt
|