遵循以下最佳实践的项目将能够自愿的自我认证,并显示他们已经实现了核心基础设施计划(OpenSSF)徽章。 显示详细资料
[](https://www.bestpractices.dev/projects/8290)
<a href="https://www.bestpractices.dev/projects/8290"><img src="https://www.bestpractices.dev/projects/8290/badge"></a>
Ghaf Framework, building on top of NixOS to define a virtualized platform for edge devices
https://github.com/tiiuae/ghaf/blob/main/CONTRIBUTING.md
https://github.com/tiiuae/ghaf/tree/main?tab=coc-ov-file
Access rights in the projects are shared on that way, that more than one person have access rights to perform known function. Keeping feature documentation (including commit messages) up to date, and following documentation guidelines.
Ghaf is supported by https://www.tii.ae/
project architecture is documented in https://tiiuae.github.io/ghaf/architecture/architecture.html
URL: https://tiiuae.github.io/ghaf/index.html https://tiiuae.github.io/ghaf/architecture/architecture.html
Reasoning Ghaf platforms transforms traditionally monolithic software stack within edge devices into isolated components with minimal TCB and clearly defined functionality. Security targets and expectations are described in chapters About Ghaf, Features, Architecture and Supply Chain Security.
Met
https://tiiuae.github.io/ghaf/ref_impl/build_and_run.html
Reasoning Documentation available how to get started, including Which hardware is supported? How to build and run software.
URL: https://github.com/tiiuae/ghaf
Reasoning
Repository front page (README file) includes achievements and badges, including this best practices and OpenSSF Scorecard badges. They were added withing 48 hours of achieving them.
Web site: GitHub pages https://tiiuae.github.io/ghaf/, no passwords
Repository: GitHub https://github.com/tiiuae/ghaf, meets the criteria
Download URLs: https://vedenemo.dev, no passwords
Tagged releases are made (https://github.com/tiiuae/ghaf/releases) and the Nix language along with the flake locking mechanism help to ensure that there is always an upgrade and downgrade path from any point
https://github.com/tiiuae/ghaf/issues
Vulnerability response process has been defined as a part of Security Policy at https://github.com/tiiuae/ghaf?tab=security-ov-file
The Ghaf Platform utilizes a collection of virtual machines (VMs) to define a system. Virtual machines and their interworking are defined by configuring NixOS with Nix language.
GitHub action ‘run-checks’ is run for each pull request
One of the ‘run-checks’ steps is to check .nix formatting with ‘nix fmt’ - reformat your code in the standard style
Ghaf platform is using NixOS based packaging & building system. NixOS by design is not using recursive builds.
Ghaf is based on Nix and Nixos
Nix claims reproducible packages as defined in https://nixos.org/
"Nix builds packages in isolation from each other. This ensures that they are reproducible and don't have undeclared dependencies, so if a package works on one machine, it will also work on another."
NixOS has also been listed in the https://reproducible-builds.org/who/projects/ among projects who are working on providing reproducible builds to their users and developers.
Project GitHub pages include information how to build and run Ghaf platform
For every Ghaf build, we create SBOM files with sbomnix tool (https://github.com/tiiuae/sbomnix)
SPDX format
CDX format
.csv format
SBOM files are available in the build reports. Build reports are publicly available, see for example https://vedenemo.dev/files/build_reports/themisto/89/
SBOM files are stored with all quarterly releases. Quarterly releases are publicly available, see https://vedenemo.dev/files/releases/
Also SLSA provenance .json file contains list of all external dependencies. Provenance file is provided for every build in the build report. Build report is publicly available, see for example https://vedenemo.dev/files/build_reports/themisto/89/
Every build is scanned with two vulnerability scanning tools
Vulnix https://github.com/nix-community/vulnix
vulnxscan https://github.com/tiiuae/sbomnix/blob/main/doc/vulnxscan.md
Uses 3 different vulnerability databases
OSV
grype
vulnix
All scans are publicly available in every build report. See for example https://vedenemo.dev/files/build_reports/themisto/89/
Vulnix
TXT output
HTML output
vulnxscan
.csv output
Also, selected targets of previous releases are scanned nightly with ghafscan tool
Results are publicly available in https://github.com/tiiuae/ghafscan/tree/main/reports
After each merge to main, automated test cases (boot test, BAT, performance tests) are run on a number of target platform devices (x86, ARM, RISC-V). Test results (pass or fail) are publicly available in build report pages in https://vedenemo.dev.
https://github.com/tiiuae/ghaf-infra https://github.com/tiiuae/ghaf/blob/main/.github/workflows/build.yml
Using Nixos build tools
警告:需要更长的理由。
All builds are signed by the build system
Signed builds are publicly available in the build reports in the web server https://vedenemo.dev
See for example https://vedenemo.dev/files/build_reports/themisto/89/
The web server does not contain private key used for signing
The web server contains instructions for verifying signature
See https://vedenemo.dev/files/signature-verification.html
Virtualization is one of the core enablers to transform the traditionally monolithic software stack within edge devices into isolated components with minimal TCB and clearly defined functionality.
The Ghaf Platform utilizes a collection of virtual machines (VMs) to define a system.
Virtual machines and their interworking are defined by configuring NixOS, not by writing new application or firmware level code
Static analysis would mean scanning the whole NixOS operating system, which would not be feasible
后退