EmetRules


 

 05/12/13. Versión 0.2


Emet Rules

EmetRules es una sencilla herramienta por línea de comando que crea una configuración para ser importada a EMET, de manera que el usuario no necesite realizar ninguna acción.

Para “pinear” un dominio con EMET, es necesario:

  • Consultar el certificado de ese dominio.
  • Comprobar cuál es el raíz en el que confía finalmente la conexión.
  • Mirar su huella digital.
  • Crear la regla encontrando el certificado en el repositorio.
  • Asociar el dominio a la regla correspondiente.

Los pasos se resumen en la imagen que mostramos en esta página.

Es un proceso bastante tedioso, sobre todo si se quieren “pinear” un buen número de dominios. En ElevenPaths hemos estudiado el funcionamiento de EMET, y creado EmetRules, una pequeña herramienta por línea de comando que permite realizar todo el trabajo en un solo paso. Además permite realizarlo por lotes. Esto es, se conectará al dominio o lista de dominios indicada, visitará por el puerto 443 la página, extraerá la SubjectKey del certificado raíz devuelto, validará la cadena de certificación, creará la regla en EMET y además, la “pineará” junto al dominio. Todo en un solo paso.

El funcionamiento es simple. Se le proporciona un listado de dominios, y creará el archivo XML correspondiente que podrá ser importado a EMET, incluso desde la propia herramienta (por línea de comando).

Además, ahora incluye un Plugin para que pueda ser usada de forma más cómoda desde Internet Explorer.

Permite algunas opciones, ya que hay parámetros y opciones configurables:

Parámetros: 
“urls.txt”: El fichero que contiene los dominios, separados por retorno de carro. Los dominios pueden tener el subdomino “www” o no. Si no es así, el programa intentará usar los dos, a menos que se especifique lo contrario con la opción “-d”.

“output.xml”: especifica la ruta y nombre de fichero donde se creará el fichero XML de configuración que EMET necesita. Si ya existe, el programa preguntará si debería sobrescribirse, a menos que se especifique lo contrario con la opción “-s”.

Opciones: 
t|timeout=X: Establece el timeout en milisegundos para la petición. Entre 500 y 1000 milisegundos son los recomendados, aunque depende de las hebras establecidas. El valor 0 por defecto indica que no hay timeout. En ese caso el programa intentará conectar hasta que la conexión expire.

“s”, Silent mode: No se genera ninguna salida ni se hacen preguntas. Una vez terminado, tampoco preguntará si se desea configurar EMET importando el XML.

“e”: Esta opción genera un fichero txt llamado “error.txt” que contiene el listado de dominios que han generado un error en la conexión por cualquier razón. Este listado se puede usar de nuevo para intentarlo con el programa.

“d”: Esta opción deshabilita la doble comprobación. Esto significa intentar conectarse al dominio principal y a su subdominio “www”. Si se especifica el dominio con “www” en la lista, no se intentará otro. Si no se especifica, se intentarán los dos. Con esta opción activa, no.

c|concurrency=X: Establece el número de hebras con las que correrá el programa. Son el número de conexiones concurrentes. Se recomiendan unas 8. Por defecto será solo de una.

“u”: Cada vez que se lance el programa, contactará con los servidores centrales para comprobar si existe una versión nueva. Esta opción deshabilita esta comprobación.

“ie”: Muestra menos información y sobrescribe el xml de apoyo.

La herramienta está pensada para administradores y usuarios avanzados que utilicen Internet Explorer y quieran recibir una alerta cuando se sospeche que la conexión a un dominio puede estar siendo alterada. Si bien el sistema de pineo de EMET no es ni mucho menos perfecto, e incluso la alerta que emite es muy tímida (sigue permitiendo visitar la web), es el primer paso de lo que seguro será una funcionalidad mejorada en el futuro. Ciertos dominios devuelven diferentes certificados raíces válidos, dependiendo del país desde el que se visite u otras circunstancias. La herramienta por su parte, no permite pinear varios certificados a un mismo dominio, por lo que estará ligada al lugar donde se ejecute.