TMA-BIND-6.1
Hide BIND Version String
Description
BIND includes a built-in zone, version.bind which may be queried to get the version of the name server. The version may be set to a value of none, to disable reporting of the version information. The audit requires a global version statement (for example version "none";) that does not contain a release number. The audit parses the effective configuration printed by named-checkconf -p (all include files resolved) from /etc/named.conf (RHEL; chroot /var/named/chroot is detected) or /etc/bind/named.conf (Debian/Ubuntu).
How it is checked
Audit method: Shell command
if [ -f /var/named/chroot/etc/named.conf ]; then out=$(named-checkconf -t /var/named/chroot -p /etc/named.conf 2>/dev/null) || exit 1
else conf=/etc/named.conf; [ -f "$conf" ] || conf=/etc/bind/named.conf
out=$(named-checkconf -p "$conf" 2>/dev/null) || exit 1; fi
flat=$(printf '%s\n' "$out" | tr '\t\n' ' ' | tr -s ' ')
opts=$(printf '%s\n' "$out" | awk '/^options[ \t]*\{/{f=1} f{print} f&&/^\};/{exit}' | tr '\t\n' ' ' | tr -s ' ')
v=$(printf '%s\n' "$opts" | grep -Eo '[{; ]version [^;]*;') || { echo 'no version statement (release is disclosed)'; exit 1; }
printf '%s\n' "$v" | grep -Eq '[0-9]+\.[0-9]+' && { echo "version discloses a release: $v"; exit 1; }
echo compliant- Expected output
compliant
How it is fixed
Fix method: Guidance or infrastructure patch
Add or modify the version option to have a value of none in the BIND global options, as shown below. options { version "none"; . . . }
Properties
- Operating systems
- Any
- Tags
- binddnsinformation-disclosure
- Reference
- CIS ISC BIND DNS Server 9.11 Benchmark v1.0.0 - 6.1 Hide BIND Version String
Check this host
Run this on a machine you are allowed to audit. The scan is read-only.
tmaegis scan --target bind