Cloud SQL SQL Server 오류 정보 노출 제한 점검

일반 사용자에게 반환되는 불필요한 오류 세부 정보를 줄이세요.

설명

SQL Server의 추적 플래그 3625는 sysadmin 역할에 속하지 않은 사용자에게 반환되는 일부 오류 메시지의 매개변수를 가립니다. 이를 사용하지 않으면 해당 오류의 세부 정보가 그대로 보일 수 있습니다.

이 플래그는 추적 로그 전체를 끄거나 모든 민감 정보를 제거하는 기능이 아닙니다. 애플리케이션의 오류 응답과 로그 접근 통제도 필요합니다.

잠재적 영향

  • 오류 메시지에 포함된 정보가 내부 구조 파악이나 후속 공격에 이용될 수 있습니다.
  • 오류 정보를 지나치게 제한하면 문제 해결에 필요한 정보가 부족해질 수 있습니다.

해결 방법

  • Cloud SQL의 3625 플래그를 on으로 설정하고 필요한 재시작을 계획하세요. 일반 사용자에게 반환되는 오류와 진단 절차가 적절한지 확인하세요.
  • 애플리케이션이 불필요한 내부 오류를 노출하지 않도록 하고 상세 로그의 접근 권한과 보관을 제한하세요.

예시

인스턴스 설정 일부를 비교하는 예제입니다. 실제 지원되는 엔진 버전과 SQL Server용 머신 유형을 사용하고, var.sql_server_tier와 생략된 필수 입력을 준비하세요. 이 플래그 변경에 예제와 같은 엔진 버전 변경이 필요한 것은 아닙니다.

변경 전

hcl
resource "google_sql_database_instance" "db" {
  name             = "sqlserver-instance"
  database_version = "SQLSERVER_2017_STANDARD"
  region           = "us-central1"

  settings {
    database_flags {
      name  = "3625"
      value = "off"
    }
  }
}

변경 후

hcl
resource "google_sql_database_instance" "db" {
  name             = "sqlserver-instance"
  database_version = "SQLSERVER_2019_STANDARD"
  region           = "us-central1"

  settings {
    tier = var.sql_server_tier

    database_flags {
      name  = "3625"
      value = "on"
    }
  }
}

설명:

  • 변경 전: 오류 매개변수 마스킹을 비활성화합니다.
  • 변경 후: 일부 오류 매개변수 마스킹을 활성화합니다. 모든 오류나 로그가 익명화되는 것은 아닙니다.

참조