Quelltext des Bus Agent Runtime Monitor (BARM)

Der BARM-Quelltext ist für 'Intel(R) Core(TM)2' Prozessoren gedacht (z.B. 'Intel(R) Core(TM)2 Quad CPU Q9650' oder 'Intel(R) Core(TM)2 CPU 6400'). BARM wurde als Linux Kernel Module (LKM) für die SliTaz GNU/Linux Distribution (Kernel 2.6.37-slitaz) realisiert. Der Quelltext ist über die GitLab-Instanz des Lehrstuhls SecT verfügbar: https://gitlab.sec.t-labs.tu-berlin.de/ehac/busagentruntimemonitor.

Klonen des Repositorys

Das Resository kann mittels

git clone https://gitlab.sec.t-labs.tu-berlin.de/ehac/busagentruntimemonitor.git
geklont werden. Sollte git beim Klonen ein Problem mit dem SSL-Zertifikat haben, kann eventuell dieser Link helfen.

Laden des Kernel-Moduls

Bevor das eigentlich BARM-Modul geladen werden kann, muss sichergestellt sein, dass der gepatchte e1000e Treiber für die Netzwerkkarte geladen wurde. Dafür können die Treiberdateien von

/usr/src/linux/drivers/net/e1000e/
beispielsweise in das geklonte Repository unter
busagentruntimemonitor/slitaz-2.6.37/e1000e/
kopiert werden. Anschließend können die Datein gepatcht werden:
patch < Makefile.patch
patch < netdev.patch
Der gepatchte e1000e Treiber kann dann mittel make gebaut und anschließend mit ./insmod.sh geladen werden.

Ist der gepatchte e1000e Treiber geladen, kann im Repository-Verzeichnis busagentruntimemonitor das BARM-Modul mit make gebaut und anschließend via insmod ./barm.ko geladen werden.

Modulbeschreibung

Eine kurze Beschreibung des Kernel-Moduls kann mit modinfo ./barm.ko angezeigt werden:

filename:       ./barm.ko
description:

   This kernel module represents a proof of concept
   implementation of the Bus Agent Runtime Monitor (BARM)
   as described in:

   Patrick Stewin, "A Primitive for Revealing Stealthy
   Peripheral-based Attacks on the Computing Platform's Main
   Memory", Proceedings of the 16th International Symposium
   on Research in Attacks, Intrusions and Defenses (RAID),
   St. Lucia, October 23 - 25, 2013

   The module permanently monitors bus agents (THIS_AGENT
   ALL_AGENTS) regarding external bus events, e.g.:

                BUS_TRANS_ANY   0x70
                BUS_TRANS_BRD   0x65
                BUS_TRANS_BURST 0x6e
                BUS_TRANS_DEF   0x6d
                BUS_TRANS_INVAL 0x69
                BUS_TRANS_IO    0x6c
                BUS_TRANS_MEM   0x6f
                BUS_TRANS_P     0x6b
                BUS_TRANS_PWR   0x6a
                BUS_TRANS_RFO   0x66
                BUS_TRANS_WB    0x67

   For additional information see:
   https://software.intel.com/sites/products/documentation/
   doclib/stdxe/2013/~amplifierxe/pmp/index.htm#events/about
   _external_bus_events.html

   Usage (module parameters and default values):
                insmod ./barm.ko [T=50] [pmc_delay=32]
                        [event=0x6f] [evaluation_end=10]

                T               - tolerance value
                pmc_delay       - performance monitoring counter
                                  sampling interval
                event           - external bus event
                evaluation_end  - stop BARM after n evalution
                                  runs

   author:         ehac@sec.t-labs.tu-berlin.de
   license:        GPL v2
   vermagic:       2.6.37-slitaz SMP mod_unload 586
Weitere Informationen zu BARM finden sich unter Veröffentlichungen und weitere Informationen.

 
01IS12056




Security in Telecommunications / Technische Universität Berlin.
Alle Webseiteninhalte © 2013 -- 2014, FG Security in Telecommunications.