DOI VOI DOANH NGHIEP VUA VA NHO
CHƯƠNG 3. CÔNG CỤ GIÁM SÁT AN NINH MẠNG SPLUNK
3.1. Giới thiệu
Splunk là một nền tảng phần mềm đề tìm kiếm, phân tích và trực quan hóa đữ liệu do máy tạo ra được thu thập từ các thành phần của cơ sở hạ tầng hoặc doanh
nghiệp CNTT.
Splunk có sẵn trong ba phiên bản: Splunk Light, Splunk Enterprise và Splunk
Cloud. Trong đó phiên bản Splunk Light đã bị ngừng hoạt động năm 2021 [28]. Trong nghiên cứu nay sẽ sử dụng ban Splunk Enterprise.
3.2. Chức năng chính
Thu thập và Lập chỉ muc (Collect and Index). Splunk cung cấp một số cách dé nhận dữ liệu từ nguồn dữ liệu máy. Cách phô biến nhất là sử dụng một phần mềm được cài đặt trên máy cần thu thập dữ liệu. Ngoài ra còn có Splunk HTTP Event
Collector và Splunk DBConnect. Dữ liệu được thu thập được phân tích cú pháp và lập chỉ mục.
Tìm kiểm và Diéu tra (Search and Investigate). Splunk cung cấp Ngôn ngữ xử lý tìm kiếm (SPL) dé truy van dữ liệu được lập chỉ mục.
Add Knowledge. Splunk cung cấp nhiều công cụ như tra cứu, trích xuất trường,
tag, loại sự kiện, hành động quy trình công việc và mô hình dữ liệu.
Báo cáo và Trực quan hóa (Report and Visualize). Splunk cung cấp khả năng tạo
các báo cáo và Dashboards.
Giám sát và Cảnh báo (Monitor and Alert). Splunk cho phép giám sát hệ thống và kích hoạt cảnh báo dựa trên các ngưỡng đã đặt. Khi cảnh báo được kích hoạt, có thể cảnh báo dé gửi chúng qua email, tạo một log event, ... [29].
3.3. Thành phần
Splunk được chia thành 3 thành phần xử lý chính gồm Indexer, Search Head và
Forwarder [30].
Forwarder (Bộ chuyền tiếp) lay dữ liệu và sau đó chuyên tiếp dữ liệu, thường là đến bộ chỉ mục. Các Forwarder chỉ yêu cầu ít tài nguyên của máy cần thu thập dữ liệu.
Bộ chỉ mục lập chỉ mục dữ liệu đến mà nó thường nhận được từ Forwarder. Bộ lập chỉ mục chuyển đôi di liệu thành các sự kiện và lưu trữ các sự kiện đó trong một chỉ mục. Bộ chỉ mục cũng tìm kiếm dữ liệu được lập chỉ mục dé đáp ứng các yêu cầu tìm kiếm từ đầu tìm kiếm. Để đảm bảo tính khả dụng của đữ liệu cao và bảo vệ khỏi mất dữ liệu hoặc chi dé don giản hóa việc quản lý nhiều bộ chỉ mục, có thể triển khai nhiều bộ chỉ mục trong cụm bộ chỉ mục.
Search Head dé quản lý tìm kiếm. Search Head tương tác với người dùng, hướng các yêu cầu tìm kiếm đến một tập hợp indexer và hợp nhất các kết quả lại cho người dùng. Dé đảm bảo tính sẵn sàng cao và đơn giản hóa việc mở rộng theo chiều ngang, có thê triển khai nhiều Search Head trong cụm Search Head.
Vũ Thu Trang — B19DCA T196 21
oO
Đồ án tốt nghié
Search Head
Indexer
Forwarders
Hình 3.1. Các thành phan của Splunk
Monitor Input FIFO Input UDP Input TCP Input = Scripted InputEge,
t 4 † † † ù
3.3.1. Indexer
Parsing Pipeline
* source, event typing
* character set normalization
* line termination identification
* timestamp identification / normalization, event boundary identification
* regex transforms, parse-time field creation
|
Indexing Pipeline
* segmentation + index building
index files
Hình 3.2. Quy trình don giản của việc lập chỉ mục
Vũ Thu Trang — B19DCA T196 22
Đồ án tốt nghiệp
Việc xử lý sự kiện xảy ra trong hai giai đoạn chính, phân tích cú pháp (parsing)
và lập chỉ mục (indexing). Tất ca dir liệu đi vào Splunk Enterprise đều đi qua đường ống phân tích cú pháp (parsing pipeline) đưới dang các khối lớn (10.000 byte). Trong quá trình phân tích cú pháp, Splunk Enterprise chia các khối này thành các sự kiện mà nó chuyên đến đường ống lập chỉ mục (indexing pipeline), nơi dién ra quá trình xử lý cuối cùng [31].
Trong khi phân tích cú pháp, Splunk Enterprise thực hiện một số hành động, bao gồm [31]:
Trích xuất một tập hợp các trường mặc định cho từng sự kiện, bao gồm host,
source, va sourcetype.
Dinh cấu hình mã hóa bộ ký tự. Splunk Enterprise theo mặc định sẽ áp dụng mã
hóa UTF-8 cho nguon. Nếu nguồn không sử dụng mã hóa UTF-8 hoặc là tệp không
phải ASCII, phần mềm Splunk sẽ có gắng chuyền đổi dữ liệu từ nguồn sang mã hóa UTF-8. Ngoài ra, ta có thé chỉ định bộ ký tự.
Xác định điểm cuối dòng băng cách sử dụng quy tắc ngắt dòng.
Xác định dấu thời gian hoặc trong trường hợp sự kiện không có thông tin về dấu
thời gian, Splunk Enterprise sẽ cô gắng gán giá trị dấu thời gian cho sự kiện tại thời điểm lập chỉ mục. Đồng thời xử lý dấu thời gian, Splunk xác định ranh giới sự kiện.
Có thé ân danh các phan của trường bí mật trong sự kiện (chăng hạn như số thẻ tín dung) dé bảo vệ quyền riêng tư đồng thời cung cấp đủ dit liệu còn lại dé sử dụng
trong theo dõi sự kiện.
Trong khi lập chỉ mục, Splunk Enterprise thực hiện xử lý bổ sung, bao gồm:
Chia tất cả các sự kiện thành các segments để sau đó có thé tìm kiếm được.
Người dùng có thé xác định mức độ phân đoạn sự kiện, dựa trên ảnh hưởng đến tốc độ lập chỉ mục và tìm kiếm, khả năng tìm kiếm. Các segment có thé được phân loại thành chính hoặc phụ. Ví dụ: địa chỉ IP 192.0.2.223 là một segment chính. Nhưng có thể được chia thành các segment nhỏ, chang hạn như 192 cũng như các nhóm segments
phụ như 192.0.2 [32].
Xây dựng cấu trúc đữ liệu chỉ mục.
Ghi dữ liệu thô và các tệp chỉ mục vào đĩa.
*Một số bộ chỉ mục mặc định:
® main: Đây là chỉ mục Splunk Enterprise mặc định. Tất cả dữ liệu đã xử lý
được lưu trữ ở đây trừ khi có quy định khác.
© __internal: Lưu trữ nhật ký nội bộ và số liệu xử lý của Splunk Enterprise.
© audit: Chita các sự kiện liên quan đến giám sát thay đổi hệ thống tệp, kiểm tra và tất cả lịch sử tìm kiếm của người dùng.
3.3.2. Forwarder
Splunk Enterprise có ba loại Forwarder [33]:
Vũ Thu Trang — B19DCA T196 23
Đồ án tốt nghiệp
© Universal Forwarder chỉ chứa các thành phan cần thiết dé chuyển tiếp dit liệu, không hơn không kém. Nói chung, nó là công cụ tốt nhất dé gửi dữ liệu tới
Indexer.
© Heavy Forwarder là một phiên bản Splunk Enterprise đầy đủ có thể lập chi mục, tìm kiếm, thay đổi và chuyền tiếp đữ liệu. Một số tính năng nhất định từ phiên ban Splunk Enterprise đầy đủ bị tắt dé giảm mức sử dụng tai nguyên hệ thống.
© Light Forwarder cũng là một phiên ban Splunk Enterprise đầy đủ, thậm chí còn có nhiều tinh năng bị tắt hơn dé đạt được mức sử dụng tài nguyên nhỏ nhất có thé.
Không được dùng nữa ké từ Splunk Enterprise phiên bản 6.0, light forwarder được thay thé bằng Universal Forwarder cho hau hết các mục đích.
* Universal Forwarder:
Thu thập dữ liệu từ nhiều nguồn khác nhau sau đó gửi dữ liệu đó đến máy trién
khai Splunk Enterprise.
Universal Forwarder là miễn phí, sử dụng ít tài nguyên phần cứng hơn so với các sản phâm Splunk khác nhưng hạn chế của việc sử dung Universal Forwarder là nó chỉ chuyền tiếp dữ liệu chưa được phân tích cú pháp.
Trong nghiên cứu, sử dung Universal Forwarder version 9.1.1. Sau đây là hướng
dẫn cài đặt và cấu hình Universal Forwarder trên Windows [34].
Đầu tiên download Universal Forwarder từ đường link sau:
https://Awww.splunk.com/en_us/blog/learn/splunk-universal-forwarder.html
Chay file cài đặt Universal Forwarder -> Chọn đồng ý với License -> Customize
Option. Sau đó lựa chon đường dẫn thư mục -> Next. Mục cài dat Universal
Forwarder sử dụng tải tài khoản, lựa chọn Local System.
The user you install UniversalForwarder as determines what data it has access to. The Managed Service Account and Group-Managed Service Account are supported by CLI only.
Install UniversalForwarder as:
@ Local System
Installs UniversalForwarder using local system account. UniversalForwarder can access all data on or forwarded to this machine.
(©) Domain Account
Installs UniversalForwarder with domain account you provide. This lets you collect logs and metrics from remote machines as well as local and forwarded data. You can set the account in the next dialog, as a local administrator or a reduced privilege user.
© Virtual Account
Installs UniversalForwarder using a virtual account. UniversalForwarder can access all data on or forwarded to this machine.
Hinh 3.3. Cai dat Universal Forwarder su dung Local System account
Vũ Thu Trang — B19DCA T196 24
Đồ án tốt nghiệp
¡„ UniversalForwarder Setup — x
Windows Event Logs Performance Monitor
“| Application Logs x| CPU Load
| Security Log “| Memory
| System Log Disk Space Forwarded Events Log Network Stats Setup Log
Active Directory Monitoring
Enable AD monitoring Path to monitor
| File... Directory...
coe sot | [ree _|
Hình 3.4. Lựa chon gửi dữ liệu đến máy triển khai Splunk Enterprise
@ UniversalForwarder Setup = x
splunk
Create credentials for the administrator account. The password must contain, at a minimum, 8 printable ASCH characters.
Username:
admin
Generate random password Password:
[eeeeceee
Confirm password:
|seeeseeôô
Cancel Back Next
Hình 3.5. Tạo tài khoản admin
Tiếp theo nhập địa chỉ của nơi nhận dữ liệu, ở đây là máy cài đặt Splunk Enterprise có địa chi IP là 192.168.96.129 với công nhận dữ liệu là 9997, công mặc
định.
Vũ Thu Trang — B19DCA T196 25
Đồ án tốt nghiệp
fica UniversalForwarder Setup — x
splunk
T you intend to use a Splunk receiving indexer to configure this UniversalForwarder, please specify the host or IP, and port (default port is 9997). This is an optional step. However, UniversalForwarder needs either a deployment server or receiving indexer in order to do anything.
Receiving Indexer
Hostname or IP
|132. 168.96. 129 : 19997]
Enter the hostname or IP of your receiving indexer, default is 9997
e.g. ds. spluink.com
coe =
Hình 3.6. IP va port cua may nhận đữ liệu từ Universal Forwarder
Nhấn install dé cài đặt Universal Forwarder. Sau đó nhấn finish.
Truy cap vao giao dién Splunk, vao Setting -> Forwarding and Receiving ->
Configure receiving -> New Receiving Port.
‘Showing 1-1 of 1 tem
Listen on this port ® Status ¢ Actions
9997 Enabled | Disable Delete
Hình 3.7. Tao moi Receiving Port
Truy cập vào giao diện Search&Report, nhập vào 6 tìm kiếm index=_internal, dữ liệu thu được từ Windows được hién thị.
10/22/23 10-22-2023 20:08:59.942 +0700 INFO Metrics - group=queue, name=execprocessorinternalq, max_size_kb=205300, current_size kb=9, current_size=9, largest
6:08:59.942 AM _size=6, smallest_size=0 Event Actions ¥
Type ~~ Field
Hình 3.8. Log sự kiện từ Windows
Vũ Thu Trang — B19DCA T196 26
Đô án tôt nghiệ
3.3.3. Search Head
Various communications occur between cluster members
Deployer
Each cluster member * Captain role can move communicates with the search peers between cluster members.
Search Peers
Hình 3.9. Kiến trúc một cụm Search Head nhỏ
Một cụm search head là một nhóm các search head Splunk Enterprise đóng vai
trò là tài nguyên trung tâm đề tìm kiếm.
Một máy trong cụm sẽ đóng vai trò là đội trưởng (captain), điều phối các hoạt động lập kế hoạch công việc, thực hiện các công việc tìm kiếm, cung cấp kết quả... Vai trò này có thé thay đôi với các máy khác trong cụm [35].
Với doanh nghiệp nhỏ và vừa có thể triển khai một search head và nhiều indexer
và forwarder [36].
Vũ Thu Trang — B19DCA T196 27
Đô án tôt nghiệ
Small Enterprise Deployment
Less than 100 users
209,
Search Head Single search head
Indexers 2 to 3 indexers
Forwarders 100 to 200 forwarders
Hình 3.10. Triển khai Splunk Enterprise trong doanh nghiệp nhỏ Khi nhu cầu tăng lên có thé tăng thêm Indexer dé đáp ứng.
3.4. Hoat động
Splunk CLI Splunk Web Interface | Other interfaces
Splunk > Engine
Scheduling / F =ane Reporting =| Knowledge
Distributed Distributed
Search Search a Search
Deployment Server
Data Routing, Cloning, and Load Balancing r= = =| [#]
nh nn E23 to
Monitor Files | = Detect File owe rie canes | Network Ports = Coe
Hinh 3.11. Kién tric tong quan cua Splunk
Splunk thu thap nhật ky bằng cách giám sát tệp, phat hiện các thay đổi của tệp, lắng nghe trên công hoặc chạy script dé thu thập dữ liệu nhật ky — tất cả những việc
này đều được thực hiện bởi trình chuyền tiếp Splunk forwarder.
Vũ Thu Trang — B19DCA T196 28
Đồ án tốt nghiệp
Cơ chế lập chỉ mục, bao gồm một hoặc nhiều indexer, xử ly dtr liệu hoặc có thể
nhận dữ liệu được xử lý trước bởi forwarder.
May chủ triển khai (deployment server) quản ly indexer và search head, cấu hình và chính sách trong toàn bộ quá trình triển khai Splunk.
Quyền truy cập và kiểm soát của người dùng được áp dụng ở cấp độ indexer — mỗi indexer có thé được sử dụng cho một kho dữ liệu khác nhau, có thể có các quyền
của người dùng khác nhau.
Search head cung cấp chức năng tìm kiếm theo yêu cầu và cũng hỗ trợ các tìm kiếm theo lịch trình do báo cáo tự động khởi tạo.
Công cu Splunk có các thành phần bé sung khác của quan ly dit liệu, báo cáo và lên kế hoạch, và cảnh báo. Toàn bộ công cụ Splunk được tiếp xúc với người dùng thông qua giao diện người dùng, giao diện dòng lệnh hoặc API tích hợp với nhiều hệ thống bên ngoài [37].
Splunk cai đặt một quy trình trên máy chủ của người dùng, splunkd. Splunkd là một máy chủ C/C++ phân tán có chức năng truy cập, xử lý và lập chỉ mục, cũng như
xử lý yêu cầu tìm kiếm [38]. Splunkd có khả năng xử lý số lượng lớn dữ liệu phát trực tuyến và lập chỉ mục cho phân tích thời gian thực trên một hoặc nhiều đường ống.
Mỗi đường ống đơn bao gồm một loạt các bộ vi xử lý, giúp xử lý dữ liệu nhanh hơn và hiệu quả hơn. Danh sách dưới đây là các khối kiến trúc splunk [39]:
© Pipeline: Day là một quá trình cấu hình đơn luồng duy nhất nằm trong
splunk.
© Bộ vi xử lý: Chúng là những hàm số có thé tái sử dụng cá nhân hoạt động trên dit liệu đi qua một đường ống. Đường ống trao đổi dữ liệu với chúng
thông qua một hàng đợi.
Web Browser CLI
Splunk> noursago::1 AND 192.168.100
Y | ằ Live Spunks can
| —> trigger alerts
Saved Searches ằ Email, RSS, Scripts
ằ Live Searches —> ằ Web & Application server
ằ Data inputs Python, AJAX, CSS, XSLT, XML
>ằ Processing properties ằ C++, Pythonextensions
| bỏi | — | ›_ Custom data inputsằ Custom processing
ằ Distributed indexing
ằ Distributed search — > Data input, processing, indexing & search
› C++, Web Services
ằ Stores raw,
<> compressed data and indexers
ằ Files, SAN or NAS
ì OUrCceE splunk splunk
splunk
Mounted Files Remote Files Network Ports Databases Distributed
⁄ NFS/SMB ⁄ rsync ⁄ UDP/TCP ‹ SQLYODBC Data Access CIFS/AFP scp/ftp/rep x syslog/ng ⁄ SSL/TCP NAS/SAN £ bath file £ log4j/log4php
⁄ FIFO copy JMXJMS SNMP
Hình 3.12. Kiến trúc chỉ tiết của Splunk
Vũ Thu Trang — B19DCA T196 29
Đồ án tốt nghiệp
Splunkd cho phép người dùng tìm kiếm, điều hướng và quản lý dữ liệu trên
Splunk Enterprise thông qua giao diện web được gọi là Splunk Web. Nó là một máy
chủ ứng dụng web dựa trên Python cung cấp một giao diện web để sử dụng Splunk.
Trong phiên bản trước của Splunk: splunkd và SplunkWeb là hai quy trình riêng biệt, nhưng từ Splunk 6, cả hai quy trình đã được tích hợp là một. Nó cho phép người dùng
tìm kiếm, phân tích và hình dung dữ liệu bằng cách sử dụng giao diện web. Giao diện Splunk Web có thé được truy cập băng cách sử dụng cổng Web Splunk, và Splunk cũng cho thay REST API dé truyền thông thông qua công quản ly chia sẻ.
Một trong những thành phần quan trọng của Splunk là kho đữ liệu. Nó có trách nhiệm nén và lưu trữ đữ liệu ban đầu (nguyên vẹn). Dữ liệu được lưu trữ trong các tệp Time Series Index (TSIDX). Một kho đữ liệu cũng bao gồm lưu trữ và lưu trữ dựa trên chính sách lưu giữ có thé cấu hình.
Các triển khai của Splunk Enterprise có thé bao gồm từ việc triển khai các máy chủ đơn (có chỉ số vài gigabyte dữ liệu mỗi ngày và được truy cập bởi một vài người dùng đang tìm kiếm, phân tích và hình dung đữ liệu) tới các triển khai lớn của doanh nghiệp ở nhiều trung tâm đữ liệu, lập chỉ mục hàng trăm terabytes dữ liệu và tìm kiếm được thực hiện bởi hàng trăm người dùng. Splunk hỗ trợ truyền thông với một cá thể khác của một máy chu Splunk thông qua TCP dé chuyên tiếp dit liệu từ một máy chủ
Splunk sang một máy khác dé lưu trữ dữ liệu và các yêu cầu phân phối và phân phối dữ liệu khác thông qua giao tiếp TCP Splunk-to-Splunk.
Bundles là các thành phần của kiến trúc Splunk lưu trữ cấu hình đữ liệu đầu vào,
tai khoản người dùng, ứng dung Splunk, tiện ich và môi trường khác.
Các mô-đun là những thành phần của kiến trúc Splunk được sử dụng để thêm các tính năng mới bằng cách sửa déi hoặc tạo bộ xử lý và đường ống. Các mô-đun chỉ là các kịch bản tùy chỉnh và các phương pháp nhập dữ liệu hoặc phần mở rộng có thê thêm một tính năng mới hoặc sửa đối các tính năng hiện có của Splunk.
3.5. Ngôn ngữ xử lý tìm kiếm
Ngôn ngữ xử lý tìm kiếm Splunk (Search Processing Langue -SPL) là ngôn ngữ của nền tang Splunk. Đây là ngôn ngữ được sử dụng dé thực hiện tìm kiếm dựa trên dit liệu được lập chỉ mục. Ngôn ngữ này dựa trên đường ống trong Unix (Unix pipe) và SQL. Phạm vi cua SPL bao gom tìm kiếm, loc, sửa đồi, thao tác, chèn và xóa dữ liệu.
Người dùng có thé nhóm các sự kiện khác nhau, hiểu rõ hơn về các mẫu dữ liệu, đọc báo cáo tương tác theo thời gian thực và thu thập thông tin kinh doanh. SPL có thể thực hiện nhiều chức năng khác nhau thông qua một lệnh đơn lẻ hoặc một nhóm lệnh sử dụng kỹ thuật đường ống (pipeline).
3.5.1. Cú pháp
Cũng giống như bat kỳ ngôn ngữ truy van nào khác, SPL tuân theo cú pháp nhất định. Khi một truy vấn có lỗi cú pháp, nó sẽ không thực thi và xuất hiện lỗi cho biết có van đề với cú pháp. Một truy van SPL có thé bao gồm bat kỳ hoặc tất ca các thành phần dưới đây [40].
Vũ Thu Trang — B19DCA T196 30