JTAG, o Joint Test Action Group, es un estándar para la depuración. Muchas placas base modernas, tanto en dispositivos móviles como en computadoras de escritorio y estaciones de trabajo tienen puertos JTAG. Permiten controlar una CPU como un títere, principalmente para la depuración. He escuchado información contradictoria sobre el uso de JTAG. Por un lado, he escuchado que los puertos JTAG deben insertarse, luego se reinicia la CPU para que funcione. ¿Es esto cierto o puede usarse JTAG mientras el sistema está encendido y en ejecución? Si se puede usar mientras el sistema está en ejecución, ¿qué mitigaciones existen para evitar que se use como un vector de ataque para secuestrar un sistema en ejecución? Tengo una curiosidad especial por el uso de JTAG en las placas base de los servidores modernos con CPU Intel, no tanto en los teléfonos móviles. Sé que tiene que firmar un NDA para acceder a las herramientas necesarias para usar su puerto JTAG, pero espero que esta pregunta no esté cubierta por tales restricciones.
En otras palabras, ¿admite JTAG la conexión en caliente para controlar una CPU como PCIe, o es más como una PCI donde tienes que enchufarla y reiniciar el sistema con ella insertada para que la depuración (y los ataques) funcione?