proposal: static analysis tool for runtime pallets#1706
Conversation
|
Thanks for the application @masapr it looks like you have an impressive team. A couple of initial comments:
|
Noc2
left a comment
There was a problem hiding this comment.
Thanks for the application. We are definitely interested in this. I'm also sharing it with @bhargavbh. I believe you already talked with him about it. Apart from this, please take a look at the comments by @keeganquigley above.
- changed payment to USDC - changed license to MIT (because MIRAI uses MIT)
|
@keeganquigley Thanks a lot for your feedback. We had anyway planned to start the project with a little research, resp. getting to know MIRAI and figuring out how to implement the checks with it. I split this research part now into its own milestone. This way our strategy should also be clearer. Apart from that, I adjusted the payment method and I changed the license to MIT (as MIRAI is already under MIT). @Noc2 Thanks, yes, we talked with @bhargavbh. We also talked to the developer of MIRAI, and it seems he will be helpful. |
|
LGTM. only thing i would add is 'document interesting examples for vulnerability classes" (which you may find in research phase) as part of deliverable-2 in M1. Secondly, its not clear what "The tool will provide at least one check on each vulnerability class" in deliverable-1 of M-2. Could you please clarify? |
Noc2
left a comment
There was a problem hiding this comment.
Thanks for the quick reply here. I have just one minor additional comment. Maybe you can also add the default deliverables 0b. (documentation) and 0c. (Testing guide) to the first delivery regarding the prototype code. This doesn't need to be a lot, but ideally, we have a few lines that tell everyone how to run the prototype and what it is. This way, we also have the default deliveries part of the application. Apart from that, see @bhargavbh comment above.
|
Thanks for the feedback On the "The tool will provide at least one check on each vulnerability class" |
|
thanks @masapr. The research phase would help identify any major roadblocks or limitations. I suggest proceeding to M-2 only if the results of M-1 are positive. |
Noc2
left a comment
There was a problem hiding this comment.
Thanks for the update. It might make sense, in this case, to initially only apply for the first milestone (2 instead of 3 approvals), and we issue a follow-up grant after this one. But I'm happy to approve it in any case and share it with the rest of the team.
|
I agree with starting M-2 only if M-1 is successfull. Should I keep the proposal anyway this way? Or should I remove milestone-2 in this proposal? |
|
In this case, feel free to remove the second milestone, and I will try to get it approved today (it requires only one additional approval ;-)) |
|
ok, cool. I removed it |
|
Congratulations and welcome to the Web3 Foundation Grants Program! Please refer to our Milestone Delivery repository for instructions on how to submit milestones and invoices, our FAQ for frequently asked questions and the support section of our README for more ways to find answers to your questions. |
|
@bhargavbh @Noc2 a short update on our progress:
|
|
hi @masapr. Great to hear the project is on track. The deadlines are usually not strict, delays are acceptable as long as there is progress being made. Happy to coordinate/ get involved in the tool design and positioning, once the PoC is complete. Cheers! |
|
I submitted the delivery: w3f/Grant-Milestone-Delivery#880 |
Project Abstract
Runtime Pallets are modules for writing the business logic of blockchains in Substrate (a Rust framework for building blockchains). These are usually concise pieces of standalone code with relatively few dependencies and clear specifications, hence tractable targets for performing static analysis and verification. The code quality of a runtime pallet is crucial, as even minor defects can result in major exploits like DoS attacks or the stealing of funds by a malicious party. A static code analysis can help to automate the auditing processes and prevent introduction of defects throughout the software life-cycle.
Therefore we would like to develop a tool - SARP (Static Analysis tool for Runtime Pallets) to perform static analysis with reasonable soundness guarantees. In particular, we would like to target vunerability classes that are detectable using dataflow analysis techniques like tag analysis and taint analysis.
Grant level
Application Checklist
project_name.md).@_______:matrix.org(change the homeserver if you use a different one)