설명
비밀번호, 토큰, 개인키 같은 민감 정보를 암호화나 보호 없이 파일 또는 저장소에 기록하면 저장 매체 노출 시 그대로 유출됩니다.
잠재적 영향
- 자격 증명 탈취, 계정 장악, 장기 토큰 재사용이 가능해질 수 있습니다.
해결 방법
저장 전 암호화와 키 관리 또는 전용 보안 저장소를 사용하세요. 토큰을 원문으로 다시 사용할 필요가 없고 검증만 하는 경우에는 적절한 해시 기반 저장을 검토하세요.
예시
변경 전
c
const char *token = getenv("API_TOKEN");
fprintf(file, "%s", token);
변경 후
c
const char *token = getenv("API_TOKEN");
char *sealed = encrypt(token);
fprintf(file, "%s", sealed);
설명:
- 변경 전: 환경 변수에서 읽은 토큰을 파일에 그대로 씁니다.
- 변경 후: 저장 전에 보호 처리를 거친 값을 기록합니다.
encrypt는 구현을 생략한 예시 헬퍼입니다. 검증된 인증 암호화와 키 관리를 구현하고, 이 예시처럼 %s로 저장하려면 결과를 널로 끝나는 문자열로 인코딩해야 합니다. 환경 변수 누락, 암호화 실패와 파일 쓰기 오류도 처리하세요.