BIND 9.x Security Technical Implementation Guide
Pick two releases to diff their requirements.
Open a previous version of this STIG.
Digest of Updates ✎ 2
Comparison against the immediately-prior release (V3R1). Rule matching uses the Group Vuln ID. Content-change detection compares the rule’s description, check, and fix text after stripping inline markup — cosmetic-only edits aren’t flagged.
Content changes 2
- V-272373 Medium check The BIND 9.x server signature generation using the key signing key (KSK) must be done offline, using the KSK-private key stored offline.
- V-272396 Medium check On a BIND 9.x server, all root name servers listed in the local root zone file hosted on a BIND 9.x authoritative name server must be valid for that zone.
- RMF Control
- AC-10
- Severity
- M
- CCI
- CCI-000054
- Version
- BIND-9X-001010
- Vuln IDs
-
- V-272364
- Rule IDs
-
- SV-272364r1124029_rule
Checks: C-76414r1124028_chk
If this is not a primary name server, this requirement is not applicable. Verify that the name server is configured to limit the number of zone transfers from authorized secondary name servers. Inspect the "named.conf" file for the following: server <ip_address> { transfers 2; }; If each "server" statement does not contain a "transfers" sub-statement, this is a finding. If the transfers value is greater than three, this is a finding.
Fix: F-76321r1123972_fix
Edit the "named.conf" file. Add the "transfers" sub-statement to each "server" statement block. The value of the "transfers" option can be increased to a value no greater than three based on organizational requirements needed to support DNS operations. Restart the BIND 9.x process.
- RMF Control
- AC-10
- Severity
- M
- CCI
- CCI-000054
- Version
- BIND-9X-001020
- Vuln IDs
-
- V-272365
- Rule IDs
-
- SV-272365r1124031_rule
Checks: C-76415r1124030_chk
If this is not a secondary name server, this requirement is not applicable. Verify that the secondary name server is configured to limit the number of zones requested from a single primary name server. Inspect the "named.conf" file for the following: options { transfers-per-ns 2; }; If the "options" statement does not contain a "transfers-per-ns" sub-statement, this is a finding. If the transfers-per-ns value is greater than three, this is a finding.
Fix: F-76322r1123841_fix
Edit the "named.conf" file. Add the "transfers-per-ns" sub-statement to the "options" statement block. The value of the "transfers-per-ns" option can be increased to a value no greater than three based on organizational requirements needed to support DNS operations. Restart the BIND 9.x process.
- RMF Control
- AC-10
- Severity
- M
- CCI
- CCI-000054
- Version
- BIND-9X-001030
- Vuln IDs
-
- V-272366
- Rule IDs
-
- SV-272366r1124033_rule
Checks: C-76416r1124032_chk
If this is not a secondary name server, this requirement is not applicable. Verify the name server is configured to limit the total number of zones that can be requested at one time. Inspect the "named.conf" file for the following: options { transfers-in 10; }; If the "options" statement does not contain a "transfers-in" sub-statement, this is a finding.
Fix: F-76323r1123844_fix
Edit the "named.conf" file. Add the "transfers-in" sub-statement to the "options" statement block. The value of the "transfers-in" will be based on organizational requirements needed to support DNS operations. Restart the BIND 9.x process.
- RMF Control
- AC-10
- Severity
- M
- CCI
- CCI-000054
- Version
- BIND-9X-001040
- Vuln IDs
-
- V-272367
- Rule IDs
-
- SV-272367r1123978_rule
Checks: C-76417r1123976_chk
Verify the name server is configured to limit the number of concurrent client connections: Inspect the "named.conf" file for the following: options { transfers-out 10; }; If the "options" statement does not contain a "transfers-out" sub-statement, this is a finding.
Fix: F-76324r1123977_fix
Edit the "named.conf" file. Add the "transfers-out" sub-statement to the "options" statement block. The value of the "transfers-out" will be based on organizational requirements needed to support DNS operations. Restart the BIND 9.x process.
- RMF Control
- AU-3
- Severity
- M
- CCI
- CCI-000130
- Version
- BIND-9X-001050
- Vuln IDs
-
- V-272368
- Rule IDs
-
- SV-272368r1123822_rule
Checks: C-76418r1123820_chk
For each logging channel that is defined, verify that the "print-severity" substatement is listed. Inspect the "named.conf" file for the following: logging { channel channel_name { print-severity yes; }; }; If the "print-severity" statement is missing, this is a finding. If the "print-severity" statement is not set to "yes", this is a finding.
Fix: F-76325r1123821_fix
Edit the "named.conf" file. Add the "print-severity" substatement to the "channel" statement. Configure the "print-severity" sub statement to "yes". Restart the BIND 9.x process.
- RMF Control
- AU-3
- Severity
- M
- CCI
- CCI-000131
- Version
- BIND-9X-001060
- Vuln IDs
-
- V-272369
- Rule IDs
-
- SV-272369r1123825_rule
Checks: C-76419r1123823_chk
For each logging channel that is defined, verify that the "print-time" substatement is listed. Inspect the "named.conf" file for the following: logging { channel channel_name { print-time yes; }; }; If the "print-time" statement is missing, this is a finding. If the "print-time" statement is not set to "yes", this is a finding.
Fix: F-76326r1123824_fix
Edit the "named.conf" file. Add the "print-time" substatement to the "channel" statement. Configure the "print-time" sub statement to "yes". Restart the BIND 9.x process.
- RMF Control
- AU-3
- Severity
- M
- CCI
- CCI-000132
- Version
- BIND-9X-001070
- Vuln IDs
-
- V-272370
- Rule IDs
-
- SV-272370r1123423_rule
Checks: C-76420r1123421_chk
For each logging channel that is defined, verify that the "print-category" sub statement is listed. Inspect the "named.conf" file for the following: logging { channel channel_name { print-category yes; }; }; If the "print-category" statement is missing, this is a finding. If the "print-category" statement is not set to "yes", this is a finding.
Fix: F-76327r1123422_fix
Edit the "named.conf" file. Add the "print-category" sub statement to the "channel" statement. Configure the "print-category" sub statement to "yes". Restart the BIND 9.x process.
- RMF Control
- AU-12
- Severity
- M
- CCI
- CCI-000169
- Version
- BIND-9X-001110
- Vuln IDs
-
- V-272371
- Rule IDs
-
- SV-272371r1156965_rule
Checks: C-76421r1123849_chk
Verify the name server is configured to generate audit records: Inspect the "named.conf" file for the following: logging { channel channel_name { severity info; print-time yes; print-category yes; print-severity yes; }; category default { channel_name; }; }; If there is no "logging" statement, this is a finding. If the "logging" statement does not contain a "channel", this is a finding. If the "logging" statement does not contain a "category" that uses a "channel", this is a finding.
Fix: F-76328r1123850_fix
Configure the logging statement in the "named.conf" file: logging { channel <channel_name> { file "<file_name>"; severity info; print-time yes; print-category yes; print-severity yes; }; category default { <channel_name>; }; }; Replace <channel_name> and <file_name> with names that distinctively identify the purpose of the channel and the log file. Restart the BIND 9.x process.
- RMF Control
- IA-5
- Severity
- M
- CCI
- CCI-000186
- Version
- BIND-9X-001140
- Vuln IDs
-
- V-272372
- Rule IDs
-
- SV-272372r1123853_rule
Checks: C-76422r1123852_chk
Verify that the ZSK private key is the only key stored on the name server. For each signed zone file, identify the ZSK "key id" number: # cat <signed_zone_file> | grep -i "zsk" ZSK; alg = ECDSAP256SHA256; key id = 22335 Using the ZSK "key id", verify that the only private key stored on the system matches the "key id". Kexample.com.+008+22335.private If any ZSK private keys exist on the server other than the one corresponding to the active ZSK pair, this is a finding.
Fix: F-76329r1123428_fix
Remove any ZSK private keys existing on the server other than the one corresponding to the active ZSK pair.
- RMF Control
- IA-5
- Severity
- M
- CCI
- CCI-000186
- Version
- BIND-9X-001150
- Vuln IDs
-
- V-272373
- Rule IDs
-
- SV-272373r1192864_rule
Checks: C-76423r1192863_chk
Verify that no private KSKs are stored on the name server. With the assistance of the DNS administrator, obtain a list of all DNSSEC private keys that are stored on the name server. Inspect the signed zone files(s) and if there are local zones, look for the KSK key ID: DNSKEY 257 3 8 ( <hash_algorithm) ; KSK ; alg = ECDSAP256SHA256; key id = 52807 Verify that none of the identified private keys are KSKs. An example private KSK would look like the following: Kexample.com.+008+52807.private If private KSKs are stored on the name server, this is a finding.
Fix: F-76330r1123980_fix
Remove all private KSKs from the name server and ensure they are stored offline in a secure location.
- RMF Control
- IA-5
- Severity
- M
- CCI
- CCI-000186
- Version
- BIND-9X-001180
- Vuln IDs
-
- V-272375
- Rule IDs
-
- SV-272375r1123858_rule
Checks: C-76425r1123856_chk
Verify permissions assigned to the TSIG keys enforce read-write access to the key owner and deny access to group or system users. With the assistance of the DNS administrator, determine the location of the TSIG keys used by the BIND 9.x implementation: # ls -al <TSIG_Key_Location> -rw-r-----. 1 root named 76 May 10 20:35 tsig-example.key If the key files are more permissive than 640, this is a finding.
Fix: F-76332r1123857_fix
Change the permissions of the TSIG key files: # chmod 640 <TSIG_key_file>
- RMF Control
- IA-5
- Severity
- M
- CCI
- CCI-000186
- Version
- BIND-9X-001190
- Vuln IDs
-
- V-272376
- Rule IDs
-
- SV-272376r1156963_rule
Checks: C-76426r1123859_chk
Verify that the BIND 9.x server is configured to use separate TSIG key-pairs when securing server-to-server transactions. Inspect the "named.conf" file for the presence of TSIG key statements: On the primary name server, this is an example of a configured key statement: key tsig_example. { algorithm hmac-SHA256; include "tsig-example.key"; }; zone "disa.mil" { type Primary; file "db.disa.mil"; allow-transfer { key tsig_example.; }; }; On the secondary name server, this is an example of a configured key statement: key tsig_example. { algorithm hmac-SHA256; include "tsig-example.key"; }; server <ip_address> { keys { tsig_example }; }; zone "disa.mil" { type Secondary; Primarys { <ip_address>; }; file "db.disa.mil"; }; Verify that each TSIG key-pair listed is only used by a single key statement: # cat <tsig_key_file> If any TSIG key-pair is being used by more than one key statement, this is a finding.
Fix: F-76333r1123440_fix
Create a separate TSIG key-pair for each key statement listed in the named.conf file. Configure the name server to use separate TSIG key-pairs for each key statement listed in the named.conf file. Restart the BIND 9.x process.
- RMF Control
- IA-5
- Severity
- M
- CCI
- CCI-000186
- Version
- BIND-9X-001200
- Vuln IDs
-
- V-272377
- Rule IDs
-
- SV-272377r1123862_rule
Checks: C-76427r1123861_chk
With the assistance of the DNS administrator, identify all of the TSIG keys used by the BIND 9.x implementation. Identify the account that the "named" process is running as: # ps -ef | grep named named 3015 1 0 12:59 ? 00:00:00 /usr/sbin/named -u named -t /var/named/chroot With the assistance of the DNS administrator, determine the location of the TSIG keys used by the BIND 9.x implementation. # ls -al <TSIG_Key_Location> -rw-r-----. 1 root named 76 May 10 20:35 tsig-example.key If any of the TSIG keys are not owned by the above account, this is a finding.
Fix: F-76334r1123443_fix
Change the ownership of the TSIG keys to the named process it is running as. # chown <named_proccess_owner> <TSIG_key_file>.
- RMF Control
- IA-5
- Severity
- M
- CCI
- CCI-000186
- Version
- BIND-9X-001210
- Vuln IDs
-
- V-272378
- Rule IDs
-
- SV-272378r1123864_rule
Checks: C-76428r1123863_chk
With the assistance of the DNS administrator, identify all of the TSIG keys used by the BIND 9.x implementation. Identify the account that the "named" process is running as: # ps -ef | grep named named 3015 1 0 12:59 ? 00:00:00 /usr/sbin/named -u named -t /var/named/chroot With the assistance of the DNS administrator, determine the location of the TSIG keys used by the BIND 9.x implementation. # ls -al <TSIG_Key_Location> -rw-r-----. 1 root named 76 May 10 20:35 tsig-example.key If any of the TSIG keys are not group owned by the above account, this is a finding.
Fix: F-76335r1123446_fix
Change the group ownership of the TSIG keys to the named process group. # chgrp <named_proccess_group> <TSIG_key_file>
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- BIND-9X-001220
- Vuln IDs
-
- V-272379
- Rule IDs
-
- SV-272379r1124035_rule
Checks: C-76429r1124034_chk
If the BIND 9.x name server is not configured for split DNS, this is not applicable. Verify that the BIND 9.x server is configured to use separate views and address space for internal and external DNS operations when operating in a split configuration. Inspect the "named.conf" file for the following: view "internal" { match-clients { <ip_address> | <address_match_list> }; zone "example.com" { type Primary; file "internals.example.com"; }; }; view "external" { match-clients { <ip_address> | <address_match_list> }; zone "example.com" { type Primary; file "externals.db.example.com"; allow-transfer { Secondarys; }; }; }; If the internal and external view statements are configured to use the same zone file, this is a finding. Inspect the zone file defined in the internal and external view statements. If any resource record is listed in both the internal and external zone files, this is a finding.
Fix: F-76336r1123865_fix
Edit the "named.conf" file. Configure the internal and external view statements to use separate zone files. Edit the internal and external zone files. Configure the zone file to use RRs designated for internal or external use. The zone files must not share any RR.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- BIND-9X-001230
- Vuln IDs
-
- V-272380
- Rule IDs
-
- SV-272380r1124037_rule
Checks: C-76430r1124036_chk
If the BIND 9.x name server is not configured for split DNS, this is not applicable. Verify that the BIND 9.x server is configured to use the "match-clients" sub-statement to limit the reach of the internal view from the external view. Inspect the "named.conf" file for the following: view "internal" { match-clients { <ip_address> | <address_match_list>; }; }; If the "match-clients" sub-statement is missing for the internal view, this is a finding. If the "match-clients" sub-statement for the internal view does not limit the view to authorized hosts, this is a finding. If any of the IP addresses defined for the "match-clients" sub-statement in the internal view are assigned to external hosts, this is a finding.
Fix: F-76337r1123452_fix
Edit the "named.conf" file. Configure the internal view statement to limit use authorized internal hosts: view "internal" { match-clients { <ip_address> | <address_match_list>; }; }; Remove any IP address that is assigned to an external host from the internal view statement. Restart the BIND 9.x process.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- BIND-9X-001240
- Vuln IDs
-
- V-272381
- Rule IDs
-
- SV-272381r1124039_rule
Checks: C-76431r1124038_chk
If the BIND 9.x name server is not configured for split DNS, this is not applicable. Verify that the external view of the BIND 9.x server is configured to only serve external hosts. Inspect the "named.conf" file for the following: view "external" { match-clients { <ip_address> | <address_match_list>; }; }; If the "match-clients" sub-statement does not limit the external view to external hosts only, this is a finding.
Fix: F-76338r1123455_fix
Edit the "named.conf" file. Configure the external view statement to server external hosts only: view "external" { match-clients { <ip_address> | <address_match_list>; }; }; Restart the BIND 9.x process.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- BIND-9X-001250
- Vuln IDs
-
- V-272382
- Rule IDs
-
- SV-272382r1124041_rule
Checks: C-76432r1124040_chk
If the BIND 9.x name server is not configured for split DNS, this is not applicable. Verify that the split DNS implementation has been approved by the organizations AO. With the assistance of the DNS administrator, obtain the AO's letter of approval for the split DNS implementation. If the split DNS implementation has not been approved by the organizations AO, this is a finding.
Fix: F-76339r1123458_fix
Obtain approval for the split DNS implementation from the AO.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- BIND-9X-001260
- Vuln IDs
-
- V-272383
- Rule IDs
-
- SV-272383r1124043_rule
Checks: C-76433r1124042_chk
With the assistance of the DNS administrator, identify if the BIND 9.x implementation is using a hidden primary name server. If it is not, this is not applicable. In a split DNS configuration that is using a hidden primary name server, verify that the name server IP address is not listed in the zone file. With the assistance of the DNS administrator, obtain the IP address of the hidden primary name server. Inspect each zone file used by the hidden primary name server and its secondary zones. If the IP address for the hidden primary name server is listed in any of the zone files, this is a finding.
Fix: F-76340r1123461_fix
Edit the zone file(s). Remove all references to the hidden primary name server. Restart the BIND 9.x process.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- BIND-9X-001270
- Vuln IDs
-
- V-272384
- Rule IDs
-
- SV-272384r1156952_rule
Checks: C-76434r1123744_chk
If the server is on an internal, restricted network with reserved IP space, this is Not Applicable. With the assistance of the DNS administrator, identify each internal DNS zone listed in the "named.conf" file. For each internal zone identified, inspect the signed zone file for the NSEC resource records: 86400 NSEC example.com. A RRSIG NSEC If the zone file does not contain an NSEC record for the zone, this is a finding.
Fix: F-76341r1123464_fix
Re-sign each zone that is missing NSEC records. Restart the BIND 9.x process.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- BIND-9X-001280
- Vuln IDs
-
- V-272385
- Rule IDs
-
- SV-272385r1156961_rule
Checks: C-76435r1123873_chk
Determine if the BIND 9.x server is configured to allow dynamic updates. Review the "named.conf" file for any instance of the "allow-update" statement. The following example disables dynamic updates: allow-update {none;}; If the BIND 9.x implementation is not configured to allow dynamic updates or inline signing, verify with the system administrator (SA) that the private ZSKs and private KSKs are stored offline. If not, this is a finding.
Fix: F-76342r1123874_fix
Remove any ZSK or KSK private key from any BIND 9.x server that does not support dynamic updates. Note: Any ZSK or KSK that is not needed to support dynamic updates must be stored offline in a secure location.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- BIND-9X-001290
- Vuln IDs
-
- V-272386
- Rule IDs
-
- SV-272386r1123985_rule
Checks: C-76436r1123876_chk
With the assistance of the DNS administrator, identify all dnssec-keygen key files that reside on the BIND 9.x server. An example dnssec-keygen key file will look like the following: Kns1.example.com_ns2.example.com.+161+28823.key OR Kns1.example.com_ns2.example.com.+161+28823.private For each key file identified, verify that the key file is owned by "named": # ls -al -rw-r-----. 1 named named 76 May 10 20:35 dnssec-example.key If the key files are not owned by named, this is a finding.
Fix: F-76343r1123877_fix
Change the ownership of the keys to the administrator account. # chown named:named <key_file>.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- BIND-9X-001300
- Vuln IDs
-
- V-272387
- Rule IDs
-
- SV-272387r1123881_rule
Checks: C-76437r1123879_chk
With the assistance of the DNS administrator, identify all dnssec-keygen key files that reside on the BIND 9.x server. An example dnssec-keygen key file will look like the following: Kns1.example.com_ns2.example.com.+161+28823.key OR Kns1.example.com_ns2.example.com.+161+28823.private For each key file identified, verify that the key file is owned by "named": # ls -al -rw-r-----. 1 named named 77 Jul 1 15:00 Kns1.example.com_ns2.example.com+161+28823.key If the key files are not owned by named, this is a finding.
Fix: F-76344r1123880_fix
Change the group ownership of the keys to the root group. # chgrp named:named <key_file>.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- BIND-9X-001310
- Vuln IDs
-
- V-272388
- Rule IDs
-
- SV-272388r1124010_rule
Checks: C-76438r1124009_chk
With the assistance of the DNS administrator, identify all dnssec-keygen key files that reside on the BIND 9.x server. An example dnssec-keygen key file will look like the following: Kns1.example.com_ns2.example.com.+161+28823.key OR Kns1.example.com_ns2.example.com.+161+28823.private For each key file identified, verify that the key file is owned by "named" and permissions are set to 400: # ls -al -r-------- 1 named named 77 Jul 1 15:00 Kns1.example.com_ns2.example.com+161+28823.key If the key files are not owned by “named”, this is a finding. If the key files are more permissive than 400, this is a finding.
Fix: F-76345r1123476_fix
Change the permissions of the dnssec-keygen key files: # chmod 400 <key_file>
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- BIND-9X-001320
- Vuln IDs
-
- V-272389
- Rule IDs
-
- SV-272389r1123885_rule
Checks: C-76439r1123884_chk
With the assistance of the DNS administrator, identify the RRSIGs that cover the DNSKEY resource record set for each zone. Each record will list an expiration and inception date, the difference of which will provide the validity period. This check also applies to inline signing. The dates are listed in the following format: YYYYMMDDHHMMSS For each RRSIG identified, verify that the validity period is no less than two days and no longer than seven days. If the validity period is outside of the specified range, this is a finding.
Fix: F-76346r1123479_fix
Re-sign each zone that is outside of the validity period. Restart the BIND 9.x process.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- BIND-9X-001340
- Vuln IDs
-
- V-272390
- Rule IDs
-
- SV-272390r1156960_rule
Checks: C-76440r1123886_chk
Note: This check only verifies for ZSK key file ownership. Permissions for key files are required under BIND-9X-001132 and BIND-9X-001142. For each signed zone file, identify the ZSK "key id" number: # cat <signed_zone_file> | grep -i "zsk" ZSK; alg = ECDSAP256SHA256; key id = 22335 Using the ZSK "key id", identify the private ZSK: Kexample.com.+008+22335.private Verify that the private ZSK is owned by named: # ls -l <ZSK_key_file> -r------- 1 named named 1776 Jul 3 17:56 Kexample.com.+008+22335.private If the key file is not owned by named, this is a finding.
Fix: F-76347r1123887_fix
Change the ownership of the ZSK private key to the root account: # chown named <key_file>
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- BIND-9X-001350
- Vuln IDs
-
- V-272391
- Rule IDs
-
- SV-272391r1156960_rule
Checks: C-76441r1123889_chk
Note: This check only verifies for ZSK key file ownership. Permissions for key files are required under BIND-9X-001132 and BIND-9X-001142. For each signed zone file, identify the ZSK "key id" number: # cat <signed_zone_file> | grep -i "zsk" ZSK; alg = ECDSAP256SHA256; key id = 22335 Using the ZSK "key id", verify the private ZSK. Kexample.com.+008+22335.private Verify that the private ZSK is owned by "named": # ls -l <ZSK_key_file> -r------- 1 named named 1776 Jul 3 17:56 Kexample.com.+008+22335.private If the key file is not group owned by named, this is a finding.
Fix: F-76348r1123890_fix
Change the group ownership of the ZSK private key to the root group account. # chgrp named <key_file>
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- BIND-9X-001360
- Vuln IDs
-
- V-272392
- Rule IDs
-
- SV-272392r1124046_rule
Checks: C-76442r1124045_chk
If the server is not a caching server, this is not applicable. Note: The use of the Defense Research and Engineering Network (DREN) Enterprise Recursive DNS servers, as mandated by the DODIN service provider DREN, meets the intent of this requirement. Verify that the server is configured to forward all DNS traffic to the DISA ERS anycast IP addresses ( <IP_ADDRESS_LIST>; ). Inspect the "named.conf" file for the following: forward only; forwarders { <IP_ADDRESS_LIST>; }; If the "named.conf" options are not set to forward queries only to the ERS anycast IPs, this is a finding.
Fix: F-76349r1123893_fix
Configure the BIND 9.x caching name server to use the DISA ERS anycast IP addresses. Edit the "named.conf" file and add the following to the global options statement: forward only; forwarders { <IP_ADDRESS_LIST>; }; Restart the BIND 9.x process.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- BIND-9X-001370
- Vuln IDs
-
- V-272393
- Rule IDs
-
- SV-272393r1124048_rule
Checks: C-76443r1124047_chk
If this is a primary name server, this is not applicable. On a secondary name server, verify that the global notify is disabled. The global entry for the name server is under the "Options" section, and notify must be disabled at this section. Inspect the "named.conf" file for the following: options { notify no; }; If the "notify" statement is missing, this is a finding. If the "notify" statement is set to "yes", this is a finding. Verify that zones for which the secondary server is authoritative are configured to notify other authorized secondary name servers when a zone file update has been received from the primary name server for the zone. Each zone has its own zone section. Inspect the "named.conf" file for the following: zone example.com { notify explicit; also-notify { <ip_address>; | <address_match_list>; }; If an "address match list" is used, verify that each IP address listed is an authorized secondary name server for that zone. If the "notify explicit" statement is missing, this is a finding. If the "also-notify" statement is missing, this is a finding. If the "also-notify" statement is configured to notify name servers that are not authorized for that zone, this is a finding.
Fix: F-76350r1123896_fix
Edit the "named.conf" file. Configure the "notify" sub-statement in the "options" statement block to "no": options { notify no; }; Configure the "notify explicit" and "also-notify" sub-statements in the zone statement block to limit zone transfer notifications to authorized secondary name servers: zone example.com { notify explicit; also-notify { <ip_address>; | <address_match_list>; }; Restart the BIND 9.x process.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- BIND-9X-001380
- Vuln IDs
-
- V-272394
- Rule IDs
-
- SV-272394r1156949_rule
Checks: C-76444r1124049_chk
If this is a recursive name server, this is not applicable. Note: A recursive name server must NOT be configured as an authoritative name server for any zone. Verify that the BIND 9.x server is configured to prohibit recursion on authoritative name servers. Inspect the "named.conf" file for the following: options { recursion no; allow-recursion {none;}; allow-query {none;}; }; If the "recursion" sub-statement is missing or set to "yes", this is a finding.
Fix: F-76351r1123987_fix
Configure the authoritative name server to prohibit recursion. Edit the "named.conf" file and add the following sub-statements to the options statement: recursion no; Restart the BIND 9.x process.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- BIND-9X-001390
- Vuln IDs
-
- V-272395
- Rule IDs
-
- SV-272395r1124052_rule
Checks: C-76445r1124051_chk
If this is a secondary name server, this is not applicable. On a primary name server, verify that the global notify is disabled. The global entry for the name server is under the "Options" section, and "notify" must be disabled at this section. Inspect the "named.conf" file for the following: options { notify no; }; If the "notify" statement is missing, this is a finding. If the "notify" statement is set to "yes", this is a finding. Verify that each zone is configured to notify authorized secondary name servers when a zone file has been updated. Each zone has its own zone section. Inspect the "named.conf" file for the following: zone example.com { notify explicit; also-notify { <ip_address>; | <address_match_list>; }; If an "address match list" is used, verify that each IP address listed is an authorized secondary name server for that zone. If the "notify explicit" statement is missing, this is a finding. If the "also-notify" statement is missing, this is a finding. If the "also-notify" statement is configured to notify name servers that are not authorized for that zone, this is a finding.
Fix: F-76352r1123989_fix
Edit the "named.conf" file. Configure the "notify" sub-statement in the "options" statement block to "no": options { notify no; }; Configure the "notify explicit" and "also-notify" sub-statements in the zone statement block to limit zone transfer notifications to authorized secondary name servers: zone example.com { notify explicit; also-notify { <ip_address>; | <address_match_list>; }; Restart the BIND 9.x process.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- BIND-9X-001400
- Vuln IDs
-
- V-272396
- Rule IDs
-
- SV-272396r1192866_rule
Checks: C-76446r1192865_chk
If this is an authoritative name server, this is not applicable. Use command dig @<serverip> . ns and examine results. Answer results . 518400 IN NS e.root-servers.net. . 518400 IN NS a.root-servers.net. . 518400 IN NS g.root-servers.net. . 518400 IN NS i.root-servers.net. . 518400 IN NS h.root-servers.net. . 518400 IN NS d.root-servers.net. . 518400 IN NS c.root-servers.net. . 518400 IN NS k.root-servers.net. . 518400 IN NS f.root-servers.net. . 518400 IN NS m.root-servers.net. . 518400 IN NS b.root-servers.net. . 518400 IN NS j.root-servers.net. . 518400 IN NS l.root-servers.net. ;; ADDITIONAL SECTION: m.root-servers.net. 518400 IN A 202.12.27.33 l.root-servers.net. 518400 IN A 199.7.83.42 k.root-servers.net. 518400 IN A 193.0.14.129 j.root-servers.net. 518400 IN A 192.58.128.30 i.root-servers.net. 518400 IN A 192.36.148.17 h.root-servers.net. 518400 IN A 198.97.190.53 g.root-servers.net. 518400 IN A 192.112.36.4 f.root-servers.net. 518400 IN A 192.5.5.241 e.root-servers.net. 518400 IN A 192.203.230.10 d.root-servers.net. 518400 IN A 199.7.91.13 c.root-servers.net. 518400 IN A 192.33.4.12 b.root-servers.net. 518400 IN A 170.247.170.2 a.root-servers.net. 518400 IN A 198.41.0.4 m.root-servers.net. 518400 IN AAAA 2001:dc3::35 l.root-servers.net. 518400 IN AAAA 2001:500:9f::42 k.root-servers.net. 518400 IN AAAA 2001:7fd::1 j.root-servers.net. 518400 IN AAAA 2001:503:c27::2:30 i.root-servers.net. 518400 IN AAAA 2001:7fe::53 h.root-servers.net. 518400 IN AAAA 2001:500:1::53 g.root-servers.net. 518400 IN AAAA 2001:500:12::d0d f.root-servers.net. 518400 IN AAAA 2001:500:2f::f e.root-servers.net. 518400 IN AAAA 2001:500:a8::e d.root-servers.net. 518400 IN AAAA 2001:500:2d::d c.root-servers.net. 518400 IN AAAA 2001:500:2::c b.root-servers.net. 518400 IN AAAA 2801:1b8:10::b a.root-servers.net. 518400 IN AAAA 2001:503:ba3e::2:30 If names and addresses do not match the current IANA list, this is a finding. Perform command dig @<serverip> . dnskey +multi and examine results. answer results 77555 IN DNSKEY 257 3 8 ( AwEAAaz/tAm8yTn4Mfeh5eyI96WSVexTBAvkMgJzkKTO iW1vkIbzxeF3+/4RgWOq7HrxRixHlFlExOLAJr5emLvN 7SWXgnLh4+B5xQlNVz8Og8kvArMtNROxVQuCaSnIDdD5 LKyWbRd2n9WGe2R8PzgCmr3EgVLrjyBxWezF0jLHwVN8 efS3rCj/EWgvIWgb9tarpVUDK/b58Da+sqqls3eNbuv7 pr+eoZG+SrDK6nWeL3c6H5Apxz7LjVc1uTIdsIXxuOLY A4/ilBmSVIzuDWfdRUfhHdY6+cn8HFRm+2hM8AnXGXws 9555KrUB5qihylGa8subX2Nn6UwNR1AkUTV74bU= ) ; KSK; alg = RSASHA256 ; key id = 20326 . 77555 IN DNSKEY 256 3 8 ( AwEAAbEbGCpGTDrcZTWqWWE72nphyshpRcILdzCVlBGU 9Ln1Fui9kkseUOP+g5GLUeVFKdTloeRTA9+EYiQdXgWX mXmuW/nGxZjAikluF/O9NzLVrr5iZnth2xu+F48nrJlA gWWiMNau54NI5sZ3iVQfhFsq2pZmf43RauRPniYMShOL O7EBWWXr5glDSgZGS9fSm6xHwwF+g8D4m8oanjvdCBNx XzSEKS31ibxjLifTfvwCg3y4XXcNW9U6Nu3JmoKUdxqp PPIkBvVQbIz4UO2FwaR13uXC03ALP1Yx2QNSS4SZlcIM tAftQR9wtCiuPWQnFv4jkzWqlhp1Lmf7bcoL9yk= ) ; ZSK; alg = RSASHA256 ; key id = 53148 . 77555 IN DNSKEY 257 3 8 ( AwEAAa96jeuknZlaeSrvyAJj6ZHv28hhOKkx3rLGXVaC 6rXTsDc449/cidltpkyGwCJNnOAlFNKF2jBosZBU5eeH spaQWOmOElZsjICMQMC3aeHbGiShvZsx4wMYSjH8e7Vr hbu6irwCzVBApESjbUdpWWmEnhathWu1jo+siFUiRAAx m9qyJNg/wOZqqzL/dL/q8PkcRU5oUKEpUge71M3ej2/7 CPqpdVwuMoTvoB+ZOT4YeGyxMvHmbrxlFzGOHOijtzN+ u1TQNatX2XBuzZNQ1K+s2CXkPIZo7s6JgZyvaBevYtxP vYLw4z9mR7K2vaF18UYH9Z9GNUUeayffKC73PYc= ) ; KSK; alg = RSASHA256 ; key id = 38696 Note: May use "nslookup" as an alternative to "dig". If the DNSSEC keys and root anchors do not match the IANA list, this is a finding.
Fix: F-76353r1123904_fix
Edit the local root zone file. Ensure that the root servers listed match the IANA list. Ensure that the DNS keys and trust anchors listed match the IANA list. Restart the BIND 9.x process.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- BIND-9X-001410
- Vuln IDs
-
- V-272397
- Rule IDs
-
- SV-272397r1124056_rule
Checks: C-76447r1124055_chk
If this server is a caching name server, this is not applicable. Verify there is not a local root zone on the name server. Inspect the "named.conf" file for the following: zone "." IN { type hint; file "<file_name>" }; If the file name identified is not empty or does exist, this is a finding.
Fix: F-76354r1123503_fix
Remove the local root zone file from the name server.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- BIND-9X-001430
- Vuln IDs
-
- V-272399
- Rule IDs
-
- SV-272399r1124058_rule
Checks: C-76449r1124057_chk
Severity override guidance: If the internal and external views are on separate network segments, this finding may be downgraded to a CAT II. If the BIND 9.x name server is not configured for split DNS, this is not applicable. Verify that the BIND 9.x server is configured to use separate views and address space for internal and external DNS operations when operating in a split configuration. Inspect the "named.conf" file for the following: view "internal" { match-clients { <ip_address> | <address_match_list> }; zone "example.com" { type Primary; file "internals.example.com"; }; }; view "external" { match-clients { <ip_address> | <address_match_list> }; zone "example.com" { type Primary; file "externals.db.example.com"; allow-transfer { Secondarys; }; }; }; If an external view is listed before an internal view, this is a finding. If the internal and external views are on the same network segment, this is a finding. Note: BIND 9.x reads the "named.conf" file from top to bottom. If a less stringent "match-clients" statement is processed before a more stringent "match-clients" statement, the more stringent statement will be ignored. With this in mind, all internal view statements must be listed before any external view statement in the "named.conf" file.
Fix: F-76356r1123509_fix
Edit the "named.conf" file. Configure the internal and external view statements to use separate network segments. Configure all internal view statements to be listed before any external view statement. Restart the BIND 9.x process.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- BIND-9X-001470
- Vuln IDs
-
- V-272400
- Rule IDs
-
- SV-272400r1123993_rule
Checks: C-76450r1123991_chk
Verify that each name server listed on the BIND 9.x server is authoritative for the domain it supports. Inspect the "named.conf" file and identify all of the zone files that the BIND 9.x server is using. zone "example.com" { file "zone_file"; }; Inspect each zone file and identify each NS record listed. 86400 NS ns1.example.com 86400 NS ns2.example.com With the assistance of the DNS administrator, verify that each name server listed is authoritative for that domain. If name servers are listed in the zone file that are not authoritative for the specified domain, this is a finding.
Fix: F-76357r1123992_fix
Edit the zone file(s). Remove any name server for which the BIND 9.x server is not authoritative. Restart the BIND 9.x process.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- BIND-9X-001480
- Vuln IDs
-
- V-272401
- Rule IDs
-
- SV-272401r1156953_rule
Checks: C-76451r1123792_chk
Verify that each name server listed on the BIND 9.x server is on a separate network segment. Inspect the "named.conf" file and identify all of the zone files that the BIND 9.x server is using. zone "example.com" { file "zone_file"; }; Inspect each zone file and identify each A record for each NS record listed: ns1.example.com 86400 IN A 192.168.1.4 ns2.example.com 86400 IN A 192.168.2.4 If name servers are listed in the zone file that are not on different network segments for the specified domain, this is a finding.
Fix: F-76358r1123515_fix
Edit the zone file and configure each name server on a separate network segment.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- BIND-9X-001490
- Vuln IDs
-
- V-272402
- Rule IDs
-
- SV-272402r1124060_rule
Checks: C-76452r1123913_chk
Verify that the BIND 9.x server does not limit outgoing DNS messages to a specific port. Inspect the "named.conf" file. The "query-source" and "query-source-v6" must not limit the ports available to be used. options { query-source address <v4_address>; query-source-v6 address <v6_address>; }; If the port flag is used on the query-source address or query-source-v6 address, this is a finding.
Fix: F-76359r1123914_fix
Edit the "named.conf" file. Configure the BIND 9.x server to not specify ports for the query-source address or query-source-v6 address statements: options { query-source address <v4_address>; query-source-v6 address <v6_address>; }; Restart the BIND 9.x process.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- BIND-9X-001500
- Vuln IDs
-
- V-272403
- Rule IDs
-
- SV-272403r1156957_rule
Checks: C-76453r1123916_chk
Verify that the BIND 9.x server is at a version that is considered "Current-Stable" by ISC or the latest supported version of BIND when BIND is installed as part of a specific vendor implementation where the vendor maintains the BIND patches. # named -v The above command should produce a version number similar to the following: BIND 9.18.36-RedHat-9.9.4-29.el7_2.3 If the server is running a version that is not listed as "Current-Stable" by ISC, this is a finding.
Fix: F-76360r1123994_fix
Update the BIND 9.x server to a version that is listed as "Current-Stable" by ISC or the latest supported version of BIND when BIND is installed as part of a specific vendor implementation where the vendor maintains the BIND patches.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- BIND-9X-001510
- Vuln IDs
-
- V-272404
- Rule IDs
-
- SV-272404r1156959_rule
Checks: C-76454r1123523_chk
Verify that the BIND 9.x server is configured to use a dedicated management interface: # ifconfig -a eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.0.1.252 netmask 255.255.255.0 broadcast 10.0.1.255 inet6 fd80::21c:d8ff:fab7:1dba prefixlen 64 scopeid 0x20<link> ether 00:1a:b8:d7:1a:bf txqueuelen 1000 (Ethernet) RX packets 2295379 bytes 220126493 (209.9 MiB) RX errors 0 dropped 31 overruns 0 frame 0 TX packets 70507 bytes 12284940 (11.7 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1458 inet 10.0.0.5 netmask 255.255.255.0 broadcast 10.0.0.255 inet6 fe81::21c:a8bf:fad7:1dca prefixlen 64 scopeid 0x20<link> ether 00:1d:d8:b5:1c:dd txqueuelen 1000 (Ethernet) RX packets 39090 bytes 4196802 (4.0 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 93250 bytes 18614094 (17.7 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 If one of the interfaces listed is not dedicated to only process management traffic, this is a finding.
Fix: F-76361r1123524_fix
On the host machine, configure an interface that is dedicated to management traffic. Restart the host machine.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- BIND-9X-001520
- Vuln IDs
-
- V-272405
- Rule IDs
-
- SV-272405r1156959_rule
Checks: C-76455r1123526_chk
Verify that the BIND 9.x server is configured to use an interface that is configured to process only DNS traffic. # ifconfig -a eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 10.0.1.252 netmask 255.255.255.0 broadcast 10.0.1.255 inet6 fd80::21c:d8ff:fab7:1dba prefixlen 64 scopeid 0x20<link> ether 00:1a:b8:d7:1a:bf txqueuelen 1000 (Ethernet) RX packets 2295379 bytes 220126493 (209.9 MiB) RX errors 0 dropped 31 overruns 0 frame 0 TX packets 70507 bytes 12284940 (11.7 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 eth1: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1458 inet 10.0.0.5 netmask 255.255.255.0 broadcast 10.0.0.255 inet6 fe81::21c:a8bf:fad7:1dca prefixlen 64 scopeid 0x20<link> ether 00:1d:d8:b5:1c:dd txqueuelen 1000 (Ethernet) RX packets 39090 bytes 4196802 (4.0 MiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 93250 bytes 18614094 (17.7 MiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0 If one of the interfaces listed is not dedicated to only process DNS traffic, this is a finding.
Fix: F-76362r1123527_fix
On the host machine, configure an interface to only process DNS traffic. Restart the host machine.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- BIND-9X-001530
- Vuln IDs
-
- V-272406
- Rule IDs
-
- SV-272406r1156959_rule
Checks: C-76456r1123997_chk
Verify that the BIND 9.x server is dedicated for DNS traffic. With the assistance of the DNS administrator, identify all of the processes running on the BIND 9.x server: # ps -ef | less If any of the identified processes are not in support of normal OS functionality or in support of the BIND 9.x process, this is a finding.
Fix: F-76363r1123530_fix
Disable or uninstall all non-DNS related applications from the BIND 9.x server.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- BIND-9X-001540
- Vuln IDs
-
- V-272407
- Rule IDs
-
- SV-272407r1156956_rule
Checks: C-76457r1123532_chk
Verify that the core BIND 9.x server files are group owned by a group designated for DNS administration only. With the assistance of the DNS administrator, identify the following files: named.conf root hints Primary zone file(s) Secondary zone file(s) Note: The name of the root hints file is defined in named.conf. Common names for the file are root.hints, named.cache, or db.cache. If the identified files are not group owned by a group designated for DNS administration, this is a finding.
Fix: F-76364r1123533_fix
Change the ownership of the core BIND 9.x server files to the process account group. # chgrp (BIND 9.x process account) <file>
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- BIND-9X-001550
- Vuln IDs
-
- V-272408
- Rule IDs
-
- SV-272408r1156956_rule
Checks: C-76458r1124014_chk
Verify that the core BIND 9.x server files are owned by the root or BIND 9.x process account. With the assistance of the DNS administrator, identify the following files: named.conf root hints Primary zone file(s) Secondary zone file(s) Note: The name of the root hints file is defined in named.conf. Common names for the file are root.hints, named.cache, or db.cache. If the identified files are not owned by the root or BIND 9.x process account, this is a finding.
Fix: F-76365r1123536_fix
Change the ownership of the files to the root or BIND 9.x process account. # chown <account_name> <file>
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- BIND-9X-001570
- Vuln IDs
-
- V-272410
- Rule IDs
-
- SV-272410r1124061_rule
Checks: C-76460r1123541_chk
Verify that the SOA record is at the same version for all authoritative servers for a specific zone. With the assistance of the DNS administrator, identify each name server that is authoritative for each zone. Inspect each zone file that the server is authoritative for and identify the following: example.com. 86400 IN SOA ns1.example.com. root.example.com. (17760704;serial) If the SOA "serial" numbers are not identical on each authoritative name server, this is a finding.
Fix: F-76367r1123542_fix
Edit the zone file. Update the SOA record serial number.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- BIND-9X-001580
- Vuln IDs
-
- V-272411
- Rule IDs
-
- SV-272411r1156962_rule
Checks: C-76461r1124062_chk
Verify that the zone files used by the BIND 9.x server do not contain resource records for a domain in which the server is not authoritative. Inspect the "named.conf" file for the following: zone example.com { file "db.example.com.signed"; }; Inspect each zone file for "CNAME" records and verify with the DNS administrator that these records are less than six months old. The exceptions are glue records supporting zone delegations, CNAME records supporting a system migration, or CNAME records that point to third-party Content Delivery Networks (CDN) or cloud computing platforms. In the case of third-party CDNs or cloud offerings, an approved mission need must be demonstrated. If there are CNAME records that point to third-party Content Delivery Networks (CDNs) or cloud computing platforms without an authorizing official (AO)-approved and documented mission need, this is a finding. If a CNAME record is more than six months old, excluding the above, this is a finding.
Fix: F-76368r1123545_fix
In the case of third-party CDNs or cloud offerings, document the mission need with the AO. Edit the zone file. Remove CNAME records that are older than six months that do not meet the CDN or cloud offering criteria. Restart the BIND 9.x process.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- BIND-9X-001590
- Vuln IDs
-
- V-272412
- Rule IDs
-
- SV-272412r1124064_rule
Checks: C-76462r1123547_chk
Verify that the zone files used by the BIND 9.x server do not contain resource records for a domain in which the server is not authoritative. The exceptions are glue records supporting zone delegations, CNAME records supporting a system migration, or CNAME records that point to third-party Content Delivery Networks (CDN) or cloud computing platforms. In the case of third-party CDNs or cloud offerings, an approved mission need must be demonstrated. Inspect the "named.conf" file to identify the zone files, for which the server is authoritative: zone example.com { file "db.example.com.signed"; }; Inspect each zone file for which the server is authoritative. If there are CNAME records that point to third-party Content Delivery Networks (CDN) or cloud computing platforms without an authorizing official (AO)-approved and documented mission need, this is a finding. If a zone file contains records that resolve to another zone, excluding the above, this is a finding.
Fix: F-76369r1123548_fix
In the case of third-party CDNs or cloud offerings, document the mission need with the AO. Edit the zone file. Remove any record that points to a different zone, with the exception of approved CDNs or cloud offerings. Restart the BIND 9.x process.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- BIND-9X-001600
- Vuln IDs
-
- V-272413
- Rule IDs
-
- SV-272413r1156958_rule
Checks: C-76463r1123922_chk
Verify the BIND 9.x process is not running as root: # ps -ef | grep named named 3015 1 0 12:59 ? 00:00:00 /usr/sbin/named -u named -t /var/named/chroot If the owner of the process is root, this is a finding.
Fix: F-76370r1123551_fix
Configure the BIND 9.x process to run as a nonprivileged user. Restart the BIND 9.x process.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- BIND-9X-001610
- Vuln IDs
-
- V-272414
- Rule IDs
-
- SV-272414r1123797_rule
Checks: C-76464r1123796_chk
With the assistance of the DNS administrator, identify all of the cryptographic key files used by the BIND 9.x implementation. With the assistance of the DNS administrator, determine the location of the cryptographic key files used by the BIND 9.x implementation. # ls -al <Crypto_Key_Location> -rw-------. 1 named named 76 May 10 20:35 crypto-example.key If the server is in a classified network, the DNSSEC portion of the requirement is Not Applicable. For DNSSEC keys: Verify that the "Created" date is less than one year from the date of inspection: Note: The date format will be displayed in YYYYMMDDHHMMSS. # cat <DNSSEC_Key_File> | grep -i "created" Created: 20160704235959 If the "Created" date is more than one year old, this is a finding. For TSIG keys: Verify with the information system security officer (ISSO)/information system security manager (ISSM) that the TSIG keys are less than one year old. If a TSIG key is more than one year old, this is a finding.
Fix: F-76371r1123554_fix
Generate new DNSSEC and TSIG keys. For DNSSEC keys: Use the newly generated keys to resign all of the zone files on the name server. For TSIG keys: Update the named.conf file with the new keys. Restart the BIND 9.x process.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- BIND-9X-001620
- Vuln IDs
-
- V-272415
- Rule IDs
-
- SV-272415r1156956_rule
Checks: C-76465r1123924_chk
With the assistance of the DNS administrator, identify the following files: named.conf : rw-r----- root hints : rw-r----- Primary zone file(s): rw-rw---- Secondary zone file(s): rw-rw---- Note: The name of the root hints file is defined in named.conf. Common names for the file are root.hints, named.cache, or db.cache. Verify that the permissions for the core BIND 9.x server files are at least as restrictive as listed above. If the identified files are not as least as restrictive as listed above, this is a finding.
Fix: F-76372r1123925_fix
Configure the permissions of each file to the following: named.conf : rw-r----- root hints : rw-r----- Primary zone file(s): rw-rw---- Secondary zone file(s): rw-rw----
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- BIND-9X-001630
- Vuln IDs
-
- V-272416
- Rule IDs
-
- SV-272416r1156959_rule
Checks: C-76466r1123999_chk
With the assistance of the DNS administrator, verify that the OS firewall is configured to only allow incoming messages on ports 53/tcp and 53/udp. Note: The following rules are for the IPTables firewall. If the system is using a different firewall, the rules may be different. Inspect the hosts firewall rules for the following rules: -A INPUT -i [DNS Interface] -p tcp --dport 53 -j ACCEPT -A INPUT -i [DNS Interface] -p udp --dport 53 -j ACCEPT -A INPUT -i [DNS Interface] -j DROP If any of the above rules do not exist, this is a finding. If rules are listed that allow traffic on ports other than 53/tcp and 53/udp, this is a finding.
Fix: F-76373r1123928_fix
Configure the OS firewall to only allow incoming DNS traffic on ports 53/tcp and 53/udp. Add the following rules to the host firewall rule set: # iptables -A INPUT -i [DNS Interface] -p tcp --dport 53 -j ACCEPT # iptables -A INPUT -i [DNS Interface] -p udp --dport 53 -j ACCEPT # iptables -A INPUT -i [DNS Interface] -j DROP Note: If the system is not using an IPTables firewall, the appropriate firewall rules that limit traffic to ports 53/tcp and 53/udp must be configured on the active firewall.
- RMF Control
- CM-6
- Severity
- H
- CCI
- CCI-000366
- Version
- BIND-9X-001650
- Vuln IDs
-
- V-272417
- Rule IDs
-
- SV-272417r1156947_rule
Checks: C-76467r1123930_chk
For a recursive server, verify that dnssec-validation yes is enabled. Inspect the "named.conf" file for the following: dnssec-validation yes; If "dnssec-validation yes" does not exist or is not set to "yes", this is a finding. For an authoritative server, verify that each zone on the name server has been signed. Identify each zone file for which the name server is responsible and search each file for the "DNSKEY" entries: # less <signed_zone_file> 86400 DNSKEY 257 3 8 ( HASHED_KEY ) ; KSK; alg = ECDSAP256SHA256; key id = 31225 86400 DNSKEY 256 3 8 ( HASHED_KEY ) ; ZSK; alg = ECDSAP256SHA256; key id = 52179 Verify that there are separate "DNSKEY" entries for the "KSK" and the "ZSK". If the "DNSKEY" entries are missing, the zone file is not signed. If the zone files are not signed, this is a finding.
Fix: F-76374r1123931_fix
Set the "dnssec-validation" option to "yes". Sign each zone file for which the name server is responsible. Configure each zone for which the name server is responsible to use a DNSSEC signed zone.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- BIND-9X-001660
- Vuln IDs
-
- V-272418
- Rule IDs
-
- SV-272418r1156948_rule
Checks: C-76468r1124001_chk
Verify the name server is configured to log error messages with a severity of "info": Inspect the "named.conf" file for the following: logging { channel channel_name { severity info; }; If the "severity" sub-statement is not set to "info", this is a finding. Note: Setting the "severity" sub-statement to "info" will log all messages for the following severity levels: Critical, Error, Warning, Notice, and Info.
Fix: F-76375r1124002_fix
Edit the "named.conf" file. Add the "severity" sub-statement to the "channel" statement. Configure the "severity" sub-statement to "info". Restart the BIND 9.x process.
- RMF Control
- CM-7
- Severity
- M
- CCI
- CCI-000382
- Version
- BIND-9X-001680
- Vuln IDs
-
- V-272419
- Rule IDs
-
- SV-272419r1123570_rule
Checks: C-76469r1123568_chk
Verify the BIND 9.x server is configured to listen on UDP/TCP port 53. Inspect the "named.conf" file for the following: options { listen-on port 53 { <ip_address>; }; }; If the "port" variable is missing, this is a finding. If the "port" variable is not set to "53", this is a finding. Note: "<ip_address>" should be replaced with the DNS server IP address.
Fix: F-76376r1123569_fix
Edit the "named.conf" file. Add the following line to the "options" statement: listen-on port 53 { <ip_address>; }; Replace "<ip_address>" with the IP of the name server. Restart the BIND 9.x process.
- RMF Control
- IA-3
- Severity
- M
- CCI
- CCI-000778
- Version
- BIND-9X-001700
- Vuln IDs
-
- V-272421
- Rule IDs
-
- SV-272421r1124019_rule
Checks: C-76471r1123935_chk
Verify that the BIND 9.x server is configured to use separate TSIG key-pairs when securing server-to-server transactions. Inspect the "named.conf" file for the presence of TSIG key statements: On the primary name server, this is an example of a configured key statement: key tsig_example. { algorithm hmac-SHA256; include "tsig-example.key"; }; zone "disa.mil" { type Primary; file "db.disa.mil"; allow-transfer { key tsig_example.; }; }; On the secondary name server, this is an example of a configured key statement: key tsig_example. { algorithm hmac-SHA256; include "tsig-example.key"; }; server <ip_address> { keys { tsig_example }; }; zone "disa.mil" { type Secondary; Primarys { <ip_address>; }; file "db.disa.mil"; }; Verify that each TSIG key-pair listed is only used by a single key statement: # cat <tsig_key_file> If any TSIG key-pair is being used by more than one key statement, this is a finding.
Fix: F-76378r1123575_fix
Create a separate TSIG key-pair for each key statement listed in the named.conf file. Configure the name server to use separate TSIG key-pairs for each key statement listed in the named.conf file. Restart the BIND 9.x process.
- RMF Control
- SC-4
- Severity
- M
- CCI
- CCI-001090
- Version
- BIND-9X-001720
- Vuln IDs
-
- V-272422
- Rule IDs
-
- SV-272422r1137672_rule
Checks: C-76472r1124004_chk
Verify that the directory structure where the primary BIND 9.x server configuration files are stored is running in a chroot(ed) environment or a containerized environment: # ps -ef | grep named named 3015 1 0 12:59 ? 00:00:00 /usr/sbin/named -u named -t /var/named/chroot If the output does not contain "-t <chroot_path>" and the named process is not running in a container, this is a finding.
Fix: F-76379r1123578_fix
Configure the BIND 9.x server to operate in a chroot(ed) directory structure.
- RMF Control
- SC-5
- Severity
- M
- CCI
- CCI-001094
- Version
- BIND-9X-001740
- Vuln IDs
-
- V-272423
- Rule IDs
-
- SV-272423r1123940_rule
Checks: C-76473r1123939_chk
This check is only applicable to caching name servers. Verify the allow-query and allow-recursion phrases are properly configured. Inspect the "named.conf" file for the following: allow-query {trustworthy_hosts;}; allow-recursion {trustworthy_hosts;}; The name of the ACL does not need to be "trustworthy_hosts", but the name must match the ACL name defined earlier in "named.conf" for this purpose. If not, this is a finding. Verify noninternal IP addresses do not appear in either the referenced ACL (e.g., trustworthy_hosts) or directly in the statements themselves. If noninternal IP addresses appear, this is a finding.
Fix: F-76380r1123581_fix
Configure the caching name server to accept recursive queries only from the IP addresses and address ranges of known supported clients. Edit the "named.conf" file and add the following to the options statement: allow-query {trustworthy_hosts;}; allow-recursion {trustworthy_hosts;}; Restart the BIND 9.x process.
- RMF Control
- SC-5
- Severity
- M
- CCI
- CCI-001095
- Version
- BIND-9X-001750
- Vuln IDs
-
- V-272424
- Rule IDs
-
- SV-272424r1124066_rule
Checks: C-76474r1124065_chk
If this is a recursive name server, this is not applicable. Excessive, almost-identical UDP responses can be controlled by configuring a rate-limit clause in an options or view statement. This mechanism keeps authoritative BIND 9 from being used to amplify reflection denial-of-service (DoS) attacks. Inspect the "named.conf" file for the following: options { ... rate-limit { responses-per-second <integer>; window <integer>; }; If the rate-limit sub-statements are missing, this is a finding.
Fix: F-76381r1123942_fix
Configure the authoritative name server to prohibit recursion. Edit the "named.conf" file and add the following sub-statements to the options statement: options { rate-limit { responses-per-second <integer>; window <integer>; }; Restart the BIND 9.x process.
- RMF Control
- SC-20
- Severity
- M
- CCI
- CCI-001179
- Version
- BIND-9X-001770
- Vuln IDs
-
- V-272425
- Rule IDs
-
- SV-272425r1123944_rule
Checks: C-76475r1123586_chk
Verify that there is a DS record set for each child zone defined in "/etc/named.conf" file. For each child zone listed in "/etc/named.conf" file, verify there is a corresponding "dsset-zone_name" file. If any child zone does not have a corresponding DS record set, this is a finding.
Fix: F-76382r1123587_fix
Sign each child zone. During the zone signing process, ensure that a DS record is created and is stored on the parent zone name server.
- RMF Control
- SC-20
- Severity
- M
- CCI
- CCI-001179
- Version
- BIND-9X-001780
- Vuln IDs
-
- V-272426
- Rule IDs
-
- SV-272426r1124021_rule
Checks: C-76476r1124020_chk
Note: This requirement does not validate the sig-validity-interval. This requirement ensures the signature validity period (i.e., the time from the signature's inception until the signature's expiration). It is recommended to ensure the Start of Authority (SOA) expire period (how long a secondary will still treat its copy of the zone data as valid if it cannot contact the primary) is configured to ensure the SOA does not expire during the period of signature inception and signature expiration. With the assistance of the DNS administrator, identify the RRSIGs that cover the DS resource records for each child zone. Each record will list an expiration and inception date, the difference of which will provide the validity period. The dates are listed in the following format: YYYYMMDDHHMMSS For each RRSIG identified, verify that the validity period is no less than two days and no longer than seven days. If the validity period is outside of the specified range, this is a finding.
Fix: F-76383r1123590_fix
Resign the child zone files and have the zone administrator provide updated DS resource records for the child zone.
- RMF Control
- SC-28
- Severity
- M
- CCI
- CCI-001199
- Version
- BIND-9X-001830
- Vuln IDs
-
- V-272427
- Rule IDs
-
- SV-272427r1124022_rule
Checks: C-76477r1123805_chk
Verify permissions assigned to the DNSSEC keys enforce read-only access to the key owner and deny access to group or system users. With the assistance of the DNS administrator, determine the location of the DNSSEC keys used by the BIND 9.x implementation: # ls -al <DNSSEC_Key_Location> -r--------. 1 named named 76 May 10 20:35 DNSSEC-example.key If the key files are more permissive than 400, this is a finding.
Fix: F-76384r1123593_fix
Change the permissions of the DNSSEC key files: # chmod 400 <DNSSEC_key_file>
- RMF Control
- SC-28
- Severity
- M
- CCI
- CCI-001199
- Version
- BIND-9X-001840
- Vuln IDs
-
- V-272428
- Rule IDs
-
- SV-272428r1123761_rule
Checks: C-76478r1123595_chk
With the assistance of the DNS administrator, identify all of the DNSSEC keys used by the BIND 9.x implementation. Identify the account that the "named" process is running as: # ps -ef | grep named named 3015 1 0 12:59 ? 00:00:00 /usr/sbin/named -u named -t /var/named/chroot With the assistance of the DNS administrator, determine the location of the DNSSEC keys used by the BIND 9.x implementation. # ls -al <DNSSEC_Key_Location> -r--------. 1 named named 76 May 10 20:35 DNSSEC-example.key If any of the DNSSEC keys are not owned by the above account, this is a finding.
Fix: F-76385r1123761_fix
Change the ownership of the DNSSEC keys to the named process it is running as. # chown <named_proccess_owner> <DNSSEC_key_file>.
- RMF Control
- SC-28
- Severity
- M
- CCI
- CCI-001199
- Version
- BIND-9X-001850
- Vuln IDs
-
- V-272429
- Rule IDs
-
- SV-272429r1123762_rule
Checks: C-76479r1123598_chk
With the assistance of the DNS administrator, identify all of the DNSSEC keys used by the BIND 9.x implementation. Identify the account that the "named" process is running as: # ps -ef | grep named named 3015 1 0 12:59 ? 00:00:00 /usr/sbin/named -u named -t /var/named/chroot With the assistance of the DNS administrator, determine the location of the DNSSEC keys used by the BIND 9.x implementation. # ls -al <DNSSEC_Key_Location> -r--------. 1 named named 76 May 10 20:35 DNSSEC-example.key If any of the DNSSEC keys are not group owned by the above account, this is a finding.
Fix: F-76386r1123762_fix
Change the group ownership of the DNSSEC keys to the named process it is running as. # chgrp <named_proccess_group> <DNSSEC_key_file>.
- RMF Control
- AU-9
- Severity
- M
- CCI
- CCI-001348
- Version
- BIND-9X-001890
- Vuln IDs
-
- V-272430
- Rule IDs
-
- SV-272430r1123947_rule
Checks: C-76480r1123945_chk
Verify that the BIND 9.x server is configured to retain at least three versions of the local log file. Inspect the "named.conf" file for the following: logging { channel local_file_channel { file "path_name" versions 3; size 10m; }; If the "versions" variable is not defined, this is a finding. If the "versions" variable is configured to retain fewer than three versions of the local log file, this is a finding.
Fix: F-76387r1123946_fix
Edit the "named.conf" file. Add the "versions" variable to the end of the "file" sub-statement in the channel statement. Configure the "versions" sub-statement to a number that is greater than or equal to "3". Restart the BIND 9.x process.
- RMF Control
- AU-9
- Severity
- M
- CCI
- CCI-001348
- Version
- BIND-9X-001900
- Vuln IDs
-
- V-272431
- Rule IDs
-
- SV-272431r1123606_rule
Checks: C-76481r1123604_chk
Verify that the BIND 9.x server is configured to send audit logs to a local log file. Note: syslog and local file channel must be defined for every defined category. Inspect the "named.conf" file for the following: logging { channel local_file_channel { file "path_name" versions 3; print-time yes; print-severity yes; print-category yes; }; category category_name { local_file_channel; }; If a logging channel is not defined for a local file, this is a finding. If a category is not defined to send messages to the local file channel, this is a finding.
Fix: F-76388r1123605_fix
Edit the "named.conf" file and add the following: logging { channel local_file_channel { file "path_name" versions 3; print-time yes; print-severity yes; print-category yes; }; category category_name { local_file_channel; }; }; Restart the BIND 9.x process.
- RMF Control
- AU-9
- Severity
- H
- CCI
- CCI-001348
- Version
- BIND-9X-001910
- Vuln IDs
-
- V-272432
- Rule IDs
-
- SV-272432r1123950_rule
Checks: C-76482r1123948_chk
Verify that the BIND 9.x server is configured to send audit logs to at least two syslog servers. Note: syslog and local file channel must be defined for every defined category. Inspect the "named.conf" file for the following: logging { channel <syslog_channel> { syslog <syslog_facility>; }; category <category_name> { <syslog_channel>; }; logging { channel <syslog_channel> { syslog <syslog_facility>; }; category <category_name> { <syslog_channel>; }; If a logging channel is not defined for each syslog, this is a finding. If a category is not defined to send messages to the syslog channels, this is a finding.
Fix: F-76389r1123949_fix
Configure the "logging" statement to send audit logs to the syslog daemons. logging { channel <syslog_channel> { syslog <syslog_facility>; }; category <category_name> { <syslog_channel>; }; }; logging { channel <syslog_channel> { syslog <syslog_facility>; }; category <category_name> { <syslog_channel>; }; }; Note: It is recommended to use a local syslog facility (i.e., local0 -7) when configuring the syslog channel. Restart the BIND 9.x process.
- RMF Control
- AU-9
- Severity
- M
- CCI
- CCI-001348
- Version
- BIND-9X-001920
- Vuln IDs
-
- V-272433
- Rule IDs
-
- SV-272433r1123612_rule
Checks: C-76483r1123610_chk
Verify that the BIND 9.x server is not configured to send audit logs to the null channel. Inspect the "named.conf" file for the following: category null { null; } If there is a category defined to send audit logs to the "null" channel, this is a finding.
Fix: F-76390r1123611_fix
Edit the "named.conf" file. Remove any instance of the following: category null { null; }; Restart the BIND 9.x process.
- RMF Control
- SC-8
- Severity
- H
- CCI
- CCI-002418
- Version
- BIND-9X-002010
- Vuln IDs
-
- V-272435
- Rule IDs
-
- SV-272435r1124068_rule
Checks: C-76485r1124067_chk
If zone transfers are disabled with the "allow-transfer { none; };" directive, this is not applicable. Verify that the BIND 9.x server is configured to uniquely identify a name server before responding to a zone transfer. Inspect the "named.conf" file for the presence of TSIG key statements. On the primary name server, this is an example of a configured key statement: key tsig_example. { algorithm hmac-SHA256; include "tsig-example.key"; }; zone "disa.mil" { type Primary; file "db.disa.mil"; allow-transfer { key tsig_example.; }; }; On the secondary name server, this is an example of a configured key statement: key tsig_example. { algorithm hmac-SHA256; include "tsig-example.key"; }; server <ip_address> { keys { tsig_example }; }; zone "disa.mil" { type Secondary; Primarys { <ip_address>; }; file "db.disa.mil"; }; If a primary name server does not have a key defined in the "allow-transfer" block, this is a finding. If a secondary name server does not have a server statement that contains a "keys" sub-statement, this is a finding.
Fix: F-76392r1123952_fix
Configure the BIND 9.x server to use TSIG keys. Add a key statement to the "named.conf" file for TSIG that is being used: key tsig_example. { algorithm hmac-SHA256; include "tsig-example.key"; }; Add key statements to the allow-transfer statements on a primary name server: allow-transfer { key tsig_example.; }; Add key statements to the server statements on a secondary name server: server <ip_address> { keys { tsig_example }; }; Restart the BIND 9.x process.
- RMF Control
- SC-13
- Severity
- M
- CCI
- CCI-002450
- Version
- BIND-9X-002050
- Vuln IDs
-
- V-272436
- Rule IDs
-
- SV-272436r1137676_rule
Checks: C-76486r1123954_chk
Verify that the DNSSEC and TSIG keys used by the BIND 9.x implementation are FIPS compliant. If the server is in a classified network, the DNSSEC portion of the requirement is Not Applicable. DNSSEC keys: Inspect the "named.conf" file and identify all of the DNSSEC signed zone files: zone "example.com" { file "signed_zone_file"; }; For each signed zone file identified, inspect the file for the "DNSKEY" records: 86400 DNSKEY 257 3 8 ( <KEY HASH> ) ; KSK; 86400 DNSKEY 256 3 8 ( <KEY HASH> ) ; ZSK; The fifth field in the above example identifies what algorithm was used to create the DNSKEY. If the fifth field, if the KSK DNSKEY is less than "8" (SHA256), this is a finding. If the algorithm used to create the ZSK is less than "8" (SHA256), this is a finding. TSIG keys: Inspect the "named.conf" file and identify all of the TSIG key statements: key tsig_example. { algorithm hmac-SHA256; include "tsig-example.key"; }; If each key statement does not use "hmac-SHA256" or a stronger algorithm, this is a finding.
Fix: F-76393r1123955_fix
Create new DNSSEC and TSIG keys using a FIPS-approved cryptographic algorithm that meets or exceeds the strength of SHA-256.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- BIND-9X-002440
- Vuln IDs
-
- V-275935
- Rule IDs
-
- SV-275935r1124025_rule
Checks: C-80037r1123957_chk
Verify QNAME minimization is set to "strict". Inspect the named.conf file for the following: options { qname-minimization strict; If the qname minimization is not set to "strict", this is a finding.
Fix: F-79942r1123958_fix
Edit the named.conf file options { qname-minimization strict; }; After making changes, save the named.conf file and restart the BIND service to apply the changes.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- BIND-9X-002450
- Vuln IDs
-
- V-275936
- Rule IDs
-
- SV-275936r1156959_rule
Checks: C-80038r1123960_chk
Verify fetches-per-zone is enabled with an organization-defined number. Inspect the named.conf file for the following: options { fetches-per-zone <integer> drop ; If fetches-per-zone is not enabled and set to drop, this is a finding.
Fix: F-79943r1124026_fix
Modify the BIND configuration file (/etc/named.conf ). Add the fetches-per-zone option to the options section of the configuration file: fetches-per-zone <integer> drop; After making changes, reload or restart BIND to apply the new settings.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- BIND-9X-002460
- Vuln IDs
-
- V-275937
- Rule IDs
-
- SV-275937r1156959_rule
Checks: C-80039r1123963_chk
Verify fetches-per-server is enabled with an organization-defined number. Inspect the named.conf file for the following: options { fetches-per-server <integer> drop ; If fetches-per-server is not enabled and set to drop, this is a finding.
Fix: F-79944r1123964_fix
Modify the BIND configuration file (/etc/named.conf ). Add the fetches-per-server option to the "options" section of the configuration file. fetches-per-server <integer> drop; After making changes, reload or restart BIND to apply the new settings.
- RMF Control
- CM-6
- Severity
- M
- CCI
- CCI-000366
- Version
- BIND-9X-002470
- Vuln IDs
-
- V-275938
- Rule IDs
-
- SV-275938r1156959_rule
Checks: C-80040r1123966_chk
Verify answer-cookie is enabled. Inspect the named.conf file for the following: options { answer-cookie yes; If answer-cookie is missing or set to "no", this is a finding.
Fix: F-79945r1123967_fix
Edit the named.conf file: options { answer-cookie yes; }; After making changes, save the named.conf file and restart the BIND service to apply the changes.
- RMF Control
- AC-10
- Severity
- M
- CCI
- CCI-000054
- Version
- BIND-9X-002480
- Vuln IDs
-
- V-275939
- Rule IDs
-
- SV-275939r1156959_rule
Checks: C-80041r1123969_chk
Verify the update-quota option is present and set to an organization defined limit. Inspect the named.conf file for the following options { ... update-quota <integer>; ... }; If update-quota option is missing or limit not set, this is a finding.
Fix: F-79946r1123970_fix
Edit the named.conf file options { ... update-quota <integer>; ... }; After making changes, save the named.conf file and restart the BIND service to apply the changes.