Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[FEATURE] TA2 properties of interest #115

Open
9 of 12 tasks
podhrmic opened this issue Sep 25, 2024 · 7 comments
Open
9 of 12 tasks

[FEATURE] TA2 properties of interest #115

podhrmic opened this issue Sep 25, 2024 · 7 comments
Assignees
Labels
documentation Improvements or additions to documentation SoW TA2.1.1.B Specify entire OpenSUT architecture with SysML,a subset of components with AADL,
Milestone

Comments

@podhrmic
Copy link
Collaborator

podhrmic commented Sep 25, 2024

Summary

Properties of interest for OpenSUT, ordered by priority (highest first):

  1. classical correctness properties (the absence of Undefined Behavior - leading to memory safety and a lack of runtime errors) - currently mandated in this requirement
    • signed integer over and underflow
    • use of an uninitialized variable
    • oversized shift amount
    • out of bounds array access
    • null pointer dereferencing
    • NOTE: absence of UB does not guarantee memory safety, as programmer's error can still lead to memory leaks (although it is much harder to make a mistake that way)
    • Ensure allocation of SHA256 context in sha_256.c
    • covers PROVERS properties from Appendix A: Memory safety, Undefined behavior, Structural data properties
  2. Functional correctness properties - builds on top of UB. Specify which FC properties
  3. abstract/finite state machines as described in [FEATURE] CN for encoding abstract state machines (ASMs) #114
    • an-airport-simulation example in the CN-tutorial
    • FSMs are derived from the requirements/system model, ASMs might be too general for CN (can be handled in model checkers first, such as SAL)
    • covers PROVERS properties from Appendix A: State Machine Adherence, API Usage Patterns
  4. information flow analysis
  5. separation
    • driven by CAST-32A
    • emphasis on WCET and Robust Resource/Time Partitioning as well as Critical configuration of the Multi Core Processor
    • Robust Resource/Time Partitioning
      • basically a proof of Time/Space separation provided by the OS/Hypervisor:
      • Resource Partitioning requirements
        • Software partitions cannot contaminate the storage areas for the code, I/O or data of other partitions.

        • Software partitions cannot consume more than their allocations of shared resources.

        • Failures of hardware unique to a software partition cannot cause adverse effects on other software partitions.

      • Time Partitioning Requirements
        • is achieved when, as a result of mitigating the time interference between partitions hosted on different cores, no software partition consumes more than its allocation of execution time on the core(s) on which it executes, irrespective of whether partitions are executing on none of the other active cores or on all of the other active cores.

      • in the absence of a proof, can generated tests suffice?
      • even seL4 might fall short here, as it is making idealistic assumptions about the HW
      • unclear how to validate the HW itself
    • Information Flow Analysis is necessary, but a full separation proof is clearly out of scope for CN
    • Resource analysis can be done statically with AADL CAMET tools, for the dynamic resource allocation and behavior, we would like to know if the flow management/queue management algorithms behave correctly even when resources are exhausted (e.g. a queue is full, a free buffer is not available) - see the LynxOS network buffer example

Acceptance Criteria

  • Take these priorities into consideration, and develop a plan to implement an example.
  • Tie each property to real-world motivation, highlighting why it is important for the system
  • Tie to requirements document in OpenSUT
  • Provide examples for each category

References

(check the box once he reference was reviewed)

UB resources

Memory safety resources

Other resources

@podhrmic podhrmic added documentation Improvements or additions to documentation SoW TA2.1.1.B Specify entire OpenSUT architecture with SysML,a subset of components with AADL, labels Sep 25, 2024
@podhrmic podhrmic added this to the MVP 3 milestone Sep 25, 2024
@bcpierce00
Copy link
Collaborator

bcpierce00 commented Sep 26, 2024 via email

@podhrmic podhrmic modified the milestones: MVP 3, Next PI meeting Sep 27, 2024
@podhrmic
Copy link
Collaborator Author

Info about information flow properties from @kiniry :

The line of work ends with researchers at KSU and KIT (separately). See, e.g., Beckert et al. 2014, Schmitt and Ulbrich 2015, and Amtoft et al. 2010.

A lot of it starts with Warnier's PhD thesis in 2006 and my group's work in the 00s.

There are additional papers from Robby, David Naumann, Janota+Grigore+Moskal in '07 (my PhD students), case studies using KeY from Grahl and Scheben in the KeY Book and from Do et al. (most of which are based on my group's work on formal methods for electronic voting), and more.

@podhrmic podhrmic modified the milestones: Next PI meeting, MVP 3 Oct 1, 2024
@podhrmic
Copy link
Collaborator Author

I want to hear more about (3) -- am surprised that hyperproperties could be provable with CN just as it stands...

@bcpierce00 the Ariport simulation example in the CN tutorial captures what I had in mind - I am imagining that lot of the specs in that example can be auto generated from a system model

@bcpierce00
Copy link
Collaborator

Are there any hyperproperties in the airport example??

@podhrmic
Copy link
Collaborator Author

The example is a simple FSM, no hyperproperties. I think that is sufficient for our use case, and the scope of the project - does that sound reasonable to you? I should clarify this in the issue description.

@bcpierce00
Copy link
Collaborator

OK, that's clearer. I wish we had a real example, though, to replace the Airport one -- that one is a bit made up and it's actually a bit confusing when you get into the details.

@podhrmic
Copy link
Collaborator Author

@thatplguy have a look at 4 and 5!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
documentation Improvements or additions to documentation SoW TA2.1.1.B Specify entire OpenSUT architecture with SysML,a subset of components with AADL,
Projects
None yet
Development

No branches or pull requests

3 participants