IronHide Plate-forme d attaques par entrées-sorties



Documents pareils
Linux embarqué: une alternative à Windows CE?

Ordinateurs, Structure et Applications

Choix d'un serveur. Choix 1 : HP ProLiant DL380 G7 Base - Xeon E GHz

Introduction à l architecture des ordinateurs. Adrien Lebre Décembre 2007

Cahier des charges. driver WIFI pour chipset Ralink RT2571W. sur hardware ARM7

Spécifications détaillées

Manuel de l utilitaire Computer Setup (F10) HP Compaq Business Desktops Modèles d220 et d230

Notions d IPMI et retour. Ecole d électronique numérique Fréjus 28 novembre 2012 Nicolas LETENDRE

Quoi de neuf en contrôle/commande et systèmes embarqués (RIO, WSN...)?

Spécifications détaillées

Systèmes d exploitation

Introduction. Adresses

CONVERTISSEUR RS 232/485 NOTICE

Conception et réalisation d uned architecture tolérant les intrusions pour des serveurs Internet

Gestion de mémoire secondaire F. Boyer, Laboratoire Sardes

Initiation à la sécurité

Attaques applicatives via périphériques USB modifiés : infection virale et fuites d informations

SERVEUR LYNX CALLEO DATACENTER 2460

et dépannage de PC Configuration Sophie Lange Guide de formation avec exercices pratiques Préparation à la certification A+

SERVEUR CALLEO APPLICATION R269M

VMWARE VSPHERE ESXI INSTALLATION

Tout le monde parle du Cloud Computing, Mais qui offre une solution complète? Copyright IBM Corporation, 2009 All Rights Reserved

Limitations of the Playstation 3 for High Performance Cluster Computing

Partie 1. Professeur : Haouati Abdelali. CPGE Lycée Omar Ibn Lkhattab - Meknès haouaticpge@gmail.com

Architecture des calculateurs

Cours Informatique 1. Monsieur SADOUNI Salheddine

Programmation C. Apprendre à développer des programmes simples dans le langage C

Leçon 1 : Les principaux composants d un ordinateur

Internet Protocol. «La couche IP du réseau Internet»

LOT N 1 : ORDINATEURS BORDEREAU DE PRIX IDENTIFICATION DU FOURNISSEUR. Code DESIGNATION QTE PU HT EN EURO MONTANT TOTAL HT EN EURO MONTANT TTC EN EURO

Fiche Technique. Cisco Security Agent

StormShield v4.0 StormShield - Version 4.0 Presentation OSSIR 10 juillet 2006

Thème 3 Conception et vérification d architectures de systèmes sur puce

Une approche de virtualisation assistée par le matériel pour protéger l espace noyau d actions malveillantes

WIFI (WIreless FIdelity)

Présentation du système informatique utilisé et éléments d architecture des ordinateurs

TD Architecture des ordinateurs. Jean-Luc Dekeyser

Structure de base d un ordinateur

LE DISQUE DUR : IDE (Integrated Device Electronique) : La nouvelle référence.

NOTIONS DE RESEAUX INFORMATIQUES

VMware ESX/ESXi. 1. Les composants d ESX. VMware ESX4 est le cœur de l infrastructure vsphere 4.

SRS Day. Attaque BitLocker par analyse de dump mémoire

Haka : un langage orienté réseaux et sécurité

Base de l'informatique. Généralité et Architecture Le système d'exploitation Les logiciels Le réseau et l'extérieur (WEB)

Ordinateurs, Structure et Applications

Modélisation des interfaces matériel/logiciel

Adressage des données des contrôleurs du WAGO-I/O-SYSTEM 750. Note d application

Sur un ordinateur portable ou un All-in-One tactile, la plupart des éléments mentionnés précédemment sont regroupés. 10) 11)

Architecture des ordinateurs Introduction à l informatique

2X ThinClientServer Guide d utilisation

LOT 1 - ACQUISITION DE SERVEURS INFORMATIQUES LOT 2 - ACQUISITION DE 5 POSTES INFORMATIQUES

How To? Sécurité des réseaux sans fils

Le bus USB. I) Introduction : II) Architecture du bus USB :

Sécurité des réseaux wi fi

ATELIERS DE FORMATION TECHNICIEN DE MAINTENANCE INFORMATIQUE

Options indispensables, fortement conseillées pour démarrer sans soucis

Le Network File System de Sun (NFS)

Exécution des instructions machine

-1 - Postes de travail graphiques

Configuration automatique

HP 600PD TWR i G 4.0G 39 PC

Tivoli Endpoint Manager Introduction IBM Corporation

Préparation à la certification LPIC-1 "Junior Level Linux Certification"

COLLEGE ADRIEN CERNEAU

Laboratoire de Haute Sécurité. Télescope réseau et sécurité des réseaux

Routage AODV. Languignon - Mathe - Palancher - Pierdet - Robache. 20 décembre Une implémentation de la RFC3561

Fonctionnement du protocole DHCP. Protocole DHCP (S4/C7)

2. MAQUETTAGE DES SOLUTIONS CONSTRUCTIVES. 2.2 Architecture fonctionnelle d un système communicant.

Ordinateurs, Structure et Applications

Utilisation de matériels industriels avec des outils de virtualisation open source. Open Source dans le monde industriel

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

Chapitre I. La couche réseau. 1. Couche réseau 1. Historique de l Internet

Hiérarchie matériel dans le monde informatique. Architecture d ordinateur : introduction. Hiérarchie matériel dans le monde informatique

Robot WIFIBOT Lab V4. Lab V4.

Serveur Lynx CALLEO Application 2240 Fiches Technique

Démarrage à partir du réseau

MAUREY SIMON PICARD FABIEN LP SARI

Chapitre 2 : Abstraction et Virtualisation

Atelier : Virtualisation avec Xen

Vers du matériel libre

Réseaux. Moyens de sécurisation. Plan. Evolutions topologiques des réseaux locaux

Chapitre : Les Protocoles

Technicien Supérieur de Support en Informatique

Démontage d'un ordinateur

Fiche produit Fujitsu FUTRO X913-T Client léger

Robot WIFIBOT Lab V3. 4 roues motrices

Réseau - VirtualBox. Sommaire

DHCP. Dynamic Host Configuration Protocol

Sélection du contrôleur

Temps Réel. Jérôme Pouiller Septembre 2011

Configurations maximales

NanoSense. Protocole Modbus de la sonde Particules P4000. (Version 01F)

RFID: Middleware et intégration avec le système d'information Olivier Liechti

Présentation d HyperV

Serveur Lynx CALLEO Application 2240S Fiches Technique

Sécuriser son réseau. Sécuriser son réseau Philippe Weill (IPSL/LATMOS) Frédéric Bongat (SSI/GOUV/FR)

Manuel d installation serveurs

Conception de circuits numériques et architecture des ordinateurs

Transcription:

IronHide Plate-forme d attaques par entrées-sorties Fernand Lone Sang, Vincent Nicomette et Yves Deswarte Laboratoire d Analyse et d Architecture des Systèmes(LAAS-CNRS) Groupe Tolérance aux fautes et Sûreté de Fonctionnement informatique (TSF) Symposium sur la Sécurité des Technologies de l Information et des Communications SSTIC 2012 Rennes

Contexte et problématique (1) Des difficultés à protéger efficacement les systèmes informatiques: Complexitécroissante Surface d attaque de plus en plus large Deux principaux vecteurs d attaques sur un ordinateur : logiciel malveillant reposant uniquement sur le processeur exploitation d une vulnérabilité (ex. débordements de tampon) abus de fonctionnalités du système (ex./dev/mem) logiciel malveillant impliquant d autres composants matériels altération de la structure du composant matériel (ex. firmware) abus de fonctionnalités des composants matériels (ex. DMA) 2/43

Contexte et problématique (2) Lespectre de nostravaux de recherche : étude desattaques «hybrides» impliquant àlafoisle logiciel et le matériel, en particulier les attaques par entrées-sorties proposition de contre-mesures génériques à ces attaques Approches possibles pour étudier ces attaques: utiliser un contrôleur d entrées-sorties sur-étagère interfaces spécifiques et actions malveillantes limitées développer un contrôleur d entrées-sorties (ex. avec un FPGA) interfaces spécifiques mais possibilités infinies générer tout type derequêtes (valides etinvalides) sur lesbus identifier et démontrer de nouvelles vulnérabilités ex. [Petroni etal.04,carrier &Grand04,Devine&Vissian 09] 3/43

Sommaire de la présentation 1 Élements d architecture 2 IronHide : contrôleur d entrées-sorties générique 3 Quelques résultats d expérimentations 4 Conclusion & perspectives 4/43

Sommaire de la présentation 1 Élements d architecture 2 IronHide : contrôleur d entrées-sorties générique 3 Quelques résultats d expérimentations 4 Conclusion & perspectives 5/43

Architecture matérielle PC Southbridge 6/43

Espacesd adressage duprocesseur (1) Espace d'adressage principal de la mémoire 4Go/16Eo Zones MMIO réservées aux contrôleurs PCI/PCIe 16Mo/256Mo Espace de configuration PCI/PCIe Limite de la RAM 1Mo 640Ko AGP Video Mémoire étendue Boot ROM ROMs d'extension Mémoire Vidéo Mémoire conventionnelle 64Ko 1Ko Espace Port I/O Ports d'e/s réservés aux contrôleurs PCI/PCIe Port de données Port d'adresse 0xCFC-0xCFF 0xCF8-0xCFB 256 octets 256 octets 256 octets Legacy I/O 256 octets 7/43

Espacesd adressage duprocesseur (2) Southbridge 8/43

Protocolede bus PCIExpress (1) Logique du contrôleur Données Couche Transaction Transaction Layer Packet (TLP) Entête Données ECRC Couche Liaison de données Data Link Layer Packet (DLLP) Numéro de séquence Entête Données ECRC LCRC Couche Physique Trame Numéro de séquence Entête Données ECRC LCRC Trame Couches protocolaires Format des paquets 9/43

Protocolede bus PCIExpress (2) Logique du contrôleur Données Couche Transaction Transaction Layer Packet (TLP) Entête Données ECRC Couche Liaison de données Data Link Layer Packet (DLLP) Numéro de séquence Entête Données ECRC LCRC Catégories Transactions Completion Couche Numéro de Trame Entête Données ECRC LCRC Physique séquence Memory Read oui Memory Couches protocolaires Memory Write Memory Read Lock I/O Configuration IO Read IO Write Configuration Read (Type 0 et Type 1) Configuration Write (Type 0 et Type 1) Format des paquets non oui Message Message non oui oui oui oui Trame 10/43

Protocolede bus PCIExpress (3) Logique du contrôleur Données Couche Transaction Transaction Layer Packet (TLP) Entête Données ECRC Couche Data Link Layer Numéro de séquence Entête Données ECRC Liaison de données Packet (DLLP) +0 +1 +2 +3 LCRC Couche 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 Numéro 0 7 6de 5 4 3 2 1 0 7 6 5 4 3 2 1 0 Trame Entête Données ECRC LCRC Physique séquence Fmt Type T R R TC Reservé D E 0b10 0b0 0000 P Attr R Length Couches protocolaires Requester ID Tag Format des LDBE paquets FDBE Trame Address [32:2] R Données End Cyclic Redundancy Checking (ECRC) Exemple de transaction pour une écriture en mémoire 11/43

Sommaire de la présentation 1 Élements d architecture 2 IronHide : contrôleur d entrées-sorties générique 3 Quelques résultats d expérimentations 4 Conclusion & perspectives 12/43

Caractéristiques souhaitées pourironhide (1) Transactions quelconques PCI Express IronHide Extensible Performant Adaptable Programmable 13/43

Architecture interne d IronHide Légende Logiciel développé IP Core développée IP Core fournie IP Core optionnel Circuit Logique Programmable (FPGA) Logique du contrôleur Processeur embarqué Interruption Contrôleur d'interruptions Bus PLBv46 Couche Transaction Pont PCIe vers PLBv46 Contrôleur mémoire Périphériques divers Couche Liaison de données Xilinx Logicore IP Endpoint Block Plus for PCIe Bus mémoire Bus divers Couche Physique Bus PCIe Architecture matérielle DDR-2 USB RS-232 Ethernet 14/43

Étatd avancement duprototype (1) Détails sur l implémentation actuelle : repose sur des IP-Cores propriétaires, mais libres d utilisation peutgénérer tout type depaquetspciexpress paquets valides, pour utiliser (ou abuser) de fonctionnalités paquets invalides, pour évaluer les implémentations matérielles a un comportement entièrement programmable firmware écriten langage C Détails sur les cartes de développement utilisées : Pico E-17(Express Card, Xilinx Virtex-5, PowerPC) ModularLogix MLX-1000(PCIe, Xilinx Virtex-5, Microblaze) 15/43

Étatd avancement duprototype (2) Quelques pistes d améliorations pour les futurs prototypes : Améliorer les performances actuelles de notre implémentation Déléguer certaines opérations à la partie matérielle Vérification de l intégrité du paquet Filtrage des requêtes que l on ne souhaite pas analyser Renvoi automatique d une completion pour certaines requêtes Utiliser un système d exploitation sur-étagère Linux embarqué Système temps réel (ex. VxWorks) Carte Pico E-17 Carte ModularLogix MLX-1000-XC5V 16/43

Sommaire de la présentation 1 Élements d architecture 2 IronHide : contrôleur d entrées-sorties générique 3 Quelques résultats d expérimentations 4 Conclusion & perspectives 17/43

Description del environnement d expérimentation (1) 18/43

Description del environnement d expérimentation (2) Détection et configuration d IronHide sous Linux user@cible$ sudo lspci -v 00:00.0 Host bridge: Intel Corporation 5520/5500/X58 I/O Hub Subsystem: Intel Corporation Device 4f53 Flags: fast devsel, IRQ 11 Capabilities: [40] #00 [0000] [...] 01:00.0 Memory controller: Pico Computing Device 0e17 (rev 01) Subsystem: Device 4658:0000 Flags: bus master, fast devsel, latency 0, IRQ 255 [virtual] Expansion ROM at d3600000 [disabled] [size=1m] Capabilities: [40] Power Management version 3 Capabilities: [48] MSI: Enable- Count=1/1 Maskable- 64bit+ Capabilities: [60] Express Endpoint, MSI 00 Capabilities: [100] Device Serial Number 00-00-00-01-01-00-0a-35 19/43

Exempled analysedetrafic (1) 20/43

Exempled analysedetrafic (2) Configuration dela machine d expérimentation 1 user@cible$ sudo lspci -v -s 02:00.0 02:00.0 VGA compatible controller: nvidia Corporation G92 Subsystem: nvidia Corporation Device 0719 Flags: bus master, fast devsel, latency 0, IRQ 16 Memory at d2000000 (32-bit, non-prefetchable) [size=16m] Memory at e0000000 (64-bit, prefetchable) [size=256m] Memory at d0000000 (64-bit, non-prefetchable) [size=32m] I/O ports at 3000 [size=128] Expansion ROM at <ignored> [disabled] [...] 1 Ordinateur debureau assembléen2010 avec unchipset x58 21/43

Exempled analysedetrafic (3) 22/43

Exempled analysedetrafic (4) Configuration dela machine d expérimentation 2 user@cible$ sudo lspci -v -s 0e:00.0 0e:00.0 Memory controller: Pico Computing Device 0e17 (rev 01) Subsystem: Device 4658:0000 Flags: bus master, fast devsel, latency 0, IRQ 10 Expansion ROM at f1e00000 [disabled] [size=1m] Capabilities: [40] Power Management version 3 Capabilities: [48] MSI: Enable- Count=1/1 Maskable- 64bit+ Capabilities: [60] Express Endpoint, MSI 00 [...] 2 Ordinateur portabledell LatitudeE6400 de2009 avec unchipsetgmq45 23/43

Exempled analysedetrafic (5) 24/43

Exempled analysedetrafic (6) Quelques détails sur le paquet reçu PaquetPCI-Expressde type «Message» utilisé pour les interruptions, la gestion d énergie,... format définipar leconstructeur carmsgcodeà0x7f spécifique aux chipsets Intel car vendorid à 0x8086 Type d information véhiculé non-identifié format non-documenté dans les spécifications généré lors desévénements duclavier ou delasouris Un System Management Interrupt(SMI) dûe à la fonctionnalité d USB Legacy Support(émulation des périphériques PS/2)? 25/43

Accèsàl espaced adressage mémoire principale (1) Désactivation de la fonctionnalité de bus-mastering user@cible$ sudo setpci -s 0e:00.0 COMMAND.W=0 user@cible$ sudo lspci -v -s 0e:00.0 0e:00.0 Memory controller: Pico Computing Device 0e17 (rev 01) Subsystem: Device 4658:0000 Flags: fast devsel, latency 0, IRQ 10 Expansion ROM at f1e00000 [disabled] [size=1m] Capabilities: [40] Power Management version 3 Capabilities: [48] MSI: Enable- Count=1/1 Maskable- 64bit+ Capabilities: [60] Express Endpoint, MSI 00 Capabilities: [100] Device Serial Number 00-00-00-01-01-00-0a-35 [...] 26/43

Accèsàl espaced adressage mémoire principale (2) Espace d'adressage principal de la mémoire 4Go/16Eo Zones MMIO réservées aux contrôleurs PCI/PCIe 16Mo/256Mo Espace de configuration PCI/PCIe Limite de la RAM 1Mo 640Ko AGP Video Mémoire étendue Boot ROM ROMs d'extension Mémoire Vidéo Mémoire conventionnelle 64Ko 1Ko Espace Port I/O Ports d'e/s réservés aux contrôleurs PCI/PCIe Port de données Port d'adresse 0xCFC-0xCFF 0xCF8-0xCFB 256 octets 256 octets 256 octets Legacy I/O 256 octets 27/43

Accèsàl espaced adressage mémoire principale (3) Image de la ROM d extension de la carte graphique user@moniteur$ sudo./ironhide-memread.py vbios.bin 0xc0000 0xce7ff [+] Connected to IronHide [+] Dumping remote memory from 0xc0000 to 0xce7ff to file vbios.bin user@moniteur$ file vbios.bin vbios.bin: BIOS (ia32) ROM Ext. IBM comp. Video (116*512) user@moniteur$ xxd -g1 vbios.bin 0000000: 55 aa 74 eb 4b 37 34 30 30 e9 4c 19 77 cc 56 49 0000010: 44 45 4f 20 0d 00 00 00 f0 01 3a 1d 00 00 49 42 0000020: 4d 20 56 47 41 20 43 6f 6d 70 61 74 69 62 6c 65 0000030: 01 00 00 00 80 00 30 bd 30 36 2f 32 36 2f 30 38 0000040: 00 00 00 00 00 00 00 00 00 10 00 00 00 00 00 00 0000050: e9 f6 34 00 28 10 fe 01 ff 3f fe 7f 00 00 00 00 [...] 28/43

Accèsàl espaced adressage mémoire principale (4) Southbridge 29/43

Accèsàl espaced adressage mémoire principale (5) IntelVT-d IntelVT-d2 1 Paquet valide Respect du protocole (ex. TC) Non-respect du protocole (ex. ReqID) Déni de service - Déni de service Détecté Paquet invalide Buffer underflow - - Buffer overflow Déni de service Détecté Drapeaux incohérents - Détecté Champs réservés - Détecté 1 Dans les chipsetsintelsupportantles processeursnehalem et sessuccesseurs 30/43

Accèsàl espacedes portsd entrées-sorties (1) Espace d'adressage principal de la mémoire 4Go/16Eo Zones MMIO réservées aux contrôleurs PCI/PCIe 16Mo/256Mo Espace de configuration PCI/PCIe Limite de la RAM 1Mo 640Ko AGP Video Mémoire étendue Boot ROM ROMs d'extension Mémoire Vidéo Mémoire conventionnelle 64Ko 1Ko Espace Port I/O Ports d'e/s réservés aux contrôleurs PCI/PCIe Port de données Port d'adresse 0xCFC-0xCFF 0xCF8-0xCFB 256 octets 256 octets 256 octets Legacy I/O 256 octets 31/43

Accèsàl espacedes portsd entrées-sorties (2) Image de l espace des ports d entrées-sorties user@moniteur$ sudo./ironhide-ioread.py pio.bin 0x0 0xff [+] Connected to IronHide [+] Dumping remote I/O from 0x0000 to 0x00ff to file pio.bin user@moniteur$ xxd -g1 pio.bin 00000000 8c 0a 0f af 24 92 04 ff 00 ff ff ff ff ff ff 00 * 00000020 01 ff ff ff 01 ff ff ff 01 ff ff ff 01 ff aa 00 00000030 01 ff ff ff 01 ff ff ff 01 ff ff ff 01 ff ff ff 00000040 98 10 ac ff ff ff ff ff ff ff ff ff ff ff ff ff 00000050 d0 06 03 ff ff ff ff ff ff ff ff ff ff ff ff ff 00000060 fe 2c ff ff 74 ff ff ff ff ff ff ff ff ff ff ff 00000070 ff 02 7d 01 0b 02 7d 01 ff ff ff ff ff ff ff ff 00000080 00 01 00 00 00 00 00 00 00 00 00 00 00 00 00 00 [...] 32/43

Accèsàl espacedes portsd entrées-sorties (3) Espace d'adressage principal Démonstration de la mémoire avec le contrôleur de clavier 4Go/16Eo Espace de Ports d entrées-sorties 0x60 et 0x64 Zones MMIO configuration Vidéo disponible réservées à l adresse aux : http://homepages.laas.fr/nicomett/videos PCI/PCIe contrôleurs 16Mo/256Mo PCI/PCIe Limite de la RAM 1Mo 640Ko AGP Video Mémoire étendue Boot ROM ROMs d'extension Mémoire Vidéo Mémoire conventionnelle 64Ko 1Ko Espace Port I/O Ports d'e/s réservés aux contrôleurs PCI/PCIe Port de données Port d'adresse Legacy I/O 0xCFC-0xCFF 0xCF8-0xCFB 256 octets 256 octets 256 octets 256 octets 33/43

Accèsàl espacedeconfiguration (1) Espace d'adressage principal de la mémoire 4Go/16Eo Zones MMIO réservées aux contrôleurs PCI/PCIe 16Mo/256Mo Espace de configuration PCI/PCIe Limite de la RAM 1Mo 640Ko AGP Video Mémoire étendue Boot ROM ROMs d'extension Mémoire Vidéo Mémoire conventionnelle 64Ko 1Ko Espace Port I/O Ports d'e/s réservés aux contrôleurs PCI/PCIe Port de données Port d'adresse 0xCFC-0xCFF 0xCF8-0xCFB 256 octets 256 octets 256 octets Legacy I/O 256 octets 34/43

Accèsàl espacedeconfiguration (2) 35/43

Accèsàl espacedeconfiguration (3) ÉCHEC 36/43

Accèsàl espacedeconfiguration (4) 37/43

Sommaire de la présentation 1 Élements d architecture 2 IronHide : contrôleur d entrées-sorties générique 3 Quelques résultats d expérimentations 4 Conclusion & perspectives 38/43

Conclusion [Petroni et al. 04] [Carrier& Grand 04] [Devine & Vissian 09] IronHide connectique PCI PCI PCI-Express requêtes DMA DMA tous performant oui oui en cours extensible non non oui programmable non oui oui adaptable non oui oui 39/43

Travauxfuturs (1) Émulation d un contrôleur d entrées-sorties sur-étagère Quelques problématiques ouvertes : Quelles approches utiliser pour détecter un tel scénario d attaque? device attestation protocol, device fingerprinting,... Comment peut-on s en protéger efficacement? 40/43

Travauxfuturs (2) IDS/NIDS dédié aux contrôleurs d entrées-sorties Quelques problématiques ouvertes : Peut-on établir un modèle de comportement pour les contrôleurs? complétude, exactitude, mais surtout stabilité du modèle caractérisation d un comportement déviant Quelles structures de données et quels algorithmes sont adaptés? 41/43

IronHide Plate-forme d attaques par entrées-sorties Fernand Lone Sang, Vincent Nicomette et Yves Deswarte Laboratoire d Analyse et d Architecture des Systèmes(LAAS-CNRS) Groupe Tolérance aux fautes et Sûreté de Fonctionnement informatique (TSF) Symposium sur la Sécurité des Technologies de l Information et des Communications SSTIC 2012 Rennes

Bibliographie Références (1) Brian Carrier & Joe Grand. A Hardware-based Memory Acquisition Procedure for Digital Investigations. Digital Investigation, vol. 1, no. 1, pages 50 60, February 2004. Christophe Devine& Guillaume Vissian. Compromission physique par le bus PCI. In Actes du 7ème Symposium sur la Sécurité des Technologies de l Information et des Communications (SSTIC 2009), pages 169 193, Rennes, 3-5 June 2009. Nick L. Jr. Petroni, Timothy Fraser, Jesus Molina, & William A. Arbaugh. Copilot - a Coprocessor-based Kernel Runtime Integrity Monitor. In 13th USENIX Security Symposium, 9-13 August 2004. 43/43