TMAegis
Thêm quy tắc cho apache

Apache HTTP Server

TMA-APACHE-7.12

Ensure Only Cipher Suites That Provide Forward Secrecy Are Enabled

ThấpCấp 2Tự độngapache

Mô tả

In cryptography, forward secrecy (FS), which is also known as perfect forward secrecy (PFS), is a feature of specific key exchange protocols that give assurance that your session keys will not be compromised even if the private key of the server is compromised. The effective SSLCipherSuite (last one at server level and in each virtual host) is expanded with the local openssl ciphers -v; every TLS 1.2-and-older suite must use ephemeral key exchange (Kx=ECDH or DH). Fails when no SSLCipherSuite is configured. Reads the main configuration (APACHE_CONF overrides; default /etc/apache2/apache2.conf, /etc/httpd/conf/httpd.conf or /usr/local/apache2/conf/httpd.conf) and every Include/IncludeOptional file. CIS marks this recommendation Manual; the automated check implements its audit procedure.

Cách kiểm tra

Phương pháp kiểm tra: Lệnh shell

shell
c=${APACHE_CONF:-}; if [ -z "$c" ]; then for f in /etc/apache2/apache2.conf /etc/httpd/conf/httpd.conf /usr/local/apache2/conf/httpd.conf /etc/apache2/httpd.conf; do [ -f "$f" ] && { c=$f; break; }; done; fi; [ -r "$c" ] || exit 1; R=$(awk 'tolower($1)=="serverroot"{v=$2; gsub(/"/,"",v); print v; exit}' "$c"); [ -n "$R" ] || R=$(dirname "$c"); shopt -s nocasematch; inc(){ local p g l; [ ${#FUNCNAME[@]} -lt 16 ] || return 0; p=$1; case $p in /*) ;; *) p=$R/$p;; esac; [ -d "$p" ] && p="$p/*"; for g in $p; do [ -f "$g" ] || continue; while IFS= read -r l || [ -n "$l" ]; do if [[ $l =~ ^[[:space:]]*include(optional)?[[:space:]]+\"?([^\"[:space:]]+) ]]; then inc "${BASH_REMATCH[2]}"; else printf '%s\n' "$l"; fi; done < "$g"; done; }; cfg=$(inc "$c" | sed -e 's/^[[:space:]]*//' -e '/^#/d' -e '/^$/d'); shopt -u nocasematch; eff(){ printf '%s\n' "$cfg" | awk -v k="$1" '{l=tolower($0)} l~/^<virtualhost/{vh=1; next} l~/^<\/virtualhost>/{if(v!="") print v; v=""; vh=0; next} tolower($1)==tolower(k){if(vh) v=$0; else g=$0} END{if(g!="") print g}'; }; s=$(eff SSLCipherSuite | awk 'tolower($1)=="sslciphersuite"{v=(NF>=3 && ($2=="SSL"||$2=="TLSv1.3"))?$3:$2; if(NF>=3 && $2=="TLSv1.3") next; gsub(/"/,"",v); print v}'); [ -n "$s" ] || { echo noncompliant; exit 0; }; command -v openssl >/dev/null || exit 1; bad=0; while IFS= read -r v; do o=$(openssl ciphers -v "$v" 2>/dev/null) || { bad=1; continue; }; printf '%s\n' "$o" | awk '$2!="TLSv1.3" && $3!~/^Kx=(ECDH|DH)$/' | grep -q . && bad=1; done <<< "$s"; [ "$bad" = 0 ] && echo compliant || echo noncompliant
Đầu ra mong đợi
compliant

Cách khắc phục

Phương pháp khắc phục: Hướng dẫn hoặc bản vá hạ tầng

SSLCipherSuite EECDH:EDH:!NULL:!SSLv2:!RC4:!aNULL:!3DES:!IDEA (at server level and in each TLS virtual host). Then run apachectl configtest and reload Apache.

Thuộc tính

Hệ điều hành
Bất kỳ
Thẻ
apachetls
Tham chiếu
CIS Apache HTTP Server 2.4 Benchmark v2.4.0 - 7.12 Ensure Only Cipher Suites That Provide Forward Secrecy Are Enabled

Kiểm tra máy này

Chạy lệnh này trên máy bạn được phép kiểm tra. Lần quét chỉ ở chế độ đọc.

shell
tmaegis scan --target apache --level 2