Amacım izinsiz giriş tespiti amacıyla kümeleme / anormallik algılama kullanarak ağ günlüklerini (ör. Apache, syslog, Active Directory güvenlik denetimi vb.) Analiz etmektir.
Günlüklerden IP adresi, kullanıcı adı, ana bilgisayar adı, hedef bağlantı noktası, kaynak bağlantı noktası ve benzeri gibi çok fazla metin alanım var (toplam 15-20 alanda). Günlüklerde bazı saldırılar olup olmadığını bilmiyorum ve en şüpheli olayları (aykırı değerler) vurgulamak istiyorum.
Genellikle, anomali tespiti, düşük olasılık / frekansa sahip noktaları anomali olarak işaretler. Ancak, günlük kayıtlarının yarısı benzersiz alan bileşimi içerir. Bu nedenle, veri kümesindeki kayıtların yarısı mümkün olan en düşük frekansa sahip olacaktır.
Kümelemeye dayalı bir anormallik algılaması kullanırsam (örneğin, kümeleri bul ve sonra tüm küme merkezlerinden uzak olan noktaları seç), farklı noktalar arasındaki mesafeyi bulmam gerekir. 15-20 alanım olduğu için, boyutların kullanıcı adı, bağlantı noktası, IP adresi vb. Olduğu çok boyutlu bir alan olacak. Ancak Mahalanobis mesafesi yalnızca normal dağıtılmış özelliklere uygulanabilir. Bu, veri noktaları ile kümeler oluşturmak arasında mesafe bulmanın bir yolu olmadığı anlamına gelir ...
Örneğin, 20 kaydın veri kümesinde Alice, Bob, Carol, Dave, Eve ve Frank kullanıcılarına sahip olduğumu düşünelim. Veritabanında şu sayıda meydana gelebilirler: 2,5,2,5,1,5. Kullanıcı adlarını yalnızca sayılarla eşleştirirsem, ör.
Alice --> 1
Bob --> 2
Carol --> 3
Dave --> 4
Eve --> 5
Frank --> 6
Ardından, kullanıcı adları için olasılık dağılımım aşağıdaki gibi görünecektir:
p (1) = 0.1, p (2) = 0.25, p (3) = 0.1, p (4) = 0.25, p (5) = 0.05, p (6) = 0.25
Tabii ki, bu normal bir dağılım değil ve bu da mantıklı değil, çünkü kullanıcı adlarını farklı bir şekilde eşleyebilirim ...
Bu nedenle, kullanıcı adı, eylem, bağlantı noktası numarası, IP adresi vb. Alanların sayılara basit bir şekilde eşlenmesi hiçbir şey getirmez.
Bu nedenle, metin alanlarının genellikle denetlenmeyen anomali / aykırı algılamayı mümkün kılmak için nasıl işlendiğini / yapılandırıldığını sormak isterim?
EDIT: veri yapısı.
Veritabanı tablosunda, Active Directory Olaylarından bilgi içeren yaklaşık 100 sütun var. Bu 100 sütundan en önemlisini (bakış açımdan) seçiyorum: SubjectUser, TargetUser, SourceIPaddress, SourceHostName, SourcePort, Bilgisayar, DestinationIPaddress, DestinationHostName, DestinationPort, Action, Status, FilePath, EventID, WeekDay, DayTime.
Olaylar, EventID'nin günlüğe kaydedilenleri tanımladığı Active Directory olaylarıdır (örn. Kerberos bileti oluşturma, kullanıcı oturum açma, kullanıcı oturum kapatma vb.).
Veri örneği aşağıdaki gibidir:
+ ------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- - + | ID | SubjectUser | TargetUser | SourceIPaddress | SourceHostName | SourcePort | Bilgisayar | HedefIPaddress | DestinationHostName | DestinationPort | Eylem | Durum | DosyaYolu | EventID | WeekDay | DayTime | + ------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- - + | 171390673 |? |? |? |? |? | domaincontroller1.etkialanı.com | 1.1.1.1 | domaincontroller1.etkialanı.com |? | / Kimlik Doğrulama / Doğrulama | / Başarı |? | 4624 | 1 | 61293 | + ------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- - + | 173348232 |? |? |? |? |? | domaincontroller2.domain.com | 2.2.2.2 | domaincontroller2.domain.com |? | / Kimlik Doğrulama / Doğrulama | / Başarı |? | 4624 | 1 | 61293 | + ------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- - + | 180176916 |? |? |? |? |? | domaincontroller2.domain.com | 2.2.2.2 | domaincontroller2.domain.com |? | / Kimlik Doğrulama / Doğrulama | / Başarı |? | 4624 | 1 | 61293 | + ------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- - + | 144144725 |? | John.Doe | 3.3.3.3 | domaincontroller3.etkialanı.com | 2407 | domaincontroller3.etkialanı.com | 3.3.3.4 | domaincontroller3.etkialanı.com |? | / Kimlik Doğrulama / Doğrulama | / Başarı |? | 4624 | 3 | 12345 | + ------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- - +
Hep birlikte yaklaşık 150 milyon etkinliğim var. Farklı olayların doldurulmuş farklı alanları vardır ve tüm olaylar kullanıcı oturum açma / oturum kapatma işlemiyle ilgili değildir.