Skip to content

Case State Model Definition

This page is normative

This page is considered a core part of the Vultron Protocol. This is a normative section of the documentation.

CS Model Diagram

A diagram of the CS process, including its states and transitions, is shown below.

In this combined model, each point along the vendor fix flow above corresponds to an instance of the public/exploit/attack diagram. The full diagram below shows each of these as distinct macrostates embedded in the larger model.

---
title: Case State Diagram
---
stateDiagram-v2
    direction LR
    VendorUnaware: Vendor Unaware
    VendorAware: Vendor Aware
    FixReady: Fix Ready
    FixDeployed: Fix Deployed
    state VendorUnaware {
        vfdpxa
        vfdPxa
        vfdpXa 
        vfdPXa
        vfdpxA
        vfdPxA
        vfdpXA
        vfdPXA 
   }
   state VendorAware {
        Vfdpxa
        VfdPxa
        VfdpXa 
        VfdPXa
        VfdpxA
        VfdPxA
        VfdpXA
        VfdPXA 
   } 
   state FixReady {
        VFdpxa
        VFdPxa
        VFdpXa 
        VFdPXa
        VFdpxA
        VFdPxA
        VFdpXA
        VFdPXA
   }
   state FixDeployed {
        VFDpxa
        VFDPxa
        VFDpXa 
        VFDPXa
        VFDpxA
        VFDPxA
        VFDpXA
        VFDPXA
    }
    [*] --> vfdpxa
    vfdpxa --> vfdPxa : P
    vfdpxa --> vfdpXa : X
    vfdpXa --> vfdPXa : P
    vfdpxa --> vfdpxA : A
    vfdpxA --> vfdPxA : P
    vfdpxA --> vfdpXA : X
    vfdpXA --> vfdPXA : P
    vfdpxa --> Vfdpxa : V
    vfdpxA --> VfdpxA : V
    vfdPxa --> VfdPxa : V
    vfdPXa --> VfdPXa : V
    vfdPxA --> VfdPxA : V
    vfdPXA --> VfdPXA : V
    Vfdpxa --> VfdPxa : P
    Vfdpxa --> VfdpXa : X
    VfdpXa --> VfdPXa : P
    Vfdpxa --> VfdpxA : A
    VfdpxA --> VfdPxA : P
    VfdpxA --> VfdpXA : X
    VfdpXA --> VfdPXA : P
    VfdPxa --> VfdPxA : A
    VfdPxa --> VfdPXa : X
    VfdPXa --> VfdPXA : A
    VfdPxA --> VfdPXA : X
    Vfdpxa --> VFdpxa : F
    VfdpxA --> VFdpxA : F
    VfdPxa --> VFdPxa : F
    VfdPXa --> VFdPXa : F
    VfdPxA --> VFdPxA : F
    VfdPXA --> VFdPXA : F
    VFdpxa --> VFdPxa : P
    VFdpxa --> VFdpXa : X
    VFdpXa --> VFdPXa : P
    VFdpxa --> VFdpxA : A
    VFdpxA --> VFdPxA : P
    VFdpxA --> VFdpXA : X
    VFdpXA --> VFdPXA : P
    VFdPxa --> VFdPxA : A
    VFdPxa --> VFdPXa : X
    VFdPXa --> VFdPXA : A
    VFdPxA --> VFdPXA : X
    VFdpxa --> VFDpxa : D
    VFdpxA --> VFDpxA : D
    VFdPxa --> VFDPxa : D
    VFdPXa --> VFDPXa : D
    VFdPxA --> VFDPxA : D
    VFdPXA --> VFDPXA : D
    VFDpxa --> VFDPxa : P
    VFDpxa --> VFDpXa : X
    VFDpXa --> VFDPXa : P
    VFDpxa --> VFDpxA : A
    VFDpxA --> VFDPxA : P
    VFDpxA --> VFDpXA : X
    VFDpXA --> VFDPXA : P
    VFDPxa --> VFDPxA : A
    VFDPxa --> VFDPXa : X
    VFDPXa --> VFDPXA : A
    VFDPxA --> VFDPXA : X
    VFDPXA --> [*]

The Vendor Unware macrostate (vfd)

Found at the top of the diagram, the \(vfd\) macrostate is the least stable of the four because many of its internal transitions are disallowed, owing to the instability of both \(pX\) and \(vP\). The effect is a higher likelihood of exiting this cube than the others. The practical interpretation is that vendors are likely to become aware of vulnerabilities that exist in their products barring significant effort on the part of adversaries to prevent exiting the \(vfd\) states.

The Vendor Aware macrostate (Vfd)

In this set of states, the vendor is aware of the vulnerability, but the fix is not yet ready. Vulnerabilities remain in \(Vfd\) until the vendor produces a fix.

The Fix Available macrostate (VFd)

States in this macrostate share the fact that a fix is available but not yet deployed. Many publicly-disclosed vulnerabilities spend a sizable amount of time in this cube as they await system owner or deployer action to deploy the fix.

The Fix Deployed macrostate (VFD)

This macrostate is a sink: once it is reached, there are no exits. Attacks attempted in this cube are expected to fail. The broader the scope of one's concern in terms of number of systems, the less certain one can be of having reached this macrostate. It is rather easy to tell when a single installed instance of vulnerable software has been patched. It is less easy to tell when the last of thousands or even millions of vulnerable software instances across an enterprise has been fixed.

Simplified CS Model Diagram

A simplified version of the CS model diagram is shown below. In this version, we are only demonstrating the parallelism between the participant-specific (vendor fix path) and participant-agnostic (public, exploit, attacks) aspects of the model, without the additional complexity of the interactions between the two.

---
title: Case State Diagram showing Participant-Agnostic and Participant-Specific Aspects
---
stateDiagram-v2
    direction LR
    CS: Case State Model
    state CS {
        ps: Participant-Specific
        state ps {
            [*] --> vfd
            vfd --> Vfd : V
            Vfd --> VFd : F
            VFd --> VFD : D
            VFD --> [*]
        }
        --
        g: Participant-Agnostic 
        state g {
            [*] --> pxa

            pxa --> Pxa : P
            pxa --> pXa : X
            pxa --> pxA : A

            pXa --> PXa : P
            pXa --> pXA : A

            pxA --> PxA : P
            pxA --> pXA : X

            Pxa --> PxA : A
            Pxa --> PXa : X

            pXA --> PXA : P
            PXa --> PXA : A
            PxA --> PXA : X
            PXA --> [*]
        }
    }
    [*] --> CS
    CS --> [*]

CS Model Fully Defined

In combination, the full definition of the Case State DFA \((\mathcal{Q},q_0,\mathcal{F},\Sigma,\delta)^{cs}\) is shown below.

Case State Model \((\mathcal{Q},q_0,\mathcal{F},\Sigma,\delta)^{cs}\) Fully Defined

\(CS = \begin{pmatrix} \begin{aligned} \mathcal{Q}^{cs} = & \begin{Bmatrix} vfdpxa, & vfdPxa, & vfdpXa, & vfdPXa, \\ vfdpxA, & vfdPxA, & vfdpXA, & vfdPXA, \\ Vfdpxa, & VfdPxa, & VfdpXa, & VfdPXa, \\ VfdpxA, & VfdPxA, & VfdpXA, & VfdPXA, \\ VFdpxa, & VFdPxa, & VFdpXa, & VFdPXa, \\ VFdpxA, & VFdPxA, & VFdpXA, & VFdPXA, \\ VFDpxa, & VFDPxa, & VFDpXa, & VFDPXa, \\ VFDpxA, & VFDPxA, & VFDpXA, & VFDPXA \end{Bmatrix}, \\ q^{cs}_0 = & vfdpxa, \\ \mathcal{F}^{cs} = &\{VFDPXA\}, \\ \Sigma^{cs} = & \{\mathbf{V},\mathbf{F},\mathbf{D},\mathbf{P},\mathbf{X},\mathbf{A}\}, \\ \delta^{cs} = & \begin{cases} vfdpxa &\to \mathbf{V}~Vfdpxa~|~\mathbf{P}~vfdPxa~|~\mathbf{X}~vfdpXa~|~\mathbf{A}~vfdpxA \\ vfdpxA &\to \mathbf{V}~VfdpxA~|~\mathbf{P}~vfdPxA~|~\mathbf{X}~vfdpXA \\ vfdpXa &\to \mathbf{P}~vfdPXa \\ vfdpXA &\to \mathbf{P}~vfdPXA \\ vfdPxa &\to \mathbf{V}~VfdPxa \\ vfdPxA &\to \mathbf{V}~VfdPxA \\ vfdPXa &\to \mathbf{V}~VfdPXa \\ vfdPXA &\to \mathbf{V}~VfdPXA \\ Vfdpxa &\to \mathbf{F}~VFdpxa~|~\mathbf{P}~VfdPxa~|~\mathbf{X}~VfdpXa~|~\mathbf{A}~VfdpxA \\ VfdpxA &\to \mathbf{F}~VFdpxA ~|~ \mathbf{P}~VfdPxA ~|~ \mathbf{X}~VfdpXA \\ VfdpXa &\to \mathbf{P}~VfdPXa \\ VfdpXA &\to \mathbf{P}~VfdPXA \\ VfdPxa &\to \mathbf{F}~VFdPxa ~|~ \mathbf{X}~VfdPXa ~|~ \mathbf{A}~VfdPxA \\ VfdPxA &\to \mathbf{F}~VFdPxA ~|~ \mathbf{X}~VfdPXA \\ VfdPXa &\to \mathbf{F}~VFdPXa ~|~ \mathbf{A}~VfdPXA \\ VfdPXA &\to \mathbf{F}~VFdPXA \\ VFdpxa &\to \mathbf{D}~VFDpxa~|~\mathbf{P}~VFdPxa ~|~ \mathbf{X}~VFdpXa ~|~ \mathbf{A}~VFdpxA \\ VFdpxA &\to \mathbf{D}~VFDpxA ~|~ \mathbf{P}~VFdPxA ~|~ \mathbf{X}~VFdpXA \\ VFdpXa &\to \mathbf{P}~VFdPXa \\ VFdpXA &\to \mathbf{P}~VFdPXA \\ VFdPxa &\to \mathbf{D}~VFDPxa ~|~ \mathbf{X}~VFdPXa ~|~ \mathbf{A}~VFdPxA \\ VFdPxA &\to \mathbf{D}~VFDPxA ~|~ \mathbf{X}~VFDPXA \\ VFdPXa &\to \mathbf{D}~VFDPXa ~|~ \mathbf{A}~VFdPXA \\ VFdPXA &\to \mathbf{D}~VFDPXA \\ VFDpxa &\to \mathbf{P}~VFDPxa ~|~ \mathbf{X}~VFDpXa ~|~ \mathbf{A}~VFDpxA \\ VFDpxA &\to \mathbf{P}~VFDPxA ~|~ \mathbf{X}~VFDpXA \\ VFDpXa &\to \mathbf{P}~VFDPXa \\ VFDpXA &\to \mathbf{P}~VFDPXA \\ VFDPxa &\to \mathbf{X}~VFDPXa ~|~ \mathbf{A}~VFDPxA \\ VFDPxA &\to \mathbf{X}~VFDPXA \\ VFDPXa &\to \mathbf{A}~VFDPXA \\ VFDPXA &\to \varepsilon \\ \end{cases} \end{aligned} \end{pmatrix}\)