Cloud SQL SQL Serverで3625トレースフラグの有効化について

このブログシリーズ 「クラウドセキュリティ 実践集」 では、一般的なセキュリティ課題を取り上げ、「なぜ危険なのか?」 というリスクの解説から、 「どうやって直すのか?」 という具体的な修復手順(コンソール、gcloud CLI、Terraformなど)まで、分かりやすく解説します。
この記事では、Cloud SQLのSQL Serverインスタンスで3625トレースフラグが無効化されている問題について、リスクと対策を解説します。

ポリシーの説明
SQL Serverのトレースフラグ3625は、sysadmin権限を持たないユーザーに返されるエラーメッセージの情報量を制限する重要なセキュリティ機能です。
このトレースフラグを有効にすると、一般ユーザーには最小限のエラー情報のみが表示され、詳細なシステム情報(テーブル名、カラム名、インデックス情報等)は隠蔽されます。sysadmin権限を持つユーザーのみが完全なエラー情報を確認できるようになります。
デフォルトでは無効になっているため、すべてのユーザーに詳細なエラー情報が表示され、セキュリティリスクを引き起こします。
修復方法
コンソールでの修復手順
Google Cloud コンソールを使用して、トレースフラグ3625を有効にします。
- Cloud SQLインスタンスページに移動
- 左側のナビゲーションメニューから「SQL」を選択
- インスタンス一覧が表示される
- 対象のSQL Serverインスタンスを選択
- 修正対象のSQL Serverインスタンス名をクリック
- インスタンスの詳細ページが表示される
- 編集モードに入る
- 画面上部の「編集」ボタンをクリック
- インスタンスの設定編集画面が開く
- データベースフラグを設定
- 「構成オプションを表示」をクリックして詳細設定を展開
- 「データベースフラグ」セクションまでスクロール
- 「フラグを追加」ボタンをクリック
- フラグ名に「3625」と入力
- 値を「on」に設定
- 変更を保存
- ページ下部の「保存」ボタンをクリック
- 確認ダイアログで「保存して再起動」を選択
- インスタンスが再起動し、設定が適用される
Terraformでの修復手順
Cloud SQL SQL Serverインスタンスでトレースフラグ3625を有効にするTerraformコードと、主要な修正ポイントを説明します。
resource "google_sql_database_instance" "sqlserver_secure" {
>>>> Skip
settings {
# トレースフラグ3625の設定(エラーメッセージマスキング)
database_flags {
name = "3625"
value = "on"
}
}
}
最後に
この記事では、Cloud SQLのSQL Serverインスタンスでトレースフラグ3625を有効化し、エラーメッセージから機密情報が漏洩することを防止する方法について解説しました。
トレースフラグ3625は、SQLインジェクション攻撃のリスクを大幅に軽減する重要なセキュリティ設定です。他のセキュリティ設定と組み合わせることで、より堅牢なデータベースセキュリティを実現できます。
重要なポイントとして、この設定はデータベースレベルの対策であり、アプリケーションレベルでの適切なエラーハンドリングや入力検証も同時に実施することが必要です。
この問題の検出は弊社が提供するSecurifyのCSPM機能で簡単に検出及び管理する事が可能です。 運用が非常に楽に出来る製品になっていますので、ぜひ興味がある方はお問い合わせお待ちしております。 最後までお読みいただきありがとうございました。この記事が皆さんの役に立てば幸いです。