¿Puede el malware tener un código firmado?
Sí.
Se han firmado muchas piezas de malware, incluido Stuxnet, y el malware incluido recientemente con CCleaner se ha firmado, en el caso de Stuxnet esto se probablemente se realizó mediante el robo del certificado de firma, mientras que en el En el caso del ataque de CCleaner, parece que se hizo al infectar el servidor de compilación, de modo que inyectaría malware antes de firmar el lanzamiento.
¿Cómo puede Microsoft garantizar que solo las Autoridades de Certificación (CA) pueden crear un código firmado?
Las CA no crean código directamente, emiten certificados, que luego los desarrolladores usan para firmar sus ejecutables.
Por ejemplo, si FooBar Widgets lanzó una aplicación, podrían firmarla con un certificado como este:
Root CA
Intermediate CA
FooBar Widgets
Si su computadora confía en la CA raíz, confiará en el certificado para FooBar Widgets, y mostrará la solicitud firmada para el programa, en lugar de la que está sin firmar.
Como tal, hay 4 formas principales de tratar de evitar este tipo de firma de código:
- Rompe el esquema de firma (como hizo Flame)
- Engaña a la CA para que haga un certificado falso (Más común en certificados SSL)
- Robar el certificado de firma (estilo Stuxnet)
- Engaña a la compañía para que firme su malware (estilo CCLeaner)
Referencias