TMAegis
Más reglas para apache

Apache HTTP Server

TMA-APACHE-3.12

Ensure Group Write Access for the Document Root Directories and Files Is Properly Restricted

MediaNivel 1Automatizadaapache

Descripción

Group permissions on Apache Document Root directories $DOCROOT may need to be writable by an authorized group such as development, support, or a production content management tool. However, it is important that the Apache group used to run the server does not have write access to any directories or files in the document root. Counts files under every DocumentRoot that belong to the Apache group (Group directive) and are group-writable; expects 0. 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ómo se verifica

Método de auditoría: Comando de 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; ev(){ case $1 in '${'*'}') local n=${1#??}; n=${n%?}; local v; v=$(sed -n "s/^[[:space:]]*export[[:space:]]*$n=//p" "${APACHE_ENVVARS:-/etc/apache2/envvars}" 2>/dev/null | tail -n1 | tr -d "\"'"); printf '%s\n' "${v:-$1}";; *) printf '%s\n' "$1";; esac; }; g=$(ev "$(printf '%s\n' "$cfg" | awk 'tolower($1)=="group"{v=$2} END{print v}')"); getent group "$g" >/dev/null || { echo noncompliant; exit 0; }; n=0; while IFS= read -r dr; do dr=${dr//\"/}; [ -d "$dr" ] || continue; k=$(find -L "$dr" -group "$g" -perm /g=w -print 2>/dev/null | wc -l); n=$((n+k)); done < <(printf '%s\n' "$cfg" | awk 'tolower($1)=="documentroot"{print $2}'); echo $n
Salida esperada
0

Cómo se corrige

Método de corrección: Guía o parche de infraestructura

chmod -R g-w <DocumentRoot> for files owned by the Apache group.

Propiedades

Sistemas operativos
Cualquiera
Etiquetas
apacheaccounts
Referencia
CIS Apache HTTP Server 2.4 Benchmark v2.4.0 - 3.12 Ensure Group Write Access for the Document Root Directories and Files Is Properly Restricted

Verificar este host

Ejecute esto en un equipo que tenga permiso para auditar. El escaneo es de solo lectura.

shell
tmaegis scan --target apache