The emergence of the internet of things (IoT) has introduced embedded systems into insecure environments. In addition to just transmitting sensitive information, some IoT devices use this information to make independent decisions. This so-called edge computing requires the devices to be adaptable to different computing tasks. The external dynamic random access memory (DRAM) chips used in embedded devices offer flexible configuration options to suit the various applications. However, they also increase the attack surface of the system against hardware attacks.
Hardware tampering methods are maturing and becoming more accessible. The communication between different integrated circuits (IC) on a printed circuit board (PCB) can be intercepted and modified. This is achieved with an added tampering circuit such as a modchip. Modchips have even been created by hobbyists to bypass security restrictions on home entertainment systems.
This thesis proposes a method for detecting DRAM bus tampering on the hardware level. Attaching a modchip, or another tampering device, to the DRAM bus requires modifications to the physical connections on the bus. The proposed method is based on detecting changes in the impedance of the DRAM bus caused by malicious modifications. The impedance changes are indirectly measured by introducing controlled DRAM write errors. The errors are created by controlling the data-strobe timing parameters of a memory controller on a double data rate 3 (DDR3) system. More specifically, the data strobe signal and its associated data signal are purposefully misaligned. This creates data writes that store different values to the memory, depending on the electrical properties of the memory bus.
The method is validated with simulations and by constructing a physical test setup. The setup is based on the SoftMC framework that implements a memory controller on a field-programmable gate array (FPGA). The memory controller is modified to support an outside control of the data strobe timings. The method is shown to detect modifications of the DRAM bus, such as an added interposer between the memory chip and the PCB.
Esineiden internetin (IoT) yleistyminen on tuonut sulautettuja järjestelmiä turvattomiin ympäristöihin. Sen lisäksi, että IoT-laitteet lähettävät arkaluonteista tietoa, jotkin niistä myös tekevät itsenäisiä päätöksiä sen perusteella. Tämä niin kutsuttu eunalaskenta vaatii laitteita mukautumaan erilaisiin laskentatehtäviin. Sulautetuissa laitteissa käytettävät ulkoiset muistipiirit (engl. Dynamic random access memory (DRAM)) tarjoavat joustavia kokoonpanovaihtoehtoja erilaisiin sovellutuksiin. Ne kuitenkin myös lisäävät järjestelmän hyökkäyspintaa laitteistotason hyökkäysille.
Menetelmät laitteiston peukalointiin kypsyvät ja ovat helpommin saatavilla. Mikropiirien välinen viestintä piirilevyllä voidaan kaapata, ja sitä voidaan muokata. Tämä toteutetaan lisäämällä piirilevylle peukalointipiiri, kuten Modipiiri. Modipiirejä on luotu harrastelijatasolla kiertämään kodin viihdelaitteston turvallisuusrajoituksia.
Tämä diplomityö esittelee menetelmän DRAM-väylän peukaloinnin havaitsemiseksi laitteistotasolla. Modipiirin tai muun peukalointilaitteen kiinnittäminen DRAM-väylään vaatii muutoksia väylän fyysisiin yhteyksiin. Ehdotettu menetelmä perustuu vihamielisten muokkauksien aiheuttamien väylän impedanssimuutoksien havaitsemiseen. Impedanssimuutoksia mitataan epäsuorasti, aiheuttamalla hallittuja DRAM-kirjoitusoperaation virheitä. Virheet tuotetaan ohjaamalla data-strobe -ajoituksia muistiohjaimessa. Tarkemmin sanottuna, data-strobe -ajoitus ja siihen liittyvä datasignaali epäkohdistetaan tahallisesti. Tämä aiheuttaa datakirjoituksia, jotka tallentavat muistiin eri arvoja, riippuen väylän sähköisistä ominaisuuksista.
Menetelmän toiminta vahvistetaan simulaatioilla ja rakentamalla fyysinen testilaitteisto. Laitteisto perustuu SoftMC-alustaan, joka toteuttaa muistiohjaimen FPGA-piirillä (engl. Field-programmable gate array (FPGA)). Muistiohjainta muokataan tukemaan data-strobe -ajoituksien ulkoista ohjaamista. Menetelmän näytetään pystyvän havaitsemaan DRAM-väylän muokkauksen, kuten muistipiirin ja piirilevyn väliin lisätyn välisovittimen.