Aracılığıyla paylaş


Uzantı güvenliği

Bu makalede Azure Arc özellikli sunucular için VM uzantılarının temelleri ve uzantı ayarlarının nasıl özelleştirilebileceği açıklanmaktadır.

Uzantıyla ilgili temel bilgiler

Azure Arc özellikli sunucular için VM uzantıları, izleme, düzeltme eki yönetimi ve betik yürütme gibi diğer işlevleri etkinleştiren isteğe bağlı eklentilerdir. Uzantılar Microsoft tarafından yayımlanır ve Azure Market üçüncü tarafları seçer ve Microsoft tarafından yönetilen depolama hesaplarında depolanır. Yayımlama işleminin bir parçası olarak tüm uzantılar kötü amaçlı yazılımlara karşı taranır. Azure Arc özellikli sunucuların uzantıları, Azure VM'leri için sağlanan uzantılarla aynıdır ve işletim ortamlarınızda tutarlılık sağlar.

Uzantılar, özel uç noktaları yapılandırmadığınız sürece, yüklendikleri veya yükseltildikleri sırada doğrudan Azure Depolama'dan (*.blob.core.windows.net) indirilir. Depolama hesapları düzenli olarak değişir ve önceden tahmin edilemez. Özel uç noktalar kullanıldığında, uzantılar bunun yerine Azure Arc hizmetinin bölgesel URL'si üzerinden proksid edilir.

Dijital olarak imzalanan bir katalog dosyası uzantı paketinden ayrı olarak indirilir ve uzantı yöneticisi açılmadan veya uzantı paketini yürütmeden önce her uzantının bütünlüğünü doğrulamak için kullanılır. Uzantının indirilen ZIP dosyası katalog dosyasındaki içerikle eşleşmiyorsa, uzantı işlemi durdurulacaktır.

Uzantılar, bir izleme aracısını bulut hizmetine bağlamak için ara sunucu URL'leri veya API anahtarları gibi yüklemeyi özelleştirmek veya yapılandırmak için ayarları alabilir. Uzantı ayarları iki farklı şekilde gelir: normal ayarlar ve korumalı ayarlar. Korumalı ayarlar Azure'da kalıcı değildir ve yerel makinenizde beklemede olarak şifrelenir.

Tüm uzantı işlemleri bir API çağrısı, CLI, PowerShell veya Portal eylemi aracılığıyla Azure'dan kaynaklanır. Bu tasarım, bir sunucudaki uzantıyı yüklemek, güncelleştirmek veya yükseltmek için gerçekleştirilen tüm eylemlerin Azure Etkinlik Günlüğü'nde günlüğe kaydedilmesini sağlar. Azure Connected Machine aracısı, sorun giderme ve temizleme amacıyla uzantıların yerel olarak kaldırılmasına izin verir. Ancak uzantı yerel olarak kaldırılırsa ve hizmet hala makinenin uzantıyı yüklemesini bekliyorsa, uzantı yöneticisi Azure ile bir sonraki eşitlemesinde yeniden yüklenir.

Betik yürütme

Uzantı yöneticisi, Özel Betik Uzantısı veya Çalıştır Komutu kullanılarak makinelerde betik çalıştırmak için kullanılabilir. Varsayılan olarak, bu betikler uzantı yöneticisinin kullanıcı bağlamında (Windows'da Yerel Sistem veya Linux'ta kök) çalıştırılır ve bu da bu betiklerin makineye sınırsız erişimi olacağı anlamına gelir. Bu özellikleri kullanmayı düşünmüyorsanız, izin verilenler listesi veya blok listesi kullanarak bunları engelleyebilirsiniz. Sonraki bölümde bir örnek verilmiştir.

Yerel aracı güvenlik denetimleri

Aracı sürüm 1.16'dan başlayarak, isteğe bağlı olarak sunucunuza yüklenebilen uzantıları sınırlayabilir ve Konuk Yapılandırması'nı devre dışı bırakabilirsiniz. Bu denetimler, sunucularda diğer yönetim özelliklerinin kullanılmasına izin vermeden olay günlüklerini toplama gibi tek bir amaç için sunucuları Azure'a bağlarken yararlı olabilir.

Bu güvenlik denetimleri yalnızca sunucuda bir komut çalıştırılarak yapılandırılabilir ve Azure'dan değiştirilemez. Bu yaklaşım, Azure Arc ile uzaktan yönetim senaryolarını etkinleştirirken sunucu yöneticisinin amacını korur, ancak daha sonra değiştirmeye karar verirseniz ayarı değiştirmenin daha zor olduğu anlamına gelir. Bu özellik hassas sunucular (örneğin, Active Directory Etki Alanı Denetleyicileri, ödeme verilerini işleyen sunucular ve katı değişiklik denetimi önlemlerine tabi sunucular) için tasarlanmıştır. Diğer çoğu durumda, bu ayarların değiştirilmesi gerekmez.

İzin verilenler ve blok listeleri

Azure Connected Machine aracısı, makinenize hangi uzantıların yüklenebileceğini kısıtlamak için izin verilenler listesini ve blok listesini destekler. İzin verilenler özeldir, yani yalnızca listeye eklediğiniz belirli uzantılar yüklenebilir. Blok listeleri özeldir, yani bu uzantılar dışında herhangi bir şey yüklenebilir. İzin verilenler, gelecekte kullanılabilir olacak yeni uzantıları doğal olarak engellediklerinden blok listelerine tercih edilir. İzin verilenler ve blok listeleri, sunucu başına yerel olarak yapılandırılır. Bu, Azure'da Sahip veya Genel Yönetici izinlerine sahip bir kullanıcının bile yetkisiz bir uzantı yüklemeye çalışarak güvenlik kurallarınızı geçersiz kılabilmesini sağlar. Birisi yetkisiz bir uzantı yüklemeye çalışırsa, uzantı yöneticisi uzantıyı yüklemeyi reddeder ve uzantı yüklemesinin Azure'a bir hata bildirdiğini işaretler. İzin verilenler ve blok listeleri aracı yüklendikten sonra, aracı Azure'a bağlanmadan önce de dahil olmak üzere her zaman yapılandırılabilir.

Aracıda izin verilenler listesi veya blok listesi yapılandırılmamışsa tüm uzantılara izin verilir.

En güvenli seçenek, yüklenmesini beklediğiniz uzantılara açıkça izin vermektir. İzin verilenler listesinde olmayan tüm uzantılar otomatik olarak engellenir. Azure Connected Machine aracısını yalnızca Linux için Azure İzleyici Aracısı'na izin verecek şekilde yapılandırmak için her sunucuda aşağıdaki komutu çalıştırın:

azcmagent config set extensions.allowlist "Microsoft.Azure.Monitor/AzureMonitorLinuxAgent"

Rastgele betik çalıştırma özelliğine sahip tüm uzantıları engelleyen örnek bir blok listesi aşağıda verilmiştir:

azcmagent config set extensions.blocklist “Microsoft.Cplat.Core/RunCommandHandlerWindows, Microsoft.Cplat.Core/RunCommandHandlerLinux,Microsoft.Compute/CustomScriptExtension,Microsoft.Azure.Extensions/CustomScript,Microsoft.Azure.Automation.HybridWorker/HybridWorkerForWindows,Microsoft.Azure.Automation.HybridWorkerForLinux,Microsoft.EnterpriseCloud.Monitoring/MicrosoftMonitoringAgent, Microsoft.EnterpriseCloud.Monitoring/OMSAgentForLinux”

Uzantıları yayımcısı ve türüyle, eğik çizgiyle /ayırarak belirtin. Belgelerdeki en yaygın uzantıların listesine bakın veya portalda, Azure PowerShell'de veya Azure CLI'da sunucunuzda zaten yüklü olan VM uzantılarını listeleyin.

Tabloda, allowlist veya blocklist yapılandırılmış bir aracıya yönelik bir uzantı işlemi gerçekleştirirken oluşan davranış açıklanır.

İşlem İzin verilenler listesinde Blok listesinde hem izin verilenler listesinde hem de blok listesinde Hiçbir listede yok, ancak izin verilenler listesi yapılandırıldı
Uzantıyı yükleme İzin Verilir Engellendi Engellendi Engellendi
Uzantıyı güncelleştirme (yeniden yapılandırma) İzin Verilir Engellendi Engellendi Engellendi
Uzantıyı yükseltme İzin Verilir Engellendi Engellendi Engellendi
Uzantıyı silme İzin Verilir İzin Verilir İzin Verilir İzin Verilir

Önemli

Bir uzantı, izin verilenler listesi veya blok listesi yapılandırmadan önce sunucunuzda zaten yüklüyse, uzantı otomatik olarak kaldırılmaz. Uzantıyı makineden tamamen kaldırmak için Uzantıyı Azure'dan silmek sizin sorumluluğunuzdadır. Silme istekleri bu senaryoya uyum sağlamak için her zaman kabul edilir. Silindikten sonra, izin verilenler listesi ve blok listesi gelecekteki yükleme girişimlerine izin verilip verilmeyeceğini belirler.

Aracı sürüm 1.35'den başlayarak, uzantı yöneticisine çalıştırılmasını bildirir, ancak uzantıların yüklenmesine izin vermez özel bir izin verilenler listesi değeri Allow/Nonevardır. Bu, azure arc kullanarak başka uzantılar kullanmayı planlamadan Windows Server 2012 Genişletilmiş Güvenlik Güncelleştirmeleri (ESU) sunarken önerilen yapılandırmadır.

azcmagent config set extensions.allowlist "Allow/None"

Azure İlkeleri, hangi uzantıların yüklenebileceğini kısıtlamak için de kullanılabilir. Azure İlkeleri, bulutta yapılandırılabilir olma avantajına sahiptir ve onaylanan uzantıların listesini değiştirmeniz gerekiyorsa her bir sunucuda değişiklik gerektirmez. Ancak, ilke atamalarını değiştirme izni olan herkes bu korumayı geçersiz kılabilir veya kaldırabilir. Uzantıları kısıtlamak için Azure İlkeleri'ni kullanmayı seçerseniz, kuruluşunuzdaki hangi hesapların ilke atamalarını düzenleme iznine sahip olduğunu ve uygun değişiklik denetimi ölçülerinin mevcut olduğunu gözden geçirin.

Kilitli makine en iyi yöntemleri

Azure Connected Machine aracısını azaltılmış bir özellik kümesiyle yapılandırırken, birinin bu kısıtlamaları kaldırmak ve uygun denetimleri uygulamak için kullanabileceği mekanizmaları göz önünde bulundurmak önemlidir. Sunucuda yönetici veya kök kullanıcı olarak komut çalıştırabilen herkes Azure Bağlı Makine aracı yapılandırmasını değiştirebilir. Uzantılar ve konuk yapılandırma ilkeleri sunucunuzda ayrıcalıklı bağlamlarda yürütülür ve bu nedenle aracı yapılandırmasını değiştirebilir. Aracıyı kilitlemek için yerel aracı güvenlik denetimleri uygularsanız, Microsoft aracı yapılandırmasını yalnızca yerel sunucu yöneticilerinin güncelleştirebildiğinden emin olmak için aşağıdaki en iyi yöntemleri önerir:

  • Mümkün olduğunda blok listeleri yerine uzantılar için izin verilenler listesini kullanın.
  • Aracı yapılandırmasını değiştirebilecek rastgele betiklerin yürütülmesini önlemek için uzantı izin listesine Özel Betik Uzantısını eklemeyin.
  • Aracı yapılandırmasını değiştirebilecek özel Konuk Yapılandırması ilkelerinin kullanılmasını önlemek için Konuk Yapılandırması'nı devre dışı bırakın.

İzleme ve güvenlik senaryoları için örnek yapılandırma

Azure İzleyici ve Microsoft Sentinel ile sunucularınızı izlemek ve Bulut için Microsoft Defender ile bunların güvenliğini sağlamak için Azure Arc'ı kullanmak yaygın bir uygulamadır. Bu bölüm, aracıyı yalnızca izleme ve güvenlik senaryolarını destekleyecek şekilde kilitlemeye yönelik örnekler içerir.

Yalnızca Azure İzleyici Aracısı

Windows sunucularınızda, yükseltilmiş bir komut konsolunda aşağıdaki komutları çalıştırın:

azcmagent config set extensions.allowlist "Microsoft.Azure.Monitor/AzureMonitorWindowsAgent"
azcmagent config set guestconfiguration.enabled false

Linux sunucularınızda aşağıdaki komutları çalıştırın:

sudo azcmagent config set extensions.allowlist "Microsoft.Azure.Monitor/AzureMonitorLinuxAgent"
sudo azcmagent config set guestconfiguration.enabled false

Yalnızca Log Analytics ve bağımlılık (Azure İzleyici VM İçgörüleri)

Bu yapılandırma, eski Log Analytics aracıları ve bağımlılık aracısı içindir.

Windows sunucularınızda, yükseltilmiş bir konsolda aşağıdaki komutları çalıştırın:

azcmagent config set extensions.allowlist "Microsoft.EnterpriseCloud.Monitoring/MicrosoftMonitoringAgent,Microsoft.Azure.Monitoring.DependencyAgent/DependencyAgentWindows"
azcmagent config set guestconfiguration.enabled false

Linux sunucularınızda aşağıdaki komutları çalıştırın:

sudo azcmagent config set extensions.allowlist "Microsoft.EnterpriseCloud.Monitoring/OMSAgentForLinux,Microsoft.Azure.Monitoring.DependencyAgent/DependencyAgentLinux"
sudo azcmagent config set guestconfiguration.enabled false

İzleme ve güvenlik

Bulut için Microsoft Defender, sunucunuzdaki güvenlik açığı bulunan yazılımları belirlemek ve Uç Nokta için Microsoft Defender (yapılandırıldıysa) etkinleştirmek için sunucunuza uzantılar dağıtır. Bulut için Microsoft Defender, mevzuat uyumluluğu özelliği için Konuk Yapılandırması'ni da kullanır. Aracı sınırlamalarını geri almak için özel bir Konuk Yapılandırması ataması kullanılabildiğinden, mevzuat uyumluluğu özelliğine ihtiyacınız olup olmadığını ve bunun sonucunda konuk yapılandırmasının makinede etkinleştirilmesi gerekip gerekmediğini dikkatlice değerlendirmeniz gerekir.

Windows sunucularınızda, yükseltilmiş bir komut konsolunda aşağıdaki komutları çalıştırın:

azcmagent config set extensions.allowlist "Microsoft.EnterpriseCloud.Monitoring/MicrosoftMonitoringAgent,Qualys/WindowsAgent.AzureSecurityCenter,Microsoft.Azure.AzureDefenderForServers/MDE.Windows,Microsoft.Azure.AzureDefenderForSQL/AdvancedThreatProtection.Windows"
azcmagent config set guestconfiguration.enabled true

Linux sunucularınızda aşağıdaki komutları çalıştırın:

sudo azcmagent config set extensions.allowlist "Microsoft.EnterpriseCloud.Monitoring/OMSAgentForLinux,Qualys/LinuxAgent.AzureSecurityCenter,Microsoft.Azure.AzureDefenderForServers/MDE.Linux"
sudo azcmagent config set guestconfiguration.enabled true

Aracı modları

İzleme ve güvenlik senaryoları için yerel güvenlik denetimlerini yapılandırmanın daha basit bir yolu, aracı sürüm 1.18 ve daha yeni sürümlerle kullanılabilen izleme modunu kullanmaktır. Modlar, Uzantı izin verilenler listesinin ve Microsoft tarafından tutulan konuk yapılandırma aracısının önceden tanımlanmış yapılandırmalarıdır. İzleme senaryolarını etkinleştiren yeni uzantılar kullanıma sunulduktan sonra Microsoft, izin verilenler listesini ve aracı yapılandırmasını yeni işlevselliği uygun şekilde içerecek veya hariç tutacak şekilde güncelleştirecektir.

Aralarından seçim yapabileceğiniz iki mod vardır:

  1. full - varsayılan mod. Bu, tüm aracı işlevlerine izin verir.
  2. monitor - konuk yapılandırma ilkesi aracısını devre dışı bırakabilen ve yalnızca izleme ve güvenlikle ilgili uzantıların kullanılmasına izin veren kısıtlı mod.

İzleme modunu etkinleştirmek için aşağıdaki komutu çalıştırın:

azcmagent config set config.mode monitor

Aracının ve izin verilen uzantıların geçerli modunu aşağıdaki komutla kontrol edebilirsiniz:

azcmagent config list

İzleme modundayken uzantı izin verilenler listesini veya blok listesini değiştiremezsiniz. Her iki listeyi de değiştirmeniz gerekiyorsa aracıyı yeniden tam moda döndürerek kendi izin verilenler listenizi ve blok listenizi belirtin.

Aracıyı yeniden tam moda döndürmek için aşağıdaki komutu çalıştırın:

azcmagent config set config.mode full

Uzantı yöneticisini devre dışı bırakma

Azure Arc ile uzantıları kullanmanız gerekmiyorsa uzantı yöneticisini tamamen devre dışı bırakabilirsiniz. Uzantı yöneticisini aşağıdaki komutla devre dışı bırakabilirsiniz (her makinede yerel olarak çalıştırın):

azcmagent config set extensions.enabled false

Uzantı yöneticisinin devre dışı bırakılması, sunucunuzda zaten yüklü olan uzantıları kaldırmaz. Log Analytics Aracısı gibi kendi Windows veya Linux hizmetlerinde barındırılan uzantılar, uzantı yöneticisi devre dışı bırakıldığında bile çalışmaya devam edebilir. Uzantı yöneticisi tarafından barındırılan Azure İzleyici Aracısı gibi diğer uzantılar, uzantı yöneticisi devre dışı bırakılırsa çalışmaz. Sunucuda hiçbir uzantının çalışmaya devam etmediğinden emin olmak için uzantı yöneticisini devre dışı bırakmadan önce uzantıları kaldırmanız gerekir.