서버 정보 노출
Server Information Exposure
설명
서버 정보 노출(Server Information Exposure)은 서버가 불필요하게 내부 정보(예: 서버 버전, 소프트웨어 구성 요소, 디버그 메시지)를 클라이언트에게 노출하는 취약성입니다. 이러한 정보는 공격자가 시스템을 공격하는 데 유용하게 사용될 수 있습니다.
잠재적 영향
공격 표면 증가: 공격자는 노출된 정보를 바탕으로 시스템의 취약점을 찾고 공격할 수 있습니다.
취약점 악용: 서버 소프트웨어의 버전 정보 등을 통해 알려진 취약점을 악용할 수 있습니다.
시스템 손상: 민감한 정보가 노출되어 시스템이 손상되거나 데이터가 유출될 수 있습니다.
해결 방법
정보 최소화: 응답 헤더와 에러 메시지에 포함되는 서버 정보를 최소화합니다.
디버그 모드 비활성화: 프로덕션 환경에서는 디버그 모드를 비활성화합니다.
보안 설정 적용: 서버 소프트웨어와 프레임워크의 보안 설정을 강화하여 정보 노출을 방지합니다.
취약한 코드 및 안전한 코드 예시
Unsafe Django code & Safe Django code
# Unsafe Django code (DEBUG mode enabled)
from django.http import HttpResponse
def unsafe_view(request):
return HttpResponse("Hello, world!")
# settings.py
DEBUG = True설명:
취약한 코드: 디버그 모드가 활성화되어 있어, 서버의 내부 정보가 클라이언트에게 노출될 수 있습니다.
안전한 코드: 디버그 모드를 비활성화하고, 추가적인 보안 설정을 적용하여 서버 정보를 최소화합니다.
Unsafe Flask code & Safe Flask code
설명:
취약한 코드: 디버그 모드가 활성화되어 있어, 서버의 내부 정보가 클라이언트에게 노출될 수 있습니다.
안전한 코드: 디버그 모드를 비활성화하고, 추가적인 보안 설정을 적용하여 서버 정보를 최소화합니다.
Unsafe FastAPI code & Safe FastAPI code
설명:
취약한 코드: 디버그 모드가 활성화되어 있어, 서버의 내부 정보가 클라이언트에게 노출될 수 있습니다.
안전한 코드: 디버그 모드를 비활성화하여 서버 정보를 최소화합니다.
참조
OWASP: Information Exposure
Last updated