遵循以下最佳实践的项目将能够自愿的自我认证,并显示他们已经实现了核心基础设施计划(OpenSSF)徽章。 显示详细资料
[](https://www.bestpractices.dev/projects/98)
<a href="https://www.bestpractices.dev/projects/98"><img src="https://www.bestpractices.dev/projects/98/badge"></a>
KEA is an open source DHCPv4/DHCPv6 server being developed and maintained by Internet Systems Consortium. The objective of this project is to provide a very high-performance, extensible DHCP server engine for use by enterprises and service providers, either as is or with extensions and modifications.
Our bus factor is somewhere around 5. Here's a section about it: https://kea.readthedocs.io/en/kea-1.9.7/arm/security.html#bus-factor
The primary contributors are all employed by ISC. We did have several external unassociated significant contributors, but we subsequently hired them.
Every file (with very few limited exceptions, like the stand-alone doc files, such as README, Code of conduct or contributors' guide) contains copyright statement and a license.
We use git - our primary repository is a self-hosted instance of Gitlab, with a mirror on Github. https://gitlab.isc.org/isc-projects/kea
We have "beginner" label that identifies tasks that are considered easy for newcomers that don't need any extensive code familiarity. You can see the list here: https://gitlab.isc.org/isc-projects/kea/-/issues?scope=all&utf8=%E2%9C%93&state=opened&label_name[]=beginner As of June 2021, there are 34 tickets on this list.
We require 2FA for all administrators of our Gitlab instance as well as for all developers.
Our Gitlab instance does require TOTP for 2FA.
Coding guidelines are covered here: https://gitlab.isc.org/isc-projects/kea/-/wikis/Processes/coding-guidelines and code review is discussed in the contribution guidelines. https://gitlab.isc.org/isc-projects/kea/-/blob/master/CONTRIBUTING.md Prospective submitters can also view past merge requests and see the review comments on the MR. Review comments are usually made directly in GitLab and are preserved along with the merge request.
We review 100% of all proposed modifications through peer review. This is a core quality process for us. https://gitlab.isc.org/isc-projects/kea/-/blob/master/CONTRIBUTING.md
We document how to run tests here https://gitlab.isc.org/isc-projects/kea/-/blob/master/CONTRIBUTING.md#running-unit-tests We use "make check". We also developed a system/conformance test suite called ISC Forge, available here: github.com/isc-projects/forge. It is being run as part of our CI system, after each commit. We also have automated perfomance tests using perfdhcp (part of the Kea source tree).
We use GitlabCI (https://gitlab.isc.org/isc-projects/kea/-/pipelines) and also have internal Jenkins system that runs additional tests, such as coverage, conformance, negative, performance and other test types.
Our automated test suite does cover 93% of lines. https://jenkins.aws.isc.org/job/kea-dev/job/ut-extended/304/cobertura/
We do have an extensive set of system and unit tests, but sadly those do not cover 90% of branches yet.
As of April 2021, we have implemented TLS support in Kea.
We support TLS 1.3. Details: https://kea.readthedocs.io/en/kea-1.9.7/arm/security.html#tls-https-support
We do have a static web site, but we don't have all of these headers there, so we will work on this. // One or more of the required security hardening headers is missing.
We do use AFL. The fuzzing could definitely be improved and expanded, but it's being conducted in an automated and continuous way (the fuzzer hardware is shared between several projects, each running a certain number of days per month). We also run unit-tests with a thread sanitizer.
Kea production code handles error situations with C++ exceptions. There's a configuration (--with-gtests or --with-gtest-source) available that validates the exceptions with massive amounts of asserts. A quick grep showed 17000+ asserts in our source code. Note we're using ASSERT_NO_THROW, ASSERT_THROW and similar macros from gtest suite.
后退