From fc5cad0814815342f69e60e12d7e0d99697620d0 Mon Sep 17 00:00:00 2001 From: Sabine Proll Date: Mon, 17 Jul 2023 11:28:59 +0200 Subject: [PATCH] more details on sw design approaches + deliverable with examples for vulnerability classes --- applications/sarp-2-swdesign.md | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/applications/sarp-2-swdesign.md b/applications/sarp-2-swdesign.md index f584102878b..a82d1d3ffe5 100644 --- a/applications/sarp-2-swdesign.md +++ b/applications/sarp-2-swdesign.md @@ -115,9 +115,10 @@ In our previous work, we found the following problems: 3. **Invasiveness of tag analysis** The code we wrote in our PoC is very invasive and changes the code of the pallet. This is not practical for end-users. Ideally the user doesn't need to change anything on their code, or at least the changes should be very simple. To address 2. and 3. we plan to evaluate different software designs. These will be part of our deliverables and we plan to discuss these with Parity and/or Web3 Foundation. The challenge here is the non-invasiveness of the solution. Specifically we plan to look into the following questions: -1. Is it possible to tweak MIRAI, so that we can run the analysis on pallets without modification? -2. Without tweaking MIRAI: What options do we have to separate the newly written pallet logic from the macro logic? Is it possible to do so, without changing the logic or adding artificial code (as the macros also connect the different functions of a pallet)? -3. Can we combine our findings of 1. and 2.? +1. Can we implement a preprocessing, that automatically annotates the pallet code for analysis in MIRAI? +2. Can MIRAI be tweaked to abstract out low-level details in the flow of function calls? +3. Is it possible to separate the newly written pallet logic from the macro logic? If so, is it possible, without changing the logic or adding artificial code (as the macros also connect the different functions of a pallet)? +4. Are there good combinations of the above approaches? To address 1. we want to further analyze timeouts and crashes in MIRAI. Possibly they can be resolved by bugfixes in MIRAI. If not, we need to find workarounds. @@ -125,15 +126,15 @@ Apart from the documentation of our analysis, we will deliver a first prototype #### Deliverables -| Number | Deliverable | Specification | -|--------|-----------------------------|-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| -| 0a. | License | MIT | -| 0b. | User Documentation | We will provide a basic **tutorial** that explains how the tool can be used on the examples provided. | -| 0c. | Testing and Testing Guide | We will *not* provide a test suite with this milestone, but documentation on how to run our examples as in 0b. | -| 1. | Tool | We will provide a prototype version of the tool. Following the approach, decided in 3. | -| 2. | Documentation | Technical documentation of the tool, incl. reasoning on the design decisions. | -| 3. | Engagement | We will discuss different solutions and their implications with Web3 Foundation and/or Parity. For this we will document each approach with | -| 4. | Analysis of errors in MIRAI | We will document each error we encounter in MIRAI (specifically crashes and faulty analyses) with information on: This analysis will include the problems we discovered in the previous work package, but haven't analyzed yet (see [1](https://github.com/scs/MIRAI/tree/Milestone1_Research/substrate-examples/pallet_template#open-issues) and [2](https://github.com/scs/MIRAI/tree/Milestone1_Research/substrate-examples/offchain-worker#open-issues)).

We will report each issue in the [MIRAI repository](https://github.com/facebookexperimental/MIRAI), resp. provide a PR there. | +| Number | Deliverable | Specification | +|--------|-----------------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------| +| 0a. | License | MIT | +| 0b. | User Documentation | We will provide a basic **tutorial** that explains how the tool can be used on the examples provided. | +| 0c. | Testing and Testing Guide | We will *not* provide a test suite with this milestone, but documentation on how to run our examples as in 0b. | +| 1. | Tool | We will provide a prototype version of the tool. Following the approach, decided in 3. We will provide examples for applying the tool to 3 of the following 5 vulnerability classes: | +| 2. | Documentation | Technical documentation of the tool, incl. reasoning on the design decisions. | +| 3. | Engagement | We will discuss different solutions and their implications with Web3 Foundation and/or Parity. For this we will document each approach with | +| 4. | Analysis of errors in MIRAI | We will document each error we encounter in MIRAI (specifically crashes and faulty analyses) with information on: This analysis will include the problems we discovered in the previous work package, but haven't analyzed yet (see [1](https://github.com/scs/MIRAI/tree/Milestone1_Research/substrate-examples/pallet_template#open-issues) and [2](https://github.com/scs/MIRAI/tree/Milestone1_Research/substrate-examples/offchain-worker#open-issues)).

We will report each issue in the [MIRAI repository](https://github.com/facebookexperimental/MIRAI), resp. provide a PR there. |