1. Trang chủ
  2. » Công Nghệ Thông Tin

XÂY DỰNG HỆ THỐNG PHÁT HIỆN VÀ DỰ ĐOÁN TẤN CÔNG SỬ DỤNG PHƯƠNG PHÁP HỌC MÁY

60 6 0

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Thông tin cơ bản

Định dạng
Số trang 60
Dung lượng 3,71 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

ĐỀ TÀI: XÂY DỰNG HỆ THỐNG PHÁT HIỆN VÀ DỰ ĐOÁN TẤN CÔNG SỬ DỤNGPHƯƠNG PHÁP HỌC MÁY BỘ CÔNG THƯƠNG TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THỰC PHẨM TPHCM KHOA CÔNG NGHỆ THÔNG TIN KHÓA LUẬN TỐT NGHIỆP ĐỀ TÀI XÂY DỰNG.

Trang 1

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THỰC PHẨM TPHCM

KHOA CÔNG NGHỆ THÔNG TIN

KHÓA LUẬN TỐT NGHIỆP

ĐỀ TÀI: XÂY DỰNG HỆ THỐNG PHÁT HIỆN

Trang 2

TRƯỜNG ĐẠI HỌC CÔNG NGHIỆP THỰC PHẨM TPHCM

KHOA CÔNG NGHỆ THÔNG TIN

KHÓA LUẬN TỐT NGHIỆP

ĐỀ TÀI: XÂY DỰNG HỆ THỐNG PHÁT HIỆN

Trang 3

Chúng em xin cam đoan toàn bộ quá trình nghiên cứu khóa luận là của riêngchúng em Các số liệu, kết quả trong luận văn của chúng em tự tìm hiểu có được khôngsao chép từ các nguồn đảm bảo trung thực.

Chúng em xin cam đoan mọi sự trợ giúp trong quá trình hoàn thành luận văn này

đã được chúng em gửi lời cảm ơn và các thông tin trích dẫn trong bài Luận văn đã đượcghi gõ nguồn gốc

Trang 4

Trong quá trình thực hiện và hoàn thành khóa luận, chúng em nhận được nhiều sựgiúp đỡ, đóng góp ý kiến và sự chỉ bảo nhiệt tình của thầy cô, gia đình cũng như bạn bè.Chúng em xin gửi lời cảm ơn chân thành nhất đến giảng viên hướng dẫn thầy Vũ ĐứcThịnh, giảng viên Bộ môn Mạng máy tính người đã hướng dẫn tận tình và chỉ bảo emtrong suốt quá trình làm khóa luận.

Chúng em cũng xin chân thành gửi lời cảm ơn các thầy cô trong Khoa Công nghệthông tin dạy cho chúng em kiến thức các môn chuyên ngành, giúp đỡ chúng em có được

cơ sở lý thuyết vững vàng và tạo điều kiện giúp đỡ chúng em trong suốt quá trình họctập

Mặc dù chúng em đã cố gắng hoàn thành đề tài trong phạm vi và khả năng có thể của bảnthân Nhưng trong quá trình thực hiện đề tài sẽ không tránh khỏi những thiếu sót Chúng

em rất mong nhận được sự cảm thông từ các quý thầy cô

Cuối cùng, chúng em xin chân thành gửi lời cảm ơn đến gia đình và bạn bè đãluôn tạo điều kiện, quan tâm, giúp đỡ, động viên em trong quá trình học tập cũng nhưhoàn thành khóa luận này

Trang 5

Phát hiện bất thường là một bước trong khai thác dữ liệu nhằm xác định các điểm

dữ liệu, sự kiện hoặc quan sát khác với hành vi bình thường của tập dữ liệu Dữ liệu bấtthường có thể chỉ ra các sự cố nghiêm trọng, chẳng hạn như trục trặc kỹ thuật, như sựthay đổi hành vi trong quá trình sử dụng của người tiêu dùng Máy học đang dần được sửdụng để tự động hoá việc phát hiện bất thường

Phát hiện bất thường (Anomaly Dection) đã được chứng minh là phương pháp cógiá trị trong nhiều lĩnh vực khác nhau như kinh tế, y tế, xâm nhập mạng… Trong luậnvăn này, xây dựng một giải pháp phát hiện, dự đoán tấn công các phần mềm ứng dụngdùng chung tại Trung tâm Tích hợp dữ liệu bằng theo phương pháp học không giám sát(sử dụng đường cơ sở hành vi bình thường – Baselines Normal Behavior), phát hiện bấtthường (Detection Abnormal) Dựa trên bộ công cụ Elastic Stack (Beat, Logstash, ElasticSearch, Kibana) để thu thập và xử lý dữ liệu từ log ứng dụng, tạo các véc tơ đặc trưng vàsau đó áp dụng thuật toán PCA để phát hiện những điểm bất thường trong dữ liệu log

Trang 6

LỜI CAM ĐOAN

LỜI CẢM ƠN

LỜI MỞ ĐẦU

MỤC LỤC

DANH MỤC CÁC KÝ HIỆU VÀ CHỮ VIẾT TẮT

DANH MỤC CÁC HÌNH VẼ

CHƯƠNG 1 1

GIỚI THIỆU TỔNG QUAN ĐỀ TÀI VÀ CÔNG NGHỆ LỰA CHỌN 1

1.1 Một số khái niệm 1

1.2 Mục tiêu, yêu cầu và mô tả nội dung đề tài 1

1.2.1 Mục tiêu, yêu cầu của đề tài 1

1.2.2 Mô tả nội dung nghiên cứu 2

1.2.3 Phạm vi đề tài 2

1.3 Công nghệ sử dụng ELK Stack 2

CHƯƠNG 2 6

CƠ SỞ LÝ THUYẾT 6

2.1 Kỹ thuật phát hiện bất thường 6

2.1.1 Khái niệm về phát hiện bất thường 6

2.1.2 Các loại phát hiện bất thường 6

2.1.2.1 Phương pháp dựa trên dấu hiệu 6

2.1.2.2 Phát hiện dựa vào sự bất thường 7

2.1.2.3 Phương pháp phát hiện dựa trên mô hình 7

2.1.2.4 Kỹ thuật phát hiện dựa vào phân tích trạng thái giao thức 7

2.2 Log và kỹ thuật phân tích log 7

Trang 7

2.2.2 Thu thập dữ liệu log 8

2.2.3 Phân tích hiệu suất (Performance Analysis) 8

2.2.4 Phân tích bảo mật (Security Analysis) 8

2.2.5 Phân tích lưu lượng (Traffic Analysis) 9

2.2.6 Phân tích dự đoán (Predictive Analysis) 9

2.3 Giới thiệu tổng quan về phương pháp máy học 9

2.3.1 Khái niệm máy học 9

2.3.2 Một số khái niệm cơ bản trong máy học 9

2.3.2.1 Không gian biểu diễn của dữ liệu 9

2.3.2.2 Bản chất của dữ liệu 10

2.3.2.3 Tiền xử lý dữ liệu 11

2.3.2.4 Quá trình rời rạc hóa dữ liệu 11

2.3.3 Học có giám sát (Supervised Learning) 12

2.3.3.1 Khái niệm 12

2.3.3.2 Phân loại (Classification) 12

2.3.3.3 Hồi quy (Regression) 12

2.3.4 Học không giám sát (Unsupervised learning) 13

2.3.4.1 Khái niệm 13

2.3.4.2 Clustering (phân nhóm) 13

2.3.4.3 Association 13

2.3.5 Học nửa giám sát (Semi-Supervised Learning) 14

2.3.6 Kỹ thuật DR (Dimensionality Reduction) và PCA (Principal Component Analysis)

14 2.3.6.1 Dimensionality Reduction 14

2.3.6.2 Principal Component Analysis (PCA) 14

Trang 8

2.4.1 Giới thiệu về ELK 15

2.4.2 ElasticSearch 16

2.4.2.1 Giới thiệu ElasticSearch 16

2.4.2.2 Kiến trúc ElasticSearch 17

2.4.2.3 Tìm kiếm trong ElasticSearch 21

2.4.3 Logstash 24

2.4.3.1 Giới thiệu về LogStash 24

2.4.3.2 Công nghệ tích hợp dữ liệu ETL 25

2.4.3.3 Mô hình hoạt động của LogStash 26

2.4.4 Kibana 27

2.4.5 X-pack and Watcher 27

CHƯƠNG 3 28

GIẢI PHÁP PHÁT HIỆN, DỰ ĐOÁN TẤN CÔNG 28

3.1 Phát hiện bất thường, dự đoán tấn công trên hệ thống Mail Log Postfix 28

3.1.1 Tổng quát về hệ thống Mail Postfix 28

3.1.1.1 Mô tả kiến trúc Postfix 28

3.1.1.2 Các thành phần hệ thống mail Postfix 29

3.1.2 Thực hiện thu thập, phân tích log 29

3.2 Tạo Vector đặc trưng 30

3.3 Phân tích những thành phần chính bằng thuật toán PCA 31

3.4 Chương trình Python và phát hiện bất thường 34

CHƯƠNG 4 35

TRIỂN KHAI THỰC NGHIỆM VÀ ĐÁNH GIÁ 35

4.1 Mô hình triển khai 35

4.2 Thu thập và phân tích log mail Postfix – Logstash 36

4.3 Thực hiện tạo vector đặc trưng với watcher 40

Trang 9

4.5 Hình ảnh hóa dữ liệu bất thường – Kibana 43

4.6 Kết quả thực nghiệm 44

4.7 So sánh kết quả bài toán với học máy Elastic (Elastic Machine Learning) .45 CHƯƠNG 5 46

KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN 46

5.1 Kết luận 46

5.2 Hướng phát triển 47

TÀI LIỆU THAM KHẢO 48

Trang 10

Từ viết tắt Tiếng anh Tiếng Việt

chính

đơn giản

đợi Postfix

Kibana

Elasticsearch,Logstash và Kibana

tải

loạt

DANH MỤC CÁC HÌN

Hình 2 1: Hình ảnh ví dụ dữ liệu ở dạng 5x5x1 10Hình 2 2: Hình ảnh ví dụ 3x1 được nén trong không gian 10

Trang 11

Hình 2 4: Hình ảnh ví dụ về dataset 11

Hình 2 5: Hình ảnh minh họa cơ chế hoạt động ELK 16

Hình 2 6: Hình ảnh mô hình Massive Parallel Processing 17

Hình 2 7: Hình ảnh cụm Cluster của Elasticsearch 18

Hình 2 8: Hình ảnh minh họa Elasticsearch Cluster 19

Hình 2 9: Hình ảnh minh họa Elasticsearch Document 19

Hình 2 10: Hình minh họa kiểu đánh Index Elasticsearch 20

Hình 2 11: Hình minh họa Shard trong Elasticsearch 20

Hình 2 12: Hình ảnh tiến trình phân tích từ tố (Analysis) trong Elasticsearch 24

Hình 2 13: Hình ảnh tiến trình ETL 25

Hình 2 14: Hình ảnh quá trình hoạt động của Logstash 26

Hình 2 15: Hình ảnh giao diện monitor của Kibana 27

YHình 3 1: Kiến trúc Postfix trong giai đoạn gửi và nhận 28

Hình 3 2:Mô tả phần tĩnh và phần biến trong một thông điệp log đơn giản 30

Hình 3 3: Phần trăm tỷ lệ phương sai cho mỗi PC 32

Hình 3 4: PCA trong mặt phẳng 2D (2 thành phần chính) 33

Hình 3 5: Chương trình Python và trực quan hóa PCA 35

YHình 4 1: Mô hình tổng quát phát hiện bất thường 35

Hình 4 2: 777.509 dòng log được phân tích trong Elasticsearch 39

Hình 4 3: Hình ảnh Watcher tạo 4097 vector đặc trưng trong Index mail-program-vector-4 41

Hình 4 4: Dữ liệu ban đầu sau khi được tiền xử lý 42

Hình 4 5: Hình ảnh trực quan hóa dữ liệu trên thuật toán PCA 42

Hình 4 6: iểu đồ trực quan hóa phát hiện ngưỡng bất thường 43

Hình 4 7: Hình ảnh hệ thống gửi cảnh báo về Telegram 44

Hình 4 8: Phát hiện bất thường trong máy học Elastic 44

Trang 12

CHƯƠNG 1 GIỚI THIỆU TỔNG QUAN ĐỀ TÀI VÀ CÔNG NGHỆ

LỰA CHỌN

1.1 Một số khái niệm

Sau đây là một số khái niệm liên quan đến hệ thống phần mềm:

a Sự kiện (Event)

Có thể hiểu nó là sự thay đổi trong quá trình hệ thống hoạt động Sự kiện đó có thể

là những hoạt động thông thường hằng ngày hoặc bất bình thường trong quá trình vậnhành hệ thống

b Data log event

Event log là một file “clear text” ghi lại những sự việc xảy ra trong hệ điều hành,các dịch vụ triển khai trên hệ thống hoặc chứa những thông tin về thói quen sử dụng, …Data log lưu lại những hoạt động của ta ở hiện tại và kể cả ở quá khứ của hệ thống phầnmềm, giúp chúng ta nắm rõ trạng thái hoạt động, các lỗi xảy ra và vấn đề về bảo mật và

an ninh khi chúng ta sử dụng hệ thống

c Sự cố (Incident)

Đây là một sự kiện bất ngờ xảy ra trong quá trình hoạt động của hệ thống phầnmềm, gây gián đoán hoạt động của các services được gọi là sự cố

1.2 Mục tiêu, yêu cầu và mô tả nội dung đề tài

1.2.1 Mục tiêu, yêu cầu của đề tài

Tìm hiểu tổng quan về hệ thống phát hiện, dự đoán tấn công và xâm nhập bất hợppháp vào hệ thống

Tìm hiểu về các kỹ thuật phát hiện bất thường thông qua một số phương pháp nhưthu thập và các kỹ thuật phân tích log, phương pháp học máy (học có giám sát, khônggiám sát và nửa giám sát)

Tìm hiểu bộ công cụ ELK Stack, tìm cách thu thập log từ services và xử lý log sau

đó chúng ta sẽ dùng thuật toán PCA để phát hiện ra các điểm bất thường trong data log

Trang 13

1.2.2 Mô tả nội dung nghiên cứu

Trong quá trình thực hiện đề tài này, chúng tôi đã triển khai bộ công cụ ELK Stack

để thu thập và phân tích data log của các services Tìm hiểu về học máy; phát hiện dấuhiệu bất thường bằng cách sử dụng kỹ thuật DR; theo dõi, dự đoán, phát hiện và cảnh báocác hành vi, điểm, dấu hiệu bất thường trong các file log, traffic vào ra hệ thống, cáchành động xâm nhập trái phép hay các hành động truy cập bình trong quá trình hoạt độngcủa hệ thống bằng thuật toán PCA

1.2.3 Phạm vi đề tài

Đối với phạm vi của đề tài, luận văn tập trung vào giai đoạn phân tích và phát hiệnbất thường trên hệ thống mail postfix, không đi sâu vào các nội dung như: xác địnhnguyên nhân, nguồn gốc của bất thường, nhận dạng tấn công cũng như biện pháp ngănchặn Cụ thể, trọng tâm của luận văn là nghiên cứu phương pháp phân tích và phát hiệnbất thường trên hệ thống mail postfix, nghĩa là trên cơ sở các file nhật ký thu thập đượccần có phương pháp xác định nhanh xem những thông số trên file nhật ký đó có phải làbất thường hay không để đưa ra cảnh báo Đối với quản trị viên hệ thống, đây là nhiệm

vụ quan trọng để sớm nhận biết được có hiện tượng bất thường trong hệ thống haykhông, để đưa ra các giải pháp và cảnh báo nhằm hạn chế rủi ro xuống mức thấp nhất cóthể Ví dụ, quản trị viên hệ thống cần sớm biết có hiện tượng lưu lượng quá tải (dấu hiệucủa tắc nghẽn, tấn công từ chối dịch vụ, tấn công spam …) để kịp thời kiểm soát cáctuyến kết nối bị quá tải lưu lượng

Việc trước hết là phát hiện kịp thời có hay không là bước quan trọng nhằm giảmthiểu thiệt hại có thể xảy ra, mang lại ý nghĩa tích cực trong công tác điều tra, khắc phục

sự cố, thực hiện các biện pháp ngăn chặn một cách hệ thống Luận văn không đi sâu vàophân tích mức độ quan trọng của các thuộc tính dữ liệu mà áp dụng những thuộc tínhchung cho luồng tin đã được đề xuất và nghiên cứu trước đó Qua phân tích tính ưu việtcủa PCA, luận án tập trung vào nghiên cứu, phân tích ưu nhược điểm của các phươngpháp sử dụng PCA điển hình đã được đề xuất tới nay và so sánh kết quả bài toán với họcmáy Elastic (Elastic Machine Learning) được cung cấp trong ELK

1.3 Công nghệ sử dụng ELK Stack

Hiện nay việc quản lý dữ liệu log tập trung và cảnh báo lỗi tự động được sử dụngrất phổ biến nên có rất nhiều giải pháp công nghệ quản lý log có tính phí và không tínhphí, trong số vô vàn công nghệ ta phải kể đến các giải pháp: Splunk, Graylog và ELK

Trang 14

Các giải pháp quản lý log tập trung nêu trên được biết đến với các mặt nỗi trội về query,monitoring, truy vết, phân tích dữ liệu, cảnh báo ngưỡng, …

Mỗi giải pháp công nghệ điều có tính năng nỗi bật riêng của bản thân mình Sauđây là bảng so sánh một số ưu và nhược điểm của ba giải pháp: Splunk, Graylog và ELK

Bản quyền

- Mã nguồn mở

- Tính năng có tínhphí một số cái như:

Window, Linux, Ubuntu

Định dạng tệp

log hỗ trợ.

Các loại tệp dữ liệulog như ngnix, http,database, …

Hầu như định dạngcác tệp như text,CSV, tệp log, …

Các loại tệp dữ liệulog như nginx, http,database, tomcat, …

Sử dụng ngôn ngữtìm kiếm tích trongSplunk và áp dụngMap-Reduce

Khả năng tìm kiếm cơbản

Các tính năng đượctích hợp sẵn trongSplunk

Đơn giản

Trang 15

trực quan.

Qua quá trình so sánh 3 giải pháp quản lý log tập trung, có thể thấy Splunk khábao quát có thể thấy khá đủ các tính năng 2 giải pháp còn lại nhưng là phần mềm có phírất cao nên chúng em đã không sử dụng giải pháp này Để lựa chọn được công nghệ mãphù hợp trong 2 giải pháp còn lại là ELK Stack và Graylog, chúng em đã triển khai sosánh tính năng, ưu và nhược điểm của 2 giải pháp mã nguồn mở này một lần nữa Trongđó:

quản lý, cảnh báo và tìm kiếm dữ liệu log đơn thuần Quá trình trích dẫn và tổng hợp dữliệu log kém hơn so với ELK không thể trích dẫn dữ liệu log quá phức tạp, trong ELK cóLogstash hỗ trợ kỹ thuật ETL (Extract, transform, load) khá linh hoạt tùy biến trong từngtrường hợp Dashboard được thực hiện dễ dàng nhưng khá cục bộ với người sử dụng chỉ

sử dụng ở mức cơ bản, chưa linh hoạt trong việc phân tích dữ liệu, ELK lại làm tốt hơnvới giao diện Kibana

log tập trung ELK là giải pháp công nghệ không chỉ dùng để quản lý log, có thể nói làELK mở rộng và sâu hơn so với Graylog ở các phần như thu thập, phân tích, monitoring,

… so với Graylog ELK được biết đến với 3 thành phần chính:

o ElasticSearch: Truy vấn, lưu trữ và đánh index cho dữ liệu log

o Logstash: Đồng bộ dữ liệu bằng kỹ thuật ETL, thu thập dữ liệu log

liệu

ELK lúc đầu sẽ khó tiếp cận và triển hơn Graylog, nhưng linh hoạt nhiều mặt hơn

so với Graylog như về mặt trích dẫn và tổng hợp dữ liệu đặt thù của Logstash linh hoạthay khi dựng chart, trừu tượng hóa dữ liệu để phân tích thì Kibana linh hoạt hơn

Nhưng ở mỗi giải pháp đều có ưu và nhược điểm riêng của nó Phụ thuộc vào nhucầu và định hướng xây dựng quản lý dữ liệu log của doanh nghiệp để đưa ra sự lựa chọnphù hợp Sau đây là một vài ưu, nhược điểm của 2 giải pháp ELK và Graylog:

Trang 16

Ưu điểm

liệu

Logstash hổ trợ kỹ năng ELT thuthập trích dẫn thông tin log linhhoạt, mạnh mẽ

Thu thập, giám sát data logthông dụng với giao diện đồ họathân thiện

Kiểm soát việc đánh chỉ mục trênElasticSearch

Data log không chỉ để tìm kiếm,cảnh báo, truy vết mà có thể phântích trừu tượng hóa dữ liệu phứctạp để tìm được các thông tin hữuích

Cộng đồng chia sẻ còn hạn chếQua quá trình tìm hiểu các tính năng, ưu/ nhược điểm, chi phí đối với từng giảipháp và định hướng ban đầu khi triển khai hệ thống, chúng em quyết định chọn ELKStack làm giải pháp công nghệ trong quá trình triển khai đề tài này

CHƯƠNG 2

CƠ SỞ LÝ THUYẾT

2.1 Kỹ thuật phát hiện bất thường

2.1.1 Khái niệm về phát hiện bất thường

Phát hiện sự bất thường (Anomaly Detection) là xác định các sự kiện, mẫu khácbiệt đáng kể so với các hành vi hoặc khuôn mẫu tiêu chuẩn Các dị thường trong dữ liệucòn được gọi là độ lệch chuẩn, giá trị ngoại lệ, nhiễu, vật lạ, … Trong bối cảnh phát hiện

Trang 17

bất thường mạng/ xâm nhập mạng và phát hiện lạm dụng thì 2 thuật ngữ được sử dụngphổ biến là bất thường và ngoại lệ Ví dụ: các hoạt động làm tăng lưu lượng mạng độtbiến thường đáng chú ý, mặc dù một hoạt động tăng đột biến như vậy có thể nằm ngoàinhiều kỹ thuật phát hiện bất thường truyền thống; một mẫu lưu lượng bất thường trongmột hệ thống mạng máy tính có nghĩa rằng một tin tặc đang tấn công và gửi dữ liệu nhạycảm đến một điểm mà không được phép.

2.1.2 Các loại phát hiện bất thường

2.1.2.1 Phương pháp dựa trên dấu hiệu

Dấu hiệu là những đặc trưng khi hệ thống bị viruss, tấn công, xâm nhập tráiphép, … đã được thống kê được trong quá trình hệ thống vận hành và được lưu lại Hệthống sẽ triển khai so sánh giữa các dữ liệu đã thu thập với các dấu hiệu khi phát hiệnxâm nhập được lưu trữ trong database của hệ thống xét xem hành động đang được diễn ra

đó là an toàn hay không an toàn Ví dụ phát hiện xâm nhập dựa vào dấu hiệu: check logthấy 1 user đang cố gắng telnet vào hệ thống bằng user “root”, nhập sai quá nhiều lần viphạm rule đã setup trong hệ thống; cẩn thận với các thư điện tử không rõ nguồn mà cóđính kèm các file exe, pif, application, gadget, … có thể chứa mã độc

Kỹ thuật này đơn giản hiệu quả trong các trường hợp đã từng gặp các mối đedọa và được lưu trữ trong database nhưng không hiệu trong những trường hợp chưa gặpphải bao giờ Đây cũng là mặt hạn chế của phương pháp này, nên rất ít dùng trong môhình mạng lớn hay giao thức ứng dụng vì không thể theo dõi bao quát hết các thành phần

có trong hệ thống có độ tin cậy thấp

2.1.2.2 Phát hiện dựa vào sự bất thường

Kỹ thuật phát hiện dựa vào bất thường là quá trình tổng hợp các hành độngthông thường trong một khoảng thời gian từ nhiều đối tượng như users, server, kết nốimạng hay services tạo thành hồ sơ thông tin để miêu tả hành động bình thường sau đó sosánh với các sự kiện diễn ra trên hệ thống rồi mới phát hiện ra bình thường hay bấtthường Phương pháp này có độ chính xác cao khi một hệ thống phát hiện bất thườngđược setup trong hệ thống mạng có thời gian vận hành dài để triển khai phân tích hoặchọc tất cả các hành động bình thường của hệ thống

2.1.2.3 Phương pháp phát hiện dựa trên mô hình

Phương pháp phát hiện dựa trên mô hình áp dụng các kĩ thuật, phương pháphọc máy; trí tuệ nhận tạo; mô hình sử dụng các thuật toán để phát hiện ra các thời điểm

Trang 18

bình thường hay bất bình thường, triển khai rules phát hiện tấn công một cách tự động từdatabase mô phỏng Phương pháp này được sử dụng rộng rãi trong các hệ thống dự đoán,phát hiện các cuộc tấn công hay xâm nhập trái phép kể cả cũ hay mới tuy nhiên nhiều lúc

nó có thể đưa ra các cảnh báo nhầm so với hai phương pháp trên

2.1.2.4 Kỹ thuật phát hiện dựa vào phân tích trạng thái giao thức

Hiện nay, các Attacker thông qua các giao thức mạng để tấn công hay xâmnhập bất hợp pháp vào hệ thống Mỗi giao thức điều có cấu trúc, cách hoạt động riêngbiệt của mình, kỹ thuật phát hiện dựa vào phân tích trạng thái giao thức là quá trình hoạtđộng của các giao thức, sử dụng các dữ liệu hoạt động hợp lệ của giao thức có sẵn trong

hệ thống để xem xét có hành vi tấn công đang xảy ra hay không Hạn chế của phươngpháp này tập trung dữ liệu, bởi vì phải phân tích và thực hiện giám sát trạng thái hoạtđộng cho nhiều phiên làm việc cùng lúc; còn một vấn đề nữa là phương pháp này khôngthể phát hiện các cuộc tấn công có dấu hiệu đặt trưng như các phương pháp trên bởi vìgiao thức thừa nhận đậy là các hành vi thông thường, ví dụ: thực hiện lập đi lập lại hànhđộng bình thường nhiều lần trong một khoảng thời gian ngắn như tấn công từ chối dịch

vụ Mặc khác có thể xảy ra xung đột giữa giao thức hệ thống và giao thức hiện có trongmạng

2.2 Log và kỹ thuật phân tích log

2.2.1 Khái niệm Log

Log (nhật ký) ghi lại những sự kiện xảy ra trên một thiết bị phần cứng, các hệđiều hành, các dịch vụ triển khai trên hệ thống hoặc chứa thông tin thói quen sử dụng củangười dùng, … Ví dụ: log của các thiết bị firewall, router, hệ điều hành linux, hệ điềuhành window, web mail, database, …

Log lưu dưới dạng tệp văn bản rõ ràng ta có thể dễ dàng đọc được Các log nóicho ta bất cứ điều gì ta cần biết, dễ dàng tìm ra nguyên nhân gốc rễ của vấn đề Giúp choquá trình dự đoán, phát hiện và khắc phục sự cố trở nên nhanh hơn trong hệ thống

Cấu trúc của log thường có định dạng chung là thời gian và dữ liệu Dữ liệuchứa các thông tin cơ bản gồm: địa chỉ IP (Internet Protocol) của nguồn và đích, cổng(port), giao thức, … Ví dụ một người dùng đăng nhập vào hệ thống là một hành động ghilại nhật ký try cập, Virus (mã độc) hoặc spam mail có hành động phát tán gói tin bấtthường trong hệ thống là hành động được ghi lại nhật ký kết nối, hiệu suất hoạt động củamáy chủ, … tiến trình của cả hệ thống hoặc của dịch vụ được triển khai trên hệ thống

Trang 19

2.2.2 Thu thập dữ liệu log

Thu thập dữ liệu log là quá trình lấy các thông tin liên quan đến tình trạng hoạtđộng của hệ thống, thiết bị mạng, … đây là bước đầu tiên trong quá trình xử lý và phântích dữ liệu Bình thường các hệ thống hoạt động trên những nền tảng khác nhau nên logthu được cũng ở những dạng khác nhau Mô hình quản lý log tập trung là phương phápgiải quyết cho vấn đề này, log sẽ được đưa về một trung tâm để phân tích và xử lý (ELK)

2.2.3 Phân tích hiệu suất (Performance Analysis)

Quá trình phân tích logs hiệu suất và cảnh báo logs hiệu suất được coi là bảnghi logs đối với System Monitor Bằng cách sử dụng logs hiệu suất, ta có thể ghi lạithông tin hiệu suất trong thời gian thực và lưu trữ trong nhật ký để có thể phân tích saunày Cảnh báo hiệu suất có thể được sử dụng để thông báo cho người dùng khi các sựkiện nhất định xảy ra hoặc khi đạt đến ngưỡng hiệu suất nhất định Ví dụ: bạn có thể địnhcấu hình cảnh báo hiệu suất cho bạn biết khi nào ổ C sắp hết dung lượng trống hoặc đơn

vị xử lý trung tâm (CPU) đang hoạt động với 95% dung lượng trở lên Người quản trị cóthể thông qua các thông tin logs này để tối ưu hóa hành vi hệ thống

2.2.4 Phân tích bảo mật (Security Analysis)

Thói quen sử dụng của người dùng hệ thống và ứng dụng điều sẽ được ghidưới dạng log event Hữu ích trong việc theo dõi hành vi của người dùng từ những hànhđộng bất ngờ, tấn công độc hài hoặc lạm dụng ứng dụng nào có thể phát hiện sớm.Nhưng nếu ta ghi lại log event cho tất cả các hệ thống và ứng dụng này có thể tạo ra mộtlượng lớn dữ liệu và tài nguyên đáng kể cần thiết để xử lý nhật ký một cách hiệu quả.Chúng ta nên xác định log quan trọng nhất để giám sát và tận dụng các phương phápphân tích nhật ký tự động hoặc dựa trên phần mềm để tiết kiệm thời gian và tài nguyên

2.2.5 Phân tích lưu lượng (Traffic Analysis)

Lượng traffic tăng đột biến làm cho hệ thống hoặc dịch vụ chậm đi hoặc bịdown Đây là vấn đề quan trọng trong các hệ thống mang, ta nên quan sát và tìm cách hạnchế lượng traffic gửi về hệ thống quá nhiều gây tràn băng thông làm tê liệt hệ thống.Thông qua việc giám sát lượng traffic ta có thể biết hệ thống bình thương hay bất bìnhthường Ví dụ: Trong 1 khoảng thời gian ngắn ta thấy 1 lượng yêu cầu lớn gửi về cho hệthống đó là hình thức tấn công Dos

Trang 20

2.2.6 Phân tích dự đoán (Predictive Analysis)

Phân tích dự đoán đang là xu hướng trong các ứng dụng học máy rất thích hợp

áp dụng cho các hệ thống hoạt động lâu dài Một lượng lớn dữ liệu log được thu thập sau

đó ta tiến hành lọc ra các mẫu có đặc điểm giống nhau trong database, hệ thống phân tích

có thể dự đoán dữ liệu trong tương lai cũng có những đặc điểm của mẫu này Ví dụ: Cáccông ty bán dịch vụ thông qua việc phân tích nhu cầu, quá trình giao dịch với khách hàng

dự đoán được xu hướng khách hàng tương lai và đưa ra các dòng dản phẩm đáp ứng nhucầu cho khách hàng

2.3 Giới thiệu tổng quan về phương pháp máy học

2.3.1 Khái niệm máy học

Máy học là một mảng trong ngành trí tuệ nhân tạo (AI) và khoa học máy tính,tập trung cho việc sử dụng dữ liệu và thuật toán để mô phỏng theo cách con người học,dần dần cải thiện độ chính xác Ngoài ra, máy học còn được biết đến là một thành phầnquan trọng của lĩnh vực khoa học dữ liệu đang phát triển Thông qua việc sử dụng cácphương pháp thống kê, các thuật toán được đào tạo để đưa ra phân loại hoặc dự đoán,khám phá những hiểu biết quan trọng trong các dự án khai thác dữ liệu Các thông tin chitiết giúp thúc đẩy việc đưa ra quyết định trong các ứng dụng và doanh nghiệp, tác động lýtưởng đến các chỉ số tăng trưởng trong kinh doanh

2.3.2 Một số khái niệm cơ bản trong máy học

2.3.2.1 Không gian biểu diễn của dữ liệu

Dữ liệu ở dạng nén trong học máy, thoạt nhìn các dữ liệu nén này không tạo rabất kỳ “không gian” nào nhưng đó là sự song song Ví dụ: Ban đầu dữ liệu hình ảnh cókích thước 5x5x1, ta setup lại kích thước của không gian dữ liệu trong máy học 3 x 1, cóthể hiểu rằng những điểm dữ liệu nén là một vecto có 3 chiều

Hình 2 1: Hình ảnh ví dụ dữ liệu ở dạng 5x5x1

Trang 21

Hình 2 2: Hình ảnh ví dụ 3x1 được nén trong không gian

Các điểm dữ liệu nén sẽ được xác định bằng 3 số như trên, ta có thể biểudiễn những điểm này trên mặt phẳng 3D

Hình 2 3: Hình ảnh điểm (0,4, 0,3, 0,8) được vẽ biểu đồ trong không gian 3D

Qua trên ta có thể hình dung được đây là "không gian dữ liệu" đang đề cậpđến Khi nào vẽ biểu đồ các điểm hoặc nghĩ về các điểm trong không gian, ta có thể suynghĩ chúng là các điểm tọa độ trong không gian, trong biểu đồ các điểm có dạng gầngiống nhau ở gần nhau trên biểu đồ

2.3.2.2 Bản chất của dữ liệu

Dữ liệu chính là các chuỗi các ký hiệu, hiểu đơn giản hệ thống lưu lại hànhđộng cụ thể đã xảy ra Dataset (Bộ dữ liệu) là tập dữ liệu được dựng thành hai phầnchính: các mẫu dữ liệu, các đặc trưng của dữ liệu Trong đó mỗi giá trị được liên kết vớimột biến hoặc là thuộc tính

Hình 2 4: Hình ảnh ví dụ về dataset

Trang 22

- Một mẫu dữ liệu (hay một điểm dữ liệu) chính là thành phần giúp mô tả dữliệu theo các đặc điểm định lượng được thể hiện bằng các hàng trong bộ dữ liệu Ví dụ:Nếu ta xây dựng một bộ dữ liệu về hình dáng con người, mỗi một mẫu dữ liệu sẽ là các

số liệu chi tiết về một người Khi chúng ta cần nhiều dữ liệu để xây dựng mô hình, cũng

có nghĩa là chúng ta cần tích hợp nhiều mẫu dữ liệu

- Đặc trưng là những đặc điểm định lượng để mô tả các mẫu data, có thể làsố/chữ Ví dụ: Fullname là một trong những đặc trưng dạng chữ, trong khi Height là mộtđặc trưng dạng số

2.3.2.3 Tiền xử lý dữ liệu

Tiền xử lý dữ liệu là một trong những bước quan trọng trong bất kỳ quá trìnhkhai thác dữ liệu, trực quan hóa dữ liệu, phân tích dữ liệu, dự đoán trong khoa học dữliệu, Dữ liệu có thể ở nhiều dạng khác nhau, chẳng hạn, nó có thể là văn bản, hình ảnh,

số, định dạng ngày tháng, video, Vì vậy, việc chuyển đổi dữ liệu sang bất kỳ định dạngtương thích nào để đạt được kết quả cuối cùng là bắt buộc

Đôi khi dữ liệu mà chúng ta thu thập được không thể hoàn chỉnh hoặc hoàntoàn đáng tin cậy Các vấn đề phổ biến nhất mà chúng ta thường gặp phải khi xem xét tập

dữ liệu là nó có thể có các giá trị bị thiếu (thiếu một số mục nhập), các giá trị cực đoan(các mục nhập không liên quan đến trường hoặc miền cụ thể), lỗi đánh máy cũng là tiền

tố dẫn đến các ký tự đặc biệt như !, @, $,… Do đó, nhữn loại mâu thuẫn này cũng có thểđược sửa chữa trong bước tiền xử lý dữ liệu

2.3.2.4 Quá trình rời rạc hóa dữ liệu

Quá trình rời rạc hóa dữ liệu là một thao tác trong quá trình tiền xử lý dữ liệuthường gặp, giúp chúng ta giảm bớt dữ liệu Quá trình này thường được áp dụng đối vớicác dữ liệu có thuộc tính kiểu số Rời rạc hóa các thuộc tính có chứa dữ liệu liên tục trongcác tập dữ liệu được lưu trữ là một phần chính trong quá trình khai phá dữ liệu Các ứngdụng khai phá dữ liệu trong thực tế cho thấy các dữ liệu chứa giá trị rời rạc đóng vai tròcực kì quan trọng trong việc biểu diễn tri thức vì chúng dễ dàng được xử lý hay thể hiệntri thức trực quan nhất Trong lĩnh vực khai phá dữ liệu, một số kỹ thuật như luật kết hợpchỉ có thể được thực hiện trên các dữ liệu phân loại (categorical/ nominal data) Quá trìnhrời rạc hóa dữ liệu cần phải thực hiện dựa trên việc rời rạc hóa các thuộc tính đó có phải

là kiểu dữ liệu liên tục hay không

Trang 23

2.3.3 Học có giám sát (Supervised Learning)

2.3.3.1 Khái niệm

Học có giám sát là một thuật toán dự đoán đầu ra (outcome) của một dữ liệumới (input new) được dựa trên các cặp (input, outcome) đã biết từ trước Cặp dữ liệu nàycòn được gọi là data, lable, tức là (dữ liệu, nhãn) Học có giám sát là nhóm phổ biếntrong các thuật toán Machine Learning

Từ góc nhìn của toán học, học có giám sát là khi chúng ra có một tập hợp biếnđầu vào X= {x1, x2, …, xN} và một tập hợp nhãn tương ứng Y= {y1, y2, …, yN} trong đó

xi, yi là các vector Các cặp dữ liệu biết trước (xi, yi) ԑ X x Y ược gọi là tập training data(dữ liệu huấn luyện) Từ tập training data, chúng ta cần tạo ra một hàm số ánh xạ mỗiphần tử từ tập X sang một phần tử xấp xỉ của tập Y:

Mục đích là xấp xỉ hàm số f một cách thật tốt để khi có một dữ liệu x mới,chúng ta có thể tính được nhãn tương ứng của nó y=f(x)

2.3.3.2 Phân loại (Classification)

Bài toán gọi là classification nếu các label (nhãn) của input data được chiathành một số hữu hạn nhóm Ví dụ: Các hãng tín dụng xác định xem một khách hàng cókhả năng thanh toán nợ hay không; gmail xác định xem một email có phải là spam haykhông Các ví dụ trên được chia vào loại này

2.3.3.3 Hồi quy (Regression)

Nếu lable không được chia thành các nhóm thay vào đó là một giá trị thực cụthể Ví dụ: có một căn nhà rộng x m2, có y phòng ngủ, căn nhà cách trung tâm thành phố

z km thì sẽ có giá là bao nhiêu?

Thời gian gần đây có một ứng dụng của hãng Microsoft dùng để dự đoán giớitính và tuổi dựa trên khuôn mặt Trong đó, còn phần dự đoán tuổi cũng được coi là thuậttoán Regression (quy hồi), phần dự đoán giới tính có thể coi là một thuật toánClassification Ngoài ra, phần dự đoán tuổi còn có thể được coi là Classification nếu tacoi tuổi là một số nguyên dương không lớn hơn 150, chúng ta sẽ có 150 class (lớp) khácnhau

Trang 24

2.3.4 Học không giám sát (Unsupervised learning)

2.3.4.1 Khái niệm

Trong thuật toán Unsupervised learning chúng ta sẽ không thể nào biết đượcoutcome hay lable (nhãn) mà chỉ có dữ liệu đầu vào Học không giám sát là thuật toándựa vào cấu trúc của dữ liệu để thực hiện một công việc như là phân nhóm (clustering)hay làm giảm số chiều của dữ liệu (dimension reduction) sẽ thuận tiện hơn trong việc lưutrữ và tính toán

Cách nhìn từ toán học, học không giám sát là khi chúng ta chỉ có dữ liệu vào

X mà không biết nhãn Y tương ứng

Loại thuật toán này, không giống như học có giám sát, được gọi là học khônggiám sát vì nó không biết câu trả lời chính xác cho tất cả dữ liệu đầu vào Tương tự nhưvậy, khi học, sẽ không có giáo viên nào nói cho bạn biết đó là A hay B Theo nghĩa

đó, đó là một cụm không giám sát

2.3.4.2 Clustering (phân nhóm)

Một bài toán phân nhóm tất cả các dữ liệu X ra thành các nhóm nhỏ dựa trên

sự liên quan giữa các dữ liệu trong mỗi nhóm nhỏ Ví dụ như: chúng ta có thể phân nhómkhách hàng dựa trên hành vi mua hàng Điều này cũng tương tự việc chúng ta đưa chomột đứa bé rất nhiều mảnh ghép với các hình thù và màu sắc khác nhau như là: tam giác,vuông, tròn với màu đỏ và xanh, sau đó yêu cầu trẻ phân chúng ra thành từng nhóm Mặc

dù, không cho đứa bé đó biết trước mảnh nào tương ứng với hình nào hay màu nào, nhiềukhả năng chúng vẫn có thể phân loại các mảnh ghép theo màu hoặc hình dạng

2.3.4.3 Association

Association là bài toán khi ta muốn khám phá ra một quy luật được dựa trênnhiều dữ liệu cho trước Ví dụ: những khán giả xem phim Spider Man thường có xuhướng xem thêm phim Bat Man hay những khách hàng nam mua quần áo thường có xuhướng mua thêm thắt lưng hoặc đồng hồ, chúng ta có thể dựa vào đó tạo ra một hệ thốnggợi ý khách hàng (Recommendation System), thúc đẩy nhu cầu mua sắm

2.3.5 Học nửa giám sát (Semi-Supervised Learning)

Các bài toán khi chúng ta có một lượng lớn dữ liệu X nhưng chỉ có một phầntrong chúng được gán lable (nhãn) được gọi là Semi-Supervised Learning Những bàitoán thuộc nhóm này nằm giữa hai nhóm được nêu bên trên

Trang 25

Ví dụ điển hình của nhóm học nửa giám sát này là chỉ có một phần ảnh haymột phần văn bản được gán nhãn (ví dụ về bức ảnh về người, động vật hoặc các văn bảnkhoa học, chính trị) và phần lớn các bức ảnh hoặc văn bản khác chưa được gán nhãn hayđược thu thập từ internet Trên thực tế cho thấy rằng có rất nhiều các bài toán MachineLearning thuộc vào nhóm học nữa giám sát vì việc thu thập dữ liệu có lable tốn rất nhiềuthời gian và có chi phí cao Còn có rất nhiều loại dữ liệu thậm chí cần phải có chuyên giamới gán nhãn được (ví dụ như ảnh trong y học) Ngược lại, dữ liệu chưa có lable có thểđược thu thập với chi phí thấp và từ internet.

2.3.6 Kỹ thuật DR (Dimensionality Reduction) và PCA (Principal Component Analysis)

2.3.6.1 Dimensionality Reduction

Số lượng lớn các tính năng đầu vào có thể gây ra hiệu suất kém cho các thuậttoán học máy Giảm số chiều là lĩnh vực nghiên cứu chung liên quan đến việc giảm sốlượng các tính năng đầu vào một trong những kỹ thuật quan trọng trong học máy(Machine Learning) Khi xử lý dữ liệu có chiều cao, thường hữu ích khi giảm kích thướcbằng cách chiếu dữ liệu xuống không gian con có chiều thấp hơn để nắm bắt "bản chất"của dữ liệu điều này gọi là giảm kích thước dữ liệu và đảm bảo rằng thông tin đượctruyền tải tương tự Dimensionality Reduction mang lại sự trình bày ngắn gọn hơn, dễhiểu hơn về khái niệm mục tiêu, tập trung sự chú ý của người dùng vào các biến có liênquan nhất, kỹ thuật DR giúp cho việc nén dữ liệu, thời gian tính toán nhanh hơn Ví dụ:

Dữ liệu đòi hỏi trực quan hóa để hiểu rõ và với dữ liệu có hơn 3 chiều hầu như không thểquan sát Kỹ thuật DR có thể mang lại số lượng chiều giảm xuống còn 2 hoặc 3 để chúng

ta quan sát một cách chính xác hơn Giảm số chiều cũng có thể được sử dụng để pháthiện sự bất thường

2.3.6.2 Principal Component Analysis (PCA)

Principal Component Analysis (PCA) là kỹ thuật phổ biến nhất để giảm kíchthước của một tập dữ liệu bao gồm nhiều biến số tương quan với nhau, dù nặng hay nhẹ,trong khi vẫn giữ lại mức độ biến động có trong tập dữ liệu ở mức tối đa Đây là một kỹthuật có nguồn gốc từ đại số tuyến tính và có thể được sử dụng như một kỹ thuật chuẩn bị

dữ liệu để tạo ra phép chiếu trước khi xây dựng một mô hình

PCA thực hiện bằng cách chuyển đổi các biến thành một tập hợp các biến mới,được gọi là các thành phần chính (hoặc đơn giản là PC) và là trực giao, được sắp xếp theo

Trang 26

thứ tự sao cho việc duy trì các biến thể hiện có trong các biến ban đầu giảm khi chúng ta

di chuyển xuống theo thứ tự Theo phương pháp này thì thành phần chính thứ nhất sẽđược giữ lại sự biến đổi tối đa đã có trong các thành phần ban đầu Các thành phần chính

là các ký hiệu riêng của ma trận hiệp phương sai, do đó chúng trực giao

Ví dụ: Ban đầu chúng ta có 1000 biến có tương quan tuyến tính cùng vớinhau, ta sẽ sử dụng PCA xoay chiều không gian cũ trở thành chiều không gian mới ở đóchỉ còn lại 10 biến không có tương quan tuyến tính mà vẫn giữ được nhiều nhất lượngthông tin từ nhóm biến ban đầu

2.4 Giới thiệu về bộ công cụ ELK

2.4.1 Giới thiệu về ELK

ELK Stack là một bộ giải pháp công nghệ mã nguồn mở được sử dụng để thuthập, phân tích, quản lý dữ liệu log tập trung, có thể xử lý nhiều bài toán quản trị hệthống mạng nên rất được các công ty và tổ chức tin dùng

ELK gồm 4 thành phần:

- ElasticSearch: được dùng để đánh chỉ mục cho dữ liệu log để tìm kiếm và

là nơi lưu trữ log tập trung

- Logstash: Thu thập dữ liệu log từ nhiều nguồn khác nhau, sau đó xử lý log

và đưa vào lưu trữ trong ElasticSearch để đánh chỉ mục

- Kibana: Giao diện dùng để quản lý, thống kê và phân tích dữ liệu và xâydựng các biểu đồ trực quan hoá Kibana đọc thông tin từ Elasticsearch

- Beats: Một bộ các công cụ chuyên dụng để thu thập dữ liệu thông qua máyclient và gửi về máy chủ ELK có thể hiểu beat như một shipper

Cơ chế hoạt động của ELK Stack:

Trang 27

Hình 2 5: Hình ảnh minh họa cơ chế hoạt động ELK

- Đầu tiên, Beats thu thập logs từ các máy Client rồi sau đó gửi chúng đếnmáy chủ ELK theo nhiều cách khác nhau thông qua các con đường khác nhau ví dụ:Server sẽ gửi UDP request chứa các log tới URL của Logstash, hay là Beats để thu thậplogs từ các bộ công cụ chuyên dụng đã được cài trên các Server và gửi lên Logstash hoặcElasticsearch

- Logstash đọc logs do beats chuyển đến sau đó thêm các thông tin như IPnguồn (nếu có), thời gian, giao thức,… và parse dữ liệu từ log (server nào, mức độnghiêm trọng, nội dung của log) ra, tiếp theo các log chuyển đến và lưu trữ tạiElasticsearch

- Khi muốn xem log, người dùng sẽ truy cập liên kết (URL – UniformResource Locator) trên giao diện Kibana.Tại đây, Kibana đọc thông tin các log từ cơ sở

dữ liệu Elasticsearch rồi hiển thị lên giao Kibana cho người sử dụng truy vấn và xử lý

2.4.2 ElasticSearch

2.4.2.1 Giới thiệu ElasticSearch

Elaticsearch là một công cụ tìm kiếm và phân tích mã nguồn mở dựa trên phầnmềm Lucene Apache Quá trình triển khai đơn giản, độ tin cậy tối đa và quản lý dễ dàng

Có khả năng truy vấn nâng cao để thực hiện quá trình phân tích và lưu trữ tất cả dữ liệumột cách tập trung, tốc độ tìm kiếm rất nhanh (gần như thời gian thực) Chạy trên Serverriêng, giao tiếp thông qua API RESTful

Trang 28

Đồng thời, chúng ta có thể hiểu Elasticsearch là một hệ thống phân tán, khảnăng mở rộng rất tuyệt vời, cho phép ta thực thi và kết hợp rất nhiều loại tìm kiếm: cócấu trúc, không cấu trúc, geo hoặc metric theo cách mà chúng ta muốn.

Để xử lý được lượng lớn dữ liệu, dữ liệu trong giải pháp Massive ParallelProcessing thường được phân chia giữa các nút thành các phân đoạn (shard), mỗi nút sẽ

xử lý các dữ liệu cục bộ của nó Điều này làm cho việc xử lý dữ liệu nhanh hơn, bởi vì sửdụng lưu trữ chia sẻ cho giải pháp MPP sẽ là một khoản đầu tư lớn hơn, tốn kém hơn,phức tạp hơn, ít khả năng mở rộng hơn, sử dụng lưu lượng mạng cao hơn và ít tính toánsong song hơn Đối với cách thiết kế này, một hệ thống MPP sẽ rất đơn giản cho việc mởrộng Để mở rộng năng lực tính toán cho toàn bộ cụm, chỉ cần thêm các nút theo chiềungang vào cụm cluster Mô hình MPP như sau:

Hình 2 6: Hình ảnh mô hình Massive Parallel Processing

Trang 29

Một cụm ElasticSearch Cluster bao gồm một hoặc nhiều nút (nodes) có cùngtên với cụm mà nó thuộc về Các nút trong cụm Cluster làm việc xử lý tính toán cùngnhau, cùng chia sẻ dữ liệu và tải (workload) với nhau Khi một nút được thêm vào hoặcrời khỏi cluster, cluster sẽ tự động tổ chức và tính toán lại dữ liệu và năng lực tính toán.

Hình 2 7: Hình ảnh cụm Cluster của Elasticsearch

Một nút là một máy chủ riêng lẻ, là một phần của cụm Cluster, tham gia vàoquá trình đánh chỉ mục và tìm kiếm của cụm Cluster Cũng giống như Cluster, mỗi nútđược xác định bằng một tên duy nhất và được tạo ngẫu nhiên tại thời điểm khởi động hệthống Tất nhiên chúng ta có thể chỉ định tên cho các nút này cho mục đích quản trị Nếukhông được chỉ định, mỗi node có thể tham gia (join) vào một cluster mặc định là

“elasticsearch” cluster

Mỗi cụm trong ElasticSearch Cluster có một Master node chịu trách nhiệmquản lý tất cả các thay đổi trên toàn cụm, ví dụ như như tạo, xóa index hoặc thêm hayloại bỏ node vào/ra cụm Cluster Bên cạnh đó, master node sẽ không tham gia vào mọiquá trình xử lý tìm kiếm Bất kỳ nút nào trong cụm cũng đều có thể trở thành masternode Với cụm Cluster chỉ có một nút thì nút đó sẽ thực hiện vai trò vừa là master node

và vừa là nút xử lý tìm kiếm

Mọi nút trong cụm Cluster đều được được kết nối, chia sẻ các dữ liệu và tảivới nhau Tất cả các nút đều biết chính xác nơi dữ liệu được lưu trữ, vì vậy khi có mộtyêu cầu cần xử lý được gửi đến chúng có thể xử lý trực tiếp hoặc chuyển tiếp yêu cầu đếnnút mà đang thực sự chứa dữ liệu cần xử lý và trả ra kết quả

2.4.2.2.2 Các khái niệm cơ bản trong ElasticSearch

a Node

Node được biết đến là trung tâm hoạt động của Elasticsearch, nơi lưu trữ

dữ liệu, tham gia quá trình đánh chỉ mục của cluster và search Mỗi một node được xác

Trang 30

định bằng một tên khác nhau và không được phép đặt tên trùng vì có thể xảy ra lỗi khôngtìm thấy data của các server.

b Cluster

Nơi tập trung các nodes cùng hoạt động, chia sẻ nhau một thuộc tínhcluster name Trong quá trình đặt tên cluster tránh việc đặt tên của các clusterelasticsearch trùng nhau vì sẽ gây ra lỗi cho các nodes nên khi cấu hình chúng ta cần phảiđặc biệt chú ý Trong hệ thống thực tế, cluster sẽ bao gồm nhiều nodes hoạt động trênserver khác nhau nhằm đảm bảo khi xảy ra sự cố một server chết thì các node trên cácserver khác vẫn hoạt động các chức năng đầy đủ

Hình 2 8: Hình ảnh minh họa Elasticsearch Cluster

c Document

Document được biết đến là đơn vị thông tin cơ bản có thể đánh index.Document được hình dung như row của table trong cơ sở dữ liệu quan hệ Hầu hết cácobjects (đối tượng) và documents đều có thể hiển thị dưới dạng JSON document

Ví dụ: Document được thể hiện dưới dạng JSON document:

Hình 2 9: Hình ảnh minh họa Elasticsearch Document

d Index

Ngày đăng: 28/10/2022, 10:50

TỪ KHÓA LIÊN QUAN

TRÍCH ĐOẠN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w