forked from open-education-hub/operating-systems
-
Notifications
You must be signed in to change notification settings - Fork 90
Open
Labels
area/contentContent (Markdown) updateContent (Markdown) updatearea/readingUpdate to reading contentUpdate to reading contentkind/improveImprove / Update existing content / itemImprove / Update existing content / itemtopic/dataRelated to "Data" chapterRelated to "Data" chapter
Description
The memory security tasks [1] and reading material [2] offer students too little information about ASLR and stack canaries.
ASLR
There is nothing written about how ASLR works and how the compilation and linking flags affect it. This information should be present in the reading material and students should be prompted to modify these flags in the task.
Stack Protector
The reading material never shows any Assembly code that handles the stack protector so when the task asks students to find it, they are confused. The reading material should provide these details. Additionally, the task should use a more gradual approach and add quiz items for each step:
- Which function has a stack canary?
- What is the canary's offset from
rbp? - What is the canary's offset from the beginning of the stack buffer?
- What is the return address's offset from the beginning of the stack buffer?
- Why does the program prin the "Stack smashing detected" message if you correctly overwrite both the stack canary and the return address?
[1] https://github.com/cs-pub-ro/operating-systems/tree/main/chapters/data/memory-security/drills/tasks
Metadata
Metadata
Assignees
Labels
area/contentContent (Markdown) updateContent (Markdown) updatearea/readingUpdate to reading contentUpdate to reading contentkind/improveImprove / Update existing content / itemImprove / Update existing content / itemtopic/dataRelated to "Data" chapterRelated to "Data" chapter