1. Trang chủ
  2. » Luận Văn - Báo Cáo

Tìm Hểu Spark Cho Phân Tích Dữ Liệu Lớn Và Áp Dụng Cho Bài Toán Phát Hiện Xâm Nhập Mạng.pdf

58 3 0
Tài liệu được quét OCR, nội dung có thể không chính xác
Tài liệu đã được kiểm tra trùng lặp

Đ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

Tiêu đề Tìm Hiểu Spark Cho Phân Tích Dữ Liệu Lớn Và Áp Dụng Cho Bài Toán Phát Hiện Xâm Nhập Mạng
Tác giả Ho Van Phong, Tran Quang Minh
Người hướng dẫn Ths. Quach Dinh Hoang
Trường học Trường Đại Học Sư Phạm Kỹ Thuật TP.Hồ Chí Minh
Chuyên ngành Hệ Thống Thông Tin
Thể loại Luận Văn Tốt Nghiệp
Năm xuất bản 2019
Thành phố TP.Hồ Chí Minh
Định dạng
Số trang 58
Dung lượng 2,09 MB

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

Nội dung

Untitled TRƢỜNG ĐẠI HỌC SƢ PHẠM KỸ THUẬT TP HỒ CHÍ MINH KHOA CÔNG NGHỆ THÔNG TIN BỘ MÔN HỆ THỐNG THÔNG TIN Đề tài KHÓA LUẬN TỐT NGHIỆP KỸ SƢ CNTT KHOÁ 2015 2019 GIÁO VIÊN HƢỚNG DẪN THS QUÁCH ĐÌNH HOÀN[.]

Trang 1

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH

KHOA CÔNG NGH Ệ THÔNG TIN

B Ộ MÔN HỆ THỐNG THÔNG TIN

TÌM HI ỂU SPARK CHO PHÂN TÍCH DỮ LIỆU

L ỚN VÀ ÁP DỤNG CHO BÀI TOÁN PHÁT HIỆN

XÂM NH ẬP MẠNG

Trang 2

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HỒ CHÍ MINH

KHOA CÔNG NGH Ệ THÔNG TIN

B Ộ MÔN HỆ THỐNG THÔNG TIN

-

Đề tài:

TÌM HI ỂU SPARK CHO PHÂN TÍCH DỮ LIỆU

L ỚN VÀ ÁP DỤNG CHO BÀI TOÁN PHÁT HIỆN

XÂM NH ẬP MẠNG

GIÁO VIÊN HƯỚNG DẪN THS QUÁCH ĐÌNH HOÀNG

KHOÁ 2015 - 2019

Trang 3

5

L ỜI CẢM ƠN

Nhóm chúng tôi xin chân thành cảm ơn khoa Công Nghệ Thông Tin, Bộ Môn Hệ Thống Thông Tin, trường Đại học Sư Phạm Kỹ Thuật TP.Hồ Chí Minh đã tạo điều kiện thuận lợi cho chúng tôi thực hiện đề tài này

Chúng tôi cũng xin được gửi lời cảm ơn chân thành nhất đến thầy Quách Đình Hoàng, người đã tận tình chỉ bảo và hướng dẫn nhóm chúng tôi thực hiện đề tài này Bên cạnh đó, chúng tôi xin gửi lời cảm ơn đến các thầy cô giảng viên của trường Đại Học Sư Phạm Kỹ Thuật TP.Hồ Chí Minh nói chung cũng như các thầy cô giảng viên khoa Công Nghệ Thông Tin nói riêng, những người đã giảng dạy, tạo điều kiện cho chúng tôi ích lũy được những kiến thức quý báu trong những năm học qua

Dù đã cố gắng hoàn thành đề tài khóa luận đúng yêu cầu, nhưng do thời gian hạn hẹp và khả năng còn hạn chế nên nhóm chúng tôi chắc chắn sẽ không tránh khỏi thiếu sót Chúng tôi mong nhận được sự thông cảm và tận tình chỉ bảo của các thầy cô và các bạn

Nhóm chúng tôi xin chân thành c ảm ơn

Trang 4

6

TRƯỜNG ĐẠI HỌC SƯ PHẠM KỸ THUẬT TP HCM

KHOA CÔNG NGHỆ THÔNG TIN

o

ĐỀ CƯƠNG LUẬN VĂN TỐT NGHIỆP

Họ và tên SV thực hiện 1: Trần Quang Minh MSSV: 15110250

Họ và tên SV thực hiện 2: Hồ Văn Phong MSSV: 15110277

Thời gian làm luận văn: Từ: 03/2019 Đến: 07/2019

Chuyên ngành: Hệ thống thông tin

Tên luận văn: Tìm hiểu Spark cho phân tích dữ liệu lớn và áp dụng cho bài

toán phát hiện xâm nhập mạng Giáo viên hướng dẫn: Ths Quách Đình Hoàng

NHIỆM VỤ CỦA LUẬN VĂN:

Nhiệm vụ của luận văn là áp dụng một vài thuật toán học máy được Spark hỗ trợ vào tập

dữ liệu phổ biến cho vấn đề xâm nhập mạng Sau đó, luận văn tập trung vào tiến hành đánh giá hiệu quả một số thuật toán trong phát hiện xâm nhập mạng Để đạt được điều

đó, chúng tôi tập trung tìm hiểu một số vấn đề sau:

1 Tìm hiểu tổng quan về phát hiện xâm nhập mạng

2 Tìm hiểu tổng quan về Spark cho phân tích dữ liệu lớn

3 Tìm hiểu tổng quan các thuật toán học máy mà Spark hỗ trợ

4 Tìm hiểu về các tập dữ liệu mạng phổ biến được sử dụng cho bài toán phát hiện xâm nhập mạng

5 Đánh giá và so sánh một số thuật toán học máy cho bài toán phát hiện xâm nhập

mạng

K Ế HOẠCH THỰC HIỆN:

Trang 5

7

1 Từ 01/03/2019

Đến 07/03/2019

Tìm hiểu tài liệu và tài liệu liên quan

Tìm hiểu tổng quan về phát hiện xâm nhập mạng

Chọn một vài thuật toán phù hợp để thực nghiệm

Tìm hiểu về cách tiền xử lý dữ liệu

Tìm hiểu cách lựa chọn thuộc tính

Thực hiện tiền xử lý dữ liệu

Thực hiện lựa chọn thuộc tính

Tổng hợp và viết báo cáo

Thiết kế slide báo cáo

Trang 6

8

Ý kiến giảng viên hướng dẫn TP Hồ Chí Minh, ngày … tháng … năm 2019

Trang 7

9

M ỤC LỤC

L ỜI CẢM ƠN 5

ĐỀ CƯƠNG LUẬN VĂN TỐT NGHIỆP 6

M ỤC LỤC 9

DANH M ỤC HÌNH VẼ 12

DANH M ỤC BIỂU MẪU 13

DANH M ỤC CÁC TỪ VIẾT TẮT 14

CHƯƠNG 1: TỔNG QUAN ĐỀ TÀI 15

1.1 GIỚI THIỆU BÀI TOÁN 15

1.2 MỤC TIÊU 15

1.3 BỐ CỤC CỦA BÁO CÁO 16

CHƯƠNG 2: TỔNG QUAN VỀ PHÁT HIỆN XÂM NHẬP MẠNG 17

2.1 KHÁI NIỆM XÂM NHẬP MẠNG 17

2.2 MỘT SỐ KIỂU TẤN CÔNG PHỔ BIẾN 17

2.2.1 Tấn công từ chối dịch vụ 17

2.2.2 Tấn công thăm dò 18

2.2.3 Tấn công chiếm quyền root 18

2.2.4 Tấn công điều khiển từ xa 19

2.3 M ỘT SỐ KỸ THUẬT PHÒNG CHỐNG XÂM NHẬP TRUYỀN THỐNG 19

2.3.1 Tường lửa (firewall) 19

2.3.2 Mã hóa dữ liệu 19

2.3.3 VPN 20

2.4 HỆ THỐNG PHÁT HIỆN XÂM NHẬP MẠNG 20

2.4.1 Khái niệm 20

2.4.2 Chức năng 21

2.4.3 Phân loại 21

2.4.3.1 Thu thập dữ liệu giám sát 21

2.4.3.2 Thu thập dữ liệu phân tích 23

Trang 8

10

CHƯƠNG 3: TỔNG QUAN VỀ SPARK TRONG PHÂN TÍCH DỮ LIỆU LỚN 25

3.1 TỔNG QUAN SPARK 25

3.2 KI ẾN TRÚC CƠ BẢN CỦA SPARK 26

3.3 SPARK APPLICATIONS 27

3.4 SPARKSESSION 28

3.5 DATAFRAMES 28

3.6 TRANSFORMATIONS 29

3.7 ACTIONS 30

3.8 WORKFLOW CỦA SPARK ARCHITECTURE 31

3.9 MLLIB 32

3.9.1 Học có giám sát 34

3.9.2 Gợi ý 35

3.9.3 Học không có giám sát 35

3.9.4 Phân tích đồ thị 35

3.9.5 Deep learning 36

CHƯƠNG 4: KẾT QUẢ ỨNG DỤNG MỘT SỐ THUẬT TOÁN VÀO PHÁT HIỆN XÂM NH ẬP MẠNG 37

4.1 BỘ DỮ LIỆU NSL-KDD 37

4.2 THỰC NGHIỆM 42

4.2.1 Thông số đánh giá các thuật toán học máy 42

4.2.2 Một số phương pháp đánh giá 42

4.2.2.1 Hold-out Validation 42

4.2.2.2 Cross-Validation 43

4.2.2.3 Bootstrap và Jackknife 44

4.2.3 Hyperparameter Tuning 45

4.2.4 Tiến hành thực nghiệm 46

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

4.2.3.2 Lựa chọn thuộc tính 48

4.2.4.3 Ước lượng độ chính xác và lực chọn tham số 51

Trang 9

11

4.2.4.4 Tiến hành kiểm tra model 55

K ẾT LUẬN 56

1 K ẾT QUẢ ĐẠT ĐƯỢC 57

2 KHÓ KHĂN GẶP PHẢI 57

3 V ẤN ĐỀ TỒN ĐỌNG VÀ HƯỚNG PHÁT TRIỂN 58

TÀI LI ỆU THAM KHẢO 59

Trang 10

12

DANH M ỤC HÌNH VẼ

Hình 2.1 Network – based IDS 22

Hình 2.2 Host – based IDS 23

d Hình 3.1 Spark’s toolkit 25

Hình 3.2 Spark Cluster 26

Hình 3.3 Kiến trúc của hệ thống Spark 27

Hình 3.4 SparkSession 28

Hình 3.5 Ví dụ cách phân phối partition trong Spark 29

Hình 3.6 Phép biến đổi narrow dependencies 30

Hình 3.7 Phép biến đổi wide dependencies 30

Hình 3.8 Quá trình thao tác DataFrame theo logic và vật lý 31

Hình 3.9 Workflow của Spark Architecture 31

Hình 3.10 Apache Spark Ecosystem 32

Hình 3.11 Quy trình thực hiện học máy trong Spark 33

Hình 3.12 Đồ thị mẫu có bảy nút và bảy cạnh 35

Hình 4.1 Hold-out Validation 43

Hình 4.2 Cross - Validation 44

Hình 4.3 Bootstrap and Jackknife 44

Hình 4.4 Grid Search 45

Hình 4.5 Random Search 46

Hình 4.6 Minh họa phương pháp One hot encoding 47

Trang 11

13

DANH M ỤC BIỂU MẪU

Bảng 4.1 Tập 41 thuộc tính của tập dữ liệu KDD99 37

Bảng 4.2.Thông tin tập dữ liệu NSL-KDD 41

Bảng 4.3 Confusion matrix 42

Bảng 4.4 Phương án biến đổi nhãn cho tiền xử lý dữ liệu 47

Bảng 4.5 Loại dữ liệu của các thuộc tính trong tập KDD-NSL 48

Bảng 4.6 Kết quả tính mean cho thuộc tính count 49

Bảng 4.7 Bảng thống kê tần số của các thuộc tính logged_in 50

Bảng 4.8 Thống kê kết quả chỉ số AR cho 41 thuộc tính 51

Bảng 4.9 5 Hyperparameter cho mỗi tham số lên từng thuật toán 52

Bảng 4.10 Kết quả độ chính xác trung bình áp dụng 5 fold lên mỗi tham số cho thuật toán Randomforest 53

Bảng 4.11 Kết quả độ chính xác trung bình áp dụng 5 fold lên mỗi tham số cho thuật toán Neural Network 53

Bảng 4.12 Kết quả độ chính xác trung bình áp dụng 5 fold lên mỗi tham số cho thuật toán Logistic regression 53

Bảng 4.13 Kết quả độ chính xác trung bình áp dụng 5 fold lên mỗi tham số cho thuật toán Support Vector Machine 54

Bảng 4.14 Hyperparameter tốt nhất cho mỗi tham số tương ứng với từng thuật toán 54

Bảng 4.15 Kết quả thực nghiệm cho thuật toán Randomforest 55

Bảng 4.16 Kết quả thực nghiệm cho thuật toán Neural Network 55

Bảng 4.17 Kết quả thực nghiệm cho thuật toán Logistic regression 55

Bảng 4.18 Kết quả thực nghiệm cho thuật toán Support Vector Machine 55

Trang 12

14

DANH M ỤC CÁC TỪ VIẾT TẮT

VPN: Virtual Private Network

IDS: Intrusion Detection System

DAG: Logically Directed Acyclic Graph

AR: Attribute Ratio

CR: Class Ratio

U2R: User to Root

DoS: Denial of Service

Trang 13

15

CHƯƠNG 1: TỔNG QUAN ĐỀ TÀI 1.1 GIỚI THIỆU BÀI TOÁN

Hiện nay, chúng ta đang bước vào cuộc cách mạng 4.0 với sự bùng nổ và phát triển mạnh

mẽ của internet kèm theo nhu cầu trao đổi thông tin dữ liệu ngày càng lớn và đa dạng Đi kèm theo sự phát triển mạnh mẽ đó là các yếu tố: tốc độ, chất lượng, bảo mật, sự đa dạng các dịch vụ, Trong đó, bảo mật là một trong những vấn đề quan trọng nhất đối với cả nhà cung cấp dịch cũng như người sử dụng, không chỉ đối với các cá nhân mà còn đặc biệt quan trọng trong các ngành mang tính đặc thù yêu cầu về bảo mật cao như quân sự, ngân hàng tài chính… Nó cũng trở thành mục tiêu lợi dụng của những kẻ tấn công, xâm nhập trái phép nhằm thực hiện những mưu đồ xấu, đe dọa tới tính an toàn về bảo mật thông tin của các tổ chức hay những người dùng kết nối mạng Mặc dù, mỗi hệ thống máy tính đều có những cơ chế tự bảo vệ riêng nhưng có thể chưa đủ để phát hiện hay ngăn chặn những cuộc tấn công ngày một tinh vi hơn Vấn đề đặt ra là làm sao xây dựng được một hệ thống có thể phát hiện sớm và có hiệu quả các cuộc tấn công hay xâm nhập trái phép từ đó đưa ra những cảnh báo và biện pháp xử lý kịp thời

Những hệ thống phát hiện xâm nhập mạng đã được xây dựng vẫn chưa đủ linh hoạt, khả năng mở rộng không cao, cũng như không đủ mạnh để đối phó với các cuộc tấn công nói trên Một vài nghiên cứu gần đây đưa ra một hướng tiếp cận mới dựa vào học máy cho bài toán phát hiện xâm nhập mạng Bên cạnh đó là sự ra đời của nhiều hệ thống hỗ trợ học máy xử lý với lượng lớn dữ liệu như Apache Spark Điều này hứa hẹn sẽ đem lại một cách tiếp cận hiệu quả cho bài toán phát hiện xâm nhập Vì vậy, luận văn sẽ tiếp cận theo hướng tìm hiểu Spark cho phân tích dữ liệu lớn và áp dụng cho bài toán hiện xâm nhập mạng

1.2 MỤC TIÊU

Nhiệm vụ của đề tài là áp dụng một vài thuật toán học máy được Spark hỗ trợ vào tập dữ liệu phổ biến cho vấn đề xâm nhập mạng Sau đó, luận văn tập trung vào tiến hành đánh

Trang 14

16

giá hiệu quả một số thuật toán trong phát hiện xâm nhập mạng Để đạt được điều đó, chúng tôi tập trung tìm hiểu một số vấn đề sau:

+ Tìm hiểu tổng quan về phát hiện xâm nhập mạng

+ Tìm hiểu tổng quan về Spark cho phân tích dữ liệu lớn

+ Tìm hiểu tổng quan các thuật toán học máy mà Spark hỗ trợ

+ Tìm hiểu về các tập dữ liệu mạng phổ biến được sử dụng cho bài toán phát hiện xâm nhập mạng

+ Đánh giá và so sánh một số thuật toán học máy cho bài toán phát hiện xâm nhập mạng

1.3 BỐ CỤC CỦA BÁO CÁO

Các phần còn lại của báo cáo được tổ chức với nội dung như sau:

Chương 2: Tổng quan về phát hiện xâm nhập mạng: Hệ thống hóa các vấn đề liên

quan tới phát hiện xâm nhập mạng Ngoài ra, chương này cũng trình bày cách tiếp cận dựa trên máy học để giải quyết vấn đề phát hiện xâm nhập mạng

Chương 3: Tổng quan về Apache Spark trong phân tích dữ liệu lớn: Giới thiệu về

Apche Spark trong phân tích dữ liệu lớn và một số thuật toán học máy được hỗ trợ

Chương 4: Đánh giá và so sánh một số thuật toán học máy cho bài toán phát hiện xâm nh ập mạng: Tiến hành thực nghiệm một số thuật toán học máy được Apache Spark

hỗ trợ nêu ở chương 3 trên nhiều bộ dữ liệu chuẩn (NSL-KDD), từ đó có những đánh giá, nhận xét và so sánh về tỷ lệ phát hiện xâm nhập cùng thời gian phát hiện của mỗi mô hình

Trang 15

17

CHƯƠNG 2: TỔNG QUAN VỀ PHÁT HIỆN XÂM NHẬP MẠNG

2.1 KHÁI NIỆM XÂM NHẬP MẠNG

Hiện nay vẫn chưa có định nghĩa chính xác về khái niệm xâm nhập mạng Mỗi chuyên gia trong lĩnh vực an toàn thông tin luận giải khái niệm này theo ý hiểu của mình Xâm nhập mạng có thể định nghĩa là hành vi đột nhập vào mạng để truy cập, thao tác hoặc lạm

dụng một số tài sản có giá trị trên mạng Việc lạm dụng có thể dẫn đến kết quả khiến cho tài nguyên mạng trở nên không đáng tin cậy hoặc không sử dụng được Hầu hết các cuộc tấn công xâm nhập mạng máy tính vượt qua các lớp bảo mật của hệ thống theo những phương thức cụ thể nhằm phá vỡ các thuộc tính bảo mật của thông tin và hệ thống Tuy nhiên, một định nghĩa khác được biết đến khá rộng rãi là định nghĩa của Kendall năm

1999 Tác giả đã đưa ra khái niệm về xâm nhập như sau:

“Tấn công mạng hay còn gọi là xâm nhập mạng là những hoạt động có chủ đích,

lợi dụng các tổn thương của hệ thống thông tin nhằm phá vỡ tính sẵn sàng, tính toàn

2.2 MỘT SỐ KIỂU TẤN CÔNG PHỔ BIẾN

Hiện nay, các kiểu xâm nhập mạng thường được phân loại thành các loại chính: tấn công

từ chối dịch vụ, kiểu thăm dò, tấn công chiếm quyền “root”, tấn công điều khiển từ xa Phần dưới đây sẽ trình bày chi tiết các kiểu tấn công này

2.2.1 Tấn công từ chối dịch vụ

Tấn công từ chối dịch vụ ( Denial of Service) hay viết tắt DoS là kiểu tấn công làm cho một hệ thống nào đó bị quá tải không thể cung cấp dịch vụ, làm gián đoạn hoạt động của

hệ thống hoặc hệ thống phải ngưng hoạt động

Tùy theo phương thức thực hiện mà nó được biết dưới nhiều tên gọi khác nhau Bắt đầu là lợi dụng sự yếu kém của giao thức TCP để thực hiện tấn công từ chối dịch

vụ DoS Ngoài ra còn có kiểu tấn công từ chối dịch vụ phân tán DDoS ( Distributed

Trang 16

Tấn công dịch vụ phân tán DDoS xuất hiện vào năm 1999, so với tấn công DoS cổ điển, sức mạnh của DDoS cao hơn gấp nhiều lần Hầu hết các cuộc tấn công DDoS nhằm vào việc chiếm dụng băng thông gây nghẽn mạch hệ thống dẫn đến hệ thống ngưng hoạt động Để thực hiện thì kẻ tấn công tìm cách chiếm dụng và điều khiển nhiều máy tính/mạng máy tính trung gian, từ nhiều nơi để đồng loạt gửi ào ạt các gói tin với số lượng rất lớn nhằm chiếm dụng tài nguyên và làm nghẽn đường truyền của một mục tiêu xác định nào đó

2.2.2 Tấn công thăm dò

Đối với kiểu tấn công thăm dò (Probe), tin tặc quét mạng hoặc máy tính để tìm

ra điểm yếu dễ tấn công mà thông qua đó tin tặc có thể thu thập thông tin trái phép về tài nguyên, các lỗ hổng hoặc dịch vụ của hệ thống Các kiểu tấn công thăm dò như: Sniffing, Ping Sweep, Ports Scanning,…

2.2.3 Tấn công chiếm quyền root

Kiểu tấn công chiếm quyền root (User to Root) viết tắt là U2R, tin tặc với quyền của một người dùng bình thường cố gắng để đạt được quyền truy nhập cao nhất (đặc quyền của người quản trị) vào hệ thống một cách bất hợp pháp Cách thức phổ biến

của kiểu tấn công này là gây tràn bộ đệm

Kiểu tấn công này ít gặp hơn so với hai kiểu tấn công DoS và probe Tuy nhiên, đây cũng là loại tấn công rất nguy hiểm do kẻ tấn công chiếm được quyền cao nhất và chúng có thể kiểm soát toàn bộ hệ thống

Trang 17

19

2.2.4 Tấn công điều khiển từ xa

Đây là kiểu tấn công điều khiển từ một máy tính từ xa có tên tiếng anh là

“remote to local” hay R2L Ban đầu, kẻ tấn công không có tài khoản trong hệ thống nhưng chúng lại cố gắng gửi các gói tin đến một máy tính trong một hệ thống thông qua mạng Sau đó, chúng khai thác các lỗ hổng bảo mật để truy cập trái phép nhưng

với tư cách của một người dùng cục bộ Cách tấn công phổ biến của loại này là đoán mật khẩu thông qua phương pháp từ điển brute-force, FTP Write,

2.3 MỘT SỐ KỸ THUẬT PHÒNG CHỐNG XÂM NHẬP TRUYỀN THỐNG

Một số các biện pháp ngăn chặn xâm nhập được sử dụng khá phổ biến như: tường lửa (firewall), mã hóa, VPN,…

2.3.1 Tường lửa (firewall)

Tường lửa là một kỹ thuật được tích hợp vào hệ thống mạng để chống sự truy cập trái phép nhằm bảo vệ các nguồn thông tin nội bộ và hạn chế sự xâm nhập không mong muốn vào hệ thống Tường lửa có thể là hệ thống phần cứng, phần mềm hoặc kết hợp cả hai Thông thường, tường lửa được đặt giữa mạng bên trong của một công ty, tổ chức, ngành hay một quốc gia và Internet Vai trò chính là bảo mật thông tin,, ngăn chặn sự truy cập không mong muốn từ bên ngoài và ngăn chặn truy cập từ bên trong tới một số địa chỉ nhất định trên Internet

2.3.2 Mã hóa dữ liệu

Mã hóa dữ liệu là phương pháp bảo vệ thông tin dữ liệu bằng cách chuyển dữ liệu từ dạng thông thường sang dạng bị mã hóa không thể đọc được, nhưng có thể được

về dạng ban đầu được nhờ một hình thức giải mã tương ứng Tác dụng của nó là ngăn

chặn việc nghe trộm và chỉnh sửa dữ liệu trên đường truyền, bên thứ ba có thể lấy được các gói tin đã mã hóa, nhưng không thể đọc được nội dung thông điệp từ các gói tin này Ngăn chặn việc giả mạo thông tin và đảm bảo tính không thể phủ nhận của an toàn mạng Tương ứng với mỗi cách mã hóa là một cách giải mã nhất định, bao gồm thuật toán và bộ khóa mã là bí mật

Trang 18

đi chỉ cung cấp phần đầu gói dữ liệu là thông tin về đường đi cho phép nó có thể đi đến đích thông qua mạng công cộng một cách nhanh chóng Dữ liệu được mã hóa một cách cẩn thận do đó nếu có packet bị bắt lại trên đường truyền công cộng cũng không thể đọc được nội dung vì không có khóa để giải mã Liên kết với dữ liệu được mã hóa và đóng gói được gọi là kết nối VPN Các đường kết nối VPN thường được gọi là đường ống VPN (VPN Tunnel)

2.4 HỆ THỐNG PHÁT HIỆN XÂM NHẬP MẠNG

Mặc dù, bản thân mỗi hệ thống máy tính đều có những cơ chế bảo mật riêng nhằm chống lại và ngăn chặn những xâm nhập trái phép nhưng những giải pháp bảo mật như firewall, mã hóa dữ liệu,…chưa đủ mạnh để có thể phát hiện, cảnh báo, ngăn chặn được những cuộc tấn công mới, ngày càng tinh vi hơn Vấn đề đặt ra là cần phải xây dựng một hệ thống giám sát chuyên biệt, có khả năng phát hiện và đưa ra cảnh báo

sớm về các nguy cơ tấn công Hệ thống phát hiện xâm nhập chính là câu trả lời

2.4.1 Khái niệm

Phát hiện xâm nhập mạng là quá trình theo dõi các sự kiện xảy ra trong một hệ

thống máy tính hoặc mạng máy tính và phân tích chúng để tìm ra các dấu hiệu sự cố có thể xảy ra, đó là các hành vi hoặc các mối đe dọa sắp xảy ra, vi phạm các chính sách bảo mật, các chính sách sử dụng được chấp nhận hoặc dựa trên tiêu chuẩn bảo mật

Trang 19

21

Hệ thống phát hiện xâm nhập mạng (Intrusion Detetion System) là một hệ thống (có thể là thiết bị phần cứng hay phần mềm) nhằm giám sát lưu lượng mạng theo dõi, thu thập thông tin để phát hiện xâm nhập mạng và đưa ra cảnh báo

2.4.2 Chức năng

Chức năng quan trọng nhất là: giám sát – cảnh báo – bảo vệ

 Giám sát: lưu lượng mạng và các hoạt động khả nghi

 Cảnh báo: báo cáo về tình hình mạng cho hệ thống và nhà quản trị

 Bảo vệ: Dùng những thiết lập mặc định và sự cấu hình từ nhà quản trị mà có những hành động thiết thực chống lại kẻ xâm nhập và phá hoại

Chức năng mở rộng:

 Phân biệt: tấn công bên trong và tấn công bên ngoài

 Phát hiện: những dấu hiệu bất thương dựa trên những gì đã biết hoặc nhờ vào sự

so sánh thông lượng mạng

2.4.3 Phân loại

Hệ thống IDS có thể được phân loại dựa trên cách thu thập dữ liệu giám sát hoặc dựa trên phương pháp phân tích. [3]

2.4.3.1 Thu thập dữ liệu giám sát

Theo cách thu thập dữ liệu giám sát thì IDS được chia thành hai dạng hệ thống phát hiện ở mức mạng NIDS (Network -based IDS) và hệ thống phát hiện xâm nhập ở mức máy trạm chủ HIDS (Host – based IDS)

Trang 20

22

- Hệ thống phát hiện xâm nhập ở mức mạng (Network – based IDS)

Hình 2.1 Network – based IDS

Hệ thống NIDS dựa trên mạng sử dụng bộ dò và bộ cảm biến cài đặt trên toàn mạng Một

ví dụ về NIDS được minh họa ở hình 2.1 Trong ví dụ này, những bộ dò theo dõi trên mạng nhằm tìm kiếm những lưu lượng trùng với những mô tả sơ lược được định nghĩa hay là những dấu hiệu Những bộ cảm biến thu nhận và phân tích lưu lượng trong thời gian thực Khi ghi nhận được một mẫu lưu lượng hay dấu hiệu, bộ cảm biến gửi tín hiệu cảnh báo đến trạm quản trị và có thể được cấu hình nhằm tìm ra biện pháp ngăn chặn những xâm nhập xa hơn NIDS là tập nhiều sensor được đặt ở toàn mạng để theo dõi những gói tin trong mạng so sánh với mẫu đã được định nghĩa để phát hiện đó là tấn công hay không

Trang 21

23

- Hệ thống phát hiện xâm nhập ở mức máy trạm chủ (Host – based IDS)

Hình 2.2 Host – based IDS

HIDS thường là một phần mềm chạy trên các trạm làm việc để giám sát tất cả các hoạt động trên máy trạm Một ví dụ về HIDS được minh họa ở hình 2.2 Trong ví dụ này, hệ thống này phân tích thông tin thu được trong nội bộ hệ thống Vì vậy, nó cung cấp một cơ chế phân tích toàn diện các hoạt động và phát hiện một cách chính xác các thành phần tấn công

Nhược điểm của HIDS là việc thu thập dữ liệu xảy ra trên mỗi trạm máy chủ và ghi vào log do đó có thể làm giảm hiệu năng mạng

Theo cách thu thập dữ liệu phân tích thì IDS được chia làm ba loại chính: dựa vào dấu hiệu (Misuse-based IDS), dựa vào bất thường (Anomaly-based IDS) và kết hợp (Hyrid IDS) Hyrid IDS là hệ thống phát hiện xâm nhập kết hợp giữa hệ thống dựa vào dấu hiệu

và hệ thống dựa vào bất thường nên chúng ta chỉ tập trung trình bày hai hệ thống mà thôi

Trang 22

24

- Hệ thống phát hiện xâm nhập dựa vào dấu hiệu (Misuse-based IDS)

Hệ thống IDS loại này dựa vào các dấu hiệu của các cuộc xâm nhập Những dấu hiệu đó

có thể là thông tin về các kết nối nguy hiểm đã biết trước Hệ thống sẽ mô hình hóa các dấu hiệu của các cuộc xâm nhập đã biết và bằng việc so sánh thông tin của các gói tin đến với các dấu hiệu này để phát hiện ra các hoạt động đáng ngờ và đưa ra cảnh báo cho hệ

thống

Ưu điểm của hệ thống này là rất hiệu quả trong việc phát hiện tấn công đã biết với tỷ lệ cảnh báo sai thấp Tuy nhiên, nhược điểm chính của hệ thống là chỉ phát hiện được những cuộc tấn công đã biết, thường xuyên cập nhật các dấu hiệu về các cuộc tấn công mới và thời gian phát hiện tăng khi cơ sở dữ liệu lớn

- Hệ thống phát hiện xâm nhập dựa vào bất thường (Anomaly-based IDS)

Ý tưởng của cách tiếp cận này xuất phát từ giả thiết “Dấu hiệu của các cuộc tấn công khác biệt với dấu hiệu của những trạng thái mạng được coi là bình thường” Khi đó, việc phát hiện sẽ diễn được tiến hành qua hai giai đoạn: giai đoạn huấn luyện (pha huấn luyện)

và gia đoạn phát hiện (pha phát hiện) Tại pha huấn luyện sẽ xây dựng một hồ sơ về các hoạt động bình thường (thông số chuẩn) Sau đó tại pha phát hiện sẽ tiến hành so khớp các quan sát (gói tin) với hồ sơ từ đó xác định dấu hiệu bất thường

Ưu điểm của hệ thống này là hiệu quả trong việc phát hiện các mối nguy hiểm không được biết trước Những năm gần đây, hướng tiếp cận này đang thu hút rất nhiều

sự quan tâm của các nhà nghiên cứu Do đó, luận văn cũng tập trung vào hướng tiếp cận này

Trang 23

25

CHƯƠNG 3: TỔNG QUAN VỀ SPARK TRONG PHÂN TÍCH DỮ LIỆU LỚN 3.1 TỔNG QUAN SPARK

Apache Spark là một kỹ thuật tính toán hợp nhất và là một tập hợp các thư viện cho việc

xử lí dữ liệu song song trên các cụm máy tính Spark hỗ trợ cho nhiều ngôn ngữ lập trình như Python, Java, Scala và R, bao gồm các các thư viện cho các công việc từ SQL đến streaming và machine learning, và chạy trên bất kì đâu từ một chiếc máy tính đến hàng trăm cụm server Bằng cách này, Spark sẽ giúp hệ thống khởi động dễ dàng và scale-up

Trang 24

26

3.2 KIẾN TRÚC CƠ BẢN CỦA SPARK

Hình 3.2 Spark Cluster

Theo thông thường, khi nghĩ về một chiếc máy tính, chúng ta hay nghĩ đến những chiếc

máy tính bàn hay laptop Chúng phục vụ tốt cho những tác cụ cơ bản hằng ngày như lướt

mạng, xem phim Tuy nhiên, thực tế có những tác vụ tính toán đặc thù mà những chiếc

máy kia không đủ sức mạnh để tính toán Để giải quyết vấn đế đó, Spark tổ chức kiến

trúc hệ thống thành các cluster Cluster là một nhóm các máy tính và một tập hợp các

nguồn tài nguyên phục vụ cho cluster đó Mỗi cluster lại có nhiều Worker Node, Worker

Node sẽ đảm bảo thực thi các tác vụ được chỉ định Mọi mệnh lệnh thực thi trên Spark

đều thông qua Spark Context Spark Context sẽ làm việc với cluster manager để quản lí

các tác vụ Trong Spark có các cluster manager như Spark’s standalone cluster manager,

YARN hoặc Mesos Hình 3.2 minh họa về kiến trúc của Spark Cluster

Trang 25

Trong hệ thống Spark, driver process sẽ hàm main của chương trình, và được đặt trong một node của một cluster, và nhiệm vụ của nó như sau:

- Duy trì thông tin về Spark Application

- Phản ứng lại với chương trình của người dùng hoặc kết quả đầu vào

- Phân tích, phân rã và lên biểu đồ công các việc giữa các executor

Executor là những phần chịu trách nhiệm cho việc xử lí các tác vụ mà driver phân công cho chúng Nó có nhiệm vụ như sau:

- Thực thi code được giao

- Báo cáo trạng thái của việc tính toán cho node driver

Trang 26

28

3.4 SPARKSESSION

Chúng ta điều khiển một hệ thống Spark thông qua một driver process được gọi là SparkSession Một thể hiện của SparkSession là cách Spark thực thi các thao tác của người dùng qua lại giữa các cluster SparkSession và Spark Apllication có quan hệ 1-1,

có nghĩa là chỉ có một SparkSession khi một ứng dụng Spark được khởi chạy Hình 3.4

mô tả các API được cung cấp bởi SparkSession

Hình 3.4 SparkSession

3.5 DATAFRAMES

DataFrame là Structured API phổ biến trong Spark nó hiển thị một bảng dữ liệu với các cột và hàng Định nghĩa các kiểu dữ liệu của các cột được gọi là Schema Nếu dữ liệu quá lớn không thể xử lí trên một máy tính thì Spark chia một DataFrame ra cho nhiều máy tính cùng xử lý

Để cho phép mỗi executor thực thi công việc song song, Spark chia dữ liệu thành các phần được gọi là các partition Một partition là một tập hợp các hàng mà được đặt trên một máy tính trong cluster Các partition của một DataFrame sẽ biểu diễn các data được phân bố trên tầng vật lí giữa các cluster như thế nào trong suốt quá trình thực thi.Với các DataFrame, chúng ta không thể phân ra các partition một các thủ công mà Spark sẽ tự

Trang 27

- Narrow dependencies là kiểu biến đổi với mỗi partition đầu vào sẽ cho ra một

partition tương ứng (Hình 3.6)

- Wide dependencies: là kiểu biến đổi với partition đầu vào sẽ cho ra nhiều partition

tương ứng Spark sẽ trao đổi các partition giữa các cluster (Hình 3.7)

Trang 28

30

Hình 3.6 Phép bi ến đổi narrow dependencies Hình 3.7 Phép biến đổi wide dependencies

Bây giờ, ta có thể thấy phép biến đổi chỉ đơn giản là cách chỉ định chuỗi thao tác dữ liệu khác nhau Điều này chúng ta đến một chủ đề gọi là Lazy Evaluation Nó nghĩa là Spark

sẽ đợi cho đến mỗi “last moment” để thực thi đồ thị chỉ dẫn tính toán Trong Spark thay

vì định nghĩa dữ liệu ngay lập tức khi bạn gán một vài phép toán, bạn sẽ xây dựng một

“plan of transformations” mà bạn muốn áp dụng lên dữ liệu gốc Bằng việc đợi tới cuối mới thực thi dòng lệnh, Spark có thể tối ưu các dữ liệu vào và biến đổi chúng

Trang 29

31

Hình 3.8 Quá trình thao tác DataFrame theo logic và v ật lý

3.8 WORKFLOW CỦA SPARK ARCHITECTURE

Hình 3.9 Workflow c ủa Spark Architecture

Hình 3.9 minh họa workflow của Spark Architecture Nó bao gồm các bước như sau:

- Bước 1: Client sẽ đưa lên chương trình code của spark, khi một mã chương trình được gửi đi, driver sẽ chuyển đổi mã của người dùng bao gồm các transformations và actions thành một đồ thị có tên là logically directed acyclic graph (DAG) Tại bước này, Spark cũng tối ưu hiệu xuất, chẳng hạn các pipelining transformation

Ngày đăng: 24/06/2023, 19:37

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