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 1TRƯỜ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 2TRƯỜ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 35
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 46
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 57
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 68
Ý kiến giảng viên hướng dẫn TP Hồ Chí Minh, ngày … tháng … năm 2019
Trang 79
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 810
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 911
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 1012
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 1113
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 1214
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 1315
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 1416
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 1517
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 16Tấ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 1719
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 1921
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 2022
- 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 2123
- 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 2224
- 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 2325
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 2426
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 25Trong 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 2628
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 2830
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 2931
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