Skip to content

cloudhubs/aiat-authorization-consistency-solver

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Formal Automated Verification of Microservices Tool (FAVM-T)

We used the TrainTicket repository found here: https://github.com/cloudhubs/train-ticket-aitest/tree/master. The master, first-inconsistency-injection, and second-inconsistency-injection branches contain the different scenarios tested.

We used the YAS repository found here: https://github.com/cloudhubs/yas. The main, first-injection, and second-injection branches contain the different scenarios we tested.

We used a modified version of cimet-extract-lib (included in this package) to generate intermediate representations of the microservice system. The original version can be found here: https://github.com/cloudhubs/cimet.

We used the microservice indexer found here: https://github.com/arfan-rfn/microservice-index/tree/master to create indices of the microservice system.

Project Requirements

  • Python and pip are required (confirmed working with Python 3.12.6).

Project Structure

  • /cimet-extract-lib contains the code used to generate the intermediate representations.
  • /data/aiat_auth_fault_injection_train_ticket contains all of the data and analysis for the TrainTicket case study.
  • /data/aiat_auth_fault_injection_train_ticket/models contains the generated system models that were used to generate constraints evaluated by the SMT solver.
  • /data/aiat_auth_fault_injection_train_ticket/ms_indices contains indices of the microservice system.
  • /data/aiat_auth_fault_injection_train_ticket/ms_irs contains the IRs of the microservice system.
  • /data/aiat_auth_fault_injection_train_ticket/suggestions contains the detected faults when evaluated by the solver.
  • /data/aiat_auth_fault_injection_train_ticket/AIAT Formal Methods Fault Injection Analysis - Train Ticket.docx contains an analysis of all the results.
  • /data/aiat_auth_fault_injection_yas contains all of the data and analysis for the YAS case study. It follows the same folder structure as outlined above for TrainTicket.
  • /src contains the code used to generate intermediate models, generate constraints, and solve.
  • /util contains various utility scripts.
  • /validation contains the code used to run the case study.

Running the Project

  1. Run pip install -r requirements.txt to obtain the necessary requirements.
  2. Run python -m validation.auth.aiat_fault_injection to run the fault injection study on both TrainTicket and YAS, which takes the provided IRs and indices (you can generate these yourself using the cimet-extract-lib and microservice indexer provided), creates SMT-friendly system models, runs the SMT solver on each model, and outputs the results to the /data/aiat_auth_fault_injection_train_ticket/ and /data/aiat_auth_fault_injection_yas/ directories.

About

Formal Automated Verification of Microservices Tool applied for the AIAT fault injection study.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors