We're sorry but this page doesn't work properly without JavaScript enabled. Please enable it to continue.
Feedback

HAL - The Open-Source Hardware Analyzer

00:00

Formale Metadaten

Titel
HAL - The Open-Source Hardware Analyzer
Untertitel
A dive into the foundations of hardware reverse engineering and our netlist analysis framework HAL
Serientitel
Anzahl der Teile
Autor
Lizenz
CC-Namensnennung 4.0 International:
Sie dürfen das Werk bzw. den Inhalt zu jedem legalen Zweck nutzen, verändern und in unveränderter oder veränderter Form vervielfältigen, verbreiten und öffentlich zugänglich machen, sofern Sie den Namen des Autors/Rechteinhabers in der von ihm festgelegten Weise nennen.
Identifikatoren
Herausgeber
Erscheinungsjahr
Sprache

Inhaltliche Metadaten

Fachgebiet
Genre
Abstract
Since the Snowden revelations the fear of stealthy hardware manipulations is no longer regarded as far fetched. This fear is also reflected in the massive discussions sparked by last year's Bloomberg allegations on a supposed hardware spy implant on Supermicro serverboards or the recent USA ban on Huawei telecommunication equipment. Hardware reverse engineering (HRE) is a promising method to detect such manipulations or hidden backdoors. However, HRE is a highly complex and cumbersome task. It takes months of work as well as expensive equipment to even obtain the netlist of a chip, the equivalent to the binary in software reverse engineering (SRE). In contrast to SRE where various paid or open-source tools for binary analysis exist, e.g., IDA Pro or Ghidra, in HRE simply no tool for netlist analysis were available - neither commercial, nor free. To close this gap, researchers from the Ruhr University Bochum developed HAL, the first open-source netlist analysis framework. In this talk, we start with a basic introduction into the challenges of HRE. Then, we demonstrate the capabilities of HAL before giving a brief overview on our current research with HAL. Hardware reverse engineering (HRE) is an important technique for analysts to understand the internals of a physical system. Use cases range from recovering interface specifications of old chips, over detection of malicious manipulations or patent infringements, to straight up counterfeiting. However, HRE is a notably complex and cumbersome task which consists of two phases: In the first phase the netlist, i.e., circuit description of a chip, has to be extracted from the physical device. Such a netlist is equivalent to the binary in software reverse engineering (SRE). In the second phase, the analyst then processes the netlist in order to understand (parts of) its functionality. However, obtaining a netlist from a chip can take several months and requires professional and costly equipment as well as expertise. Even with a recovered netlist, understanding its functionality is an enormously challenging task. This is partly due to the lack of proper tools for netlist analysis: While in SRE various commercial or open-source tools for binary analysis exist, e.g., IDA Pro or Ghidra, in HRE simply no tool for netlist analysis was available, neither commercial, nor free. To close this gap, researchers from the Embedded Security group of the Horst-Görtz Institute for IT-Security at the Ruhr University Bochum developed HAL, the first open-source netlist analysis framework. Inspired by the modularity of its SRE equivalents, HAL can be extended through optimized C++ plugins or directly used as a Python library, while at the same time offering a GUI for explorative and interactive analysis. The project is supposed to give hardware analysts a common platform for the development of new algorithms with a portable design, ultimately aiding both professionals in their daily work as well as researchers in their efforts to publish reproducible results. In this talk, we will first introduce the foundations and main challenges of HRE, before giving a live demonstration of HAL and some of its capabilities on selected case studies. We conclude the talk with a glimpse at our associated research at the university that spans both, technical research as well as cross-disciplinary work with psychologists. Our talk requires only minimum prior knowledge on digital hardware.
Schlagwörter
Open SourceHardwareGruppenoperationFramework <Informatik>GrundraumStreaming <Kommunikationstechnik>SoftwareKondition <Mathematik>ComputersicherheitOpen SourceStörungstheorieReverse EngineeringSchlussregelMAPInternetworkingHardwareAnalysisUnrundheitComputeranimationJSON
Streaming <Kommunikationstechnik>FokalpunktFlächeninhaltMAPStrömungsrichtungVorlesung/Konferenz
StichprobeMAPReverse EngineeringTrojanisches Pferd <Informatik>Open SourceInhalt <Mathematik>MAPDeskriptive StatistikSoftwareHardwareReverse EngineeringDigitaltechnikResultanteMultiplikationsoperatorCASE <Informatik>BildschirmmaskeCookie <Internet>ApproximationGrundraumÄquivalenzklasseTrojanisches Pferd <Informatik>WellenpaketSelbstrepräsentationTelekommunikationFunktionentheorieYouTubeSpieltheorieSoftwarepiraterieCoxeter-GruppeKreisflächeWhiteboardRPCBefehl <Informatik>ServerKategorie <Mathematik>HypermediaMereologieHintertür <Informatik>SpeichermodellTechnische InformatikFrequenzKomponente <Software>RichtungZentrische StreckungDifferentePerspektiveHeimcomputerSoftwaretestSmartphoneBildgebendes VerfahrenAdditionAggregatzustandVideokonferenzStrömungsrichtungComputeranimation
Array <Informatik>DigitaltechnikBoolesche AlgebraHardwareField programmable gate arrayElement <Gruppentheorie>Software EngineeringDatentypFlächeninhaltProgrammCodeSoftwareHardwarebeschreibungsspracheLogiksyntheseAnalogieschlussSoftwareZweiProgrammDigitaltechnikVerknüpfungsgliedProzess <Informatik>Flip-FlopTabelleDeskriptive StatistikDatenfeldSchnittmengeElement <Gruppentheorie>CompilerUmwandlungsenthalpieParallele SchnittstelleDifferenteRoutingProgrammbibliothekCoprozessorHardwareEin-AusgabeLogiksyntheseFreiheitsgradHardwarebeschreibungsspracheFlächeninhaltMailing-ListeResultanteEinfach zusammenhängender RaumSelbstrepräsentationGewicht <Ausgleichsrechnung>PhysikalismusSpeicherabzugOrtsoperatorField programmable gate arrayAdditionBoolesche AlgebraInformationKonfigurationsraumMapping <Computergraphik>ProgrammierspracheKartesische KoordinatenCodePerfekte GruppeÄhnlichkeitsgeometrieZeichenketteComputerarchitekturMinimalgradPhysikalischer EffektTwitter <Softwareplattform>InformationsspeicherungFigurierte ZahlBitStreaming <Kommunikationstechnik>ART-NetzFunktionalanalysisGebäude <Mathematik>EinsMultiplikationsoperatorGeradePolstelleStörungstheorieDiagrammDynamisches SystemComputeranimation
BinärcodeFlash-SpeicherReverse EngineeringSoftwareAnalysisField programmable gate arrayWiederherstellung <Informatik>DateiformatHardwarebeschreibungsspracheRoutingGeradeComputerInformationsspeicherungSelbstrepräsentationReverse EngineeringAnalysisInhalt <Mathematik>Field programmable gate arrayMapping <Computergraphik>HalbleiterspeicherElement <Gruppentheorie>DifferentePhasenumwandlungDateiformatSoftwareHardwareFlash-SpeicherHöhere ProgrammierspracheMailing-ListeMAPSpeichermodellBitTopologieStreaming <Kommunikationstechnik>
Persönliche IdentifikationsnummerReverse EngineeringGraphiktablettElektronische PublikationComputeranimationVorlesung/Konferenz
Prozess <Informatik>FlächeninhaltStrömungsrichtungDigitaltechnikSchaltnetzSchnittmengeComputerspielFokalpunktOrtsoperatorBildgebendes VerfahrenTechnische OptikComputeranimation
Prozess <Informatik>FlächeninhaltOrtsoperatorBildgebendes VerfahrenFokalpunktFormale GrammatikTermServerRelativitätstheorieKugelkappeComputeranimation
Prozess <Informatik>Field programmable gate arrayFlash-SpeicherReverse EngineeringHardwareHIP <Kommunikationsprotokoll>DatentypOISCFlächeninhaltElement <Gruppentheorie>Advanced Encryption StandardMultiplikationMatchingTranslation <Mathematik>Mailing-ListeDivergente ReiheDateiformatMultiplikationsoperatorVerknüpfungsgliedMapping <Computergraphik>ProgrammbibliothekDigitaltechnikBitWärmeübergangTopologieInformationFlussdiagrammProgramm/QuellcodeComputeranimation
Prozess <Informatik>DatentypFlächeninhaltVerknüpfungsgliedDateiformatReverse EngineeringVerknüpfungsgliedProgrammbibliothekMusterspracheBildgebendes VerfahrenMustervergleichFigurierte ZahlPhysikalischer EffektExtreme programmingBildschirmmaskeStreaming <Kommunikationstechnik>DateiformatSoftwareSpeicherabzugReverse EngineeringGrundraumOpen SourceFramework <Informatik>BinärcodeAnalysisXMLDiagrammVorlesung/KonferenzTechnische Zeichnung
AnalysisSoftwareBinärcodeBootenPlug inOpen SourceFramework <Informatik>ProgrammierumgebungAnalysisBinärcodeKonfiguration <Informatik>HardwareFeuchteleitungReverse EngineeringProjektive EbeneGebäude <Mathematik>CybersexGrundraumComputersicherheitDatenmissbrauchComputeranimationVorlesung/Konferenz
TaskAnalysisAggregatzustandAlgorithmusGüte der AnpassungLeistungsbewertungMailing-ListeSkriptspracheKreisbogenAnalysisHardwareFlächeninhaltReverse EngineeringFramework <Informatik>TaskOpen SourceMenütechnikComputeranimation
Open SourceBenutzeroberflächePlug inInterpretiererGraphElement <Gruppentheorie>Physikalische TheorieHardwareFunktion <Mathematik>Ein-AusgabeParserGraphische BenutzeroberflächeSchnittmengeKnotenmengeAnalysisGraphFramework <Informatik>GruppenoperationGraphentheorieNabel <Mathematik>Gemeinsamer SpeicherPlug inDatenstrukturCoxeter-GruppeSelbstrepräsentationGewicht <Ausgleichsrechnung>AlgorithmusField programmable gate arrayOpen SourceMultiplikationMomentenproblemLastProjektive EbeneVerkehrsinformationEINKAUF <Programm>Mailing-ListeMathematikElement <Gruppentheorie>Physikalische TheorieZentrische StreckungGeradeComputeranimation
Boolesche AlgebraFunktion <Mathematik>BimodulDatentypFinite-Elemente-MethodeHochdruckSpielkonsoleFolge <Mathematik>Regulärer Ausdruck <Textverarbeitung>TexteditorMagnetbandlaufwerkTelekommunikationSpeicherabzugBimodulPlug inSchaltfunktionAnalysisSichtenkonzeptHardwareReverse EngineeringDatenstrukturInformationMultiplikationFokalpunktGraphfärbungBildgebendes VerfahrenTexteditorGewicht <Ausgleichsrechnung>TabelleEin-AusgabeTopologieMereologieSpeicherabzugDifferenteProgrammierumgebungGraphische BenutzeroberflächeElement <Gruppentheorie>Offene MengeInterface <Schaltung>BildverstehenRechter WinkelGraphAggregatzustandSchreiben <Datenverarbeitung>BildschirmfensterSelbstrepräsentationTypentheorieFunktionalanalysisVerknüpfungsgliedModul <Datentyp>LogiksyntheseSpieltheorieStichprobenumfangSpielkonsoleEndliche ModelltheorieMailing-ListePhysikalischer EffektWorkstation <Musikinstrument>OrtsoperatorComputerspielImplementierungHMS <Fertigung>Flussdiagramm
ZustandsmaschineHardwareUnendlichkeitAggregatzustandAggregatzustandZustandsmaschineZentralisatorEreignishorizontSchnittmengeGruppenoperationVirtuelle MaschinePlastikkarteMereologieEin-AusgabeKonditionszahlNummernsystemVorlesung/Konferenz
ZustandsmaschineHardwareInhalt <Mathematik>Wiederherstellung <Informatik>GraphAggregatzustandDatenstrukturInformationsspeicherungFunktion <Mathematik>Ein-AusgabeKraftAggregatzustandGruppenoperationAutorisierungRückkopplungZustandsmaschineEinfach zusammenhängender RaumElement <Gruppentheorie>DigitaltechnikReverse EngineeringDivergente ReiheRuhmasseInformationsspeicherungPerfekte GruppeEin-AusgabeMathematikHalbleiterspeicherKreisflächeZeitrichtungVerknüpfungsgliedPunktTermForcingWarteschlangeVektorraumFunktion <Mathematik>Field programmable gate arrayKomponente <Software>GamecontrollerGraphDatenstrukturAdditionMAPKontrollstrukturBeobachtungsstudieOffice-PaketSichtenkonzeptSummierbarkeitMatchingBefehl <Informatik>GraphentheorieComputeranimation
MenütechnikElement <Gruppentheorie>MinimumDatenstrukturMailing-ListeBimodulPersönliche IdentifikationsnummerFlip-FlopInformationsspeicherungZeitrichtungFunktion <Mathematik>SichtenkonzeptAggregatzustandPuffer <Netzplantechnik>Komponente <Software>GruppenoperationSkriptsprachePerfekte GruppeWiederherstellung <Informatik>RückkopplungTabelleSpeichermodellEinfach zusammenhängender RaumZustandsmaschineGraphCodeMereologieForcingEin-AusgabeAlgorithmusOffice-PaketFlächeninhaltOffene MengeEndliche ModelltheorieCAN-BusAnalysisComputeranimationVorlesung/Konferenz
Ideal <Mathematik>ZustandsmaschinePunktMetrisches SystemResultanteReverse EngineeringKomponente <Software>AnalysisInformationsspeicherungHardwareATMInteraktives FernsehenBitElement <Gruppentheorie>MenütechnikDifferenteMultiplikationsoperatorAngewandte PhysikGruppenoperationGrundraumFlip-FlopKette <Mathematik>
AggregatzustandReverse EngineeringExplosion <Stochastik>Funktion <Mathematik>NormalvektorFlip-FlopAggregatzustandDreiecksfreier GraphInternetworkingComputerKette <Mathematik>MAPSoftwareentwicklerMathematikPortscannerAlgorithmusReverse EngineeringFunktion <Mathematik>HilfesystemReelle ZahlMereologieSchaltfunktionApproximationPetaflopsSimulationMailing-ListeHardwareFunktionalanalysisVorlesung/KonferenzFlussdiagramm
SimulationHardwareAdditionEndliche ModelltheorieInstantiierungApproximationFunktionalanalysisMailing-ListeGebäude <Mathematik>InformationsspeicherungBitp-BlockWeb logElement <Gruppentheorie>MereologieFlip-FlopAnalysisDigitaltechnikAlgorithmusRechter WinkelSchaltfunktionGrenzschichtablösungEin-AusgabeBimodulPlug inVorlesung/KonferenzComputeranimation
RichtungSpeichermodellReverse EngineeringInternetworkingHardwareArithmetische FolgeMailing-ListeCASE <Informatik>MenütechnikRichtungGrundraumMereologieFlächeninhaltVirtuelle MaschineMetrisches SystemReelle ZahlMustervergleichSyntaktische AnalyseProzess <Informatik>TeilbarkeitMultiplikationsoperatorSoftwareentwicklerAnalytische FortsetzungProjektive EbeneZeichenketteJSONVorlesung/KonferenzComputeranimation
Analytische FortsetzungProjektive EbeneMultiplikationsoperatorRichtungSpeicherabzugGrenzschichtablösungt-TestBus <Informatik>Notepad-ComputerUnrundheitBildschirmsymbolCoxeter-GruppeComputeranimationBesprechung/Interview
FreewareBildschirmsymbolSoftwareTwitter <Softwareplattform>HilfesystemSoftwareComputersicherheitE-MailSoftware EngineeringBildschirmsymbolOpen SourceSoftwareentwicklerGeradeMereologieSystemaufrufMultiplikationsoperatorComputeranimation
VerknüpfungsgliedBildverstehenGewicht <Ausgleichsrechnung>Mailing-ListeMomentenproblemZahlenbereichComputersimulationModul <Datentyp>MereologieMathematikÄhnlichkeitsgeometrieWeb SiteHilfesystemVersionsverwaltungAnalysisAggregatzustandFunktionalanalysisLeistung <Physik>CodeBildgebendes VerfahrenGamecontrollerSchreib-Lese-KopfZustandsmaschineNotebook-ComputerGraphische BenutzeroberflächeReverse EngineeringSichtenkonzeptEin-AusgabeGraphDatumsgrenzeNummernsystemResultanteIdentifizierbarkeitDatenflussGruppenoperationAutomatische HandlungsplanungDebuggingGeradeInternetworkingMultiplikationsoperatorPunktSchlüsselverwaltungBenutzeroberflächeGrenzschichtablösungEinfache GenauigkeitRechter WinkelChiffrierungEmulatorBimodulBitTermStreaming <Kommunikationstechnik>Zentrische StreckungBridge <Kommunikationstechnik>DämpfungMAPLokales MinimumEinflussgrößeMessage-PassingGeometrische FrustrationGesetz <Physik>Metrisches SystemElement <Gruppentheorie>WinkelverteilungPerspektiveReelle ZahlProzess <Informatik>DifferenteProjektive EbenePrimzahlzwillingeDreiecksfreier GraphVorlesung/Konferenz
AggregatzustandPunktGruppenoperationGraphSoftwaretestSchlüsselverwaltungÄquivalenzklasseSichtenkonzeptDiagrammForcingProtokoll <Datenverarbeitungssystem>Quick-SortInternetworkingMereologieExplosion <Stochastik>Gewicht <Ausgleichsrechnung>Algorithmische LerntheorieZustandsmaschineFlip-FlopSoftwareWellenpaketLogiksyntheseVirtuelle MaschineAlgorithmusMultiplikationsoperatorHalbleiterspeicherEin-AusgabeMAPReverse EngineeringSuite <Programmpaket>Globale OptimierungMailing-ListeAnfangswertproblemNeuronales NetzSpeichermodellVorlesung/Konferenz
Computeranimation
Transkript: English(automatisch erzeugt)