하드코딩된 HMAC 키 사용

Use of Hard-coded Credentials

설명

하드코딩된 HMAC 키는 소스 코드 내에 비밀값(예: 암호화 키 또는 토큰 서명 키 등)이 직접 포함된 경우 발생하는 보안 취약점입니다. 이런 경우 공격자는 소스 코드 유출, 디컴파일 또는 저장소 접근만으로 중요한 비밀 정보를 쉽게 탈취할 수 있습니다.

공격자는 하드코딩된 HMAC 키를 악용하여 인증 우회, 위조 토큰 생성, 메시지 변조 등 다양한 공격을 할 수 있습니다.

잠재적 영향

  • 인증 우회 및 위조 (인증 위조): 공격자가 키를 알아내면 접근 권한이 없는 리소스에 접근하거나 인증 우회가 가능합니다.

  • 데이터 변조 (데이터 변조): 공격자가 키를 이용해 합법적으로 보이는 위조 메시지를 생성하거나 서명된 데이터를 변경할 수 있습니다.

  • 기밀 정보 노출 (비밀 노출): 하드코딩된 키가 유출되면 전체 시스템의 안전성이 크게 감소합니다.

해결 방법

  • 비밀 키(Secret Key)는 소스 코드에 직접 작성하지 말고 환경 변수(Environment Variable)나 안전하게 보호된 구성 파일을 통해 불러와야 합니다.

  • 코드 저장소에서는 비밀 값이 절대 노출되지 않도록 주의해야 합니다.

  • 하드코딩된 키를 발견했다면 즉시 폐기 및 변경하고, 키가 유출된 경우 관련 로그 등을 점검하여 피해를 파악해야 합니다.

취약한 코드 및 안전한 코드 예시

취약한 코드

안전한 코드

설명:

  • 취약한 코드: 비밀 키(HMAC 키)가 코드에 직접 노출되어 있어, 코드가 유출될 경우 공격자가 키를 쉽게 획득할 수 있습니다.

  • 안전한 코드: 비밀 키를 환경 변수로부터 읽어와서 보안성을 높였으며, 코드 유출 시에도 비밀 값이 드러나지 않습니다.

참조

Last updated