Alıştırma - Veritabanınızı izleme
Şirketinizin güvenlik yöneticisinden bir uyarı aldığınızı düşünün. Ağınızda olası bir güvenlik ihlali algılandı. Yetkisiz bir kişi kötü amaçlı etkinlikler aracılığıyla veritabanınıza erişmiş olabilir. Bu erişimin izini nasıl sürebilirsiniz?
Şüpheli etkinlik için veritabanınızı etkin bir şekilde izlemeniz gerektiğini biliyorsunuz. Yalnızca veritabanınızda olup bitenlere görünürlük sağlamakla kalmaz, kötü amaçlı etkinliklerin oluşmasını önlemek için de ne yapabilirsiniz?
Azure SQL Veritabanı, veritabanınızda neler olduğunu izlemenize yardımcı olabilecek yerleşik özelliklere sahiptir. Kötü amaçlı etkinliği tanımlayıp tanımlamazsanız sizi izleyebilir ve uyarır.
Azure SQL Veritabanı denetimi
Denetim özelliklerini etkinleştirdiğinizde veritabanında gerçekleştirilen işlemler daha sonra incelemek veya otomatik araçlar tarafından analiz edilmelerini sağlamak için depolanır. Denetim aynı zamanda uyumluluk yönetimi veya veritabanınızın nasıl kullanıldığını anlamak için de kullanılır. Azure SQL veritabanınızda Azure tehdit algılama özelliklerini kullanmak istediğinizde de denetim işlevini etkinleştirmeniz gerekir.
SQL veritabanı denetimini kullanarak:
- Seçilen olayların denetim kaydını tutabilirsiniz. Denetlenecek veritabanı eylemi kategorilerini tanımlayabilirsiniz.
- Veritabanı etkinliğiyle ilgili raporlama yapabilirsiniz. Etkinlik ve olay raporlamaya hızlı bir başlangıç yapmak için önceden yapılandırılmış raporları ve bir panoyu kullanabilirsiniz.
- Raporları analiz edebilirsiniz. Şüpheli olayları, alışılmışın dışındaki etkinlikleri ve eğilimleri bulabilirsiniz.
Denetim günlükleri, belirlediğiniz bir Azure Blob Depolama hesabındaki Ekleme Blobları'na yazılır. Denetim ilkeleri sunucu düzeyinde veya veritabanı düzeyinde uygulanabilir. Etkinleştirildikten sonra azure portalını kullanarak günlükleri görüntüleyebilir veya daha fazla işlem ve analiz için Log Analytics veya Event Hubs'a gönderebilirsiniz.
Pratikte denetim
En iyi yöntem olarak, aşağıdaki durumlar dışında hem sunucu blob denetimini hem de veritabanı blob denetimini birlikte etkinleştirmekten kaçının:
- Belirli bir veritabanı için farklı bir depolama hesabı ve saklama süresi kullanmak istiyorsunuz.
- Sunucudaki diğer veritabanlarından farklı olan belirli bir veritabanı için olay türlerini veya kategorilerini denetlemek istiyorsunuz. Örneğin yalnızca belirli bir veritabanı için denetlenmesi gereken tablo eklemeleriniz olabilir.
Aksi takdirde, yalnızca sunucu düzeyinde blob denetimini etkinleştirmenizi ve veritabanı düzeyinde denetimi tüm veritabanları için devre dışı bırakmanızı öneririz.
Sisteminizde denetimi ayarlamak için bu adımları izleyin.
Korumalı alanı etkinleştirmek için kullandığınız hesapla Azure portalında oturum açın.
Portalın üst kısmındaki arama çubuğunda sunucunuzu arayın ve ardından portalda sunucuyu seçin. NNNNN değerini sunucu adınızın numarasıyla değiştirin.
Sol menü bölmesindeki Güvenlik'in altında Denetim'i seçin.
Denetim özelliği varsayılan olarak kapalıdır. Veritabanı sunucunuzda etkinleştirmek için Azure AQL Denetimini Etkinleştir seçeneğini AÇI olarak değiştirin.
ON düğmesi seçildikten sonra Depolama onay kutusunu seçin.
Aboneliğinizi seçin.
Mevcut bir depolama hesabını seçebilir veya denetimlerinizi depolamak için yeni bir depolama hesabı oluşturabilirsiniz. Depolama hesabının sunucuyla aynı bölgede olacak şekilde yapılandırılması gerekir.
Bu durumda yeni bir depolama hesabı tanımlayın. Depolama hesabı'nın altında Yeni oluştur'u seçin. Depolama hesabı oluştur bölmesi görüntülenir. Depolama hesabı <sunucu adı>denetimini adlandırın< ve sunucu adını> mantıksal sunucu adınız ile değiştirin.
Diğer seçenekleri varsayılan değerlerinde bırakın ve Tamam'ı seçin. Depolama ayarları bölmesine geri dönün, varsayılan değerleri bırakın ve Tamam'ı seçin.
Değişikliklerinizi kaydetmek ve veritabanı sunucunuzda denetimi etkinleştirmek için Kaydet'i seçin.
Şimdi bazı denetim kayıtları oluşturun ve neler bekleyebileceğinize bir göz atın.
Veritabanında ApplicationUser kullanıcısı olarak yeniden oturum açın.
sqlcmd -S tcp:[server-name].database.windows.net,1433 -d marketplaceDb -U 'ApplicationUser' -P '[password]' -N -l 30
Aşağıdaki sorguyu çalıştırın.
SELECT FirstName, LastName, EmailAddress, Phone FROM SalesLT.Customer; GO
Azure portalında, SQL sunucunuzda sol menü bölmesinde SQL veritabanları'nı ve ardından market veritabanını seçin.
Market veritabanınızın sol menü bölmesindeki Güvenlik'in altında Denetim'i seçin.
Denetimi sunucu düzeyinde etkinleştirdiğiniz için burada etkinleştirildiğini görmeniz gerekir. Günlükleri görüntülemek için üstteki menü çubuğundan Denetim günlüklerini görüntüle'yi seçin.
ASIL AD olarak ApplicationUser, OLAY TÜRÜ olarak da BATCH COMPLETED (Toplu işe tamamlandı) değerine sahip bir veya daha fazla denetim kaydı görmeniz gerekir. Bunlardan biri, yürüttüğüniz sorgunun ayrıntılarını içermelidir. Ayrıca başarısız ve başarılı kimlik doğrulaması olaylarını da görebilirsiniz. Kayıtlardan birini seçerek ilgili olayın tüm ayrıntılarını inceleyebilirsiniz.
Bu eylemler denetimleri veritabanı sunucusu düzeyinde yapılandırır. Denetimler sunucudaki tüm veritabanları için geçerlidir. Denetimi veritabanı düzeyinde de yapılandırabilirsiniz.
Veritabanınızın güvenliğini artırmak için bu günlükleri kullanan başka bir özelliğe göz atın.
Azure SQL Veritabanı için Gelişmiş Veri Güvenliği
Gelişmiş Veri Güvenliği (ADS) veri bulma ve sınıflandırması, güvenlik açığı değerlendirmesi ve Gelişmiş Tehdit Koruması gibi bir dizi gelişmiş SQL güvenlik özelliği sağlar.
- Veri bulma ve sınıflandırma (şu anda önizleme aşamasındadır), veritabanlarınızdaki hassas verileri bulmak, sınıflandırmak, etiketlemek ve korumak için Azure SQL Veritabanı yerleşik özellikler sağlar. Veri sınıflandırma durumunuz için görünürlük sağlamanın yanı sıra veritabanı içindeki ve dışındaki hassas verilere erişimin izlenmesi için kullanılabilir.
- Güvenlik açığı değerlendirmesi olası veritabanı güvenlik açıklarını keşfetmenizi ve izlemenizi sağlamanın yanı sıra bunları gidermeye yardımcı olan yapılandırması kolay bir hizmettir. Güvenlik durumunuz hakkında görünürlük sağlamasının yanı sıra güvenlik sorunlarınızı çözmek ve veritabanı güçlendirmelerinizi geliştirmek için eyleme dönüştürülebilir adımlar sunar.
- Gelişmiş Tehdit Koruması, veritabanlarınıza erişme veya bunları kullanma konusunda olağandışı ve potansiyel olarak zararlı girişimleri gösteren anormal etkinlikleri belirler. Veritabanınızı şüpheli etkinliklere karşı sürekli izler ve olası güvenlik açıkları, SQL ekleme saldırıları ve anormal veritabanı erişim modelleri hakkında anında güvenlik uyarıları sunar. Gelişmiş Tehdit Koruması uyarıları, şüpheli etkinliğin ayrıntılarının yanı sıra tehdidi araştırmak ve ortadan kaldırmak için önerilen eylemleri de içerir.
Kurulum ve yapılandırma
Veritabanınızda ADS'yi etkinleştirin. ADS sunucu düzeyinde bir ayardır, bu nedenle buradan başlayın.
Azure portalına geri dönüp SQL sunucunuza gidin. Sayfanın üst kısmındaki arama çubuğunda _<server-name> araması yapın ve sunucuyu seçin.
Sol menü bölmesindeki Güvenlik'in altında Bulut için Microsoft Defender'ı seçin.
SQL için Microsoft Defender'ı etkinleştir'i seçin.
Abonelik düzeyinde Etkin iletisinin yanındaki Yapılandır'ı seçin. Sunucu ayarları bölmesi görüntülenir.
Düzenli yinelenen taramalar varsayılan olarak açıktır. Haftalık tarama tetiklendiğinde, sağladığınız e-posta adresine bir tarama sonucu özeti gönderilir. Bu durumda, bunu kapatın. Tehditlerin hizmet yöneticilerine gönderilmesi için Ayrıca yöneticilere ve abonelik sahiplerine e-posta bildirimi gönder seçeneği varsayılan olarak etkinleştirilir. Ayarlarınızı kaydetmek için üst kısımdaki Kaydet'i seçin.
Gelişmiş Tehdit Koruması Ayarları'nın altında kişi ayrıntılarınızı ekle... öğesini seçerek Bulut için Defender E-posta bildirimleri bölmesini açın. Burada, isteğe bağlı olarak hem güvenlik açığı değerlendirmesi hem de Gelişmiş Tehdit Koruması için bildirim e-postalarının nereye teslim edildiği noktalı virgülle ayrılmış e-posta adreslerinin listesi olarak tanımlayabilirsiniz. Tehditlerin hizmet yöneticilerine gönderilmesi için Ayrıca yöneticilere ve abonelik sahiplerine e-posta bildirimi gönder seçeneği varsayılan olarak etkinleştirilir.
Azure SQL Denetimini etkinleştirmek için Denetimi Etkinleştir.... seçeneğini de belirleyebilirsiniz.
Değişiklikleri uygulamak için Kaydet'i seçin.
Güvenlik açıkları algılandığında e-posta bildirimleri alırsınız. E-postada ne olduğu ve yapılması gereken eylemler özetlenmiştir.
Veri bulma ve sınıflandırma
Market veritabanınıza gidin. Azure portalının üst kısmındaki arama çubuğunda market araması yapın ve veritabanını seçin.
Sol menü bölmesindeki Güvenlik'in altında Veri Bulma ve Sınıflandırma'yı seçin.
Sınıflandırma sekmesi, tablolarınızın içinde korunması gereken sütunları gösterir. Bazı sütunlar hassas bilgilere sahip olabilir veya farklı ülkelerde veya bölgelerde sınıflandırılmış olarak kabul edilebilir.
Herhangi bir sütunun korunması gerekiyorsa bir ileti görüntülenir. Bu ileti, sınıflandırma önerileri içeren 15 sütun gibi biçimlendirilir. Önerileri görüntülemek için metni seçebilirsiniz.
Sütunun yanındaki onay işaretini seçerek sınıflandırmak istediğiniz sütunları seçin veya şema üst bilgisinin solundaki onay kutusunu seçin. Sınıflandırma önerilerini uygulamak için Seçili önerileri kabul et düğmesini seçin.
Ardından sütunları düzenleyin ve ardından veritabanı için bilgi türünü ve duyarlılık etiketini tanımlayın. Değişiklikleri kaydetmek için Kaydet'i seçin.
Önerileri başarıyla yönetdikten sonra etkin öneriler listelenmemelidir.
Güvenlik açıkları
Sol menü bölmesindeki Güvenlik'in altında Bulut için Microsoft Defender'ı seçin.
Öneriler bölümünde veritabanınızdaki yapılandırma sorunları ve ilişkili risk listelenir.
Bir öneri seçin. Öneri bölmesinde risk düzeyi, geçerli olduğu veritabanı, güvenlik açığının açıklaması ve sorunu düzeltmek için önerilen düzeltme gibi ayrıntıları görürsünüz. Sorunu veya sorunları gidermek için düzeltmeyi uygulayın. Tüm güvenlik açıklarıyla ilgilendiğinizden emin olun.
Güvenlik olayları ve uyarıları
Bu bölümde algılanan tehditlerin listesi görüntülenir.
Önerileri uygulayarak sorunu giderebilirsiniz. SQL ekleme uyarıları gibi sorunlar için sorguya bakabilir ve sorgunun kodda yürütüldüğü yere geri dönebilirsiniz. Bulunduktan sonra, sorunu artık gidermemesi için kodu yeniden yazmanız gerekir.