민감 파일 검색

1. 목표

민감한 파일이 웹사이트 경로에 존재하는지 검색

  • 로그 파일

  • 환경 변수 파일

  • 백업 파일

2. 설명

  • sensitive_files.txt 파일에서 정규식을 읽어들여, 지정된 문서 루트 디렉토리 내에서 매칭되는 파일을 검색합니다. 이를 통해 더 유연하게 민감한 파일을 점검할 수 있습니다.

  • sensitive_files.txt 파일에 더 많은 정규식을 추가하여 탐지를 높일 수 있습니다.

3. 코드

vi check_sensitive_files.sh

#!/bin/bash

# 사용법 안내 함수
usage() {
    echo "Usage: $0 <DOCUMENT_ROOT>"
    exit 1
}

# 명령줄 인수 확인
if [ "$#" -ne 1 ]; then
    usage
fi

# 웹 서버의 문서 루트 디렉토리
DOCUMENT_ROOT="$1"

# 민감한 파일 목록 파일
SENSITIVE_FILES_LIST="sensitive_files.txt"

# 민감한 파일 목록을 읽어들이기
if [ ! -f "$SENSITIVE_FILES_LIST" ]; then
    echo "Error: Sensitive files list file not found: $SENSITIVE_FILES_LIST"
    exit 1
fi

# 함수: 파일 접근 가능 여부 확인
check_file() {
    local file_pattern="$1"
    local matched_files=($(find "$DOCUMENT_ROOT" -type f -regex "$file_pattern"))
    
    if [ ${#matched_files[@]} -gt 0 ]; then
        for file in "${matched_files[@]}"; do
            echo "[노출됨] 민감한 파일 발견: $file"
        done
    else
        echo "[안전함] 민감한 파일 없음: $file_pattern"
    fi
}

echo "민감한 파일 접근 여부 확인 중..."

# 민감한 파일 목록을 읽어서 함수 호출
while IFS= read -r file_pattern; do
    check_file "$file_pattern"
done < "$SENSITIVE_FILES_LIST"

로그 파일 탐지

로그 파일은 애플리케이션과 서버의 동작을 기록하기 때문에, 민감한 정보가 포함될 수 있습니다.

환경 변수 노출 탐지

환경 변수 파일에는 데이터베이스 비밀번호, API 키 등의 민감한 정보가 포함될 수 있습니다.

백업 파일 탐지

백업 파일에는 전체 데이터베이스나 파일 시스템의 스냅샷이 포함될 수 있어, 노출 시 큰 위험이 됩니다.

디버그 정보 노출 (DEBUG INFO EXPOSURE) 파일 탐지

디버그 용도로 사용되는 파일들은 내부 시스템의 구성 정보나 환경 설정 등을 노출할 수 있어, 외부에 노출될 경우 큰 보안 위험을 초래할 수 있습니다.

vi sensitive_files.txt

4. 실행

  • 스크립트를 실행할 때 웹 서버의 문서 루트 디렉토리를 인수로 전달합니다:

Last updated