Splunk Splunk 7.x Fundamentals 2 – Module 6: Correlating Events

pluto

Internship/Fresher
Sep 8, 2020
51
11
8
SPLUNK FUDAMENTALS 2

Splunk 7.x Fundamentals 2 – Module 6: Correlating Events

Mục tiêu Module:
  • Xác định transaction
  • Nhóm các sự kiện bằng cách sử dụng field
  • Nhóm các sự kiện sử dụng field và time
  • Tìm kiếm với transactions
  • Xác định khi nào sử dụng transaction, khi nào sử dụng stats.

1. What is a Transaction?
Transaction là nhóm các sự kiện(event) liên quan kéo dài trong một khoảng thời gian. Có thể tìm kiếm các sự kiện liên quan và nhóm chúng thành một sự kiện duy nhất, được gọi là transaction (đôi khi được gọi là phiên-session).

Transaction có thể bao gồm:

  • Các sự kiện khác nhau từ cùng một source và cùng một host.
  • Các sự kiện khác nhau từ các source khác nhau từ cùng một host.
  • Các sự kiện tương tự từ các host khác nhau và các source khác nhau.
Ví dụ:

  • Các sự kiện liên quan đến một phiên mua hàng trên một cửa hàng trực tuyến có thể kéo dài qua: một máy chủ ứng dụng, một cơ sở dữ liệu và công cụ thương mại điện tử
  • Một email có thể tạo ra nhiều sự kiện khi nó đi qua hàng đợi khác nhau
  • Mỗi sự kiện trong nhật ký lưu lượng mạng đại diện cho một người dùng tạo một yêu cầu http duy nhất
  • Việc truy cập một trang web thường tạo ra nhiều yêu cầu http (HTML, JavaScript, CSS files , flash, image, v.v.)
transaction Command
Transaction là nhóm các sự kiện(event) liên quan kéo dài trong một khoảng thời gian. Có thể tìm kiếm các sự kiện liên quan và nhóm chúng thành một sự kiện duy nhất, được gọi là transaction (đôi khi được gọi là phiên-session).

Cú pháp : transaction field-list . Trong đó:
  • field-list : có thể là một trường hoặc danh sách các trường.
  • Các sự kiện sẽ được nhóm thành các transaction dựa trên giá trị của các trường này.
  • Nếu nhiều trường (field) được chỉ định và tồn tại mối quan hệ giữa các trường (field) này, thì các sự kiện có giá trị trường liên quan được nhóm thành một giao dịch duy nhất.
  • Các điều kiện ràng buộc: maxspan, maxpause, startswith, endswith

Xét ví dụ sau: Hiển thị các giao dịch của khách hàng trong cửa hàng trực tuyến trong 60 phút qua.
image001.jpg


Kết quả trên hiển thị một số sự kiện có cùng giá trị JSESSIONID (SD0SL10FF3ADFF4950). Tuy nhiên, rất khó để:
  • Xem các sự kiện dưới dạng một nhóm(các sự kiện bên trên hiển thị dưới dạng nhỏ lẻ thành từng ô kết quả).
  • Có được cái nhìn tổng quan về những gì đang xảy ra với những chuỗi sự kiện này.
  • Phát hiện ra nếu có các sự kiện khác nằm rải rác trong tập kết quả.
1.2 Example

Xét ví dụ 1 sau đây: Nhóm các sự kiện trên Buttercup Games lại với nhau dựa trên giá trị JSESSIONID trong 15 phút.


1609218744536.png
image003.jpg




Lệnh transaction tạo ra một sự kiện duy nhất từ một nhóm các sự kiện. Các sự kiện này phải có cùng một giá trị trong một trường cụ thể, ví dụ: có thể dễ dàng xem các sự kiện cho JSESSIONID=SD0SL10FF3ADFF4950. Các transaction có thể qua nhiều host như web server hoặc application servers.

Xét ví dụ sau đây: Từ kết quả của ví dụ 1, hiển thị các transaction các event có lỗi 404 trong 60 phút.
1609219344373.png

1609219354495.png

Sau khi sử dụng lệnh transaction nhóm các sự kiện trong ví dụ trên, ta có thể sử dụng lệnh “search” để lọc các kết quả có status=404. Ngoài ra, để hỗ trợ hiển thị, sử dụng lệnh “highlight” , theo sau là các giá trị muốn làm nổi bật trong transaction.





Xét ví dụ 3: Đối với những lần failed password, hiển thị những lần failed login khác nhau từ cùng một IP trong 60 phút.
1609219398534.png

1609219403989.png




1.3 Specific Fields
Lệnh transaction tạo ra các trường bổ sung, chẳng hạn như:
- duration – giá trị khoảng thời gian giữa thời gian sự kiện đầu tiên và sự kiện cuối cùng trong transaction.

- eventcount - số lượng sự kiện trong transaction.




Trường “duration”:

image009.jpg






Trường eventcount:
image011.jpg






Xét ví dụ: Nhóm các kiện theo JSESSIONID, sau đó đưa ra bảng gồm JSESSIONID, các hoạt động trong cả phiên và thời gian tồn tại của phiên.
image013.jpg





1.4 maxspan/maxpause

Trong trường hợp muốn giới hạn thời gian giữa sự kiện đầu và sự kiện cuối, hoặc giới hạn khoảng thời gian giữa hai sự kiện liên tiếp, có thể sử dụng option maxspan hoặc maxpause. Xét ví dụ sau:
image015.jpg






Xét ví dụ: nhóm các sự kiện theo clientip, trong đó maxspan=10m, maxpause=1m, sau đó tạo bảo gồm clientip, duration, action.


Không sử dụng maxspan và maxpause:
image017.jpg


Quan sát kế quả tìm kiếm trên, trong một transaction có 2 giá trị JSESSIONID khác nhau. Nguyên trong cùng một clientip, có thể có nhiều user hoặc user sử dụng nhiều máy khác nhau để truy cập, dẫn đến có nhiều JSESSIONID trong cùng một clientip.
image019.jpg






Có sử dụng maxspan và maxpause:
image021.jpg


image023.jpg




Sau khi sử dụng thêm maxspan và maxpause, đã đưa ra được chính xác các transaction cho từng phiên truy cập.




1.5 startswith/endswith
Xét ví dụ sau: Xác định khoảng thời gian đã dành để hoàn tất giao dịch mua của khách hàng trong cửa hàng trực tuyến trong 24 giờ.

Để hình thành transaction dựa trên các terms, giá trị trường(field values) hoặc evaluations, có thể sử dụng các tùy chọn startswith và endswith.

Trong ví dụ này:

  • Sự kiện đầu tiên trong transaction là addtocart
  • Sự kiện cuối cùng trong transaction là purchase
Không sử dụng startwith và endswith:
image025.jpg


image027.jpg






Có sử dụng startwith và endswith:
image029.jpg


image031.jpg








2. Investigating with Transactions


Xét ví dụ sau: Tìm các email đã bị từ chối (REJECT) trong 24 giờ qua.
image033.jpg





Transaction hữu ích khi một sự kiện(single event) không cung cấp đủ thông tin. Ví dụ này tìm kiếm nhật ký email cho thuật ngữ “REJECT”, các sự kiện trên không cung cấp nhiều thông tin về việc reject.

Do đó, sử dụng transaction để nhóm các sự kiện theo mid( Message ID- ID của nội dung email ) , dcid (Delivery Connection ID- ID của kết nối người gửi) , icid (Incoming Connection ID-ID của kết nối người nhận).

image035.jpg




Sau khi sử dụng lệnh transaction, các sự kiện được nhóm lại với nhau, do đó có thể dễ dàng điều tra trong trường hợp bị sự cố.


3. transaction vs. stats:


Xét ví dụ sau: Thống kê hành động mua sắm online trong một năm.




Sử dụng lệnh transaction:
1609219773819.png








Sử dụng lệnh stats:
1609219787419.png







Hai cách trên đều cùng trả về một kết quả như sau:
image039.jpg






Tuy nhiên có một số khác biệt như sau:

  • Sử dụng transaction mất 23.381 giây.
  • Sử dụng stats mất 2.007 giây.
Lệnh stats nhanh hơn lệnh transaction , nguyên nhân vì khi sử dụng lệnh transaction, Splunk sẽ tìm các sự kiện, sau đó nhóm các sự kiện tương đồng về cùng một nhóm, do đó sẽ mất nhiều thời gian.



Xét hai câu search sau:



Sử dụng transaction:
1609219833232.png






Sử dụng stats:

1609219848184.png



Khác biệt giữa hai câu search trên:
  • Sử dụng transaction mất 6.163 giây.
  • Sử dụng stats mất 4.643.
  • Sử dụng transaction: giới hạn count là 1000, do đó trong bảng thống kê sẽ chi thành hai hàng trong trường hợp giá trị thống kê vượt quá 1000.
Từ hai ví dụ trên, kết luận như sau:

  • Trong trường hợp cần thống kê, nên sử dụng lệnh stats để tối ưu thời gian tìm kiếm.
  • Trong trường hợp như: cần điều tra sự cố, theo dõi phiên,…. , sử dụng lệnh transaction.
 

About us

  • Securityzone.vn là một trang web chuyên về an ninh mạng và công nghệ thông tin. Trang web này cung cấp các bài viết, tin tức, video, diễn đàn và các dịch vụ liên quan đến lĩnh vực này. Securityzone.vn là một trong những cộng đồng IT lớn và uy tín tại Việt Nam, thu hút nhiều người quan tâm và tham gia. Securityzone.vn cũng là nơi để các chuyên gia, nhà nghiên cứu, sinh viên và người yêu thích an ninh mạng có thể trao đổi, học hỏi và chia sẻ kiến thức, kinh nghiệm và giải pháp về các vấn đề bảo mật trong thời đại số.

Quick Navigation

User Menu