説明
site_config.ftps_state = "AllAllowed" は、暗号化されていない FTP も許可します。平文 FTP を使うと、認証情報やファイル内容が転送中に漏えいするおそれがあります。必要な転送は FTPS に限定し、使わない場合は FTP 機能を無効にしてください。
想定される影響
平文通信を観察・改ざんできる攻撃者が、発行用の認証情報やデプロイファイルを狙う可能性があります。
対処方法
site_config.ftps_state を FtpsOnly に設定し、FTP が不要なら Disabled にしてください。クライアントによる TLS とサーバー証明書の検証を確認し、発行用の認証情報を制限・管理してください。別のデプロイ経路でも認証と転送保護を確認してください。
例
AzureRM 3.x の従来の azurerm_app_service を使う例です。現在の Linux・Windows Web App リソースでも FTP の状態を設定できます。
変更前
hcl
resource "azurerm_app_service" "example" {
name = "example-app-service"
location = azurerm_resource_group.example.location
resource_group_name = azurerm_resource_group.example.name
app_service_plan_id = azurerm_app_service_plan.example.id
site_config {
dotnet_framework_version = "v4.0"
scm_type = "LocalGit"
ftps_state = "AllAllowed"
}
}
変更後
hcl
resource "azurerm_app_service" "example" {
name = "example-app-service"
location = azurerm_resource_group.example.location
resource_group_name = azurerm_resource_group.example.name
app_service_plan_id = azurerm_app_service_plan.example.id
site_config {
dotnet_framework_version = "v4.0"
scm_type = "LocalGit"
ftps_state = "FtpsOnly"
}
}
変更後は FTPS のみを許可します。これはファイル転送経路の設定であり、Web アプリの HTTPS 専用設定やユーザー認証を代替しません。