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

Mining for Bugs with Graph Database Queries

00:00

Formale Metadaten

Titel
Mining for Bugs with Graph Database Queries
Alternativer Titel
Pattern-based Vulnerability Discovery
Serientitel
Teil
20
Anzahl der Teile
29
Autor
Lizenz
CC-Namensnennung 3.0 Deutschland:
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
While graph databases are primarily known as the backbone of the modern dating world, this nerd has found a much more interesting application for them: program analysis. This talk aims to demonstrate that graph databases and the typical program representations developed in compiler construction are a match made in heaven, allowing large code bases to be mined for vulnerabilities using complex bug descriptions encoded in simple, and not so simple graph database queries. This talk will bring together two well known but previously unrelated topics: static program analysis and graph databases. After briefly covering the "emerging graph landscape" and why it may be interesting for hackers, a graph representation of programs exposing syntax, control-flow, data-dependencies and type information is presented, designed specifically with bug hunting in mind. Our open-source program analysis platform Joern is then introduced, which implements these ideas and has been successfully used to uncover various vulnerabilities in the Linux kernel. Capabilities and limitations of the system will then be demonstrated live as we craft queries for buffer overflows, memory disclosure bugs and integer-related vulnerabilities.
GraphData MiningPersonal Area NetworkProgrammfehlerPortscannerCodeAnalysisNP-hartes ProblemMetropolitan area networkDatenflussMereologieÜbersetzer <Informatik>Ext-FunktorBitGamecontrollerSummierbarkeitTheoremATMRegulärer GraphRegulärer AusdruckVorzeichen <Mathematik>DatenmodellIkosaederElektronischer ProgrammführerAnalysisCodeDatenbankFormale SpracheGraphInformatikMustererkennungOrdnung <Mathematik>PerspektiveRauschenSoftwareTelekommunikationProgrammierungÜbersetzerbauDialektGanze ZahlProgrammierumgebungFunktionalLokales MinimumMereologiePhysikalisches SystemRechenschieberStatistische HypotheseTermVirtuelle MaschineQuick-SortAbfrageGüte der AnpassungNichtlinearer OperatorBasis <Mathematik>CASE <Informatik>ProgrammfehlerDatenfeldComputersicherheitSampler <Musikinstrument>SummierbarkeitPunktQuaderPrimitive <Informatik>RichtungBetriebsmittelverwaltungData MiningQuellcodeRegulärer Ausdruck <Textverarbeitung>Puffer <Netzplantechnik>Web SiteEndliche ModelltheorieKontrast <Statistik>SystemplattformKontextbezogenes SystemPufferüberlaufSoftwareschwachstelleExploitInformationHackerGebäude <Mathematik>BitGrosskreisTheoremt-TestModel CheckingFitnessfunktionp-BlockWeb logAlgorithmische LerntheorieMultiplikationsoperatorAnwendungsspezifischer ProzessorEinsComputeranimation
Syntaktische AnalyseCodeExogene VariableMetropolitan area networkATMÜbersetzer <Informatik>IkosaederBefehl <Informatik>AnalysisGraphAbstrakter SyntaxbaumSystemaufrufData MiningEigentliche AbbildungProgrammierumgebungReelle AnalysisFront-End <Software>EbeneFormale GrammatikTabelleInformationsspeicherungLokales MinimumSchnittmengeDigitalfilterAlgorithmusCodeDatenbankDatenstrukturDatenverwaltungFormale SpracheGraphInformationMustererkennungRelationale DatenbankTopologieProgrammierungTypentheorieParserKategorie <Mathematik>Algorithmische ProgrammierspracheCompilerGruppenoperationPhysikalisches SystemTabelleZentrische StreckungVerschlingungDatenflussQuick-SortSystemaufrufAbfrageData DictionarySystemverwaltungLuenberger-BeobachterTeilgraphSampler <Musikinstrument>Codierung <Programmierung>KontrollstrukturHash-AlgorithmusSchnittmengeInformationsspeicherungPrädikat <Logik>SuchmaschineBefehl <Informatik>QuellcodeMultigraphBitrateSyntaxbaumKonditionszahlEndliche ModelltheorieDifferenteKonstruktor <Informatik>Domain <Netzwerk>SelbstrepräsentationObjekt <Kategorie>Abstrakter SyntaxbaumMultiplikationsoperatorSoftwareschwachstelleOrtsoperatorDeskriptive StatistikÜbersetzerbauArithmetisches MittelLokales MinimumSpeicherabzugExogene VariableQuaderSystemzusammenbruchDateiformatPunktwolkeNichtunterscheidbarkeitWeb SiteEindringerkennungKontrollflussdiagrammRechter WinkelVorlesung/Konferenz
GraphData MiningRechnernetzMehrwertnetzCodeEigentliche AbbildungPortscannerInformationsspeicherungZeitbereichNabel <Mathematik>AnalysisDateiverwaltungSkriptspracheLeistungsbewertungROM <Informatik>Kernel <Informatik>Metropolitan area networkNeuronales NetzLokales MinimumServerQuellcodeSingularität <Mathematik>Total <Mathematik>DatentypModul <Datentyp>EinfügungsdämpfungOffene MengeLemma <Logik>ParametersystemRegulärer Ausdruck <Textverarbeitung>TVD-VerfahrenSystemaufrufArithmetischer AusdruckDomain <Netzwerk>Uniformer RaumCodeDatenbankGraphStatistikTopologieProgrammierungHalbleiterspeicherFrequenzProgrammbibliothekTypentheorieKategorie <Mathematik>Ganze FunktionAutomatische IndexierungFaltung <Mathematik>Algorithmische ProgrammierspracheBildschirmmaskeBitForcingFunktionalGradientenverfahrenGruppenoperationInhalt <Mathematik>LeistungsbewertungMereologiePhysikalisches SystemPolygonzugProjektive EbeneResultanteVirtuelle MaschineVerschlingungDatenflussQuick-SortSystemaufrufAbfrageGüte der AnpassungSystemprogrammServerParametersystemCASE <Informatik>Prozess <Informatik>ComputersicherheitNabel <Mathematik>AdditionÜbertragPunktInformationsspeicherungKernel <Informatik>Wort <Informatik>BeobachtungsstudieBetriebsmittelverwaltungVirtuelle AdresseBrowserSuchmaschineSkriptspracheBefehl <Informatik>AdressraumRegulärer Ausdruck <Textverarbeitung>Puffer <Netzplantechnik>Elektronische PublikationEreignishorizontSyntaxbaumTrennschärfe <Statistik>Schreib-Lese-KopfMini-DiscSelbstrepräsentationSystemplattformARM <Computerarchitektur>IdentifizierbarkeitKontrollflussdiagrammPufferüberlaufSoftwareschwachstelleBenutzerbeteiligungInterface <Schaltung>REST <Informatik>FacebookSoftwareentwicklerEinsKomplex <Algebra>ProgrammfehlerUmwandlungsenthalpieDomain <Netzwerk>EindringerkennungComputeranimation
CodeVerschlingungPufferüberlaufMetropolitan area networkChi-Quadrat-VerteilungPersonal Area NetworkSoftwareVerzeichnisdienstFundamentalsatz der AlgebraPortscannerARM <Computerarchitektur>Lokales MinimumSchnittmengeElektronische PublikationGraphData MiningOvalVorhersagbarkeitRegulärer Ausdruck <Textverarbeitung>DebuggingServerGleitendes Mittelp-BlockOrtsoperatorE-MailCodeFormale SpracheMathematikProgrammierspracheSoftwareTopologieValiditätProgrammierungTypentheorieVideokonferenzSoftwaretestGanze ZahlÄquivalenzklasseAggregatzustandArithmetisches MittelBitForcingFunktionalGeradeInhalt <Mathematik>Lokales MinimumMereologieThetafunktionDatenflussQuick-SortAbfrageVersionsverwaltungServerExogene VariableNichtlinearer OperatorParametersystemHypermediaCASE <Informatik>AbstraktionsebeneDatenfeldElektronische UnterschriftComputersicherheitMaximum-Entropie-MethodeZeiger <Informatik>PunktWort <Informatik>Befehl <Informatik>Framework <Informatik>Regulärer Ausdruck <Textverarbeitung>Puffer <Netzplantechnik>Elektronische PublikationStreaming <Kommunikationstechnik>Endliche Modelltheoriep-BlockSystemplattformTouchscreenSymboltabelleDickeMultiplikationsoperatorPufferüberlaufExploitURLRechter WinkelDemo <Programm>BenutzerbeteiligungOffice-PaketGamecontrollerComputerunterstützte ÜbersetzungAnalysisSyntaktische AnalyseFunktion <Mathematik>Ganze FunktionDebuggingKette <Mathematik>WechselsprungSystemaufrufSystemprogrammProzess <Informatik>ProgrammfehlerVerzeichnisdienstAdditionInnerer PunktLesen <Datenverarbeitung>AuswahlverfahrenEinfügungsdämpfungBetriebsmittelverwaltungAutorisierungComputeranimation
GraphData MiningGroße VereinheitlichungMetropolitan area networkMultiplikationsoperatorInzidenzalgebraNabel <Mathematik>Schnittmengep-BlockVorlesung/KonferenzProgramm/Quellcode
GraphData MiningMetropolitan area networkMereologieLokales MinimumTypentheorieIkosaederEbeneCodeKnoten <Statik>PortscannerParametersystemFunktion <Mathematik>MAPGerichteter GraphSystemaufrufGroße VereinheitlichungSystemprogrammierungHypermediaReelle ZahlData Encryption StandardPhysikalisches SystemAbzählenEinfach zusammenhängender RaumMultiplikationsoperatorDatensichtgerätAlgorithmusCodeDatenstrukturGraphMathematikOrdnung <Mathematik>RelativitätstheorieSoftwareFunktion <Mathematik>ProgrammierungHalbleiterspeicherGenerator <Informatik>Kategorie <Mathematik>VektorraumSynchronisierungVideokonferenzDimensionsanalyseProgrammiergerätLogischer SchlussFunktionalGruppenoperationMereologiePaarvergleichPhysikalisches SystemProgrammanalyseStatistische HypotheseTreiber <Programm>Virtuelle MaschineDatenflussQuick-SortSystemaufrufAbfrageÄhnlichkeitsgeometrieBasis <Mathematik>ParametersystemProgrammfehlerTemplateInstantiierungDatenfeldElektronische UnterschriftAdditionBridge <Kommunikationstechnik>Data MiningQuellcodeRegulärer Ausdruck <Textverarbeitung>Puffer <Netzplantechnik>Cluster <Rechnernetz>Endliche ModelltheorieSelbstrepräsentationObjekt <Kategorie>Algorithmische LerntheorieSchlussregelSoftwareschwachstelleWurm <Informatik>MusterspracheGamecontrollerDatenbankSensitivitätsanalyseAttraktorDreiIndexberechnungPolygonzugResultanteSpeicherabzugZahlenbereichGüte der AnpassungCASE <Informatik>QuaderSchnittmengeUmsetzung <Informatik>Inklusion <Mathematik>Mailing-ListeSoundverarbeitungElektronische Publikationsinc-FunktionRechter WinkelOrtsoperatorVorlesung/KonferenzComputeranimation
Transkript: Englisch(automatisch erzeugt)