Say in the security policy what counts as a vulnerability - #213
Open
MarkusPaulsen wants to merge 1 commit into
Open
Say in the security policy what counts as a vulnerability#213MarkusPaulsen wants to merge 1 commit into
MarkusPaulsen wants to merge 1 commit into
Conversation
The policy said how to report a vulnerability but never what one is. For a framework whose test tree exists to attack itself, that gap does real work: neither a reporter nor a maintainer had a written criterion to decide whether a finding was a defect or the apparatus behaving as designed. Adds two sections taken from the sibling SCORE repositories, which had them first. 'Deliberately dangerous code' names what is hostile on purpose, and 'Scope' lists what is in and out. The out-of-scope list defers to the threat model already written down in the Ares 1 conversion guide: the build descriptor is trusted instructor configuration, so an adversary who controls the build is not the threat addressed. Two existing sentences are corrected in passing. 'behavior' becomes 'behaviour', and the private reporting channel no longer claims the report is encrypted or that its privacy ends when a fix is published, neither of which GitHub documents.
Contributor
|
Important
This repository does not receive automatic reviews because it has fewer than 10 stars. ⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Plus Run ID: Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds two sections to the security policy: what in this repository is dangerous on purpose, and what counts as a vulnerability. Both come from the sibling SCORE repositories, which wrote them first. Two existing sentences are corrected in passing.
Linked issues
No linked issues
1. Problem
SECURITY.mdsaid how to report a vulnerability but never said what one is.Ares is a security tool whose own test tree attacks it on purpose. The classes under
src/test/java/de/tum/cit/ase/ares/integration/testuser/subject/open sockets, execute commands, spawn threads and reach for reserved packages, and the shipped agent and AspectJ instrumentation rewrite bytecode inside the supervised JVM. Anyone reading the repository can find code that looks like a finding, and neither they nor a maintainer had a written criterion for telling a defect apart from the apparatus behaving as designed.The policy also promised more than GitHub documents, claiming a private report is encrypted and stays private only "until a fix is published".
Nothing is broken in the enforcement itself. This is a documentation gap.
2. Improvement from the user's perspective
Anyone who finds something alarming in Ares now has a written test for it. The policy names the operations the test fixtures attempt on purpose, and separates what is in scope, above all a containment bypass or a wrong enforcement verdict, from what is not, such as a gap on the far side of the documented enforcement boundary.
The most useful of those is the last out-of-scope entry: a finding that presumes an adversary who controls the build. That was already written down in the Ares 1 conversion guide, where it says the build descriptor and the command that invokes it are trusted instructor configuration. The policy now points at it rather than leaving it buried in a migration document nobody reads for this purpose.
3. Improvement from the maintainer's perspective
An incoming report can be triaged against a written criterion instead of a judgement call made afresh each time, and the three repositories of this family now answer the same questions under the same headings, so a reader moving between them does not have to relearn the document.
Two inaccurate claims are gone. The private reporting channel no longer promises encryption, and no longer says privacy ends when a fix is published. GitHub documents neither.
4. Testing manual
Prerequisites
Steps
Not reproducible from an exercise. This changes one Markdown file and no code, so there is nothing an exercise can exercise. A reviewer verifies it by reading.
SECURITY.mdand nothing else.docs/HowToConvertAnAres1ProjectIntoAnAres2Project.mdand find the paragraph beginning "What this boundary does not defend against". Compare it with the third out-of-scope entry in the new "Scope" section.SECURITY.mdon this branch as GitHub renders it and read the section headings in order.Expected result
Negative case (what must still be rejected)
The policy must not become an excuse. Confirm that the out-of-scope list covers only four things: the fixtures behaving as documented, an operation outside the documented enforcement boundary, an adversary who controls the build, and defects belonging upstream in the JVM, Maven, Gradle or a library.
Anything that would make Ares itself wrong must remain in scope, and the diff must still list all of these: supervised code performing an operation the active policy blocks, supervised code disabling or detaching the enforcement, an enforcement result that does not match what actually happened, a leaked credential, and a build-time download without checksum verification. If any of those has moved to the out-of-scope list, reject the change.
Modes exercised
No mode-specific behaviour changed.
5. Test case coverage regarding this PR
No production Java code changed.
Breaking changes and migration
No breaking changes or migration.
Checklist
docs/,README.adoc, Javadoc) was updated where the change is user-facing. This pull request is that documentation change.Review progress