Skip to content

Repository files navigation

Ares 2

The Artemis Java Test Sandbox

Java CI with Maven CodeQL Documentation Maven Central Latest version License: MIT Java 17+

Ares 2 is a framework for the easy and secure remote execution of student submissions on an interactive learning platform. It is the second Java-based implementation of the Secure COder Remote Execution (SCORE) framework, and the first to support Java 25 and later.

  • Policy-based sandboxing through static analysis and runtime instrumentation, to prevent unsafe operations and reduce cheating
  • More robust tests and builds, through limits on time, threads and IO
  • Public and hidden tests, where hidden tests obey a custom deadline
  • Better feedback, including multiline error message processing and likely fault locations
  • Console interaction testing for exercises using System.out and System.in

Installation

Ares 2 requires at least Java 17.

<dependency>
    <groupId>de.tum.cit.ase</groupId>
    <artifactId>ares</artifactId>
    <version>2.1.5</version>
</dependency>
implementation("de.tum.cit.ase:ares:2.1.5")

Documentation

📖 https://ls1intum.github.io/Ares2/

  • Instructor Documentation — install Ares 2, wire it into a Maven or Gradle build, write a security policy, and understand what it does and does not protect against
  • Contributor Documentation — the technologies Ares 2 is built on, the policy model and the subsystems

The documentation source lives in documentation/.

Examples

Complete, runnable exercises are in examples/: Maven and Gradle.

Contributing

Contributions are welcome. Please read CONTRIBUTING.md for the build commands, the four enforcement mode combinations CI exercises, and the pull request process. Participation is governed by our Code of Conduct.

Found a security vulnerability? Please do not open a public issue; follow SECURITY.md.

Citing

If you use Ares 2 in your work, please cite it using the metadata in CITATION.cff.

Licence

Ares 2 is licensed under the MIT Licence. See LICENSE for details.

Ares 2 is the successor to Ares 1, created by Christian Femers and likewise MIT licensed. Parts of that original work live on in Ares 2, so both copyright notices are retained; see NOTICE for the attribution.

About

The Artemis Java Test Sandbox: the second Java implementation of the SCORE (Secure COder Remote Execution) framework. Sandboxes student submissions via policy-based static analysis (ArchUnit/WALA) and runtime instrumentation (AspectJ/Byte Buddy) over file, network, command, thread and JVM access, with deadline-aware hidden tests and clear feedback.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

4 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages