설명
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"
}
}
}
설명:
- 변경 전: 오류 매개변수 마스킹을 비활성화합니다.
- 변경 후: 일부 오류 매개변수 마스킹을 활성화합니다. 모든 오류나 로그가 익명화되는 것은 아닙니다.