Mục tiêu của tôi là phân tích nhật ký mạng (ví dụ: Apache, syslog, kiểm toán bảo mật Active Directory, v.v.) bằng cách sử dụng phát hiện phân cụm / dị thường cho mục đích phát hiện xâm nhập.
Từ nhật ký, tôi có rất nhiều trường văn bản như địa chỉ IP, tên người dùng, tên máy chủ, cổng đích, cổng nguồn, v.v. (trong tổng số 15-20 trường). Tôi không biết nếu có một số cuộc tấn công trong nhật ký và muốn làm nổi bật các sự kiện đáng ngờ nhất (ngoại lệ).
Thông thường, phát hiện dị thường đánh dấu các điểm có xác suất / tần số thấp là dị thường. Tuy nhiên, một nửa các bản ghi nhật ký chứa kết hợp các trường duy nhất. Vì vậy, một nửa số bản ghi trong bộ dữ liệu sẽ có tần suất thấp nhất có thể.
Nếu tôi sử dụng phát hiện bất thường dựa trên phân cụm (ví dụ: tìm cụm và sau đó chọn các điểm cách xa tất cả các trung tâm cụm), tôi cần tìm khoảng cách giữa các điểm khác nhau. Vì tôi có 15-20 trường, nó sẽ là một không gian đa chiều, trong đó các phần tử là tên người dùng, cổng, địa chỉ IP, v.v. Tuy nhiên, khoảng cách Mahalanobis chỉ có thể được áp dụng cho các tính năng phân phối thông thường. Điều này có nghĩa là không có cách nào để tìm khoảng cách giữa các điểm dữ liệu và xây dựng các cụm ...
Ví dụ: hãy tưởng tượng rằng tôi có người dùng Alice, Bob, Carol, Dave, Eve và Frank trong bộ dữ liệu của 20 hồ sơ. Họ có thể có số lần xuất hiện sau trong cơ sở dữ liệu: 2,5,2,5,1,5. Nếu tôi chỉ đơn giản ánh xạ tên người dùng thành số, vd
Alice --> 1
Bob --> 2
Carol --> 3
Dave --> 4
Eve --> 5
Frank --> 6
Sau đó, phân phối xác suất của tôi cho tên người dùng sẽ như sau:
p (1) = 0,1, p (2) = 0,25, p (3) = 0,1, p (4) = 0,25, p (5) = 0,05, p (6) = 0,25
Tất nhiên, đây không phải là một bản phân phối bình thường và điều này cũng không có nhiều ý nghĩa, vì tôi có thể ánh xạ tên người dùng theo bất kỳ cách nào khác ...
Do đó, ánh xạ đơn giản của các trường như tên người dùng, hành động, số cổng, địa chỉ IP, v.v. đến số không mang lại điều gì.
Do đó, tôi muốn hỏi, làm thế nào các trường văn bản được xử lý / các tính năng thường được xây dựng để có thể phát hiện sự bất thường / ngoại lệ không giám sát?
EDIT: cấu trúc dữ liệu.
Tôi có khoảng 100 cột trong bảng cơ sở dữ liệu, chứa thông tin từ Sự kiện Active Directory. Từ 100 cột này, tôi chọn mục quan trọng nhất (theo quan điểm của tôi): SubjectUser, TargetUser, SourceIPaddress, SourcehostName, SourcePort, Computer, DestinationIPaddress, DestinationhostName, DestinationPort, Action, Status, FilePath, EventID, WeekDay, DayTime.
Sự kiện là các sự kiện Active Directory, trong đó EventID xác định nội dung đã được ghi (ví dụ: tạo vé Kerberos, đăng nhập người dùng, đăng xuất người dùng, v.v.).
Mẫu dữ liệu trông như sau:
+ ------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- - + | ID | Chủ đề Người dùng | Mục tiêu Người dùng | NguồnIP + ------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- - + | 171390673 |? | | | | | domaincontroll1.domain.com | 1.1.1.1 | domaincontroll1.domain.com |? | / Xác thực / Xác minh | / Thành công |? | 4624 | 1 | 61293 | + ------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- - + | 173348232 |? | | | | | domaincontroll2.domain.com | 2.2.2.2 | domaincontroll2.domain.com |? | / Xác thực / Xác minh | / Thành công |? | 4624 | 1 | 61293 | + ------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- - + | 180176916 |? | | | | | domaincontroll2.domain.com | 2.2.2.2 | domaincontroll2.domain.com |? | / Xác thực / Xác minh | / Thành công |? | 4624 | 1 | 61293 | + ------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- - + | 144144725 |? | John.Doe | 3.3.3.3 | domaincontroll3.domain.com | 2407 | domaincontroll3.domain.com | 3.3.3.4 | domaincontroll3.domain.com |? | / Xác thực / Xác minh | / Thành công |? | 4624 | 3 | 12345 | + ------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- -------------------------------------------------- - +
Tất cả cùng nhau, tôi có khoảng 150 triệu sự kiện. Các sự kiện khác nhau có các trường khác nhau được điền vào và không phải tất cả các sự kiện đều liên quan đến đăng nhập / đăng xuất của người dùng.