{"id":17964838,"url":"https://github.com/massimostanzione/refmon","last_synced_at":"2026-04-29T17:33:51.769Z","repository":{"id":259984033,"uuid":"833648222","full_name":"massimostanzione/refmon","owner":"massimostanzione","description":"A reference monitor for enhanced file protection. Project for the course \"Advanced Operating Systems (and Systems Security)\"","archived":false,"fork":false,"pushed_at":"2024-11-11T16:48:11.000Z","size":2993,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-02-09T07:41:43.792Z","etag":null,"topics":["linux-kernel","linux-kernel-module","reference-monitor"],"latest_commit_sha":null,"homepage":"","language":"C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":null,"status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/massimostanzione.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":null,"code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2024-07-25T13:21:14.000Z","updated_at":"2024-11-11T16:48:14.000Z","dependencies_parsed_at":"2024-12-16T22:26:59.525Z","dependency_job_id":"d1297995-7d00-4636-b5f8-4adc7ea66c11","html_url":"https://github.com/massimostanzione/refmon","commit_stats":{"total_commits":24,"total_committers":1,"mean_commits":24.0,"dds":0.0,"last_synced_commit":"759cc2cc6595eb080e6716381ac2c959bbfb4d82"},"previous_names":["massimostanzione/refmon"],"tags_count":0,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/massimostanzione%2Frefmon","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/massimostanzione%2Frefmon/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/massimostanzione%2Frefmon/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/massimostanzione%2Frefmon/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/massimostanzione","download_url":"https://codeload.github.com/massimostanzione/refmon/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247065070,"owners_count":20877696,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["linux-kernel","linux-kernel-module","reference-monitor"],"created_at":"2024-10-29T12:09:05.843Z","updated_at":"2026-04-29T17:33:46.731Z","avatar_url":"https://github.com/massimostanzione.png","language":"C","funding_links":[],"categories":[],"sub_categories":[],"readme":"# refmon\n*A reference monitor for enhanced file protection*.\n## What is it?\n`refmon` is the final project for the *Advanced Operating Systems (and Systems Security)* course (9 CFU = 9 ETCS), took at *University of Rome Tor Vergata*. \nIt aims to the implementation of a **Linux Kernel Module** for a **Reference Monitor**, according to some specification that you can consult [on the official course site](https://francescoquaglia.github.io/TEACHING/AOS/AA-2023-2024/PROJECTS/project-specification-2023-2024.html).\n\n## How to run `refmon`\n### Quickstart\nIf you want to *just run* the project, follow this simple steps:\n\n 1. **Clone** the repo:\n \n\n\t\tgit clone https://github.com/massimostanzione/refmon --recurse-submodules\n\n\u003e [!IMPORTANT] \n\u003e Please don't forget **`--recurse-submodules`**, as there are some [external modules](https://github.com/massimostanzione/refmon/edit/main/README.md#external-modules) that must be added in order to refmon to be fully functioning.\n\n 2. **Launch** refmon:\n \n\n\t\tcd refmon\n\t\tmake run\n    \n\n 3. **Play!**\nThat's it, you are all set! You can try to add some paths to `refmon`:\n\n\t\tsudo refmon --set-state REC-ON\n\t\t\n\t\t# default password is \"ciao\" - remember to change it afterwards\n\t\tsudo refmon --reconf-add PATH\n    \n... and try to write-access your `PATH`. You should be able to get an error message, *i.e.* `-EACCESS` errno.\n\n### Keep it calm\nNow that you have enjoyed the *quickstart*, feel free to explore every `refmon` functionality by typing\n\n    refmon --help\nA list of all the commands available will be displayed. Use it as your guide!\n\n## External modules\n\nThis project uses the following external modules:\n\n - [*Linux syscall table discoverer*](https://github.com/FrancescoQuaglia/Linux-sys_call_table-discoverer) module, by the lecturer [Francesco Quaglia](https://github.com/FrancescoQuaglia), in order to hack some free syscall table entries and use them for `refmon` purposes;\n - [*Munit*](https://github.com/nemequ/munit) test framework, by [nemequ](https://github.com/nemequ), in order to test `refmon` with a lightweight, *nuisance-free* test framework.\n\n## Can I contribute?\nFeel free to report any bug or to contribute!\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmassimostanzione%2Frefmon","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmassimostanzione%2Frefmon","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmassimostanzione%2Frefmon/lists"}