toward a systemic will to live - patters of self-organizing agile security

57
[email protected], 1 Webinar Toward a Systemic Will to Live – Patterns of Self-Organizing Agile Security Rick Dove Last Updated: 8 September 2011 (subject to aperiodic and continuous updates at www.parshift.com/s/TowardsSystemicWillToLive.pdf) Portions of this work were sponsored by the Department of Homeland Security under contract D10PC20039. The content of the material contained herein does not necessarily reflect the position or policy of the Government, and no official endorsement is implied.

Upload: rick-dove

Post on 26-Dec-2014

290 views

Category:

Technology


1 download

DESCRIPTION

Massive pattern recognition techology, inexpensive, employed as artificial immune system and cortical sense-making for network endpoint self-organizing security - with massive anomally learning and detection capability.

TRANSCRIPT

Page 1: Toward a Systemic Will to Live - Patters of Self-Organizing Agile Security

[email protected], 1

Webinar

Toward a Systemic Will to Live – Patterns of Self-Organizing Agile Security

Rick Dove Last Updated: 8 September 2011

(subject to aperiodic and continuous updates at www.parshift.com/s/TowardsSystemicWillToLive.pdf)

Portions of this work were sponsored by the Department of Homeland Security

under contract D10PC20039. The content of the material contained herein does not necessarily reflect the position or policy of the Government, and

no official endorsement is implied.

Page 2: Toward a Systemic Will to Live - Patters of Self-Organizing Agile Security

[email protected], 2

Abstract This talk puts a focus on systems that have an awareness of their environment, and that are sensitive to anomalous changes that might signal a threat. Sensitivity to anomalous change is most useful when every possible change, within a domain of interest, accurately triggers attention – meaning no false positives (crying wolf) and no false negatives (undetected anomalies). We will first explore four inspirational patterns from natural systems that effectively process noisy sensory input from uncertain & changing environments:

• horizontal gene/meme transfer, • bow tie processors, • proactive anomaly search, and • hierarchical sensemaking.

Then the architecture of the biological immune system will be examined, and subsequently grounded with an artificial immune system example under development for a resilient cyber-network sense and sensemaking application. Of special note is new anomaly detection technology that enables high fidelity immune system-like performance, effectively covering a vast detection space of 10 to the 15th anomalies in the example shown, with higher capacities practical.

Page 3: Toward a Systemic Will to Live - Patters of Self-Organizing Agile Security

[email protected], 3

General Current Situation

Adversarial Agent (AA)

Adversarial Domain (AD)

Adversarial Communities

Security Agent (SA)

Security Domain (SD)

Security Communities

Relatively Static Security and System

Artifacts (A)

Static Artifact Dynamic Attack

Dynamic attack includes human and systemic adaptive control preying upon fixed artifact defenses.

Static artifacts are systems with and without security measures, updated occasionally.

AD AD

AA AA

SD SD

SA SA

Page 4: Toward a Systemic Will to Live - Patters of Self-Organizing Agile Security

[email protected], 4

Static System

Dynamic Adversary

Page 5: Toward a Systemic Will to Live - Patters of Self-Organizing Agile Security

[email protected], 5

Asymmetries Adversary is a natural system, security strategy is an artificial system

Adversary leads with innovation and evolution

Adversary self-organizes as a dynamic system-of-systems

Pattern (Language) Project

Some Dynamic Self Organizing System-of-System Security Patterns

Pattern employment on the SornS project

… up next …

Page 6: Toward a Systemic Will to Live - Patters of Self-Organizing Agile Security

[email protected], 6

Architecture: Multi-agent Loosely coupled Self organizing Systems-of-systems Behavior: Swarm intelligence Tight learning loops Fast evolution Adaptive innovation

Adversarial Advantage

Co-evolution?

Page 7: Toward a Systemic Will to Live - Patters of Self-Organizing Agile Security

[email protected], 7

Architecture: Multi-agent Loosely coupled Self organizing Systems-of-systems Behavior: Swarm intelligence Tight learning loops Fast evolution Adaptive innovation

Co-evolution? Co-evolution? Not happening. The frog is dragging us down the block.

We are not in an arms race – we haven’t engaged.

Adversarial Advantage

Page 8: Toward a Systemic Will to Live - Patters of Self-Organizing Agile Security

[email protected], 8

Agile system security, as a minimum, must mirror the agile characteristics exhibited by the system attack community:

[S] Self-organizing – with humans embedded in the loop, or with systemic mechanisms.

[A] Adapting to unpredictable situations – with reconfigurable, readily employed resources.

[R] Reactively resilient – able to continue, perhaps with reduced functionality, while recovering.

[E] Evolving in concert with a changing environment – driven by vigilant awareness and fitness evaluation.

[P] Proactively innovative – acting preemptively, perhaps unpredictably, to gain advantage.

[H] Harmonious with system functional purpose – aiding rather than degrading system and user productivity.

Mirror the Enemy

www.parshift.com/Files/PsiDocs/Pap100226-AgileSecuritySelfOrganizingCoEvolution-ExtAbst.pdf

Page 9: Toward a Systemic Will to Live - Patters of Self-Organizing Agile Security

Inspirational Patterns from natural systems that effectively process

noisy sensory input from uncertain and changing environments

Page 10: Toward a Systemic Will to Live - Patters of Self-Organizing Agile Security

[email protected], 10

Evolution and Innovation

Woese, Carl. 2000. Interpreting the universal phylogenetic tree. PNAS. 97(15):8392-6. www.ncbi.nlm.nih.gov/pmc/articles/PMC26958/pdf/pq008392.pdf

5 steps leading to the stable inheritance of a transferred gene in a new host. Figure Smets, Barth F. and Tamar Barkay. 2005. Horizontal gene transfer: perspectives at a crossroads of scientific disciplines. Nature Reviews Microbiology 3, 675-678 (Sep 2005).

Carl Woese: “Vertically generated and horizontally acquired variation could be viewed as the yin and the yang of the evolutionary process.

“Vertically generated variation is necessarily highly restricted in character; it amounts to variations on a lineage’s existing cellular themes. Horizontal transfer, on the other hand, can call on the diversity of the entire biosphere, molecules and systems that have evolved under all manner of conditions, in a great variety of different cellular environments. Thus, horizontally derived variation is the major, if not the sole, evolutionary source of true innovation.”

Horizontal Gene Transfer “HGT”

“The vast majority, between 88% and 98%, of the expansions of protein families [in eight studied prokaryote clades] are due to HGT. … Xenologs [external transfers] have an average age of introduction that is twice that of paralogs [internal transfers]. Xenologs are therefore more persistent.” Treangen, Todd J. and Eduardo P. C. Rocha. 2011. Horizontal Transfer, Not Duplication, Drives the Expansion of Protein Families in Prokaryotes. PLoS Genetics 7:1, January.

Page 11: Toward a Systemic Will to Live - Patters of Self-Organizing Agile Security

[email protected], 11

Pattern: Horizontal Gene/Meme Transfer

Context: When conditions deteriorate, it makes a lot of sense to try to scavenge DNA from your neighbors. Horizontal gene transfer facilitates a fast microbial adaptation to stress. Higher-than-suspected transfer rates among microbes living in nutrient-poor environments, where sharing genes may be key to survival, has been observed. Evidence indicates that organisms limit gene exchange to microbes on nearby branches of the family tree, probably because their chromosomes share certain characteristics. Genes appear to be exchanged between species with similar chromosomal structures (Pennise 2011). Problem: Situational or environmental changes that threaten fitness or survival of the organism. Forces: Short-term adaptability vs. long-term-evolvability, horizontal gene transfer speeds the development of new traits by a factor of 10,000 (Woese 2000, Pennise 2011). Solution: Incorporate appropriate genetic material from other organisms that have developed compatible and useful situational fitness. Mobile genes don’t just help a community survive, they also provide the grist for evolutionary innovations.

Horizontal gene transfer speeds up innovative short-term adaptation and long-term evolution

Two modular gene pools

Innovative adaptation and evolution

Available high variety cellular organisms

Intrachromsomal genes Extrachromosomal genes

Rules 1. Packaging 2. Transfer 3. Entry 4. Establishment 5. Inheritance

www.parshift.com/Files/PsiDocs/PatternQualificationsForAgileSecurity.pdf

Page 12: Toward a Systemic Will to Live - Patters of Self-Organizing Agile Security

[email protected], 12

Pattern: Bow Tie Processor (assembler/generator/mediator)

Context: Complex system with many diverse inputs and many diverse outputs, where outputs need to respond to many needs or innovate for many or unknown opportunities, and it is not practical to build unique one-to-one connections between inputs and outputs. Appropriate examples include common financial currencies that mediate between producers and consumers, the adaptable biological immune system that produces proactive infection detectors from a wealth of genetic material, and the Internet protocol stack that connects diverse message sources to diverse message sinks. Problem: Too many connection possibilities between available inputs and useful outputs to build unique robust, evolving satisfaction-processes between each. Forces: Large knot short-term-flexibility vs small knot short-term-controllability and long-term-evolvability (Csete 2004); robustness to known vs fragility to unknown (Carlson 2002). Solution: Construct relatively small “knot” of fixed modules from selected inputs, that can be assembled into outputs as needed according to a fixed protocol. A proactive example is the adaptable immune system that constructs large quantities of random detectors (antigens) for unknown attacks and infections. A reactive example is a manufacturing line that constructs products for customers demanding custom capabilities.

Millions of random infection detectors generated continuously by fixed rules and modules in the “knot”

Evolve three fixed V-D-J gene-segment libraries

Fixed-rule VDJ assembly with random interconnects

Random high variety output with VDJ + VJ assemblies

Available high variety genetic DNA input

V: 123 Variable segments D: 27 Diverse segments J: 6 Joining segments

increases to ~109 varieties with addition of random nucleotide connections between VDJ & VJ joinings

~106 VDJ+VJ possible antigen detector shapes

V1

D1

Vn

Vr Jr Dr r r

123 Vs

27 Ds

6 Js

1 random from each + random connect

Dn

Jn J1

www.parshift.com/Files/PsiDocs/PatternQualificationsForAgileSecurity.pdf

Page 13: Toward a Systemic Will to Live - Patters of Self-Organizing Agile Security

[email protected], 13

Context: A complex system or system-of-systems subject to attack and infection, with low tolerance for attack success and no tolerance for catastrophic infection success; with resilient remedial action capability when infection is detected. Appropriate examples include biological organisms, and cyber networks for military tactical operations, national critical infrastructure, and commercial economic competition. Problem: Directed attack and infection types that constantly evolve in new innovative ways to circumvent in-place attack and infection detectors. Forces: False positive tradeoffs with false negatives, system functionality vs functionality impairing detection measures, detectors for anything possible vs added costs of comprehensive detection, comprehensive detection of attack vs cost of false detection of self. Solution: A high fidelity model of biological immune system antibody (detection) processes that generate high quantity and variety of anticipatory speculative detectors in advance of attack and during infection, and evolve a growing memory of successful detectors specific to the nature of the system-of-interest.

Speculative generation and mutation of detectors recognizes new attacks like a biological immune system

Pattern: Proactive Anomaly Search www.parshift.com/s/110411PatternsForSORNS.pdf

Page 14: Toward a Systemic Will to Live - Patters of Self-Organizing Agile Security

[email protected], 14

Context: A decision maker in need of accurate situational awareness in a critical dynamic environment. Examples include a network system administrator in monitoring mode and under attack, a military tactical commander in battle, and the NASA launch control room. Problem: A very large amount of low-level noisy sensory data overwhelms attempts to examine and conclude what relevance may be present, most especially if time is important or if sensory data is dynamic. Forces: amount of data to be examined vs time to reach a conclusion, number of ways data can be combined vs number of conclusions data can indicate, static sensory data vs dynamic sensory data, noise tolerated in sensory data vs cost of low noise sensory data. Solution: Using a bow-tie process, each level looks for a specific finite set of data patterns among the infinite possibilities of its input combinations, aggregating its input data into specific chunks of information. These chunks are fed-forward to the next higher level, that treats them in turn as data further aggregated into higher forms of information chunks. Through feedback, a higher level may bias a lower level to favor certain chunks over others, predicting what is expected now or next according to an emerging pattern at the higher level. Each level is only interested in a small number of an infinite set of data-combination possibilities, but as aggregation proceeds through multiple levels, complex data abstractions and recognitions are enabled.

Four level feed forward/backward sense-making hierarchy modeled on visual cortex

www.parshift.com/s/110411PatternsForSORNS.pdf

Pattern: Hierarchical Sensemaking

Page 15: Toward a Systemic Will to Live - Patters of Self-Organizing Agile Security

BIS Architecture (Biological Immune System)

Page 16: Toward a Systemic Will to Live - Patters of Self-Organizing Agile Security

[email protected], 16

Antibody Creation & Life Cycle

1

2

3

4

5

6

Diagram modified from (Hofmeyr 2000).

General antibody life cycle: creation, false-positive testing, deployment efficacy or termination, mutation improvement, and long-term memory. 1. Candidate antibody semi-randomly created. 2. Tolerization period tests immature candidates for false-positive matches. 3. Mature & naïve antibodies put into time limited service. 4. Activated (B-cell) antibodies need co-stimulation (by T-cells) to ensure “improvement” didn’t produce

auto-reactive result, non-activated & non-co-stimulated candidates die when time limit ends. 5. Highest affinity co-stimulated antibodies are remembered for

time-limited long term (eg, many years, decades). 6. Co-stimulated antibodies are cloned with structured mutations,

looking for improved (higher) affinity scores.

Page 17: Toward a Systemic Will to Live - Patters of Self-Organizing Agile Security

[email protected], 17

Antibody Creation & Life Cycle

1

2

3

4

5

6

Diagram modified from (Hofmeyr 2000).

General antibody life cycle: creation, false-positive testing, deployment efficacy or termination, mutation improvement, and long-term memory. 1. Candidate antibody semi-randomly created. 2. Tolerization period tests immature candidates for false-positive matches. 3. Mature & naïve antibodies put into time limited service. 4. Activated (B-cell) antibodies need co-stimulation (by T-cells) to ensure “improvement” didn’t produce

auto-reactive result, non-activated & non-co-stimulated candidates die when time limit ends. 5. Highest affinity co-stimulated antibodies are remembered for

time-limited long term (eg, many years, decades). 6. Co-stimulated antibodies are cloned with structured mutations,

looking for improved (higher) affinity scores.

Self nonself discrimination: A universe of data points is partitioned into two sets – self and nonself. Negative detectors cover subsets of non-self. From (Esponda 2004)

Shape/Pattern Space ~109

Page 18: Toward a Systemic Will to Live - Patters of Self-Organizing Agile Security

SORNS Application Self Organizing Resilient Network – Sensing

Page 19: Toward a Systemic Will to Live - Patters of Self-Organizing Agile Security

[email protected], 19

Proposed Basic Concept Explore advantages of new pattern processor

Distribute collaborating detector agents at all network endpoints

Artificial Immune System pattern detection a la Forest/Hofmeyr, et al.

Hierarchal sensemaking a la Fink/Fulp, Hawkins/George, et al.

Implement the work of others in a less-constraining technology that

can better approach high fidelity natural-system performance

Page 20: Toward a Systemic Will to Live - Patters of Self-Organizing Agile Security

[email protected], 20

Reconfigurable Pattern Processor Reusable Cells Reconfigurable in a Scalable Architecture

www.parshift.com/Files/PsiDocs/Pap090303-PatternRecognitionWithoutTradeoffs.pdf

Up to 256 possible features can be “satisfied” by all so-designated byte values

Cell-satisfaction activation pointers

Independent detection cell: content addressable by current input byte

If active, and satisfied with

current byte, can activate other designated cells

including itself

Individual detection cells are configured into detectors by linking activation pointers.

All active cells have simultaneous access to current data-stream byte

Cell-satisfaction output pointers

an unbounded number of detector cells configured as finite state machines can extend indefinitely across multiple processors

Page 21: Toward a Systemic Will to Live - Patters of Self-Organizing Agile Security

[email protected], 21

Up to 256 possible features can be “satisfied” by all so-designated byte values

Cell-satisfaction activation pointers

Independent detection cell: content addressable by current input byte

If active, and satisfied with

current byte, can activate other designated cells

including itself

Individual detection cells are configured into detectors by linking activation pointers.

All active cells have simultaneous access to current data-stream byte

an unbounded number of detector cells configured as finite state machines can extend indefinitely across multiple processors

Cell-satisfaction output pointers

Enables High Fidelity Modeling

Reconfigurable Pattern Processor Reusable Cells Reconfigurable in a Scalable Architecture

www.parshift.com/Files/PsiDocs/Pap090303-PatternRecognitionWithoutTradeoffs.pdf

Page 22: Toward a Systemic Will to Live - Patters of Self-Organizing Agile Security

[email protected], 22

Value-Based Feature Example

A reference pattern example for behavior-verification of a mobile object. Is it traveling within the planned space/time envelop?

Using GPS position data: Latitude, Longitude, Altitude.

Output F = failure S = success

Paths and Methods For Peer Behavior Monitoring Among Unmanned Autonomous Systems, www.parshift.com/Files/PsiDocs/Paths&MethodsForPeerBehaviorMonitoringAmongUnmannedAutonomousSystems.pdf

minimum separation

absolute

L A T

L O N

A L T

relative

L A T

L O N

A L T

linear, log or other scale

256 distance values

showing acceptable ranges of values

L A T

L O N

A L T

FCM configured to classify failure/success

F F S

Page 23: Toward a Systemic Will to Live - Patters of Self-Organizing Agile Security

[email protected], 23

SornS Architecture Self Organizing Resilient Network

Sensing (& Sensemaking)

Multi-level hierarchy refines situational awareness with learning and sensemaking, supports remedial action agents (human/automated) with succinct relevant information.

Notes: • For general collaborative hierarchy concept see (Haack 2009) • For hierarchical feed-forward/backward pattern learning, prediction, and sense-making see (George 2009). • For hierarchical learning of causal patterns spread as time-sequence events see (Hawkins 2010, Hawkins et al 2010).

Interface

noisy sensor stream (e.g., packets, log files)

End Point

SORNS Hardware Device

Architecture anticipates collaboration among SORN networks by L4 agents

L1 Spatial Detector Agent

L2 Temporal Detection Agent

L3 Correlative Detection Agent

noisy sensor stream (e.g., packets, log files)

L1 Spatial Detector Agent

L2 Temporal Detection Agent

L3 Correlative Detection Agent //

//

//

Network

L4 Correlative Detection Agent L4 Correlative Detection Agent //

End Point

Network

L5 Correlative Detection

Agent/Human

Policy/Procedure Data Base

Phase 1 Focus

Page 24: Toward a Systemic Will to Live - Patters of Self-Organizing Agile Security

[email protected], 24

Detector Creation and Learning Life Cycle

Page 25: Toward a Systemic Will to Live - Patters of Self-Organizing Agile Security

[email protected], 25

Endpoint Detector Families – Application Specific

Detection philosophy:

Automated learning of pattern features within a fixed set of generic pattern structures.

Spatial: n specific things happened in contiguous order Temporal: n specific things happened in order Correlative: n specific things happened

Spatial

Temporal

Correlative

Connection SQL Server Web Server MS Office …Appn

Detector Family

Detector Family

Detector Family

Detector Family

Detector Family

Detector Family

Detector Family

Detector Family

Detector Family

Detector Family

Detector Family

Detector Family

Detector Family

Detector Family

Detector Family

Page 26: Toward a Systemic Will to Live - Patters of Self-Organizing Agile Security

[email protected], 26

Proof-of-Concept IPv4 packet-header detection – single packet-header signature patterns (spatial connection category) Three elements to a pattern signature: address – port – type • Address: 4 bytes - Only the non-host address is of interest. • Port: 2 bytes - Only the destination port is of interest. • Types: 3 bits covers 8 types – (TCP, UDP, ICMP, other) x (incoming, outgoing) The L1-Agent preprocessor/controller selects relevant features from network packets and feeds them as condensed “feature packets” to the pattern processor

L1 Agent • conventional processor/memory • detector generator • feature packet assembly • pattern processor controller

Pattern Processor • special purpose chip • detectors in nursery • detectors in service • detectors in memory

network packets

IPv4 feature packets

detection alert

L2 Agent

Page 27: Toward a Systemic Will to Live - Patters of Self-Organizing Agile Security

[email protected], 27

Feature Cells and Finite State Machines (Illustrative example of pattern processor capability)

256-bit associative memory multi-feature detectors (MFD). All active MFDs are indexed by the input stream’s current byte value. If the index finds a set bit, the next MFD is activated and looks at the next stream byte, else the process dies.

IPv4 address port type

7 multi-feature detectors “connected” as a finite state machine (FSM)

○○ ≈ ○○○○○○○○○○○○○○○○○○

○○ ≈ ○○○○○○○○○○○○○○○○○○

○○ ≈ ○○○○○○○○○○○○○○○○○○

○○ ≈ ○○○○○○○○○○○○○○○○○○

○○ ≈ ○○○○○○○○○○○○○○○○○○

○○ ≈ ○○○○○○○○○○○○○○○○○○

start end

○○ ≈ ○○○○○○○○○○○○○○○○○○

Page 28: Toward a Systemic Will to Live - Patters of Self-Organizing Agile Security

[email protected], 28

IPv4 address 192.168.1.44

type 2

○○ ≈ ○○○○○○○○○○○○○●○○○○

○○ ≈ ○○○○○○○○○○○○○○○○○●

○○ ≈ ○○○○○○○○●○○○○○○○○○

○○ ≈ ○○○○○○○○○○○○○○○○●○

○○ ≈ ○○○○○○○○○●○○○○○○○○

○○ ≈ ○○○○●○○○○○○○○○○○○○

start end

192.168.1.44, 0.118, 2

○○ ≈ ○○○○○○○○○○○○○○○●○○

Loaded with 7 values

port 0.118

Feature Cells and Finite State Machines (Illustrative example of pattern processor capability)

256-bit associative memory multi-feature detectors (MFD). All active MFDs are indexed by the input stream’s current byte value. If the index finds a set bit, the next MFD is activated and looks at the next stream byte, else the process dies.

7 multi-feature detectors “connected” as a finite state machine (FSM)

Page 29: Toward a Systemic Will to Live - Patters of Self-Organizing Agile Security

[email protected], 29

IPv4 address port type

○○ ≈ ○○○○○○○○○○○○○●○○○○

○○ ≈ ○○○○○○○○○○○○○○○○○●

○○ ≈ ○○○○○○○○●○○○○○○○○○

○○ ≈ ○○○○○○○○○○○○○○○○●○

○○ ≈ ○○○○○○○○○●○○○○○○○○

○○ ≈ ○○○○●○○○○○○○○○○○○○

start end

192.168.1.44, 0.118, 2

○○ ≈ ○○○○○○○○○○○○○○○●○○

Processing Data Stream

Feature Cells and Finite State Machines (Illustrative example of pattern processor capability)

256-bit associative memory multi-feature detectors (MFD). All active MFDs are indexed by the input stream’s current byte value. If the index finds a set bit, the next MFD is activated and looks at the next stream byte, else the process dies.

7 multi-feature detectors “connected” as a finite state machine (FSM)

Page 30: Toward a Systemic Will to Live - Patters of Self-Organizing Agile Security

[email protected], 30

IPv4 address port type

○○ ≈ ○○○○○○○○○○○○○●○○○○

○○ ≈ ○○○○○○○○○○○○○○○○○●

○○ ≈ ○○○○○○○○●○○○○○○○○○

○○ ≈ ○○○○○○○○○○○○○○○○●○

○○ ≈ ○○○○○○○○○●○○○○○○○○

○○ ≈ ○○○○●○○○○○○○○○○○○○

start end

192.168.1.44, 0.118, 2

○○ ≈ ○○○○○○○○○○○○○○○●○○

Processing Data Stream

Feature Cells and Finite State Machines (Illustrative example of pattern processor capability)

256-bit associative memory multi-feature detectors (MFD). All active MFDs are indexed by the input stream’s current byte value. If the index finds a set bit, the next MFD is activated and looks at the next stream byte, else the process dies.

7 multi-feature detectors “connected” as a finite state machine (FSM)

Page 31: Toward a Systemic Will to Live - Patters of Self-Organizing Agile Security

[email protected], 31

IPv4 address port type

○○ ≈ ○○○○○○○○○○○○○●○○○○

○○ ≈ ○○○○○○○○○○○○○○○○○●

○○ ≈ ○○○○○○○○●○○○○○○○○○

○○ ≈ ○○○○○○○○○○○○○○○○●○

○○ ≈ ○○○○○○○○○●○○○○○○○○

○○ ≈ ○○○○●○○○○○○○○○○○○○

start end

192.168.1.44, 0.118, 2

○○ ≈ ○○○○○○○○○○○○○○○●○○

Processing Data Stream

Feature Cells and Finite State Machines (Illustrative example of pattern processor capability)

256-bit associative memory multi-feature detectors (MFD). All active MFDs are indexed by the input stream’s current byte value. If the index finds a set bit, the next MFD is activated and looks at the next stream byte, else the process dies.

7 multi-feature detectors “connected” as a finite state machine (FSM)

Page 32: Toward a Systemic Will to Live - Patters of Self-Organizing Agile Security

[email protected], 32

IPv4 address port type

○○ ≈ ○○○○○○○○○○○○○●○○○○

○○ ≈ ○○○○○○○○○○○○○○○○○●

○○ ≈ ○○○○○○○○●○○○○○○○○○

○○ ≈ ○○○○○○○○○○○○○○○○●○

○○ ≈ ○○○○○○○○○●○○○○○○○○

○○ ≈ ○○○○●○○○○○○○○○○○○○

start end

192.168.1.44, 0.118, 2

○○ ≈ ○○○○○○○○○○○○○○○●○○

Processing Data Stream

Feature Cells and Finite State Machines (Illustrative example of pattern processor capability)

256-bit associative memory multi-feature detectors (MFD). All active MFDs are indexed by the input stream’s current byte value. If the index finds a set bit, the next MFD is activated and looks at the next stream byte, else the process dies.

7 multi-feature detectors “connected” as a finite state machine (FSM)

Page 33: Toward a Systemic Will to Live - Patters of Self-Organizing Agile Security

[email protected], 33

IPv4 address port type

○○ ≈ ○○○○○○○○○○○○○●○○○○

○○ ≈ ○○○○○○○○○○○○○○○○○●

○○ ≈ ○○○○○○○○●○○○○○○○○○

○○ ≈ ○○○○○○○○○○○○○○○○●○

○○ ≈ ○○○○○○○○○●○○○○○○○○

○○ ≈ ○○○○●○○○○○○○○○○○○○

start end

192.168.1.44, 0.118, 2

○○ ≈ ○○○○○○○○○○○○○○○●○○

Processing Data Stream

Feature Cells and Finite State Machines (Illustrative example of pattern processor capability)

256-bit associative memory multi-feature detectors (MFD). All active MFDs are indexed by the input stream’s current byte value. If the index finds a set bit, the next MFD is activated and looks at the next stream byte, else the process dies.

7 multi-feature detectors “connected” as a finite state machine (FSM)

Page 34: Toward a Systemic Will to Live - Patters of Self-Organizing Agile Security

[email protected], 34

IPv4 address port type

○○ ≈ ○○○○○○○○○○○○○●○○○○

○○ ≈ ○○○○○○○○○○○○○○○○○●

○○ ≈ ○○○○○○○○●○○○○○○○○○

○○ ≈ ○○○○○○○○○○○○○○○○●○

○○ ≈ ○○○○○○○○○●○○○○○○○○

○○ ≈ ○○○○●○○○○○○○○○○○○○

start end

192.168.1.44, 0.118, 2

○○ ≈ ○○○○○○○○○○○○○○○●○○

Processing Data Stream

Feature Cells and Finite State Machines (Illustrative example of pattern processor capability)

256-bit associative memory multi-feature detectors (MFD). All active MFDs are indexed by the input stream’s current byte value. If the index finds a set bit, the next MFD is activated and looks at the next stream byte, else the process dies.

7 multi-feature detectors “connected” as a finite state machine (FSM)

Page 35: Toward a Systemic Will to Live - Patters of Self-Organizing Agile Security

[email protected], 35

IPv4 address port type

○○ ≈ ○○○○○○○○○○○○○●○○○○

○○ ≈ ○○○○○○○○○○○○○○○○○●

○○ ≈ ○○○○○○○○●○○○○○○○○○

○○ ≈ ○○○○○○○○○○○○○○○○●○

○○ ≈ ○○○○○○○○○●○○○○○○○○

○○ ≈ ○○○○●○○○○○○○○○○○○○

start end

192.168.1.44, 0.118, 2

○○ ≈ ○○○○○○○○○○○○○○○●○○

Processing Data Stream

Feature Cells and Finite State Machines (Illustrative example of pattern processor capability)

256-bit associative memory multi-feature detectors (MFD). All active MFDs are indexed by the input stream’s current byte value. If the index finds a set bit, the next MFD is activated and looks at the next stream byte, else the process dies.

7 multi-feature detectors “connected” as a finite state machine (FSM)

Page 36: Toward a Systemic Will to Live - Patters of Self-Organizing Agile Security

Very Large Scale Anomaly Detector

Page 37: Toward a Systemic Will to Live - Patters of Self-Organizing Agile Security

[email protected], 37

Fundamental Elements

12 98 126 25 41 250 7 16 13 123 255 0 0 98 1

feature packet feature value

feature stream

pattern space

255 255 255 255 255 255

255 255 255 255 255 254

255 255 255 255 255 253

255 255 255 255 255 0

255 255 255 255 254 255

255 255 255 255 254 254

255 255 255 255 254 253

255 255 255 255 254 0

0 0 0 0 0 0

98 126 25 41 250 7

98 126 25 41 11 0

16 13 123 255 0 0

pattern list

pattern

pattern space contains 2566 = 2.81x1014 unique patterns

for patterns consisting

of 6 feature values with range 0-255

Page 38: Toward a Systemic Will to Live - Patters of Self-Organizing Agile Security

[email protected], 38

11 ≈ 001010110100101010

00 ≈ 001111110010101011

10 ≈ 001100110110111100

11 ≈ 110011100011101111

01 ≈ 011111110110101001

Gang Detector (GD)

10 ≈ 001001110010101111

Gang Detector (eg, with seven multi-feature detectors)

Multi-Feature Detectors (MFD, variable size)

Feature Indicator (1-bit)

Non-Feature Indicator (0-bit)

10101111

Pattern (or Pattern Path)

Page 39: Toward a Systemic Will to Live - Patters of Self-Organizing Agile Security

[email protected], 39

11 ≈ 001010110100101010

00 ≈ 001111110010101011

10 ≈ 001100110110111100

11 ≈ 110011100011101111

01 ≈ 011111110110101001

Gang Detector (GD)

10 ≈ 001001110010101111

10101111

Gang Detector (eg, with seven multi-feature detectors)

Multi-Feature Detectors (MFD, variable size)

Feature Indicator (1-bit)

Non-Feature Indicator (0-bit)

Pattern (or Pattern Path)

A GD is implemented as a 2 dimensional bit array, with each

column corresponding to an MFD of independent size, but typically a max

of 256 to accommodate associative addressing (indexing) by an 8-bit

Feature Packet byte.

A Feature Indicator is a 1-bit in any or all of the possible index values.

One GD with all Feature Indicators

present would have 256x256x256x256x256x256x8 =

2.6x1015 unique Pattern Paths.

This many unique patterns would be represented in just (6x32)+1 =

193 8-bit data bytes.

If each of these patterns were in a

pattern list, seven times the number of possible patterns in data bytes

would be required =

~1016 data bytes in contrast.

Page 40: Toward a Systemic Will to Live - Patters of Self-Organizing Agile Security

[email protected], 40

11 ≈ 001010110100101010

00 ≈ 001111110010101011

10 ≈ 001100110110111100

11 ≈ 110011100011101111

01 ≈ 011111110110101001

Gang Detector (GD)

10 ≈ 001001110010101111

10101111

Gang Detector (eg, with seven multi-feature detectors)

Multi-Feature Detectors (MFD, variable size)

Feature Indicator (1-bit)

Non-Feature Indicator (0-bit)

Pattern (or Pattern Path)

A GD is implemented as a 2 dimensional bit array, with each

column corresponding to an MFD of independent size, but typically a max

of 256 to accommodate associative addressing (indexing) by an 8-bit

Feature Packet byte.

A Feature Indicator is a 1-bit in any or all of the possible index values.

One GD with all Feature Indicators

present would have 256x256x256x256x256x256x8 =

2.6x1015 unique Pattern Paths.

This many unique patterns would be represented in just (6x32)+1 =

193 8-bit data bytes.

If each of these patterns were in a

pattern list, seven times the number of possible patterns in data bytes

would be required =

~1016 data bytes in contrast. a unique benefit of the approach

Page 41: Toward a Systemic Will to Live - Patters of Self-Organizing Agile Security

[email protected], 41

00 ≈ 000000000000001000

00 ≈ 000000000000100000

00 ≈ 000000000000100000

00 ≈ 000001000000000000

00 ≈ 000000000100000000

00 ≈ 001000000000000000

00001000

7 Feature Indicators = 1 Pattern (Path)

Gang Detector (GD)

Page 42: Toward a Systemic Will to Live - Patters of Self-Organizing Agile Security

[email protected], 42

00 ≈ 000000000000001000

00 ≈ 000000000000100000

00 ≈ 000000000000100000

00 ≈ 000001000000000000

00 ≈ 010000000100000000

00 ≈ 001000000000000000

00001000

7 Feature Indicators = 1 Pattern (Path) 8 Feature Indicators = 2 Patterns (Paths)

Gang Detector (GD)

Page 43: Toward a Systemic Will to Live - Patters of Self-Organizing Agile Security

[email protected], 43

00 ≈ 000000000000001000

00 ≈ 000000000000100000

00 ≈ 000000100000100000

00 ≈ 000001000000000000

00 ≈ 010000000100000000

00 ≈ 001000000000000000

00001000

7 Feature Indicators = 1 Pattern (Path) 8 Feature Indicators = 2 Patterns (Paths) 9 Feature Indicators = 4 Patterns (Paths)

Gang Detector (GD)

Page 44: Toward a Systemic Will to Live - Patters of Self-Organizing Agile Security

[email protected], 44

00 ≈ 000000000100001000

00 ≈ 000000000000100000

00 ≈ 000000100000100000

00 ≈ 000001000000000000

00 ≈ 010000000100000000

00 ≈ 001000000000000000

00001000

Adding a single Feature Indicator increases the Patterns (Paths) by a factor of 2, an exponential increase. An application might create a new GD with the same percentage of Feature Indicators in every MFD. If that were 50%, with six MFDs of size 256 and one of size 8, the total number of Patterns (Paths) upon creation would be

128x128x128x128x128x128x4=

1.8x1013 patterns Detectable at data-stream feed-speed

independent of the number of patterns 7 Feature Indicators = 1 Pattern (Path) 8 Feature Indicators = 2 Patterns (Paths) 9 Feature Indicators = 4 Patterns (Paths) 10 Feature Indicators = 8 Patterns (Paths)

Gang Detector (GD)

Page 45: Toward a Systemic Will to Live - Patters of Self-Organizing Agile Security

[email protected], 45

00 ≈ 000000000100001000

00 ≈ 000000000000100000

00 ≈ 000000100000100000

00 ≈ 000001000000000000

00 ≈ 010000000100000000

00 ≈ 001000000000000000

00001000

Adding a single Feature Indicator increases the Patterns (Paths) by a factor of 2, an exponential increase. An application might create a new GD with the same percentage of random Feature Indicators in every MFD. If that were 50%, with six MFDs of size 256 and one of size 8, the total number of Patterns (Paths) upon creation would be

128x128x128x128x128x128x4=

1.8x1013 patterns Detectable at data-stream feed-speed

independent of the number of patterns 7 Feature Indicators = 1 Pattern (Path) 8 Feature Indicators = 2 Patterns (Paths) 9 Feature Indicators = 4 Patterns (Paths) 10 Feature Indicators = 8 Patterns (Paths)

Gang Detector (GD)

a unique benefit of the approach

Page 46: Toward a Systemic Will to Live - Patters of Self-Organizing Agile Security

[email protected], 46

Detector Sets

Create a new Gang Detector (GD)

Mature new GD in the Nursery

Use GDs to detect anomalies

Insert mature GD into Service

Remove GDs from Service

GD Creation

GD Maturation

GD Insertion

GD Detection

GD Removal

GDN1 GDN2 GDNn GDS1 GDS2 GDSm

Nursery Set: mass patterns

Service Set: mass patterns

DM1 DM2 DMm

Memory Set: single/multi patterns

DA1 DA2 DAa

Action Set: single patterns

Page 47: Toward a Systemic Will to Live - Patters of Self-Organizing Agile Security

[email protected], 47

Detector Sets

50% of Feature Indicators set across 7 MFDs (6@256 & 1@8)

Multiple gang detectors covering slightly-overlapping portions of total pattern space collectively increase the total coverage of pattern space.

Create a new Gang Detector (GD)

Mature new GD in the Nursery

Use GDs to detect anomalies

Insert mature GD into Service

Remove GDs from Service

GD Creation

GD Maturation

GD Insertion

GD Detection

GD Removal

99.97% coverage with 512 GDs

GDN1 GDN2 GDNn GDS1 GDS2 GDSm

Nursery Set: mass patterns

Service Set: mass patterns

DM1 DM2 DMm

Memory Set: single/multi patterns

DA1 DA2 DAa

Action Set: single patterns

Page 48: Toward a Systemic Will to Live - Patters of Self-Organizing Agile Security

[email protected], 48

IPv4 Pattern-Space Coverage: c=6

0.00% 10.00% 20.00% 30.00% 40.00% 50.00% 60.00% 70.00% 80.00% 90.00%

100.00%

1 21

41

61

81

101

121

141

161

181

201

221

241

261

281

301

321

341

361

381

401

421

441

461

481

501

Pattern-Space Coverage by Number of GDs

63.50%

86.68% 95.14% 98.23% 99.35% 99.76% 99.91% 99.97%

0.00% 10.00% 20.00% 30.00% 40.00% 50.00% 60.00% 70.00% 80.00% 90.00%

100.00%

64 128 192 256 320 384 448 512

% Coverage by number of GDs

0.00% 10.00% 20.00% 30.00% 40.00% 50.00% 60.00% 70.00% 80.00% 90.00%

100.00%

1 21

41

61

81

101

121

141

161

181

201

221

241

261

281

301

321

341

361

381

401

421

441

461

481

501

Pattern-Space Coverage by Number of GDs

31.29%

52.79%

67.56% 77.71%

84.69% 89.48% 92.77% 95.03%

0.00% 10.00% 20.00% 30.00% 40.00% 50.00% 60.00% 70.00% 80.00% 90.00%

100.00%

64 128 192 256 320 384 448 512

% Coverage by number of GDs

IPv6 Pattern-Space Coverage: c=32

50% cardinality

85% cardinality

Page 49: Toward a Systemic Will to Live - Patters of Self-Organizing Agile Security

[email protected], 49

Coverage as Function of Cardinality

Cardinality losses justify the value of refresh-cycling the in-service GDs, and sharing results with other endpoint agents

accelerating decline in coverage as cardinality drops,

40% thought comfortable threshold

Page 50: Toward a Systemic Will to Live - Patters of Self-Organizing Agile Security

[email protected], 50

6 MFDs at 40% = 98.35% at 1024 GDs Coverage of 32 MFDs Declines Fast

Page 51: Toward a Systemic Will to Live - Patters of Self-Organizing Agile Security

[email protected], 51

Gang Detector: Some Context

Good for negative selection, not positive selection You cannot build a GD by adding patterns to it (in general) You cannot delete a single pattern from it (like Bloom Filters that way)

00 ≈ 000000000000001000

00 ≈ 000000000000100000

00 ≈ 000000000000100000

00 ≈ 000001000000000000

00 ≈ 010000000100001000

00 ≈ 001000000000000000

00001000

3 Pattern Paths with no spurious paths introduced

The exception, multi-patterns can be built with a single MFD

Page 52: Toward a Systemic Will to Live - Patters of Self-Organizing Agile Security

[email protected], 52

SornS Architecture Self Organizing Resilient Network

Sensing (& Sensemaking)

Multi-level hierarchy refines situational awareness with learning and sensemaking, supports remedial action agents (human/automated) with succinct relevant information.

Notes: • For general collaborative hierarchy concept see (Haack 2009) • For hierarchical feed-forward/backward pattern learning, prediction, and sense-making see (George 2009). • For hierarchical learning of causal patterns spread as time-sequence events see (Hawkins 2010, Hawkins et al 2010).

Interface

noisy sensor stream (e.g., packets, log files)

End Point

SORNS Hardware Device

Architecture anticipates collaboration among SORN networks by L4 agents

L1 Spatial Detector Agent

L2 Temporal Detection Agent

L3 Correlative Detection Agent

noisy sensor stream (e.g., packets, log files)

L1 Spatial Detector Agent

L2 Temporal Detection Agent

L3 Correlative Detection Agent //

//

//

Network

L4 Correlative Detection Agent L4 Correlative Detection Agent //

End Point

Network

L5 Correlative Detection

Agent/Human

Policy/Procedure Data Base

Phase 1 Focus

Page 53: Toward a Systemic Will to Live - Patters of Self-Organizing Agile Security

[email protected], 53

General Architecture Architecture blends immune system model with cortical hierarchy model.

situational environment

it’s turtles all the way

down

immediate recognition

Architecture – repeated at all (4 to 5) levels

Immune system learning occurs by: • augmenting the innate immune system population of

detectors (e.g., black/white lists), • negative selection self-tolerance training (e.g., nursery set), • experience encounters (e.g., service set), and • costimulation (e.g., memory-set).

Agent data base and stream-data buffer

PatProc with Detector Sets

Feature Stream

Control

Detection Results

Control

Feed-Forward Data Stream

Feed-Back Detector Influence

Feed-Back Detector Influence

Stream PreProc, Detector Mgmnt, PatProc Control

Results PostProc, Detector Mgmnt, PatProc Control

Feed-Side Peer Share

Feed-Side Peer Share

Feed-Forward Data Stream

Page 54: Toward a Systemic Will to Live - Patters of Self-Organizing Agile Security

[email protected], 54

Very Large Scale Anomaly Detector – Other App Domains The SORNS example is a specific domain instance of the more general “normal vs. anomalous behavior” classification problem. Of interest elsewhere, for instance: • monitoring the operational behaviors of a swarm of unmanned autonomous

weapons sent on a war fighting mission, • video image monitoring of human behavior in terrorist target areas like airports, • insider threat behavior, • monitoring machine and process behaviors in factories (anti-Stuxnet), • monitoring critical infrastructure operating behaviors, say for financial-market

transactions, • fraud, data mining, intelligence, …………..

Perhaps most interesting, the human brain appears to work on anomaly detection • it appears to select and store (learn) pattern features for uniqueness and rarity • children learn with attention to things that are different and new • it doesn’t learn immediately, but does recognize learned patterns immediately • it can learn both by download (taught) and by speculative discovery (try this)

Page 55: Toward a Systemic Will to Live - Patters of Self-Organizing Agile Security

[email protected], 55

Very Large Scale Anomaly Detector - Summary Gang Detector (seven-feature pattern example)

• Memory breakthrough: 193 bytes vs. 1016 bytes for pattern storage • Coverage breakthrough: 512 GDs covers 99.97% of pattern space at 1 endpoint • Good coverage does not require high coverage at any endpoint:

• Endpoint multiples boost total coverage with same coverage curve • Endpoint detector cycling boosts total coverage with same coverage curve

• Custom anomaly detection – no two installations alike (in pattern content) • Dynamically self-adaptable to local situation Pattern Processor without tradeoffs • Speed breakthrough: speed independent of number/size of patterns • Capacity breakthrough: affordable massive pattern counts Potential Product Package • Transparent to endpoint: no latency or throttling of comm speed • Transparent to network: no accommodations required • Transparent to budget: no signature subscription • Transparent to installer: bump on the wire installation

Page 56: Toward a Systemic Will to Live - Patters of Self-Organizing Agile Security

[email protected], 56

A Fairer Fight

Adversarial Agent (AA)

Adversarial Domain (AD)

Adversarial Communities

Security Agent (SA)

Security Domain (SD)

Security Communities

Self Organizing Systems Dynamic Attack

Dynamic attack includes human and systemic adaptive control – unable to know the detection detail and capability.

Anomaly Sensors collaborate within a network, dynamically adjusting to local situations, and can also collaborate among networks.

AD AD

AA AA

SD SD

SA SA

Level-2 Agent (L2)

SORNS Net Domain

SORNS Communities L3 L3

L2 L2

Just one self-organizing security example of many more to come

Page 57: Toward a Systemic Will to Live - Patters of Self-Organizing Agile Security

[email protected], 57

Carlson, Jean and John Doyle. 2000. Highly Optimized Tolerance: Robustness and Design in Complex Systems, Physical Review Letters 84 (11): 2529–2532, 13 March.

Carlson, Jean and John Doyle. 2002. Complexity and Robustness. PNAS 99: 2538–2545, 19 February. Csete, Marie and John Doyle. 2010. Bow Ties, Metabolism and Disease, TRENDS in Biotechnology 22(9), September 2004.

www.cds.caltech.edu/~doyle/CmplxNets/Trends.pdf Dove, Rick. 2009. Pattern Recognition without Tradeoffs: Scalable Accuracy with No Impact on Speed. Proceedings of Cybersecurity Applications &

Technology Conference For Homeland Security, Wash. D.C., March 2009. www.parshift.com/Files/PsiDocs/Pap090303-PatternRecognitionWithoutTradeoffs.pdf

Dove, Rick. 2009. Embedding Agile Security in System Architecture. Insight 12 (2): 14-17. International Council on Systems Engineering, July. www.parshift.com/Files/PsiDocs/Pap090701Incose-EmbeddingAgileSecurityInSystemArchitecture.pdf

Dove, Rick. 2010. Pattern Qualifications and Examples of Next-Generation Agile System-Security Strategies, IEEE International Carnahan Conference on Security Technology (ICCST), San Jose, CA, USA, 5-8 October. www.parshift.com/Files/PsiDocs/PatternQualificationsForAgileSecurity.pdf

Dove, Rick. 2010. Self Organizing Resilient Network Sensing Using Patterns from Natural and Adversarial Processes, working paper, www.parshift.com/Files/PsiDocs/PatternsForResilientNetworkSensing&Sensemaking.pdf

Dove, Rick. 2010. Illuminating Next Generation Agile Security Patterns. SERC Security Research Roadmap Workshop, March 31-April 1, Washington, D.C. www.parshift.com/Files/PsiDocs/Pap100331SERC-IlluminatingNextGenAgileSecurityPatterns.pdf

Dove, Rick. 2010. Pattern Qualifications and Examples of Next-Generation Agile System Security Strategies. IEEE International Carnahan Conference on Security Technology (ICCST), San Jose, CA, USA, 5-8 Oct. www.parshift.com/Files/PsiDocs/PatternQualificationsForAgileSecurity.pdf

Dove, Rick 2011. Patterns of Self-Organizing Agile Security for Resilient Network Situational Awareness and Sense-Making. Proceedings ITNG 2011 conference, Las Vegas, NV April 11-13. www.parshift.com/s/110411PatternsForSORNS.pdf

Forrest, S., Perelson, A. S., Allen, L., and Cherukuri, R., Self-Nonself Discrimination in a Computer, In Proceedings IEEE Symposium on Research in Security and Privacy, Oakland, CA., May 16–18, 1994.

Forrest, S., Balthrop, J., Glickman, M. and Ackley, D.. K. Park and W. Willins Eds. The Internet as a Large-Scale Complex System, Oxford University Press, 2005.

George, Deleep. 2009. How the Brain Might Work: A Hierarchical and Temporal Model for Learning and Recognition. PhD thesis, Stanford University. Haack, Jereme N., Glenn A. Fink, Wendy M. Maiden, David McKinnon, and Errin W. Fulp. 2009. Mixed-Initiative Cyber Security:

Putting Humans in the Right Loop. www.cs.wfu.edu/~fulp/Papers/mims09f.pdf Hawkins, Jeff. 2010. Video talk of “Hierarchical Temporal Memory and FDR (Fixed-sparsity Distributed Representations),” University of British

Columbia, Vancouver, March 18. Video: www.youtube.com/watch?v=TDzr0_fbnVk. Hawkins, Jeff, Subutai Ahmad, Donna Dubinsky, and Numenta Employees. 2010. Hierarchical Temporal Memory Including HTM Cortical Learning

Algorithms. Version 0.2, December 10. www.numenta.com/htm-overview/education.php Hofmeyr S. and S. Forrest. 2000. "Architecture for an Artificial Immune System." Evolutionary Computation 7(1), Morgan-Kaufmann, San Francisco,

CA, pp. 1289-1296. http://cs.unm.edu/~forrest/publications/hofmeyr_forrest.pdf Pennisi, Elizabeth, Researchers Trade Insights About Gene Swapping, Science, Vol. 305:334-335, 16 July, 2004. Smets, Barth F. and Tamar Barkay. 2005. Horizontal gene transfer: perspectives at a crossroads of scientific disciplines. Nature Reviews

Microbiology 3, 675-678 (September 2005). Woese, Carl. 2000. Interpreting the Universal Phylogenetic Tree. PNAS. 97(15):8392-6.

www.ncbi.nlm.nih.gov/pmc/articles/PMC26958/pdf/pq008392.pdf Zhang, C., Zhang, J., Liu, S., and Liu, Y., Network Intrusion Active Defense Model Based on Artificial Immune System. Fourth International

Conference on Natural Computation, Jinan, China, October 18-20, 2008.

References