하드코딩된 비밀 정보
Hardcoded Secret
설명
하드코딩된 비밀(Hardcoded Secret)은 애플리케이션 코드 내에 암호, API 키, 인증 토큰 등 민감한 정보를 직접 포함시키는 취약성입니다. 이러한 비밀 정보가 소스 코드에 하드코딩되면 코드가 유출될 경우 심각한 보안 위험을 초래할 수 있습니다.
잠재적 영향
비밀 정보 유출: 공격자가 소스 코드를 통해 비밀 정보에 접근할 수 있습니다.
계정 탈취: 유출된 비밀 정보를 이용해 계정을 탈취할 수 있습니다.
API 남용: 유출된 API 키를 사용해 API 남용이 발생할 수 있습니다.
해결 방법
환경 변수 사용: 비밀 정보를 소스 코드에 하드코딩하지 않고 환경 변수로 관리합니다.
비밀 관리 도구 사용: HashiCorp Vault, AWS Secrets Manager 등과 같은 비밀 관리 도구를 사용하여 비밀을 안전하게 관리합니다.
코드 검토 및 감사: 정기적으로 코드 검토 및 감사를 통해 하드코딩된 비밀이 있는지 확인합니다.
취약한 코드 및 안전한 코드 예시
Unsafe hardcoded secret in Django settings & Safe secret management
# Unsafe hardcoded secret in Django settings
SECRET_KEY = 'your-hardcoded-secret-key'
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.postgresql',
'NAME': 'mydatabase',
'USER': 'myuser',
'PASSWORD': 'mypassword',
'HOST': 'localhost',
'PORT': '5432',
}
}설명:
취약한 코드: 비밀 정보(SECRET_KEY, DATABASE 비밀번호 등)가 소스 코드에 하드코딩되어 있습니다.
안전한 코드: 환경 변수에서 비밀 정보를 읽어와 설정하도록 하여 비밀 정보를 안전하게 관리합니다.
Unsafe hardcoded secret in Flask configuration & Safe secret management
설명:
취약한 코드: 비밀 정보(SECRET_KEY, DATABASE URI 등)가 소스 코드에 하드코딩되어 있습니다.
안전한 코드: 환경 변수에서 비밀 정보를 읽어와 설정하도록 하여 비밀 정보를 안전하게 관리합니다.
Unsafe hardcoded secret in FastAPI configuration & Safe secret management
설명:
취약한 코드: 비밀 정보(secret_key)가 소스 코드에 하드코딩되어 있습니다.
안전한 코드: 환경 변수에서 비밀 정보를 읽어와 설정하도록 하여 비밀 정보를 안전하게 관리합니다.
참조
OWASP: Sensitive Data Exposure
Last updated