遵循以下最佳实践的项目将能够自愿的自我认证,并显示他们已经实现了核心基础设施计划(OpenSSF)徽章。 显示详细资料
[](https://www.bestpractices.dev/projects/5742)
<a href="https://www.bestpractices.dev/projects/5742"><img src="https://www.bestpractices.dev/projects/5742/badge"></a>
eBPF runtime implementation that runs on top of Windows
https://github.com/microsoft/ebpf-for-windows/blob/main/CONTRIBUTING.md#did-you-write-a-patch-that-fixes-a-bug references the Development Guide that has coding conventions, etc.
CLA required: https://github.com/microsoft/ebpf-for-windows/blob/main/CONTRIBUTING.md#contributor-license-agreement
https://github.com/microsoft/ebpf-for-windows/blob/main/docs/Governance.md
https://github.com/microsoft/ebpf-for-windows/blob/main/CONTRIBUTING.md#code-of-conduct
https://github.com/microsoft/ebpf-for-windows#architectural-overview
https://github.com/microsoft/ebpf-for-windows/blob/main/docs/GettingStarted.md
Pull request template has documentation as a required field. https://github.com/microsoft/ebpf-for-windows/blob/main/CONTRIBUTING.md#contributing-code says "For all new Pull Requests the following rules apply: ... Documentation needs to be provided for every feature that is end-user visible."
https://github.com/microsoft/ebpf-for-windows#ebpf-for-windows shows badge with hyperlink
Tools such as bpftool and netsh only generate output in English, and documentation online is only in English. This is consistent with the Linux BPF tools it is intended to be equivalent to.
Project sites do not store passwords for this purpose, it just uses standard github authentication as for all other github projects.
There are no older releases yet. Also we are at 0.x.y which semver.org says "Major version zero (0.y.z) is for initial development. Anything MAY change at any time. The public API SHOULD NOT be considered stable."
https://github.com/microsoft/ebpf-for-windows/issues
No vulnerabilities resolved in the last 12 months.
https://github.com/microsoft/ebpf-for-windows/security/policy
https://github.com/microsoft/ebpf-for-windows/blob/main/docs/DevelopmentGuide.md#style-guide
https://github.com/microsoft/ebpf-for-windows/blob/main/.clang-format https://github.com/microsoft/ebpf-for-windows/blob/main/scripts/pre-commit https://github.com/microsoft/ebpf-for-windows/blob/main/scripts/format-code https://github.com/microsoft/ebpf-for-windows/blob/main/scripts/format-code.ps1
PDB files are included in the testing component, and in github artifacts.
All dependencies are explicit, in both the cmake build and the msbuild build.
https://github.com/microsoft/ebpf-for-windows/releases has releases each with an MSI (for the runtime) and a NuPkg (for development environment), both of which are commonly used conventions on Windows.
Files are written to %ProgramFiles%\ebpf-for-windows
MSI installer has selectable components: "runtime", "development", and "testing"
.gitmodules, nuget packages, etc. are all computer processable, and are processed by dependabot. https://github.com/microsoft/ebpf-for-windows/blob/main/.gitmodules And all packages.config files such as https://github.com/microsoft/ebpf-for-windows/blob/main/tests/unit/packages.config
dependabot is used
.gitmodules, nuget packages, etc. are all computer processable, and are processed by dependabot
Project is updated to use non-deprecated APIs, while continuing to support deprecated APIs for a period of time to allow transitioning.
Tests are run in Github workflows https://github.com/microsoft/ebpf-for-windows/tree/main/.github/workflows
https://github.com/microsoft/ebpf-for-windows/blob/main/CONTRIBUTING.md#contributing-code says "For all new Pull Requests the following rules apply:
Existing tests should continue to pass. Tests need to be provided for every bug/feature that is completed."
The pull request template requires mentioning what was done: https://github.com/microsoft/ebpf-for-windows/blob/main/.github/pull_request_template.md
https://github.com/microsoft/ebpf-for-windows#ebpf-for-windows code coverage badge shows higher than 80% coverage.
The PR template has a section that explicitly asks about the test impact. https://github.com/microsoft/ebpf-for-windows/blob/main/CONTRIBUTING.md#contributing-code explicitly says: "For all new Pull Requests the following rules apply:
Existing tests should continue to pass. Tests need to be provided for every bug/feature that is completed. Documentation needs to be provided for every feature that is end-user visible."
Warning level 4 is used for MSVC code (Level4) Warnings are treated as errors (true) See also https://github.com/microsoft/ebpf-for-windows/blob/main/Analyze.default.ruleset
Access decisions are denied by default. All accesses are checked for authorization. Static verifier runs on all ebpf programs.
bpf2c can generate a hash of the file to embed in the driver, but the algorithm can be specified on the command line, supporting all algorithms available in windows, defaulting to SHA-256.
No such processing/storage.
No network communication.
No TLS communication.
All untrusted inputs are validated, and fuzz testing is used in CI/CD. There is no use of any denylist.
The build uses the recommended compiler flags (including spectre mitigation support), and we also use an OSSAR scan as a github workflow. https://github.com/github/ossar-action
CodeQL does this, as does MSVC code analysis.
Address sanitizer is integrated into github CI/CD workflows.
后退