4 ms·
There have been PCI FPGA boards available for a long time that can access main memory, I had them in my desktop machines nearly 20 years ago.
by rjsw 6y ago
There have been PCI FPGA boards available for a long time that can access main memory, I had them in my desktop machines nearly 20 years ago.
- mhh__ 6y agoAttacking a hypothetical poorly isolated on-chip FPGA seems like the mother of all exploits, thinking about it
- rjsw 6y agoThe boards that I have used could not reprogram the FPGA over the PCI bus.
- mhh__ 6y agoI was thinking aloud about the memory rather than the actual FPGA bitstream
- rowanG077 6y agoWhy? To make an FPGA do what you want you need to be able to reconfigure it. If you have reconfiguration capability you need to have remote code execution. And in that case you have already lost.
- mhh__ 6y agoAs in, the FPGA would have to be carefully segmented so the accelerator couldn't be used to access memory it shouldn't have access to. I don't think it would happen in a general purpose chip but I could see it happening in a smaller one like the exploits christopher Domas demonstrated against some embedded X86 cores.
- rowanG077 6y agoWhy though? Your Integrated Intel or AMD GPU can also access all of your memory. I don't see how an FPGA provides any additional attack vector. As I said you'd need code execution privileges anyway and once you have that your system is already owned.
- rowanG077 6y agoYes through the PCI bus not directly. You don't want to have that latency. You want a unified model. Like Intel GPUs that can access main memory, or the FPGA being another endpoint in AMDs infinite fabric architecture. That exists as well in SoCFPGA boards. But not in the mid or high performance segments.
- rjsw 6y agoBack when AMD released the first Opteron CPUs there was a vendor selling an FPGA that would plug into an Opteron socket along with the IP to implement HyperTransport in the FPGA.
- kijiki 6y agoReally? I used a HT FPGA back then, but it came on an HTX card that fit into the HTX slot on the motherboard. Never heard of putting it into the socket, would be a real pain to attach JTAG to program/debug your design...