遵循以下最佳实践的项目将能够自愿的自我认证,并显示他们已经实现了核心基础设施计划(OpenSSF)徽章。 显示详细资料
[](https://www.bestpractices.dev/projects/299)
<a href="https://www.bestpractices.dev/projects/299"><img src="https://www.bestpractices.dev/projects/299/badge"></a>
BIND is open source software that implements the Domain Name System (DNS) protocols for the Internet.
We have published coding standards. https://gitlab.isc.org/isc-projects/bind9/blob/master/doc/dev/dev.md
https://gitlab.isc.org/isc-projects/bind9/-/blob/main/CODE_OF_CONDUCT.md
We have multiple owner/administrators of our Gitlab instance, our project repository, https://gitlab.isc.org/isc-projects/bind9.
The core developer team consists of 9 engineers, all working from home. Developers do not 'own' specific parts of the code, everyone can and does modify any part of the code. We could easily continue if we lost any one of them.
https://gitlab.isc.org/isc-projects/bind9/graphs/master We have a team of active committers. The gitlab graph actually understates contributors because we have fewer authorized committers.
https://gitlab.isc.org/isc-projects/bind9/milestones We track the roadmap plans through milestones on Gitlab.
https://gitlab.isc.org/isc-projects/bind9/-/blob/main/doc/dev/dev.md#arch We could probably do better - but we have some developer information in the document linked above.
https://downloads.isc.org/isc/bind9/9.21.4/doc/arm/html/chapter7.html
I think this is accomplished in the ReadMe, which is at the top level of the repo.
https://gitlab.isc.org/isc-projects/bind9
The Administrator Reference Manual is updated with every release. https://bind9.readthedocs.io/en/latest/
We have a bunch of badges on the front page of the repo, (https://gitlab.isc.org/isc-projects/bind9) including this one.
the software is not end-user software, it is network infrastructure, and is cli-based
We use a self-hosted instance of Gitlab. Gitlab uses hashed passwords: https://docs.gitlab.com/ee/security/password_storage.html
https://www.isc.org/blogs/bind-release-strategy-updated/ https://www.isc.org/downloads/software-support-policy/ https://kb.isc.org/docs/changes-to-be-aware-of-when-moving-from-bind-916-to-918
https://gitlab.isc.org/isc-projects/bind9/issues
example: https://kb.isc.org/docs/cve-2023-50387 frequently reporters decline to be identified
https://kb.isc.org/article/AA-00861/0 https://www.isc.org/downloads/software-support-policy/security-advisory/
https://www.isc.org/git/coding-style/
we use multiple static analyzers, including the Coverity Open Source scanning tool
we have a standard build system we use auto tools
https://gitlab.isc.org/isc-projects/bind9/-/blob/main/.gitlab-ci.yml?ref_type=heads
https://gitlab.isc.org/isc-projects/bind9/-/blob/main/.gitlab-ci.yml?ref_type=heads, https://tests.reproducible-builds.org/debian/rb-pkg/unstable/amd64/bind9.html
BIND is already offered in most major UNIX and LINUX distributions in packaged format. Project staff also build packages for Ubuntu (https://launchpad.net/~isc/+archive/ubuntu/bind-dev), debian (https://packages.sury.org/bind-dev/), and rpm systems (https://copr.fedorainfracloud.org/coprs/isc/bind-dev).
https://bind9.readthedocs.io/en/latest/chapter10.html#build-bind
https://gitlab.isc.org/isc-projects/bind9/-/blob/main/configure.ac?ref_type=heads
https://bind9.readthedocs.io/en/latest/chapter10.html#required-libraries
Not applicable, we don’t embed anything.
We use the standard components from the OS. https://bind9.readthedocs.io/en/latest/chapter10.html#required-libraries
we have automated testing on check-in on our gitlab.isc.org repo. https://gitlab.isc.org/isc-projects/bind9/-/blob/main/.gitlab-ci.yml?ref_type=heads
Not sure how to prove this, but if you look at all the commits in python, that exposes a lot of the new tests being added: https://gitlab.isc.org/isc-projects/bind9/-/commits/main?search=.py
https://isc-projects.gitlab-pages.isc.org/-/bind9/-/jobs/5254035/artifacts/coverage.html
covered in the contribution guide https://gitlab.isc.org/isc-projects/bind9/blob/master/CONTRIBUTING
https://gitlab.isc.org/isc-projects/bind9/-/tree/main#contrib
ISC use -Wall -Werror during the development.
On Mac OS X, "-Wno-deprecated-declarations" is needed though.
we validate inputs, see for example: https://gitlab.isc.org/isc-projects/bind9/-/blob/main/doc/dev/style.md
Sorry, it is not obvious how to apply this to BIND. " "met" if we're thinking of tsig-keygen or dnssec-keygen... "not met" if we're thinking of rndc-confgen.
We use OpenSSL's crytographic support, which includes multiple algorithms.
RNDC config, DNSSEC keys are the main credentials we would store. dnssec private and public keys are in different files from named.conf rndc keys can be stored in an include file instead of named.conf and there is an explicit command to remove any secrets when sharing a named.conf file for support purposes
We support several encrypted DNS protocols, including DNS over TLS (aka DOT).
We support TLS. https://bind9.readthedocs.io/en/latest/reference.html#namedconf-statement-tls
We perform certification: https://bind9.readthedocs.io/en/latest/reference.html#tls-block-definition-and-usage
https://bind9.readthedocs.io/en/latest/reference.html#tls-block-definition-and-usage
https://www.isc.org/downloads/ link to pgo key is posted on the downloads page Instructions are provided here: https://www.isc.org/downloads/software-support-policy/openpgp-key/
We do sign important versions - see here for an example: https://gitlab.isc.org/isc-projects/bind9/-/tags/v9.19.21
we are validating, but this is very old code and doesn't work perfectly.
we do enable hardening in C complier:
https://gitlab.isc.org/isc-projects/bind9/-/blob/main/configure.ac?ref_type=heads#L143
See https://www.redhat.com/en/blog/enhance-application-security-fortifysource for what this does.
https://bind9.readthedocs.io/en/latest/chapter7.html#security-assumptions
https://scan.coverity.com/projects/15
we use valgrind we also use the APL fuzzer
后退