민감 정보의 평문 로그 기록

비밀번호와 토큰 같은 민감 값이 로그에 남지 않도록 제거하거나 마스킹하세요.

설명

비밀번호, 토큰, 세션 식별자, API 키 같은 민감 정보를 로그나 표준 출력에 그대로 남기면 로그 접근 권한만으로도 계정 탈취, 세션 탈취, 내부 구성 정보 노출로 이어질 수 있습니다. 운영 환경에서는 stdout, stderr도 로그 수집기로 전달되는 경우가 많습니다.

잠재적 영향

  • 로그 조회 권한을 가진 사용자가 인증 정보나 세션 값을 볼 수 있습니다.
  • SIEM, 백업, 외부 로그 서비스로 민감 값이 복제될 수 있습니다.
  • 사고 대응 과정에서 삭제하기 어려운 장기 보존 데이터가 생길 수 있습니다.

해결 방법

  • 비밀번호, 토큰, Authorization 헤더 값은 로그에 남기지 않습니다.
  • 필요한 경우 고정된 마스킹 문자열, 해시된 추적 ID, 또는 서버 측 참조값만 기록합니다.
  • 공통 redaction helper나 logging filter를 사용해 민감 필드를 중앙에서 제거합니다.
  • stdout/stderr 출력도 운영 로그로 취급하고 동일한 정책을 적용합니다.

예시

변경 전

python
import logging

def bad_parameterized_token(token):
    logging.info("token=%s", token)

변경 후

python
import logging

def safe_masked_token(token):
    logging.info("token=%s", "[REDACTED]")

설명:

  • 변경 전: 토큰 값이 로그에 그대로 남습니다.
  • 변경 후: 토큰 대신 고정된 마스킹 문자열을 기록합니다.

참조