Badger: The Networked Security State Estimation Toolkit Badger42.org Intros Badger42.org What is the problem? • Hindsight is 20/20 • Too much data • If only . . . Badger42.org Networked Security State Estimation • Measurement of the state of security • Somewhat polarizing • Take it for what its worth Badger42.org What is CPTL? • An arbiter for core metadata on cyber-physical systems • A mechanism to share information in a human-readable, machine-actionable manner Badger42.org Cyber Physical Topology Language • Disparate sources of data • Ontologies to facilitiate communication • Data queries via URL Badger42.org Motivation • Machine actionable semantics • To facilitate communication • Consistent data operation Badger42.org Observation Researchers and practitioners – through network diagrams, documentation and publications – create domain-specific languages to solve specific problems Ontology An ontology is based on four finite sets of signature symbols . Symbol Sets Description Examples NC Set of concept names Switch, Relay, Breaker NR Set of role names hasLine, hasConnection NI Set of individual names SEL-relay-1a NF Set of feature names 1,..100 or “control-center”, “springfield substation” Ref: Krötzsch, Markus, Ian Horrocks, and Frantisek Simancik. A Description Logic Primer. No. arXiv: 1201.4089. 2012. Ontology An ontology is based on four finite sets of signature symbols . Symbol Sets Description Examples NC Set of concept names Switch, Relay, Breaker NR Set of role names hasLine, hasConnection NI Set of individual names SEL-relay-1a NF Set of feature names 1,..100 or “control-center”, “springfield substation” The axioms of the ontology are defined using the above sets of concept, role, and individual names. ABox axioms – properties of individuals e.g., Relay(SEL-relay-1a) Ref: Krötzsch, Markus, Ian Horrocks, and Frantisek Simancik. A Description Logic Primer. No. arXiv: 1201.4089. 2012. Ontology An ontology is based on four finite sets of signature symbols . Symbol Sets Description Examples NC Set of concept names Switch, Relay, Breaker NR Set of role names hasLine, hasConnection NI Set of individual names SEL-relay-1a NF Set of feature names 1,..100 or “control-center”, “springfield substation” The axioms of the ontology are defined using the above sets of concept, role, and individual names. ABox axioms – properties of individuals e.g., Relay(SEL-relay-1a) TBox axioms – relationships between concepts e.g., DistanceRelay Relay Ref: Krötzsch, Markus, Ian Horrocks, and Frantisek Simancik. A Description Logic Primer. No. arXiv: 1201.4089. 2012. Ontology An ontology is based on four finite sets of signature symbols . Symbol Sets Description Examples NC Set of concept names Switch, Relay, Breaker NR Set of role names hasLine, hasConnection NI Set of individual names SEL-relay-1a NF Set of feature names 1,..100 or “control-center”, “springfield substation” The axioms of the ontology are defined using the above sets of concept, role, and individual names. ABox axioms – properties of individuals e.g., Relay(SEL-relay-1a) TBox axioms – relationships between concepts e.g., DistanceRelay Relay RBox axioms – properties of roles e.g., hasLine hasConnection Ref: Krötzsch, Markus, Ian Horrocks, and Frantisek Simancik. A Description Logic Primer. No. arXiv: 1201.4089. 2012. Interpretation The interpretation I maps the elements of the ontology (concepts, roles and individual names) to the domain of discourse. Interpretation c c 1 c c 5 c4 c c c 1 1 c c 1 c1c 4 2 c 3 c1 c 5 1 c 1 c 1 1 c 1 1 1 1 c c c 9 c c o c c o o o o o 7 1 10 50 o 11 o o 4 o o 4 oo 4 o 8 o o o o 10 15 12 13 14 11 13 15 o o 1 1 1 o 1 1 1 o o 1 o 1 1 o 1 o 1 o o 1 o 1 o 1 o NC – concepts are mapped to vertices; i.e. different icons NR – roles are mapped to edges; i.e. line width NI – individual names are mapped to vertices; i.e. different labels NF – feature names are mapped to vertex attribute(not shown for brevity) Interpretation c c 1 c 5 c4 c c c 1 1 c c 1 c1c 4 2 c 3 c1 c 5 1 c 1 c 1 1 c 1 1 1 1 9 c o c c o 1 o o o 7 10 50 SEL-relay-1a o 11 o 10 15 o o 4 o 1213 o 4 o 14 11 4 o 8 13 15 o o o o o 1 Bus o 1 1 1 o 1 o hasBreakerConnectiono c I = ( ∆I, ·I) c c c o I c ∆ – vertices in graph 1 o ·I – function mapping all the following: o concept name (e.g., Bus) to subset of vertices o role names (e.g., hasBreakerConnection) to subset of edges o individual names (e.g., SEL-relay-1a) to subset of vertices o feature names (e.g., onLocation) to vertex attributes (e.g., c,o) (not shown in this example) 1 1 1 o 1 Bus o 1 o o Bus 1 o 1 o 1 o CPTL Core Ontology ARPA-E Power Ontology Badger State Estimation Ontology urn:cptl:cloud:cloudspace.network TORSwitch_1 Main Switch TORSwitch_2 Blade_1 Blade_3 Blade_2 Badger42.org Blade_4 Cloud Infrastructure Provider (Cloudspace) urn:cptl:cloud:streampics.network VM 1 VM 3 VM 2 VM 4 VM 5 VM 6 Cloud Service Provider (Streampics) Badger42.org urn:cptl:cloud:cloudspace-streampics.network TORSwitch_1 Main Switch TORSwitch_2 Blade_1 VM 1 VM 3 Blade_3 VM 4 VM 5 VM 2 VM 6 Blade_2 Badger42.org Cloud Service Provider (Streampics) Blade_4 Cloud Infrastructure Provider (Cloudspace) • Red == Bad • Yellow == Caution • Green == It’s all good Badger42.org Diagram renders in application CPTL Construct Query Ontology Browser Security Estimator 7 State Data 1 2 CPTL Construct Query Ontology 3 Badger Capability Attribute Badger Server 4 5 Data Baseline Data Entropy Other 6 Process Data Browser 8 Node Security State 7 State Data 1 CPTL URN Construct Query Ontology 2 3 Badger Server 4 5 Badger URN Data Baseline Capability Data Entropy (Kerf) Attribute Other 6 Process Data CPTL-Aware Services CPTL-Aware Client states.badger42.org CytoScape (Graph Visualization) flows.badger42.org CPTL Data Aggregator power.cptl-c.org NMap Scans Compliance Suite Augmented Reality/ Mobile App REQUEST:badger42.org/GETCAPABILITY?source_vertex_attr_type=urn -cptl-HOST-ipv4 RESPONSE: A list of capabilities formatted as text/json [{ name: "urn:badger:get_hostip_dest_hostnames", description: "Given an IPv4 address, get the destination hostnames", source_vertex_attr_type = "urn-cptl-HOST-ipv4", target_vertex_attr_type = "urn-cptl-HOST-hostname" }, { name: "urn:badger:get_host_dest_tldcounts", description: "Given an IPv4 address, get the top-level domain counts", source_vertex_attr_type = "urn-cptl-HOST-ipv4", target_vertex_attr_type = "urn-cptl-HOST-hostname" } ] Badger42.org CPTL Browser REQUEST:badger42.com/service?name=urn:badger:get_host_dest_tld counts_selected_vertex_attr_values =192.168.1.100,192.168.1.120 RESPONSE: A graph of the following format: {[ {"id": 1, source1_vertex_attr_type: "urn-cptl-HOST-ipv4"} {"id": 2, source2_vertex_attr_type: "urn-cptl-HOST-ipv4" {"id": 3, target_1_vertex_attr_type: "urn-cptl-HOST-tag-tldcount", target_1_vertex_attr_value: "com,44"}{"id": 4, target_2_vertex_attr_type: "urn-cptl-HOST-tag-tldcount", target_2_vertex_attr_value: "com,44"}], EDGES: [{"source": 1, "target":4}, {"source":2, "target":4}] } Badger42.org CPTL Browser Demo Time import skills, sys, time, demo from luck import * now = time.time() demo = open(‘badger’ , ‘r’) for blackhat in demo: print skills.haxor(daycon) else: print ‘WASTED!’ map.network-perception.com State DATA Information BADGER42.ORG Thanks Github.com/bigezy/badger Github.com/ITI/cptl-power Send your feedback