Skip to content
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

docs: add the new build tools and adjust supported technologies #539

Merged
merged 2 commits into from
Nov 3, 2023
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,7 @@

Macaron is a supply chain security analysis tool from [Oracle Labs](https://labs.oracle.com/pls/apex/r/labs/labs/intro), which focuses on the build integrity of an artifact and the artifact dependencies. It is based on the [Supply chain Levels for Software Artifacts (SLSA)](https://slsa.dev/) specification, which aims at preventing some of the software supply chain attacks as the systems get more complex, especially with respect to the use of open-source third-party code in applications. Attacks include stealing credentials, injecting malicious code etc., and it is critical to have security assurance on the third-party code to guarantee that the integrity of the code has not been compromised.

Macaron uses [SLSA requirements specifications v0.1](https://slsa.dev/spec/v0.1/requirements) to define concrete rules for protecting software integrity that can be checked for compliance requirements automatically. Macaron provides a customizable checker platform that makes it easy to define checks that depend on each other. This is particularly useful for implementing checks for SLSA levels. In addition, Macaron also checks a user-specified policy for the repository to detect unexpected behavior in the build process. Macaron is a work-in-progress project and currently supports Maven and Gradle Java build systems. Support has also been added for Python projects that use Pip or Poetry as their package managers, minus dependency analysis. We plan to support build systems for other languages in future.
Macaron uses [SLSA requirements specifications v0.1](https://slsa.dev/spec/v0.1/requirements) to define concrete rules for protecting software integrity that can be checked for compliance requirements automatically. Macaron provides a customizable checker platform that makes it easy to define checks that depend on each other. This is particularly useful for implementing checks for SLSA levels. In addition, Macaron also checks a user-specified policy for a software component to detect unexpected behavior in the build process. Macaron is a work-in-progress project and currently supports Maven and Gradle Java build systems, Pip or Poetry package managers for Python, npm and Yarn for JavaScript, Go, and Docker container. We plan to support more build systems in future.

## Table of Contents

Expand Down
54 changes: 43 additions & 11 deletions docs/source/pages/supported_technologies/index.rst
Original file line number Diff line number Diff line change
Expand Up @@ -5,27 +5,55 @@
Supported Technologies
======================

-----------
Build Tools
-----------

Macaron is able to detect the build and deployment scripts for the following build tools and package managers while analyzing the CI configurations,
such as GitHub Actions workflows.

* Maven
* Gradle
* Pip
* Poetry
* npm
* Yarn
* Go
* Docker container
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Suggested change
* Docker container
* Docker

Because I think Docker is a tool while Docker container in this case is not.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See commit 4afc607



------------
Git Services
------------

.. list-table::
:header-rows: 1
Currently, we support the following Git services for version control. If you need support for any other Git services, feel free to open a GitHub issue.

* - Git Service
* - `GitHub <https://github.com>`_
* - `GitLab <https://gitlab.com>`_
* `GitHub <https://github.com>`_
* `GitLab <https://gitlab.com>`_

------------
CI Services
------------

Currently, we support the following Continuous Integration (CI) services for automatically building and deploying artifacts. If you need support for any other CI services, feel free to open a GitHub issue.

.. list-table::
:header-rows: 1

* - CI Service
- Support
* - `GitHub Actions <https://github.com/features/actions>`_

-
* Detecting deployment steps by building a call graph for workflows and reachable shell scripts
* Support for various GitHub APIs, such as Releases
behnazh-w marked this conversation as resolved.
Show resolved Hide resolved
* - `GitLab <https://gitlab.com>`_
- Partial support for detecting deployment steps
* - `Jenkins <https://www.jenkins.io>`_
- Partial support for detecting deployment steps
* - `Travis CI <https://www.travis-ci.com>`_
- Partial support for detecting deployment steps
* - `CircleCI <https://circleci.com/>`_
- Partial support for detecting deployment steps

------------------
Package Registries
Expand All @@ -39,10 +67,10 @@ Package Registries
- Support
- Documentation
* - `JFrog Artifactory <https://jfrog.com/artifactory>`_
- Only projects built with Gradle and publishing to a JFrog Artifactory repo following `Maven layout <https://maven.apache.org/repository/layout.html>`_
- Projects built with Gradle and published to a JFrog Artifactory repo following `Maven layout <https://maven.apache.org/repository/layout.html>`_
- :doc:`page </pages/supported_technologies/jfrog>`
* - `Maven Central Artifactory <https://central.sonatype.com>`_
- Only projects built with Gradle or Maven and published to the Maven Central Artifactory.
- Projects built with Gradle or Maven and published to the Maven Central Artifactory.
- :doc:`page </pages/supported_technologies/maven_central>`

-----------
Expand All @@ -57,11 +85,15 @@ Provenances
- Support
- Documentation
* - `SLSA <https://slsa.dev>`_
- Only provenances under `SLSA version 0.2 <https://slsa.dev/spec/v0.2/provenance>`_.
-
* `SLSA provenance version 0.2 <https://slsa.dev/spec/v0.2/provenance>`_.
* The provenance should be published as a GitHub release asset
- :doc:`page </pages/supported_technologies/jfrog>`
* - `Witness <https://github.com/testifysec/witness>`_
- * Only provenances under Witness version 0.1
* Only projects built with Gradle on GitLab CI provenances and publishing provenances to JFrog Artifactory
-
* Witness provenance version 0.1
* Projects built with Gradle on GitLab CI
* The provenance should be published on JFrog Artifactory
- :doc:`page </pages/supported_technologies/jfrog>`

--------
Expand Down
Loading