Etkinlik günlüklerini Azure İzleyici günlükleriyle tümleştirme

Tamamlandı

Azure hem sisteminizde oturum açan kullanıcıları ve hem de bağlantılı durumdayken neler yaptıklarını görmenizi sağlayan gelişmiş günlük özelliği sağlar.

Oturum açma ve denetim günlüklerine nasıl erişebileceğinizi ve beklenmeyen kullanıcı davranışlarını aramak için bu günlükleri nasıl kullanabileceğinizi gördünüz. Bu verilere erişim sağlamak ağınızı, varlıklarınızı ve kaynaklarınızı korumanın önemli bir ilk adımıdır. Günlük dosyalarını toplamak ve işlemek yoğun bir iş gücü gerektirebilir. Bu işlem olay sonrasında şüpheli kullanıcı davranışı belirleyebilir ama yine de böyle davranışların gerçek zamanlı görünümünü isteyen güvenlik ekibinizin ihtiyaçlarını karşılamaz.

Azure İzleyici güvenlik ekibinize gereken gerçek zamanlı görünümleri ve uyarıları sağlayabilir. Ekibinize güvence vermek için Azure İzleyici hakkında daha fazla bilgi edinmek ve bunun şüpheli oturum açma davranışını belirlemek için nasıl kullanıldığını öğrenmek istiyorsunuz.

Bu ünitede denetim ve oturum açma günlüğü verilerini tutmak ve depolamak için bir Log Analytics çalışma alanı ayarlayacaksınız. Ardından günlük dosyalarını Azure İzleyici’ye göndermeyi öğreneceksiniz. Son olarak, şüpheli kullanıcı davranışı veya etkinliği olduğunda durumu ekibinize bildirmek için Azure İzleyici uyarılarının nasıl oluşturulacağını göreceksiniz.

Önkoşullar

Log Analytics çalışma alanını ve Azure İzleyici günlüklerini kullanmak için aşağıdaki öğelerin kullanılabilir veya ayarlanmış olduğundan emin olun:

  • Log Analytics çalışma alanına erişim
  • Azure İzleyici günlüklerine erişim
  • Azure Active Directory (Azure AD) tanılama ayarlarına erişim
  • Azure AD Premium 1 veya Premium 2 aboneliği
  • Aşağıdaki Azure AD rollerinden biri:
    • Güvenlik Yöneticisi
    • Güvenlik Okuyucusu
    • Rapor Okuyucusu
    • Genel Yönetici

Log Analytics çalışma alanı

Azure’ın denetim ve oturum açma günlüğü dosyaları biçiminde kullanıcı verileri topladığını biliyorsunuz ama bu veriler doğrudan Azure İzleyici’ye aktarılamaz. İlk olarak verilerin bir Log Analytics çalışma alanında toplanması gerekir. Her çalışma alanı benzersizdir ve her birinin kendi veri deposuyla yapılandırması vardır. Çalışma alanını yapılandırdığınızda, günlük aramalarını ve tablo tabanlı sorguları kullanarak verileri analiz edebilirsiniz.

Log Analytics çalışma alanı oluşturmak kolay bir işlemdir.

  1. Azure Portal gidin.

  2. Diğer hizmet'i seçin ve Arama kutusuna log analytics yazın.

  3. Sonuçlar listesinde Log Analytics çalışma alanları'nın ardından Yeni'yi seçerek yeni bir Log Analytics çalışma alanı oluşturun. Yeni bir Log Analytics çalışma alanı oluşturmak için şu ayrıntıları sağlayın:

    a. Bu çalışma alanı oturum açan kullanıcıya özgü olacağından Yeni Oluştur’u seçin. Her çalışma alanının, tüm Azure İzleyici abonelikleri arasında genel olarak benzersiz bir Adı olmalıdır.
    b. Aboneliği seçin ve ardından mevcut bir Kaynak grubu gibi, kullanmak istediğiniz çalışma alanını seçin.

    Fiyatlandırma katmanı otomatik olarak kullandıkça öde seçeneğine ayarlanır ve gigabayt (GB) başına maliyet temel alınır.

  4. Çalışma alanını oluşturmak için Oluştur'a tıklayın.

Artık kullanıcı denetim ve oturum açma verilerini toplayabileceğiniz ve analiz edebileceğiniz bir Log Analytics çalışma alanı oluşturdunuz.

Etkinlik günlüklerinin depolama boyutları

Çalışma alanınızın yaklaşık olarak ne kadar depolama tüketeceğini anlamak önemlidir. Tipik bir oturum açma olay günlüğünün boyutu 4 kilobayt (KB) dolayındadır ve denetim günlüğü en çok 2 KB kadar olur.

Bunun mantığı şöyle açıklanabilir: Kiracınızda 1.000 kullanıcı olması durumunda denetim günlüğünüz her gün yaklaşık 15.000 olay oluşturabilir. Bu hesapla günlük depolama hacmi 30 megabayt (MB) kadar veya aylık 900 MB kadar olacaktır. Oturum açma günlüklerinde bu rakamlar biraz daha büyüktür. Azure kiracısında 1.000 kullanıcı bulunduğunu varsayarsak, oturum açma günlükleri her gün 34.800 olay oluşturur ve bu da günlük yaklaşık 140 MB veya aylık 4 GB depolama alanı demektir.

Kullanıcı günlüklerini Log analytics çalışma alanına gönderme

Artık Log Analytics çalışma alanını oluşturduğunuza göre, kullanıcı denetim ve oturum açma günlüklerini atayabilirsiniz. Azure İzleyici günlüklerinde kullanmak istediğiniz tüm verilerin Log Analytics çalışma alanında depolanması gerekir.

Log Analytics çalışma alanınıza denetim ve oturum açma günlüklerinin akışını yapmak için şunları yapmalısınız:

  1. Azure Active Directory’yi açın.

  2. İzleme bölümünde Tanılama ayarları’nı seçin.

    Tanılama ayarları bölmesi açılır. Günlük dosyalarıyla Log Analytics çalışma alanınız arasındaki bağlantıyı bu sayfada oluşturursunuz. Her ayarın bir adı olması gerekir.

  3. Log Analytics’e gönder seçeneğini işaretleyip Log Analytics çalışma alanını belirtir veya oluşturursunuz. Senaryomuzda, biraz önce oluşturduğunuz Log Analytics çalışma alanını seçersiniz ve sonra şunları yaparsınız:

    a. Yapılandır seçeneğini belirtin ve daha önce oluşturduğunuz Log Analytics çalışma alanını seçin.
    b. Çalışma alanına akışı yapılacak günlük dosyalarına karar verin. Denetim günlüğünü, Oturum açma günlüğünü veya her ikisini seçebilirsiniz.

  4. Kaydet’i seçin.

Artık denetim ve oturum açma verilerini Log Analytics çalışma alanına gönderecek veri akış işlemini ayarladınız. Bu yeni bir hizmet olduğundan verilerin çalışma alanında görüntülenmeye başlaması 15 dakika kadar sürer.

Azure İzleyici günlüklerinde günlük dosyalarını analiz etme

Kullanıcı etkinliği verilerini alacak Log Analytics çalışma alanını ayarladınız. Şimdi Azure İzleyici Günlüklerinin gücünden yararlanarak ortamınızın içinde gerçekleşen etkinliği görüntüleyebilirsiniz. Azure İzleyici günlükleri sayesinde, belirli olayları veya birden çok veri kaynağı arasındaki bağıntıyı saptamak için verileri sorgulayabilirsiniz.

Günlük verilerinin şemaları

Hem denetim hem de oturum açma günlüklerinin veri akışları Log Analytics çalışma alanınızda iki ayrı tabloda, AuditLogs ve SignInLogs tablolarında depolanır. Her tablonun sorgulama yapmak için kullanabileceğiniz kendi şeması vardır.

Denetim günlüğü şeması Oturum açma günlüğü şeması
Ek ayrıntılar AppDisplayName
Category AppId
CorrelationId Category
DurationMs ClientAppUsed
Id ConditionalAccessPolicies
Identity ConditionalAccessStatus
InitiatedBy CorrelationId
Level CreatedDateTime
Location DeviceDetail
LoggedByService DurationMs
OperationName Id
OperationVersion Identity
Resource IPAddress
ResourceGroup IsRisky
ResourceId Level
ResourceProvider Location
Result LocationDetails
ResultDescription MfaDetails
ResultReason OperationName
ResultSignature OperationVersion
ResultType Resource
SourceSystem ResourceGroup
TargetResources ResourceId
TimeGenerated ResourceProvider
Type ResultDescription
ResultSignature
ResultType
RiskLevel

Etkinlik günlüğü sorguları yazma

Denetim günlükleri çalışma alanı tablolarınızda depolanmış durumdayken, artık bu günlüklerde sorgu çalıştırabilirsiniz. Tablo tabanlı ve arama tabanlı olmak üzere iki sorgu türü yazabilirsiniz. Yukarıdaki bölümde verilen şema yapıları sorgulama yapabileceğiniz tüm alanları gösterir.

Kullandığınız sorgu dili Kusto’dur. Verileri işlemek ve sonuç kümesi döndürmek için tasarlanmıştır.

Her Kusto sorgusu ortak bir desene uyar:

  • Sorgu her zaman üzerinde sorguyu çalıştırdığınız tablonun adıyla başlar. Burada söz konusu ad SignInLogs veya AuditLogs olabilir.
  • Her komut bir dikey çizgiyle (|) ayrılır ve tipik olarak yeni satırda başlar. Bir sorguda birden çok dikey çizginiz olabilir.

Belirli sütunları belirtmediğiniz sürece sonuç kümesi tüm şema alanlarını içerir.

Sorgudaki verileri filtrelemek için en yaygın kullanılan araç where komutudur. Verileri filtrelemek için bir koşul yazarken aşağıdaki ifadeler geçerlidir:

İfade Açıklama Örnek
== Eşitliği denetleme (büyük/küçük harfe duyarlı) Level == 8
=~ Eşitliği denetleme (büyük/küçük harfe duyarlı değil) EventSourceName =~ "microsoft-windows-security-auditing"
!=, <> Eşitsizliği denetleme (her iki ifade de aynıdır) Level != 4
and, or Koşullar arasında kullanılması gereklidir Level == 16 or CommandLine != ""

Diğer yaygın filtre komutları şunlardır:

Komut Açıklama Örnek
take n Küçük yanıt kümeleri için idealdir. Sonuç kümesinden belirli bir sırası olmayan n satır döndürür. AuditLogs | Take 10
top n by alan Belirlenen alana göre sıralanmış olarak ilk n satırı döndürmek için bu filtre komutunu kullanın. AuditLogs | Top 10 by timeGenerated
sort by alan (desc) Yalnızca sonuç kümesini sıralamak istiyorsanız sort komutunu kullanabilirsiniz. Sort komutunu uygulayacağınız alanı belirtmeniz gerekir, ardından isteğe bağlı olarak, azalan sıralama düzenini belirtmek için desc yönergesini ekleyebilirsiniz. AuditLogs | Sort by timeGenerated desc
Where alan (ifade) değer Bu ana filtreleme komutudur. Alanı, ifadeyi ve karşılaştırma değerini belirtirsiniz. Her biri dikey çizgiyle ayrılmış birden çok where komutunu birlikte kullanabilirsiniz. |CreatedDateTime >= önce (2B) olan AuditLogs
project alanlar Yalnızca belirtilen alanları veya sütunları görüntülemek için sonuç kümesini kısıtlamak istiyorsanız, virgülle ayrılmış bir alan listesiyle project komutunu kullanabilirsiniz. AuditLogs | project timeGenerated, OperationName, ResourceGroup, Result

Sorgularınızı oluşturmak için pek çok başka komutu kullanabilirsiniz. Bu modülün sonunda verilen bağlantılarda verilerini filtrelemek için kullanabileceğiniz sorgu komutları hakkında daha fazla bilgiye ulaşabilirsiniz.

Örnek oturum açma sorgusu

Geçen hafta boyunca en çok istenen ve oturum açılan uygulamaları bilmek istediğinizi düşünelim. Sorgunuz şuna benzer olabilir:

SigninLogs
| where CreatedDateTime >= ago(7d)
| summarize signInCount = count() by AppDisplayName
| sort by signInCount desc

Öte yandan son 14 gün içinde kullanıcılarınızdan kaç tanesine riskli bayrağı eklendiğini görmek istiyorsanız şunu kullanabilirsiniz:

SigninLogs
| where CreatedDateTime >= ago(14d)
| where isRisky == true

Örnek denetim sorgusu

Şimdi de geçen haftanın en yaygın kullanıcı olayını bilmek istediğinizi düşünelim. Şunun gibi bir sorgu kullanabilirsiniz:

AuditLogs
| where TimeGenerated >= ago(7d)
| summarize auditCount = count() by OperationName
| sort by auditCount desc

Etkinlik günlüğü verilerinizden uyarılar oluşturma

Uyarılar sorgulardan çok farklı değildir, temel fark bunların otomatik olarak çalıştırılmasıdır. Sonuç kümesine bir eşik ayarlayabilir ve eşiğe ulaşıldığında bu konuda sizi bilgilendiren bir uyarı tetiklenmesini sağlayabilirsiniz.

  1. Başlamak için Uyarı ayarlama’yı seçin.

    “Uyarı ayarlama” düğmesinin ekran görüntüsü.

    Kural oluştur bölmesi açılır.

    Geçen hafta 10'dan fazla uygulama kullanılırken uyarı almak için aşağıdaki sorguyu çalıştırabilirsiniz.

    SignInLogs
    | where CreatedDateTime >= ago(7d)
    | summarize signInCount = count() by AppDisplayName
    | sort by signInCount desc
    
  2. Bu bir uyarı olduğundan, veriler üzerinde sorgunun ne sıklıkta çalıştırılacağını belirtin. Bir dakika gibi kısa bir sıklık belirtebilirsiniz ama verilerin hacmini ve sorguyu çalıştırmak için gereken süreyi dikkate almanız gerekir.

  3. Uyarıyı tetikleyen eşik sınırlarını belirtmek için uyarı mantığını attayın.

    Alan Değer
    Temel Alınan Sonuç sayısı
    Koşul Büyüktür
    Eşik 10
  4. Uyarı için bir ad, açıklama ve tetiklendiğinde atanacak önem derecesini belirtin. Bu düşük düzeyli bir uyarı olduğundan, Bilgilendirici olarak ayarlayalım.

  5. Uyarıyı alacak eylem grubunu seçin. Bu grup destek ekibiniz, güvenlik ekibiniz veya eşik koşulları gerçekleştiğinde uyarılması gereken başka bir grup olabilir.

  6. İstediğiniz uyarı türünü seçin. Basit e-postadan kısa mesajlara kadar çok sayıda farklı uyarı yöntemi arasından seçim yapabilirsiniz. İsterseniz Azure işlevleri, web kancaları veya mantıksal uygulamaları gibi daha karmaşık Azure kaynaklarına bağlanabilirsiniz.

  7. Uyarınızdan memnun kaldığınızda Uyarı oluştur’u seçerek uyarıyı etkinleştirin.

Bilgilerinizi kontrol edin

1.

Azure İzleyici’de yazabileceğiniz iki soru türü hangileridir?

2.

Belirli bir sırası olmayan n satır almak için hangi sorgu filtresi komutunu kullanabilirsiniz?