🇰🇷 한글 설명
nginx 1.3.13 이하 버전의 기본 설정에서 access.log와 error.log 파일이 world-readable 권한(644)으로 설정되어 있어, 로컬 사용자가 로그 파일을 직접 읽고 민감한 정보(클라이언트 IP, 요청 경로, 에러 메시지 등)를 탈취할 수 있습니다. 이를 통해 시스템 정보 유출 및 추가 공격을 위한 정보 수집이 가능합니다.
💡 쉬운 설명
Nginx 웹 서버의 로그 파일이 컴퓨터에 접근한 모든 사용자가 읽을 수 있도록 설정되어 있어서, 악의적인 사용자가 웹 서버의 민감한 정보를 볼 수 있습니다. 이러한 정보는 더 큰 공격을 계획하는 데 악용될 수 있습니다.
🇺🇸 원문 (English)
The default configuration of nginx, possibly 1.3.13 and earlier, uses world-readable permissions for the (1) access.log and (2) error.log files, which allows local users to obtain sensitive information by reading the files.
📍 영향받는 시스템
nginx 1.3.13 이하 버전의 기본 설정
⚔️ 공격 벡터
로컬 사용자가 /var/log/nginx/access.log, /var/log/nginx/error.log 등의 로그 파일에 직접 접근하여 민감한 정보 읽음
🛡️ 대응 방법
로그 파일의 권한을 640 또는 600으로 변경하고, nginx를 최신 버전으로 업데이트하며, /etc/nginx/nginx.conf에서 로그 파일 권한을 명시적으로 설정
🔧 검증 코드
파일 권한이 -rw-r----- 이상(끝자리에 r이 없어야 함)이면 안전, -rw-r--r--이면 VULNERABLE 상태입니다.
ls -l /var/log/nginx/access.log /var/log/nginx/error.log 2>/dev/null | awk '{print $1}' | grep -v '^-rw-r' && echo 'VULNERABLE' || echo 'SAFE'