JTAG o Joint Test Action Group è uno standard per il debug. Molte schede madri moderne, sia su dispositivi mobili che su desktop e workstation, hanno porte JTAG. Consentono a una CPU di essere controllata come un burattino, principalmente per il debug. Ho ascoltato informazioni contrastanti sull'uso di JTAG. Da un lato, ho sentito che le porte JTAG devono essere inserite, quindi il reset della CPU perché funzioni. È vero o JTAG può essere utilizzato mentre il sistema è acceso e in esecuzione? Se può essere utilizzato mentre il sistema è in esecuzione, quali attenuazioni ci sono per impedire che venga utilizzato come vettore di attacco per dirottare un sistema in esecuzione? Sono particolarmente curioso dell'uso di JTAG sulle moderne schede madri server con CPU Intel, non tanto sui telefoni cellulari. So che devi firmare una NDA per accedere agli strumenti necessari per utilizzare la loro porta JTAG, ma si spera che questa domanda non sia coperta da tali restrizioni.
In altre parole, JTAG supporta hotplugging per controllare una CPU come PCIe, o è più simile a PCI dove devi collegarlo e riavviare il sistema con esso inserito per il debug (e gli attacchi) per funzionare?