code property graphs & joern - simple, precise static code analysis
who am i
code property graph
code property graph
directed, edge-labeled, attributed multigraph in which each node carries at least one attribute that indicates its type.
code property graph
directed, edge-labeled, attributed multigraphs in which each node carries at least one attribute that indicates its type.
nodes. represent program constructs and have types
code property graph
directed, edge-labeled, attributed multigraphs in which each node carries at least one attribute that indicates its type.
edges. labeled, directed, represent relations between program constructs
nodes. represent program constructs and have types
code property graph
directed, edge-labeled, attributed multigraphs in which each node carries at least one attribute that indicates its type.
properties. nodes carry key-value pairs
nodes. represent program constructs and have types
edges. labeled, directed, represent relations between program constructs
code property graph
directed, edge-labeled, attributed multigraphs in which each node carries at least one attribute that indicates its type.
Nodes and their types. Nodes represent program constructs.
Labeled directed edges. Edges represent relations between program constructs.
Key-Value Pairs. Nodes carry key-value pairs.
properties. nodes carry key-value pairs
edges. labeled, directed, represent relations between program constructs
nodes. represent program constructs and have types
vulnerabilities are represented by combinations of nodes and edges in code property graphs.
joern
in development for the past 10 years
joern
interactive tool for automated vulnerability discovery based on Scala
in development for the past 10 years
joern
allows analyzing large code bases written in C, C++, Java, Javascript, Kotlin & more
interactive tool for automated vulnerability discovery based on Scala
in development for the past 10 years
joern
provides a query language for Code Property Graphs
allows analyzing large code bases written in C, C++, Java, Javascript, Kotlin & more
interactive tool for automated vulnerability discovery based on Scala
in development for the past 10 years
joern
provides scripting functionality
provides a query language for Code Property Graphs
allows analyzing large code bases written in C, C++, Java, Javascript, Kotlin & more
interactive tool for automated vulnerability discovery based on Scala
in development for the past 10 years
joern
joern
joern
joern
joern
joern
joern
joern
joern
joern
joern
joern
kotlin2cpg
kotlin2cpg
mostly parsing code
kotlin2cpg
mostly parsing code
parser library - IntelliJ’s Program Structure Interface
kotlin2cpg
mostly parsing code
parser library - IntelliJ’s Program Structure Interface
representing 50% of constructs is easy, 80% is hard, 90%+ tricky
kotlin2cpg
mostly parsing code
parser library - IntelliJ’s Program Structure Interface
representing 50% of constructs is easy, 80% is hard, 90%+ tricky
does not require a working build but requires dependencies
kotlin2cpg
mostly parsing code
parser library - IntelliJ’s Program Structure Interface
representing 50% of constructs is easy, 80% is hard, 90%+ tricky
does not require a working build but requires dependencies
other frontends do not require dependencies
a bug, a joern query, another bug
a bug, a joern query, another bug
a bug, a joern query, another bug
a bug, a joern query, another bug
a bug, a joern query, another bug
a bug, a joern query, another bug
a bug, a joern query, another bug
a bug, a joern query, another bug
a bug, a joern query, another bug
a bug, a joern query, another bug
a bug, a joern query, another bug
a bug, a joern query, another bug
a bug, a joern query, another bug
a bug, a joern query, another bug
a bug, a joern query, another bug
a bug, a joern query, another bug
a bug, a joern query, another bug
a bug, a joern query, another bug
a bug, a joern query, another bug
a bug, a joern query, another bug
a bug, a joern query, another bug
a bug, a joern query, another bug
a bug, a joern query, another bug
you can do a lot more with joern
model a stack-based buffer overflow in a c program
you can do a lot more with joern
model a stack-based buffer overflow in a c program
model a directory traversal in a java program
you can do a lot more with joern
model a stack-based buffer overflow in a c program
model a directory traversal in a java program
model a xss in a javascript application
you can do a lot more with joern
model a stack-based buffer overflow in a c program
model a directory traversal in a java program
model a xss in a javascript application
in beta: model vulns in PHP programs
you can do a lot more with joern
model a stack-based buffer overflow in a c program
model a directory traversal in a java program
model a xss in a javascript application
in beta: model vulns in PHP programs
in development: model vulns in Ruby programs
https://github.com/joernio/joern/
@ursachec
https://joern.io