the$open$source$visualization$engine$for … · aws • visualize)data $ ./graphiti demo...

55
Thibault Reuille & Andrew Hay THE OPEN SOURCE VISUALIZATION ENGINE FOR BUSY HACKERS

Upload: truongthuy

Post on 13-Apr-2018

259 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: THE$OPEN$SOURCE$VISUALIZATION$ENGINE$FOR … · aws • Visualize)Data $ ./graphiti demo ../semanticnet/examples/ shodan_aws.json Visualizing$a$SHODAN$Query$ ASHODAN$Query… Visualized!$

Thibault  Reuille  &  Andrew  Hay  

THE  OPEN  SOURCE  VISUALIZATION  ENGINE  FOR  BUSY  HACKERS  

Page 2: THE$OPEN$SOURCE$VISUALIZATION$ENGINE$FOR … · aws • Visualize)Data $ ./graphiti demo ../semanticnet/examples/ shodan_aws.json Visualizing$a$SHODAN$Query$ ASHODAN$Query… Visualized!$

THIBAULT  REUILLE  

2  

•  Security  Researcher  at  OpenDNS  •  Former  So?ware  Engineer  @  NVIDIA  •  MS  IT  from  EPITA:  Ingénierie  InformaJque  

•  @ThibaultReuille  

Page 3: THE$OPEN$SOURCE$VISUALIZATION$ENGINE$FOR … · aws • Visualize)Data $ ./graphiti demo ../semanticnet/examples/ shodan_aws.json Visualizing$a$SHODAN$Query$ ASHODAN$Query… Visualized!$

ANDREW  HAY  

3  

•  Sr.  Security  Research  Lead  &  Evangelist  •  Former  research  director,  industry  analyst,  security  analyst,  and  engineering/product/program  manager  

•  @andrewsmhay  

Page 4: THE$OPEN$SOURCE$VISUALIZATION$ENGINE$FOR … · aws • Visualize)Data $ ./graphiti demo ../semanticnet/examples/ shodan_aws.json Visualizing$a$SHODAN$Query$ ASHODAN$Query… Visualized!$

WHY  VISUALIZE  THE  DATA?  

Page 5: THE$OPEN$SOURCE$VISUALIZATION$ENGINE$FOR … · aws • Visualize)Data $ ./graphiti demo ../semanticnet/examples/ shodan_aws.json Visualizing$a$SHODAN$Query$ ASHODAN$Query… Visualized!$

•  Aren’t  pie  charts  enough?  

•  What  does  advanced  visualizaJon  give  us?  

•  Can’t  I  just  use  R  or  Excel?  

Why  Visualize  the  Data?  

Page 6: THE$OPEN$SOURCE$VISUALIZATION$ENGINE$FOR … · aws • Visualize)Data $ ./graphiti demo ../semanticnet/examples/ shodan_aws.json Visualizing$a$SHODAN$Query$ ASHODAN$Query… Visualized!$

Because,  Minority  Report  

Page 7: THE$OPEN$SOURCE$VISUALIZATION$ENGINE$FOR … · aws • Visualize)Data $ ./graphiti demo ../semanticnet/examples/ shodan_aws.json Visualizing$a$SHODAN$Query$ ASHODAN$Query… Visualized!$

QUICK  OVERVIEW  OF  LEARNING  STYLES  

Page 8: THE$OPEN$SOURCE$VISUALIZATION$ENGINE$FOR … · aws • Visualize)Data $ ./graphiti demo ../semanticnet/examples/ shodan_aws.json Visualizing$a$SHODAN$Query$ ASHODAN$Query… Visualized!$

•  Neil  Fleming's  VAK/VARK  model  

•  The  4  types  1.  Visual  learners  2.  Auditory  learners  3.  Reading-­‐wriJng  preference  learners  4.  KinestheJc  learners  or  tacJle  learners  

Learning  Styles  

Page 9: THE$OPEN$SOURCE$VISUALIZATION$ENGINE$FOR … · aws • Visualize)Data $ ./graphiti demo ../semanticnet/examples/ shodan_aws.json Visualizing$a$SHODAN$Query$ ASHODAN$Query… Visualized!$

•  Key  concept  of  visual  learning  

•  Graphic  organizers  

•  Visual  representaJons  of    –  knowledge,    –  concepts,    –  thoughts,  or    –  ideas  

 Photo  Credit:  modellearning    

Learning  Styles  

Page 10: THE$OPEN$SOURCE$VISUALIZATION$ENGINE$FOR … · aws • Visualize)Data $ ./graphiti demo ../semanticnet/examples/ shodan_aws.json Visualizing$a$SHODAN$Query$ ASHODAN$Query… Visualized!$

•  Clarify  meaning  through  relaJonships  

•  Best  example  might  be  uJlizing  a  mind  map  

     Photo  Credit:  modellearning  

Learning  Styles  

Page 11: THE$OPEN$SOURCE$VISUALIZATION$ENGINE$FOR … · aws • Visualize)Data $ ./graphiti demo ../semanticnet/examples/ shodan_aws.json Visualizing$a$SHODAN$Query$ ASHODAN$Query… Visualized!$

•  RepresenJng  informaJon  spaJally  and  with  images  [some*]  students  are  able  to  –  focus  on  meaning  –  reorganize  and  group  similar  ideas  easily  

–  make  beder  use  of  their  visual  memory  

 Source:    hdp://en.wikipedia.org/wiki/Visual_learning  

Learning  Styles  

Page 12: THE$OPEN$SOURCE$VISUALIZATION$ENGINE$FOR … · aws • Visualize)Data $ ./graphiti demo ../semanticnet/examples/ shodan_aws.json Visualizing$a$SHODAN$Query$ ASHODAN$Query… Visualized!$

INTRODUCING  OpenGraphiL  

Page 13: THE$OPEN$SOURCE$VISUALIZATION$ENGINE$FOR … · aws • Visualize)Data $ ./graphiti demo ../semanticnet/examples/ shodan_aws.json Visualizing$a$SHODAN$Query$ ASHODAN$Query… Visualized!$

•  Open  Source  visualizaJon  engine    •  Remove  the  complexity  of  creaJng  advanced  data  visualizaJons  

 •  Visualize  any  loosely  related  data  –  without  having  to  endlessly  reformat  that  data  

Introducing  OpenGraphiL  

Page 14: THE$OPEN$SOURCE$VISUALIZATION$ENGINE$FOR … · aws • Visualize)Data $ ./graphiti demo ../semanticnet/examples/ shodan_aws.json Visualizing$a$SHODAN$Query$ ASHODAN$Query… Visualized!$

Introducing  OpenGraphiL  

Page 15: THE$OPEN$SOURCE$VISUALIZATION$ENGINE$FOR … · aws • Visualize)Data $ ./graphiti demo ../semanticnet/examples/ shodan_aws.json Visualizing$a$SHODAN$Query$ ASHODAN$Query… Visualized!$

Introducing  OpenGraphiL  

Page 16: THE$OPEN$SOURCE$VISUALIZATION$ENGINE$FOR … · aws • Visualize)Data $ ./graphiti demo ../semanticnet/examples/ shodan_aws.json Visualizing$a$SHODAN$Query$ ASHODAN$Query… Visualized!$

OpenGraphiL  Workflow  

Page 17: THE$OPEN$SOURCE$VISUALIZATION$ENGINE$FOR … · aws • Visualize)Data $ ./graphiti demo ../semanticnet/examples/ shodan_aws.json Visualizing$a$SHODAN$Query$ ASHODAN$Query… Visualized!$

THE  MATH  AND  THE  PHYSICS  PART  

Page 18: THE$OPEN$SOURCE$VISUALIZATION$ENGINE$FOR … · aws • Visualize)Data $ ./graphiti demo ../semanticnet/examples/ shodan_aws.json Visualizing$a$SHODAN$Query$ ASHODAN$Query… Visualized!$

•  Graph  theory  101  

The  Math  and  Physics  Part  

A B

Page 19: THE$OPEN$SOURCE$VISUALIZATION$ENGINE$FOR … · aws • Visualize)Data $ ./graphiti demo ../semanticnet/examples/ shodan_aws.json Visualizing$a$SHODAN$Query$ ASHODAN$Query… Visualized!$

•  Suppose  you  have  a  graph         G = (V,E)  

 Where:  V = {0, 1, 2, 3}  and  E = {(0, 1), (0, 2), (1, 2), (2, 3)}

The  Math  and  Physics  Part  

Page 20: THE$OPEN$SOURCE$VISUALIZATION$ENGINE$FOR … · aws • Visualize)Data $ ./graphiti demo ../semanticnet/examples/ shodan_aws.json Visualizing$a$SHODAN$Query$ ASHODAN$Query… Visualized!$

•  This  would  provide  the  following  graph:  

The  Math  and  Physics  Part  

A B C

D

Page 21: THE$OPEN$SOURCE$VISUALIZATION$ENGINE$FOR … · aws • Visualize)Data $ ./graphiti demo ../semanticnet/examples/ shodan_aws.json Visualizing$a$SHODAN$Query$ ASHODAN$Query… Visualized!$

The  Math  and  Physics  Part  

Page 22: THE$OPEN$SOURCE$VISUALIZATION$ENGINE$FOR … · aws • Visualize)Data $ ./graphiti demo ../semanticnet/examples/ shodan_aws.json Visualizing$a$SHODAN$Query$ ASHODAN$Query… Visualized!$

USING  OpenGraphiL  

Page 23: THE$OPEN$SOURCE$VISUALIZATION$ENGINE$FOR … · aws • Visualize)Data $ ./graphiti demo ../semanticnet/examples/ shodan_aws.json Visualizing$a$SHODAN$Query$ ASHODAN$Query… Visualized!$

•  Requirements  –  OS  X  (10.9  /  Mavericks)  

 –  Python  2.7.x  

Using  OpenGraphiL  

Page 24: THE$OPEN$SOURCE$VISUALIZATION$ENGINE$FOR … · aws • Visualize)Data $ ./graphiti demo ../semanticnet/examples/ shodan_aws.json Visualizing$a$SHODAN$Query$ ASHODAN$Query… Visualized!$

•  How  to  build:  $ git clone <git repo> $ pip install networkx

$ cd graphiti $ make clean native

•  How  to  run:  $ ./graphiti <options> output.json

Using  OpenGraphiL  

Page 25: THE$OPEN$SOURCE$VISUALIZATION$ENGINE$FOR … · aws • Visualize)Data $ ./graphiti demo ../semanticnet/examples/ shodan_aws.json Visualizing$a$SHODAN$Query$ ASHODAN$Query… Visualized!$

•  The  result  is  something  like  this  

•  Malicious  domains  graph  – Nuclear  exploit  kits  (pink)  

– HosJng  IP  addresses  (yellow)  

Using  OpenGraphiL  

Page 26: THE$OPEN$SOURCE$VISUALIZATION$ENGINE$FOR … · aws • Visualize)Data $ ./graphiti demo ../semanticnet/examples/ shodan_aws.json Visualizing$a$SHODAN$Query$ ASHODAN$Query… Visualized!$

Using    OpenGraphiL  Nuclear  EK  

HosJng  IPs

 

HosJng  IPs

 

Nuclear  EK  

Nuclear  EK  

HosJng  IPs  

Page 27: THE$OPEN$SOURCE$VISUALIZATION$ENGINE$FOR … · aws • Visualize)Data $ ./graphiti demo ../semanticnet/examples/ shodan_aws.json Visualizing$a$SHODAN$Query$ ASHODAN$Query… Visualized!$

•  OpenDNS  uses  OpenGraphiJ  and  discussed  methodologies  

•  Ongoing  tracking  of…  –  CryptoLocker  &  CryptoDefense  

ransomware  –  Red  October  malware  –  Kelihos  botnet  –  and  more…  

Using  OpenGraphiL  

Page 28: THE$OPEN$SOURCE$VISUALIZATION$ENGINE$FOR … · aws • Visualize)Data $ ./graphiti demo ../semanticnet/examples/ shodan_aws.json Visualizing$a$SHODAN$Query$ ASHODAN$Query… Visualized!$

•  The  examples  in  this  presentaJon  presume  the  following…  1.  OpenGraphiJ  requirements  are  saJsfied  2.  OpenGraphiJ  is  located  in  your  home  directory  

e.g.  /Users/ahay/graphiti/

3.  SemanJc-­‐Net  is  located  in  your  home  directory  e.g.  /Users/ahay/semanticnet/

Using  OpenGraphiL  

Page 29: THE$OPEN$SOURCE$VISUALIZATION$ENGINE$FOR … · aws • Visualize)Data $ ./graphiti demo ../semanticnet/examples/ shodan_aws.json Visualizing$a$SHODAN$Query$ ASHODAN$Query… Visualized!$

OPENGRAPHITI  VISUALIZATION  EXAMPLES  

Page 30: THE$OPEN$SOURCE$VISUALIZATION$ENGINE$FOR … · aws • Visualize)Data $ ./graphiti demo ../semanticnet/examples/ shodan_aws.json Visualizing$a$SHODAN$Query$ ASHODAN$Query… Visualized!$

EXAMPLE  1  –  VISUALIZING  DIRECTORY  STRUCTURE  

Page 31: THE$OPEN$SOURCE$VISUALIZATION$ENGINE$FOR … · aws • Visualize)Data $ ./graphiti demo ../semanticnet/examples/ shodan_aws.json Visualizing$a$SHODAN$Query$ ASHODAN$Query… Visualized!$

•  Easiest  example  •  Visualize  the  file  and  directory            structure  of  a  specified  path  

•  Script  provided  to  generate  and  convert  the  data  

 

Photo  Credit:  ERA  GRUP  

Visualizing  Directory  Structure  

Page 32: THE$OPEN$SOURCE$VISUALIZATION$ENGINE$FOR … · aws • Visualize)Data $ ./graphiti demo ../semanticnet/examples/ shodan_aws.json Visualizing$a$SHODAN$Query$ ASHODAN$Query… Visualized!$

•  Source  Data  &  Convert  Data  ./semanticnet/examples/fs_graph.py <directory>

e.g.  $ ./semanticnet/examples/fs_graph.py /home •  Visualize  Data  $ ./graphiti demo ../semanticnet/examples/fs.json

Visualizing  Directory  Structure  

Page 33: THE$OPEN$SOURCE$VISUALIZATION$ENGINE$FOR … · aws • Visualize)Data $ ./graphiti demo ../semanticnet/examples/ shodan_aws.json Visualizing$a$SHODAN$Query$ ASHODAN$Query… Visualized!$

File/Directory  Structure…Visualized!  

Page 34: THE$OPEN$SOURCE$VISUALIZATION$ENGINE$FOR … · aws • Visualize)Data $ ./graphiti demo ../semanticnet/examples/ shodan_aws.json Visualizing$a$SHODAN$Query$ ASHODAN$Query… Visualized!$

EXAMPLE  2  –  VISUALIZING  OPENDNS  SECURITY  GRAPH  

Page 35: THE$OPEN$SOURCE$VISUALIZATION$ENGINE$FOR … · aws • Visualize)Data $ ./graphiti demo ../semanticnet/examples/ shodan_aws.json Visualizing$a$SHODAN$Query$ ASHODAN$Query… Visualized!$

•  invesJgate.opendns.com  •  Global  visibility  of  adackers’  infrastructures  –  Global  network  handles  two  percent  of  the  world’s  Internet  requests  

–  Powers  OpenDNS  Umbrella  and  InvesJgate  –  50b+  DNS  queries  per  day  

Visualizing  The  OpenDNS  Security  Graph  

Page 36: THE$OPEN$SOURCE$VISUALIZATION$ENGINE$FOR … · aws • Visualize)Data $ ./graphiti demo ../semanticnet/examples/ shodan_aws.json Visualizing$a$SHODAN$Query$ ASHODAN$Query… Visualized!$

The  OpenDNS  Security  Graph…Visualized!  

Page 37: THE$OPEN$SOURCE$VISUALIZATION$ENGINE$FOR … · aws • Visualize)Data $ ./graphiti demo ../semanticnet/examples/ shodan_aws.json Visualizing$a$SHODAN$Query$ ASHODAN$Query… Visualized!$

EXAMPLE  3  –  VISUALIZING  THE  VCDB  

Page 38: THE$OPEN$SOURCE$VISUALIZATION$ENGINE$FOR … · aws • Visualize)Data $ ./graphiti demo ../semanticnet/examples/ shodan_aws.json Visualizing$a$SHODAN$Query$ ASHODAN$Query… Visualized!$

•  vcdb.org  •  From  the  Verizon  Risk  Team  – Vocabulary  for  Event  Recording  and  Incident  Sharing  (VERIS)  

– VERIS  Community  Database  (VCDB)  

Visualizing  The  VCDB  

Page 39: THE$OPEN$SOURCE$VISUALIZATION$ENGINE$FOR … · aws • Visualize)Data $ ./graphiti demo ../semanticnet/examples/ shodan_aws.json Visualizing$a$SHODAN$Query$ ASHODAN$Query… Visualized!$

The  VCDB…Visualized!  

Page 40: THE$OPEN$SOURCE$VISUALIZATION$ENGINE$FOR … · aws • Visualize)Data $ ./graphiti demo ../semanticnet/examples/ shodan_aws.json Visualizing$a$SHODAN$Query$ ASHODAN$Query… Visualized!$

EXAMPLE  4  –  VISUALIZING  THE  INTERNET  (VIA  ASN)  

Page 41: THE$OPEN$SOURCE$VISUALIZATION$ENGINE$FOR … · aws • Visualize)Data $ ./graphiti demo ../semanticnet/examples/ shodan_aws.json Visualizing$a$SHODAN$Query$ ASHODAN$Query… Visualized!$

•  Autonomous  System  Number  (ASN)  •  CollecJon  of  connected  IP  rouJng  prefixes  •  Common,  clearly  defined  rouJng  policy  to  the  Internet  

 Source:  hdp://en.wikipedia.org/wiki/Autonomous_System_(Internet)  

Visualizing  The  Internet  

Page 42: THE$OPEN$SOURCE$VISUALIZATION$ENGINE$FOR … · aws • Visualize)Data $ ./graphiti demo ../semanticnet/examples/ shodan_aws.json Visualizing$a$SHODAN$Query$ ASHODAN$Query… Visualized!$

The  Internet…Visualized!  

Page 43: THE$OPEN$SOURCE$VISUALIZATION$ENGINE$FOR … · aws • Visualize)Data $ ./graphiti demo ../semanticnet/examples/ shodan_aws.json Visualizing$a$SHODAN$Query$ ASHODAN$Query… Visualized!$

EXAMPLE  5  –  VISUALIZING  A  SHODAN  QUERY  

Page 44: THE$OPEN$SOURCE$VISUALIZATION$ENGINE$FOR … · aws • Visualize)Data $ ./graphiti demo ../semanticnet/examples/ shodan_aws.json Visualizing$a$SHODAN$Query$ ASHODAN$Query… Visualized!$

•  www.shodanhq.com  •  Lets  you  find  specific  computers  (routers,  servers,  etc.)  using  a  variety  of  filters  

•  Some  have  described  it  as  a  public  port  scan  directory  or  a  search  engine  of  banners  

Visualizing  a  SHODAN  Query  

Page 45: THE$OPEN$SOURCE$VISUALIZATION$ENGINE$FOR … · aws • Visualize)Data $ ./graphiti demo ../semanticnet/examples/ shodan_aws.json Visualizing$a$SHODAN$Query$ ASHODAN$Query… Visualized!$

•  Source  Data  &  Convert  Data  

./semanticnet/examples/shodan_graph.py –k <key> -s <string>

e.g.  $ ./semanticnet/examples/shodan_graph.py –k shokey -s aws

•  Visualize  Data  $ ./graphiti demo ../semanticnet/examples/shodan_aws.json

Visualizing  a  SHODAN  Query  

Page 46: THE$OPEN$SOURCE$VISUALIZATION$ENGINE$FOR … · aws • Visualize)Data $ ./graphiti demo ../semanticnet/examples/ shodan_aws.json Visualizing$a$SHODAN$Query$ ASHODAN$Query… Visualized!$

A  SHODAN  Query…Visualized!  

Page 47: THE$OPEN$SOURCE$VISUALIZATION$ENGINE$FOR … · aws • Visualize)Data $ ./graphiti demo ../semanticnet/examples/ shodan_aws.json Visualizing$a$SHODAN$Query$ ASHODAN$Query… Visualized!$

Some  Other  Examples…Visualized!  

Page 48: THE$OPEN$SOURCE$VISUALIZATION$ENGINE$FOR … · aws • Visualize)Data $ ./graphiti demo ../semanticnet/examples/ shodan_aws.json Visualizing$a$SHODAN$Query$ ASHODAN$Query… Visualized!$

WHAT  ELSE  CAN  I  USE  OpenGraphiL  FOR?  

Page 49: THE$OPEN$SOURCE$VISUALIZATION$ENGINE$FOR … · aws • Visualize)Data $ ./graphiti demo ../semanticnet/examples/ shodan_aws.json Visualizing$a$SHODAN$Query$ ASHODAN$Query… Visualized!$

•  Against  any  relaJonal  data  –  Network  packet  captures    –  IDS  alerts  •  e.g.  Snort,  Bro,  Suricata,  etc.  

–  Environmental  data  •  e.g.  wind,  water,  earthquake,  temperature,  Jde,  soil  staJsJcs  

–  Odd  data    •  e.g.  Migratory  paderns  of  the  African  and  European  coconut-­‐laden  swallow  populaJon  

Use  OpenGraphiL…  

Page 50: THE$OPEN$SOURCE$VISUALIZATION$ENGINE$FOR … · aws • Visualize)Data $ ./graphiti demo ../semanticnet/examples/ shodan_aws.json Visualizing$a$SHODAN$Query$ ASHODAN$Query… Visualized!$

•  Provided  data  generaJon  scripts  –  File  system  (from  Example  1)  

•  semanticnet/examples/fs_graph.py    –  SHODAN  query  (from  Example  5)  

•  semanticnet/examples/shodan_graph.py –  BRO  IDS  logs  

•  semanticnet/examples/bro_graph.py  

Use  OpenGraphiL…  

Page 51: THE$OPEN$SOURCE$VISUALIZATION$ENGINE$FOR … · aws • Visualize)Data $ ./graphiti demo ../semanticnet/examples/ shodan_aws.json Visualizing$a$SHODAN$Query$ ASHODAN$Query… Visualized!$

WHAT’S  NEXT  FOR  OpenGraphiL?  

Page 52: THE$OPEN$SOURCE$VISUALIZATION$ENGINE$FOR … · aws • Visualize)Data $ ./graphiti demo ../semanticnet/examples/ shodan_aws.json Visualizing$a$SHODAN$Query$ ASHODAN$Query… Visualized!$

•  Lots  of  cool  things  coming  •  Can’t  do  it  without  the  help  of  the  security  community  

•  And  Skyler  (the  Intern)  

OpenGraphiL  1.0++  

Page 53: THE$OPEN$SOURCE$VISUALIZATION$ENGINE$FOR … · aws • Visualize)Data $ ./graphiti demo ../semanticnet/examples/ shodan_aws.json Visualizing$a$SHODAN$Query$ ASHODAN$Query… Visualized!$

•  Explore  enhanced  human  interacJon  – Oculus  Ri?  (DK2  on  order)  –  Leap  MoJon  Controller  (we  have  one!)  

•  More  input/output  plugins  •  More  of  that  physics  and  math  stuff    Photo  Credit:  hdp://www.imdb.com/media/rm2660874752/ch0014870  

OpenGraphiL  1.0++  

Page 54: THE$OPEN$SOURCE$VISUALIZATION$ENGINE$FOR … · aws • Visualize)Data $ ./graphiti demo ../semanticnet/examples/ shodan_aws.json Visualizing$a$SHODAN$Query$ ASHODAN$Query… Visualized!$

•  OpenGraphiL  is  a  –  Free,  Open  Source,  and  awesome  data  visualizaJon  tool…  

– Used  to  visualize  any  relaJonal  data  as  an  interacJve  2D  or  3D  model…  

– And  is  available  at:      hdp://github.com/opendns/graphiJ  

Summary  

Page 55: THE$OPEN$SOURCE$VISUALIZATION$ENGINE$FOR … · aws • Visualize)Data $ ./graphiti demo ../semanticnet/examples/ shodan_aws.json Visualizing$a$SHODAN$Query$ ASHODAN$Query… Visualized!$

QUESTIONS?  Contact  Us:    Thibault  Reuille,  [email protected],  @ThibaultReuille  Andrew  Hay,  [email protected],  @andrewsmhay    

 www.opendns.com            labs.opendns.com  

github.com/opendns  labs.opendns.com/blog