Skip to content

Thread-level Memory Protection Support #2937

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

Closed
23 of 39 tasks
zephyrbot opened this issue Dec 17, 2016 · 7 comments
Closed
23 of 39 tasks

Thread-level Memory Protection Support #2937

zephyrbot opened this issue Dec 17, 2016 · 7 comments
Assignees
Labels
area: Security Security Feature A planned feature with a milestone LTS Long term release branch related priority: high High impact/importance bug
Milestone

Comments

@zephyrbot
Copy link
Collaborator

zephyrbot commented Dec 17, 2016

Reported by Anas Nashif:

Run trusted software in privileged mode and run all less-trusted software in unprivileged mode. Examples of trusted code are RTOSs, ISRs, handlers, and low-level drivers. Examples of less-trusted code are untested code third party software, and code that is vulnerable to malware such as protocol stacks and high-level drivers.

(Imported from Jira ZEP-1466)

@zephyrbot
Copy link
Collaborator Author

by Marcus Shawcroft:

We should give some consideration to using mpu support to fault null pointer accesses.

There is a post on devel The recent post on devel https://lists.zephyrproject.org/pipermail/zephyr-devel/2017-March/007426.html that touches on some of the developer experience issues that arise from the the C standards treatment of null pointers and various related compiler optimizations.

@zephyrbot
Copy link
Collaborator Author

zephyrbot commented May 8, 2017

by Andrew Boie:

The scope of this JIRA is way too broad and needs to be decomposed into deliverables.
See GH-3531 for one such deliverable.

@zephyrbot
Copy link
Collaborator Author

by Mark Linkmeyer:

Andrew to break up in to stories.

@zephyrbot
Copy link
Collaborator Author

by Andrew Boie:

Survey from Linaro of MPU capabilities across a variety of arches/CPUs

https://wiki.linaro.org/Memory%20Protection%20Device%20Survey

@zephyrbot
Copy link
Collaborator Author

zephyrbot commented May 25, 2017

by Andrew Boie:

Notes from Andy on high-level requirements:

So going through the JIRA and through our own documentation, you have all of the major tasks identified. That said, I do agree that a specific list of deliverables that are assigned to separate stories/arcs should be done.

Major tasks:

  • privileged/unprivileged section isolation
    • Static tables derived from sections. These would give code and data regions for kernel and apps
    • Define structures to describe regions and implement that
    • Define dynamic region definition for transient regions
      • How does this hook in to k_thread
  • Region management
    • APIs
  • Stack guard
    • Hardware support. MMU vs MPU
    • API convergence?
  • Null ptr protection
  • Peripheral device isolation
    • Recognizing device access and proper configuration of peripheral ranges
    • system calls to access device?
  • Privileged access escalation / system calls

These are general placeholders and cover a number of your specific cases outlined in the JIRA. When we were divvying up the work between Vincenzo and myself, my thought was to get the isolation of privileged and unprivileged working. Once we got the separation we could then explore the system calls and escalation mechanisms. I see the region management to be the primary thing to do first. Then the isolation, which brings in the section definitions and API work.

We can talk more on this in the morning, but I wanted to get this out tonight to at least condense some of the stuff we've been talking about internally.

Regards,

Andy

@zephyrbot
Copy link
Collaborator Author

zephyrbot commented May 25, 2017

by Andrew Boie:

Marcus Shawcroft NULL pointer protection will be tracked in GH-3634, thanks!

@zephyrbot zephyrbot added priority: high High impact/importance bug area: Security Security Feature A planned feature with a milestone labels Sep 23, 2017
@zephyrbot zephyrbot added this to the v1.11.0 milestone Sep 23, 2017
This was referenced Sep 23, 2017
@nashif nashif added the LTS Long term release branch related label Nov 14, 2017
@carlescufi
Copy link
Member

@galak galak mentioned this issue Feb 5, 2018
38 tasks
@nashif nashif modified the milestones: v1.11.0, v1.12.0 Feb 19, 2018
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
area: Security Security Feature A planned feature with a milestone LTS Long term release branch related priority: high High impact/importance bug
Projects
None yet
Development

No branches or pull requests

4 participants