36 1 966KB
1 Tổng quan về Splunk 1.1 Splunk là gì? Splunk là một phần mềm giám sát mạng dựa trên việc phân tích Log. Splunk thực hiện các công việc tìm kiếm, giám sát và phân tích các dữ liệu lớn được sinh ra từ các ứng dụng, các hệ thống và thiết bị hạ tầng. Slunk hỗ trợ hầu hết các loại log trên hệ thống như phần mềm, Firewall, IDS/IPS,… của máy trạm. -
Log là gì?
Log là một thành phần quan trọng của hệ thống mạng. Nó lưu lại chính xác mọi hoạt động của hệ thống, tính trạng hoạt động của hệ thống, các ứng dụng, các thiết bị đã và đang hoạt động trong hệ thống cụ thể như Là các sự kiện như Audit, transaction, intrusion, connections, user activity. -
Vì sao cần phải quản lý log tập chung? Có rất nhiều lý do để quản lý log như Trong một hệ thống có rất nhiều các hệ điều hành, ứng dụng, cơ sở dữ liệu… sinh ra logs. Điều này gây khó khăn trong việc quản lý. Những nội dung log không đồng nhất như mỗi loại nguồn của log lại có giá trị khác nhau Định dạng log không đồng nhất: Có rất nhiều loại nguồn log sử dụng các định dạng khác nhau cho log của chúng, như syslog, databases, SNMP, XML, binary file, dẫn đến khó khăn trong việc chuẩn hóa, tương quan log. Bảo vệ log đảm bảo tính bí mật, toàn vẹn, sẵn sàng. Nguồn nhân lực để phân tích log.
1.2 Các chức năng chính của Splunk Cập nhật dữ liệu: Splunk cập nhật dữ liệu liên tục khi có thay đổi trong thời gian thực. Giúp cho việc phát hiện và cảnh báo chính xác trong thời gian thực. Đánh chỉ mục dữ liệu: Splunk được xây dựng trên Lucence, có thể đánh chỉ mục dữ liệu với một khối lượng dữ liệu rất lớn trong một khoảng thời gian ngắn. Giúp việc tìm kiếm diễn ra nhanh chóng và thuận tiện.
Tìm kiếm thông tin: Splunk làm việc rất tốt với dữ liệu lớn và cập nhật liên tục. Nó cung cấp cơ chế tìm kiếm với một “Splunk Language” cực kỳ thông minh bao gồm các từ khóa, các hàm và cấu trúc tìm kiếm giúp người sử dụng có thể truy xuất mọi thứ, theo rất nhiều tiêu chí từ tập dữ liệu rất lớn. Giám sát an ninh mạng và cảnh báo: Splunk cung cấp cho người dùng một cơ chế cảnh báo dựa trên việc tìm kiếm các thông tin do chính người sử dụng đặt ra. Khi có vấn đề liên quan tới hệ thống phù hợp với các tiêu chí mà người dùng đã đặt ra thì hệ thống sẽ cảnh báo ngay tới người dùng (cảnh bảo trực tiếp qua giao diện, giử Email).
-
Hiện tại Splunk ta có thể đặt cảnh báo Splunk qua:
-
Một Log Event
-
Chạy một script
-
Gửi Email
-
Gửi một HTTP POST
-
Thậm chí có thể gọi điện hoặc gửi tin nhắn qua số điện thoại của người dùng nếu ta cấu hình
Đặc biệt ta có thể sử dụng hỗn hợp các lựa chọn này cùng một lúc. Ví dụ ta có thể vừa gửi một HTTP POST vừa gửi một email.
Khắc phục sự cố: Splunk còn cung cấp một cơ chế tự động khắc phục với các vấn đề xảy ra bằng việc cấu hình để tự động chạy các file Script mà người dùng tự tạo (Ví dụ như: Chặn IP, đòng Port …) khi có các cảnh báo xảy ra.
Ví dụ ta có một script chặn các địa chỉ IP đang thực hiện tấn công DoS vào hệ thống của ta. Ta sẽ thực hiện đếm các request đến từ cùng một địa chỉ IP, nếu số lượng request vượt quá số lượng request cho phép trong 1s thì script sẽ tự chạy, và ta có thể bảo vệ hệ thống của ta khỏi cuộc tấn công đó. Công việc hoàn toàn tự động
Hiển thị thông tin: Splunk cung cấp một cơ chế hiển thị trực quan giúp người sử dụng có thể dễ dàng hình dung về tình trạng của hệ thống, đưa ra các đánh giá về hệ thống. Splunk còn từ động kết xuất ra các báo cáo với nhiều loại định dạng một cách chuyên nghiệp.
Như hình trên ta có thể thấy rằng Trung Quốc thực hiện rất nhiều các cuộc tấn công SSH vào hệ thống của chúng ta. Sau khi tìm kiếm và hiển thị thông tin, ta có thể lưu lại vào Dashboard, ta chọn "Save As" tiếp theo chọn "Dashboard Panel"
Ở đây ta có thể lựa chọn tạo mới Dashboard hay Thêm vào Dashboard đã tồn tại. Các công việc rất đơn giản và dễ dàng Splunk còn tự động kết xuất ra các báo cáo với nhiều loại định dạng một cách chuyên nghiệp. Để xuất một cáo cáo ta cần vào phần Dashboard mà ta muốn xuất báo cáo chọn "Export" Phát triển: Cũng cung cấp các API hỗ trợ việc tạo các ứng dụng trên Splunk của người dùng. Một số bộ API điển hình như Splunk SDK (Cung cấp các SDK trên nền tảng Python, Java, JS, PHP), Shep (Splunk Hadoop Intergration – Đây là sự kết hợp giữa Splunk và Hadoop), Shuttl (Là một sản phẩm hỗ trợ việc sao lưu dữ liệu trong Splunk), Splunkgit (Giúp bạn hình dung dữ liệu tốt hơn), Splunk power shell resource Kit (Bộ công cụ hỗ trợ việc mở rộng và quản lý hệ thống)
Thu thập dữ liệu: Quá trình thu thập dữ liệu với Splunk được nâng cao vì hệ thống của splunk làm cho việc thu thập dữ liệu đơn giản hơn từ nhiều kiểu dữ liệu khác nhau của các hệ thống máy tính. Dữ liệu có thể từ: -
Các tập tin, thư mục
-
Cổng cổng TCP/UDP
-
Các Script
-
Để thêm dữ liệu vào Splunk trên giao diện Web ta có 3 cách như hình sau
-
Upload: Ta có thể upload các tập tin log hay các tập tin log từ máy tính Monitor: Splunk sẽ thực hiện giám sát trên chính máy đang cài Splunk. Với tùy chọn này ta lại có các kiểu như: Tập tin, thư mục; lấy từ HTTP; các cổng TCP/UDP; các Script
-
Forward: Các nguồn dữ liệu sẽ được lấy từ các Splunk Forwarder, ở phần này ta cần phải cấu hình trên server cần lấy dữ liệu và triển khai splunk forwarder như một client. Khi đó Splunk có thể điều khiển được splunk forwarder
Hình 1.1: Vòng tuần hoàn xử lý log của splunk
1.3 Mô hình phân tán cho Splunk Mô hình phân tán cho Splunk có 3 công năng chính: Forwarders, Indexers, Search heads Forwarders :gồm những Agent hoặc logs cài trên thiết bị để Forwarders đến Indexers. Indexers: là nơi lưu trữ logs trên server. Search heads là nơi dùng để tìm kiếm trên Indexers.
Người quản trị chỉ quan tâm đến phần search heads vì chỉ cần 1 plunks và 1 search heads thì ta có thể tìm kiếm dữ liệu ở tất cả các con Indexers. Cơ chế này giúp chúng ta lưu trữ logs trên nhiều các con indexers để khi 1 con indexers bị chết thì vẫn không bị mất data.
Hình 1.2: Mô hình phân tán cho Splunk 1.4 Vì sao lại chọn Splunk. -
-
Trên 7.900 công ty, trong đó có hơn hai phần ba các Fortune 100, sử dụng phần mềm Splunk để đạt được cấp độ mới về khả năng hiển thị. Là một trong những cách nhanh nhất và dễ nhất để đưa dữ liệu ra làm việc. Bạn có nhiều lựa chọn cho dữ liệu quan hệ có cấu trúc phù hợp tốt vào các hàng và cột. Nhưng trước khi Splunk, nhận ra giá trị của dữ liệu phi cấu trúc lớn thô hoặc poly-cấu trúc có thể mất vài tháng thời gian phát triển và kết thúc với một nguy cơ cao của sự thất bại của dự án. Dưới đây là những gì làm cho phần mềm Splunk khác nhau: Tất cả mọi thứ bạn cần đều có đầy đủ trong một giải pháp: Splunk Enterprise và Splunk Cloud thu thập và index bất kỳ dữ liệu máy tính trong thời gian thực. Bây giờ bạn có thể tìm kiếm, trình duyệt, điều hướng, phân tích và hiển thị dữ liệu của bạn từ một nơi.
-
-
-
-
Dễ triển khai, dễ sử dụng: Một người có thể tải về và thực hiện Splunk Enterprise chứ không phải tham gia một đội ngũ những người tháng hoặc thậm chí nhiều năm để triển khai một giải pháp. Bạn có thể kết nối với dữ liệu của bạn trong một vài cú nhấp chuột và dễ dàng tạo ra các biểu đồ mạnh mẽ. Không bao giờ bỏ lỡ một điều gì: Tìm kiếm và phân tích hàng terabyte dữ liệu lịch sử và lập chỉ mục. Sử dụng Splunk Enterprise hoặc Splunk Cloud để theo dõi dữ liệu của bạn cho các xu hướng và mô hình cụ thể của hoạt động hoặc hành vi. Thiết lập các cảnh báo thời gian thực để thông báo cho người dân cần phải biết ngay lập tức. Sử dụng để phân tích Hunk tháng hoặc nhiều năm dữ liệu lịch sử trong Hadoop và NoSQL lưu trữ dữ liệu. Được thiết kế cho người mới và các chuyên gia: Tìm kiếm mạnh mẽ, chuyên sâu và khả năng báo cáo đáp ứng các nhu cầu của người dùng mới làm quen và chuyên gia phân tích như nhau. Dễ dàng tạo biểu đồ cho phép hiểu biết quan trọng của dữ liệu máy tính của bạn. Dữ liệu của bạn được an toàn trong Splunk: Đằng sau tất cả mọi thứ Splunk Enterprise và Splunk Cloud làm là một mô hình bảo mật mạnh mẽ, cung cấp xử lý an toàn dữ liệu, kiểm soát truy cập dựa trên vai trò, auditability và đảm bảo tính toàn vẹn dữ liệu. Hunk kéo dài Kerberos an ninh với các điều khiển truy cập dựa trên vai trò, xác thực pass-through và auditability.
-
Splunk tự động list ra thờ i gian cụ thể của từng sự kiện xảy trong hệ thống mà nó đang giám sát.
-
Cảnh báo trong thờ i gian thực. Ta có thể chỉnh tùy chọn, định nghĩa các loại cảnh báo và có thể chỉ định ai nhận đượ c cảnh báo đó.
-
Splunk cung cấp thông tin tìm kiếm thông minh: Kết quả tìm kiếm được sắp xếp hợp lý, có liên quan với nhau, khả năng hiển thị thời gian thực, phân tích lịch sử các sự kiện đã xảy ra.
-
Splunk có thể lưu trữ khối lượ ng dự liệu lớ n của hệ thống IT và dữ liệu này có thể có cấu trúc bất kỳ, song tốc độ truy vấn dữ liệu nhanh.
Hình 1.3: Các loại data, logs mà Splunk index được.
2. Các giải pháp với Splunk 2.1 Quản lý các ứng dụng: 2.1.1 Giải quyết vấn đề nhanh, giảm thời gian bị downtime: - Giải quyết vấn đề 1 cách nhanh chóng, giảm chi phí và giảm thời gian để điều tra và khắc phục sự cố tới 70%. - Giảm sự phức tạp bằng cách cung cấp cho các nhà phát triển được truy cập vào log của ứng dụng thông qua 1 vị trí trung tâm mà không cần quyền truy cập vào hệ thống đó. - Giám sát toàn bộ môi trườ ng ứng dụng của chúng ta trong thời gian thực để ngăn chặn các vấn đề ảnh hưởng tới người dung, giữ lại log từ các sự kiện định kỳ để ngăn ngừa mất mát. - Nắm được hoạt động của toàn bộ ứng dụng. - Truy vết và giám sát các giao dịch của ứng dụng thông qua các tầng của kiến trúc phân tán và từ nhiều nguồn dữ liệu.
- Phát hiện các bất thường hoặc các vấn đề trong hoạt động, thời gian đáp ứng và chủ động giải quyết chúng trước khi nó ảnh hưởng tới người dung ứng dụng.
2.1.2 Tại sao Splunk lại là giải pháp tốt cho việc quản lý ứng dụng Không giống các công cụ quản lý truyền thống, splunk có thể index, phân tích, khai thác dữ liệu từ bất kỳ tầng ứng dụng nào. Nó cung cấp 1 góc nhìn trung tâm về toàn bộ hệ thống cơ sở hạ tầng của chúng ta. Ngôn ngữ tìm kiếm trong splunk giúp người sử dụng so sánh các sự kiện, các giao dịch và chỉ số hoạt động quan trọng khác. Quyền điều khiển được trao cho nhiều nhóm trong một tổ chức. Những hiểu biết về dữ liệu ứng dụng có thể kết hợp vớ i thông tin có cấu trúc như thông tin user hoặc giá cả thông tin để doanh nghiệp quyết định tốt hơn. 2.1.3 Giám sát cơ sở hạ tầng - Đối với máy chủ: Chủ động giám sát các máy chủ và hiểu biết sâu hơn về hiệu suất, cấu hình, truy cập và các lỗi phát sinh. Tương quan hiệu suất máy chủ, các lỗi và dữ liệu sự kiện với người dùng, ảo hóa và ứng dụng thành phần để ngăn ngừa và khắc phục lỗi. Phân tích và tối ưu hóa chi phí cho việc theo dõi dung lượng máy chủ, báo cáo an ninh trong thời gian thực. - Với hệ thống lưu trữ: Tương quan log, số liệu hiệu suất và các sự kiện từ hệ thống lưu trữ của chúng ta vớ i máy chủ, mạng và dữ liệu từ các ứng dụng để giải quyết các vấn đề và làm tăng sự hài lòng của khách hàng. Sử dụng công cụ phân tích mạnh mẽ để khắc phục sự cố trong thời gian thực và phân tích hiệu suất hệ thống lưu trữ của chúng ta. Giảm thời gian phát triển và cắt giảm chi phí bằng việc dễ dàng tích hợp với các nhà cung cấp dịch vụ lưu trữ, như NetApp và EMC. - Với hệ thống mạng: Giám sát và theo dõi dữ liệu mạng từ các thiết bị không dây, switch, router, firewall và trên những thiết bi khác bằng cách sử dụng SNMP, Netflow, syslog, PCAP,v.v
Chủ động nhận diện các vấn đề an ninh mạng và thực hiện phân tích vấn đề. Tương quan dữ liệu mạng với các ứng dụng, hệ thống lưu trữ và phân tích máy chủ để giữ cho mạng của chúng ta an toàn và hoạt động mọi lúc.
2.1.4 Quản lý ảo hóa Cơ sở hạ tầng ảo hóa tạo ra môi trường năng động, nơi mà tài nguyên máy tính như m áy chủ, storage, phần cứng mang được ảo hóa từ các ứng dụng, hệ điều hành và người sử dụng. Môi trường ảo phức tạp đòi hỏi cách tiếp cận mới với các dịch vụ IT truyền thống như xử lý sự cố hiệu suất, quản lý và phân tích rủi ro. Ứng dụng ảo hóa của Splunk kết hợp sức manh và tính năng của Splunk Enterprise được thiết kế dành riêng cho công nghệ ảo hóa. Nó giúp tăng tốc dữ liệu thu thập được cơ sở hạ tầng ảo. Kết hợp dữ liệu hạ tầng ảo hóa với dữ liệu tầng công nghệ khác sẽ cho 1 góc nhìn bao quát hơn về hệ thống trung tâm dữ liệu.
3.1 Ứng dụng Splunk cho an ninh Với ứng dụng an ninh của Splunk chúng ta có thể sử dụng số liệu thống kê trên bất kỳ dữ liệu nào để tìm kiếm các mối đe dọa tiềm ẩn, trong khi vẫn có thể giám sát liên tục các mối đe dọa bị phát hiện bởi những sản phẩm an ninh truyền thống. Ứng dụng an ninh Splunk chạy ở phía trên Splunk Enterprise và cung cấp công cụ để giám sát, cảnh báo và phân tích cần thiết để xác định và giải quyết các mối đe dọa đã biết và chưa biết. Nó phù hợp với đội ngũ an ninh nhỏ hoặc một trung tâm hoạt động bảo mật. Bảng điều khiển an ninh cung cấp một cách xem hoàn toàn tùy biến với các từ khóa bảo mật quan trọng trong lĩnh vực an ninh domain. Ứng dụng an ninh Splunk chứa 1 thư viện dựng sẵn các số liệu an ninh để hỗ trợ người dùng nhận diện được các tình huống và giám sát liên tục các nguy cơ bảo mật trên domain. Và tất cả thông tin đó đều được thể hiện rõ trên bảng điều khiển Dash board. Tính năng xem xét lại các sự kiện đã xảy ra: Cung cấp chi tiết quy trình công việc phân tích cần thiết để các ưu tiên của vụ việc, bối cảnh của sự cố, loại của nó và các máy chủ có liên quan. Chỉ một click chuột và chúng ta có thể thấy đượ c các dữ liệu thô mà ứng dụng an ninh splunk lưu trữ.
Tính năng bảo vệ tài sản và điều tra nhận dạng mối nguy hiểm cung cấp cho nhà phân tích an ninh khả năng xem xét các mối đe dọa dựa trên một loạt các sự kiện an ninh. Đơn giản chỉ cần chọn một khung thời gian sự kiện hoặc nhiều sự kiện đại diện cho những hoạt động đáng ngờ và Splunk sẽ tự động hiển thị một bản tóm tắt mô hình an ninh. Với 1 cú click chuột, chúng ta có thể xem tất cả các dữ liệu thô được đặt ra theo thứ tự thời gian, đưa ra 1 cái nhìn trực tiếp cho đồng nghiệp hoặc tạo ra một tìm kiếm mới để xem các sự kiện đã xuất hiện này có tiế tục xuất hiện hay không. 4. Các tính năng chính trong hoạt động giám sát của Splunk 4.1 Map Reduce 4.1.1 Map Reduce là gì? MaReduce là một mô hình lập trình được đề xuất bở các kĩ sư Google, được dùng để giúp người dùng xây dựng chương trình. Để thực hiện chương theo mô hình này cần phải có môt nền tảng thực thi. MapReduce giúp xử lý môt lượng lớn dữ liệu trong cluster bằng cách: - Chia dữ liệu thành nhiều block và lưu trữ trên nhiều máy tính, đảm bảo tính toàn vẹn và sẵn sàng của dữ liệu. - Mô hình chia công việc nhỏ ra, chuyển việc tính toán về nơi có dữ liệu và được thực hiện song song. Sau đó kết quả tính toán sẽ được tổng hợp lại. Ý tưởng chuyển tính toán về nơi có dữ liệu thực sự là một ý tưởng đột phá và đã được đề xuất trong một bài báo của nhà khao học máy tính Jim Gray năm 2003 . - Đưa ra mô hình và giao diện tính toán đơn giản 4.1.2 Nguyên tắc hoạt động MapReduce gồm hai thủ tục chính, đó là: map và reduce. Map giúp rút trích thông tin cần thiết từ dữ liệu, qua bước trung gian để trộn và sắp xếp lại kết quả, sau đó tại reduce thì kết quả trung gian sẽ được tính toán và tổng hơp lại cho ra kết quả cuối cùng. MapReduce định nghĩa dữ liệu (có cấu trúc và không cấu trúc) dưới dạng các cặp (key, value). Ví dụ như: Key
Value
Tên file
Nội dung của file
Địa chỉ IP
Số lần truy cập vào trang web từ địa chỉ IP
Từ
Số lần xuất hiện của từ trong đoạn văn bản
MapReduce sẽ áp dụng hàm map vào từng cặp (key, value) trong khối dữ liệu vào, xử lý song song trên các máy tính trong cluster. Hàm map có input là một cặp (k1, v1) và output là danh sách các cặp (k2, v2). Tổng quát: map (k1, v1) -> list (k2, v2) Sau giai đoạn này thì chúng ta có một tập hợp rất nhiều cặp (key, value) thuộc kiểu (k2, v2). MapReduce sẽ nhóm các cặp này với nhau theo từng key, nghĩa là những cặp có cùng key được gộp lại với nhau, tạo thành các cặp trung gian có dạng (k2, list (v2)) Sau đó MapReduce sẽ áp dụng hàm reduce vào từng nhóm trung gian, xử lý song song với nhau, cho ra output là danh sách các cặp (k3, v3). reduce (k2, list (v2)) -> list (k3, v3) -
Ví dụ với bài toán đếm từ sau: Input: một đoạn văn bản Output: đếm số lần xuất hiện của từng từ đoạn văn đó
Hình 4.1: Mô hình hoạt động của Map-Reduce với bài toán đếm
MapReduce cung cấp giao diện lập trình đơn giản và cố gắng che đi những xử lý phức tạp như: -
Lập lịch chạy các thủ tục Map/Reduce trên các máy tính. Quản lý hỏng học (ví dụ như tự động khởi động các thủ tục M/R đang chạy dở thì máy hỏng, quản lý dữ liệu khi máy hỏng). Quản lý giao tiếp giữa các máy tính.
4.2 Hướng dẫn tìm kiếm và sử dụng Splunk hiệu quả. Chìa khóa để tạo một câu lệnh tìm kiếm hiệu quả đó chính là tận dụng lợi thế của index. Index của Splunk là một kho từ lớn và nhân tố ảnh hưởng tới kết quả tìm kiếm, đó là có bao nhiêu event đượ c lấy ra từ disk. 4.2.1 Vài điều lưu ý khi tìm kiếm. - Splunk không phân biệt chữ hoa, thường. Các từ ngữ tìm kiếm như error, ErRoR, ERROR đều tr ả về k ết quả tìm kiếm như nhau. - Splunk truy vấn dữ liệu tại một thời gian cụ thể. - Có thể kết hợp các từ khóa tìm kiếm với Bolean (AND , OR ,NOT..) hoặc nhóm các điều kiện vớ i nhau để tìm kiếm hiệu quả hơn. Bolean khi sử dụng phải viết hoa. - Từ khóa tìm kiếm phải nguyên 1 từ, không phải 1 phần của từ. Tìm kiếm từ khóa “foo” sẽ không khớp với kết quả “foobar”. - Từ khóa là những từ được bao quanh bởi khoảng cách hoặc dấu chấm câu. Ví dụ : 1 đoạn log 2014-02-14 Hello world thì từ khóa được index là 2014,02,14,Hello,world. - Con số chưa phải là định dạng số cho tới khi nó được phân tích tại thời điểm tìm kiếm. - Tên của các field phải viết thường. Ví dụ: host=hoasen sẽ hoạt động, Host=hoasen sẽ không hoạt động.