하드코딩된 비밀 정보

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)가 소스 코드에 하드코딩되어 있습니다.

  • 안전한 코드: 환경 변수에서 비밀 정보를 읽어와 설정하도록 하여 비밀 정보를 안전하게 관리합니다.

참조

Last updated