/CarVal

Primary LanguageOpenEdge ABL

CarVal

CarVal: Automated Attack Path Reasoning in IVN.

TD: URL -> Paper link.

Rep Structure

Following files are the key of CarVal:

  • CarVal_Code
    • carval_infer.sh (Script to start infer attack path.)
    • input_IVN.P (Input to CarVal, including the IVN and the attack goal to be inferred.)
    • interaction_rules.P (All interaction rules for CarVal reasoning.)
    • risk_assessment.py (This code will perform risk assessment based on the AttackGraph.dot generated by carval_infer.sh.)

Setup

CarVal is a tool for automatic attack path reasoning and risk assessment in modern in-vehicle network (IVN).

  1. Set up MulVal enviornment according to https://github.com/risksense/mulval.

  2. Copy the CarVal code into the MulVal directory, including:

    • Replace mulval/kb/interaction_rules.P with CarVal_Code/interaction_rules.P

    • Copy all other codes under CarVal_Code (carval_infer.sh, input_IVN.P, risk_assessment.py) into mulval/utils/.

    • Now CarVal is ready to run. Execute the following code under the mulval/utils:

    ./carval_infer.sh -v ./input_IVN.P
    
    • Then the output attack path will be generated as AttackGraph.dot in the same directory. Then execute the python script to further calculate the risk values along the attack path.
    python risk_assessment.py
    

An Example

Following is an example of generated attack path.

Risk Assessment Output