Como consecuencia de la forma en que Windows 2000 y XP determina si un
certificado digital es de confianza, es posible que un atacante firme
digitalmente un programa para que sea instalado, sin que el sistema
operativo lo impida.
Los sistemas operativos Windows 2000 y XP incluyen una característica
denominada protección de archivos que protege los archivos del sistema.
Si esta característica determina un cambio en un archivo de una carpeta
protegida, obtiene su firma digital a partir del archivo de catálogo.
Esto le permite identificar si el nuevo archivo es la versión firmada
por Microsoft (para los archivos de sistemas, controladores de
dispositivo y otros archivos del sistema operativo) o bien por el
Microsoft Hardware Compatibility Qauality Labs. En caso negativo,
restaura una copia del archivo original.
Se ha descubierto que este mecanismo de protección puede ser fácilmente
saltado ya que para Windows, cualquier certificado emitido por una CA
presente en la base de datos de autoridades de certificación, sirve para
firma digital de código. Esto incluye no sólo a los certificados
emitidos para firmar código, sino también a los certificados de servidor
utilizados en las conexiones HTTPS.
Esto no debería ser un problema ya que, en teoría, la obtención de un
certificado digital requiere la correcta identificación del propietario
del certificado. No obstante, cualquiera puede obtener un certificado
digital de forma gratuita e instantánea, a través de
http://www.freessl.com. Estos certificados están firmados por la CA
USERTRUST que es reconocida nativamente por Windows e Internet Explorer.
Los certificados emitidos por esta autoridad de certificación pueden
utilizarse para la firma de programas, utilizando la utilidad
SIGNCODE.EXE facilitada por Microsoft. Lo mismo sucede con los
certificados emitidos por las otras CA incluidas en el repositorio de
Windows. La diferencia es que los certificados emitidos por freessl.com
se pueden obtener de forma totalmente anónima.
El resultado de todo lo que hemos explicado hasta ahora es que
cualquiera puede obtener un certificado digital y utilizarlo para firmar
cualquier programa, virus o troyano. Este programa digitalmente firmado
podrá ser instalado en Windows, sin que el sistema detectara el cambio.
Las implicaciones que puede tener este problema de seguridad todavía son
difíciles de evaluar. No obstante, es preciso recordar que la firma
digital del código es uno de los mecanismos en que se pretende basar la
iniciativa de seguridad Palladium de Microsoft.
Hoy por hoy, la única forma de evitar estos problemas por utilizar las
políticas de restricción de software de Windows XP (o Windows .NET
Server) para verificar que cualquier archivo que vaya a ejecutarse no ha
sido modificado.
xavi@hispasec.com
Más información:
Windows File Protection Arbitrary Certificate Chain Vulnerability
http://www.science.org/secalert/WFP_Arbitrary_Certificate_Chain_Vulnerability.txt
http://online.securityfocus.com/archive/1/304480/2002-12-23/2002-12-29/1
http://lists.insecure.org/lists/vulndiscuss/2002/Dec/0011.html
http://www.secunia.com/advisories/7793/
http://www.der-keiler.de/Mailing-Lists/Securiteam/2002-12/0095.html
http://www.security.nnov.ru/search/document.asp?docid=3917
Descripción de la característica de protección de archivos de Windows 2000
http://support.microsoft.com/default.aspx?scid=kb;ES-ES;222193
How to remove a root certificate from the trusted root store
http://support.microsoft.com/default.aspx?scid=kb;ES-ES;293819
Trusted Root Certificates that are required by Windows 2000
http://support.microsoft.com/default.aspx?scid=kb;ES-ES;293781
How to Use Software Restriction Policies in the Windows .NET Server Family
http://support.microsoft.com/support/kb/articles/324/0/36.ASP
Description of the Software Restriction Policies in Windows XP
http://support.microsoft.com/default.aspx?scid=KB;es-es;310791
Una-al-día (05-08-02): Palladium y TCPA: La respuesta de la industria para mejorar
la seguridad… ¿o tal vez es algo distinto?
http://www.hispasec.com/unaaldia.asp?id=1380
Análisis técnico de TCPA y Palladium
http://wintermute.homelinux.org/miscelanea/Seguridad%20en%20TCPA.txt
Deja una respuesta