Trong nghiên cứu này, chúng tôi đề xuất một mô hình IDS phân tích lưu lượng lớn trên mạng khả lập trìnhSDN - nghiên cứu về khả năng áp dụng các mô hình học sâu vào việc phát hiện sựbất t
Trang 1ĐẠI HỌC QUOC GIA TP HO CHÍ MINH TRUONG ĐẠI HỌC CÔNG NGHỆ THONG TIN KHOA MẠNG MAY TÍNH VÀ TRUYEN THONG
LE BA TRUC
KHOA LUAN TOT NGHIEP
MÔ HINH IDS PHAN TÍCH LƯU LƯỢNG LON TREN MẠNG KHẢ LAP
TRINH
Intrusion detection with big data analysis in SDN-enabled networks
KY SU NGANH AN TOAN THONG TIN
TP HO CHÍ MINH, 2021
Trang 2ĐẠI HỌC QUOC GIA TP HO CHÍ MINH TRUONG ĐẠI HỌC CÔNG NGHỆ THONG TIN KHOA MẠNG MAY TINH VÀ TRUYEN THONG
LE BA TRUC - 17520183
KHOA LUAN TOT NGHIEP
MÔ HÌNH IDS PHAN TÍCH LƯU LƯỢNG LON TREN MẠNG KHẢ LAP
TRÌNH
Intrusion detection with big data analysis in SDN-enabled networks
KY SU NGANH AN TOAN THONG TIN
GIANG VIÊN HƯỚNG DAN THAC Si PHAN THE DUY
TP HO CHi MINH, 2021
Trang 3THONG TIN HOI DONG CHAM KHÓA LUẬN TOT NGHIỆP Hội đồng cham khóa luận tốt nghiệp, thành lập theo Quyết định số
T8ầy của Hiệu trưởng Trường Đại học Công nghệ Thông tin.
Trang 4Em xin gửi lời cảm ơn chân thành đến thay, cô và các anh chị trong phòng thí nghiệm
an toàn thông tỉnh đã giúp đỡ, hỗ trợ em trong suốt quá trình thực hiện khóa luận Cuối cùng, em xin chân thành cảm ơn gia đình và bạn bè đã luôn tạo điều kiện, quan tâm, giúp đỡ, động viên trong suốt quá trình học tập và hoàn thành khóa luận.
Với điều kiện, thời gian cũng như kinh nghiệm còn hạn chế không thể tránh được những thiếu sót Em rất mong nhận được sự chỉ bảo, đóng góp ý kiến của thay, cô dé
em có thể bổ sung, nâng cao kiến thức của mình, phục vụ tốt hơn cho công tác thực
tế sau này.
Vinh Long, ngày 12 tháng 07 năm 2021
Trang 5MỤC LỤC
Chương 1 GIỚI THIỆU -2 22¿222EE+2+2EEEEE2+EEE2E12222131222211222221.ccer 2
1.1 Mục tiêu
1.2 Đối tượng nghiên cứu esseerieererreererrerrrrrrrerrrrrrrereerere.2
1.3 Phương pháp nghiên CU csssssssssssssssssssssssssssssssssssssssssssssesssssssssssssssssssssssssssssssssssssssssss 2 1.4 Phạm vi nghiên cứu -cccecccccrrrrrrrieerrrrrtrrrrrirrrrrrrrrrrrrrirriirrrrrrrrrroT)
2.2.2 — Học máy, eeciiiiiiiiiiiiiiiiirrrrrrrue LO
2.2.2.2 Học có giám sát -eeeeeeirriiiiirsrsruuue LO
Trang 62.2.2.3 Học không giấm sất ceekkHhHHHH Hà ờt 17
2.2.2.4 Học bán giấm sát e-csekkEHHH HH HYnH Hà iờg 18
2.2.3 Hệ thong phát hiện và phòng ngừa xâm nhập (IDS) 18
2.2.4 Công nghệ dữ liệu lớn ccccxcccserteerekteerekrrerrrrrkerrkrrrrree 19
2.2.4.1 Apache SpaTK c-cccehHHHH HH 11k 20
2.2.4.2 Hadoop Distributed File System (HDFES) c-.ce 24
2.2.5 Các công trình nghiên cứu liên quan đến IDS-Bigdata 26
Chương 3 Ý TƯỞNG THIẾT KE HE THÓNG -2¿ 2 5+22+z22+ze- 28
4“ 28
3.2 Trình phát hiện xâm nhập (Intrusion Detection Engine) 30
3.2.1 Hoạt động của máy chủ dự đoán (Decision SerVer) - 31
3.2.2 Mô hình học máy đề xuất -+ ccccerrrreeccvvrrrrrrcrrrrrrrrre 32
3.2.3 Cơ chế huấn luyện các mô hình học máy trong cụm 35
Chương 4 TRIÊN KHAI HỆ THÓNG ¿2-2 2© £+E£+E£+E££Eerkerxerszxez 37
4.1 Mô hình triển khai -e.-criiHHiHHHHHiiririiriiere 37
4.2 Cài đặt môi trường (xem chi tiết cài đặt tại phụ lục) 38
4.2.2 Cai Gat mdorloon Sa Ô 41
4.2.3 Cài đặt Spark Streamming -c-eerxesrrrerrrerrrrrrrrrerrrrrree 43 4.2.4 Cài đặt Hadoop C ]usfer -cseccrrererertrrrtrrrirrrrrrrrrierrrrrree 47
4.2.5 Cài đặt Spark CÏusf€r ccreerererrrrrtrrrrrrrrrrrrerrrrree 49
4.3 Tập dữ liệu được sử dụng -. cveecxeekriikkirtkrittriitiiiiriiirrririrrrieei 50
Chương 5 THIẾT KE THỰC NGHIỆM -2- 222£+£E+£E+£E++Es+rxerxezez 55
5.1 Các cấu hình Spark cluster +eceseeceerreverreretrrererrrrrrrrrrrte 55
Trang 75.2 Đánh giá mô hình học máyy -. -ss-c-secccxeterrvettrxetrrrxerrrkertrrrerrrrerrrrrerrre 56
5.2.1 ACCUTACY c.àce.hHHHHỊHHHHHHHHY HH HHÌn HH nHY HH Hàng Hy 56
5.2.2 e0 56
5.2.3 o0 56 5.2.4 IS 57
5.3 Kết quả thực nghiệm :+cccccctttte2SEEEEEEEEEEEEEEEEriAEEEEErrrrirerkrrrrrrrree 57
5.3.1 Các thuật toán hoc máy triển khai trên cụm SparK -.-«- 57
5.3.2 Hao phí về thời gian cho mỗi cau hình cụm Spark 59
Chương 6 KẾT LUẬN VA HƯỚNG PHÁT TRIỀN -¿ 5¿©55z-: 63
6.1 Kết luận 4, »Z⁄⁄⁄2.xwwww(TTÂ 63
vi oi phat 7n 63
TÀI LIEU THAM KHẢO - 2-2-5255 2SESE‡EE‡EEE2EE2EEEEEE21122122121 211211211 ce, 65
PHỤLỤC 67
Trang 8DANH MỤC HÌNH
Hình 2.1: Kiến trúc điều khiển mạng truyền thống và mạng SDN 7Hình 2.2: Mô hình kiến trúc mạng SDN tập trung và phân tán 11Hình 2.3: Tiến trình xử lý của Openflow -ccs-eccerrecerrrerrrrrrrrrrrrerrre 12
Hình 2.4: Quy trình xử lý gói tin trên một OpenFlowSwifch -«-« -««- 13 Hình 2.5: 6Vs của Big data eeessssssscsssssesssesssesesssecssessessseeseeesesssesaeessesstecatesseessessteeseesneesesseesaes 20
Hình 2.6: Các thành phần của Spark ccs.+cestreeverrrrerrtererrrrrtrrrrerrre 21Hình 2.7: Kiến trúc master/slaves của Spark -cse-ccetreeeerrrreerrreerrre 24Hình 2.8: Kiến trúc HDES -tHHHHHHHHHHHH Hari 25
Hình 3.1: Tổng quan các thành phan có trong hệ thống -.- 29
Hình 3.2: Kiến trúc IDS được dé xuất ceeiirriiiiiiirrie 30
Hình 3.3: Flowchart của traffic bên trong Decision Serve 31 Hình 3.4: Trinh tự các bước trong mô hình học máy, -c-s«-cxe+crrserxrxs 32
Hình 3.5: Kiến trúc CNN-LSTM model ss++cecSttrrevettrrerevrtrrcrerrrree 34Hình 3.6: Kiến trúc GRU model -seseereererierieriereriiriirerrirrre 34Hình 3.7: Phân chia bộ dữ liệu huấn 0 0 35Hình 3.8: Quá trình huấn luyện mô hình học máy -:-.ccccerr:rrecceverrrre 35Hình 4.1: Mô hình triỀn khai .-,ckcetreriiiriiie 37
Hình 4.2: Mô hình mạng SIDN -ss* HH HH Hàng Hàng gHàgiờn 39
Hình 4.3: Hiện thực mô hình mang SDN bang Python -ss-ee 40Hình 4.4: Cài đặt port mirroring về host thu thập lưu lượng mạng tập trung 41
Hình 4.5: Thông tin các host được ảo hoá với docker cOnfa1ner - 41
Hình 4.6: Đoạn mã bash shell kết hợp hai công cụ TCPDUMP và CICFlowmeter 42Hình 4.7: Sử dụng Nohup dé chạy trong nền mã bash shell 43
Hình 4.8: Dữ liệu lưu lượng mang SDN đã được thu thập - 43
Hình 4.9: Spark Structured Streaming WOorkfÏOW c.cseiekkiiiiiiiiiiee 43
Hình 4.10: Đường dẫn đến folder chứa file cần phân tích -::- 44
Hình 4.11: Hàm readStream (Structured Stream1ng) -‹« c++esexssrssxxees 44
Trang 9Hình 4.12: Schema được định nghĩa (Structured Streaming) -. s s« 45
Hình 4.13: Lọc dữ liệu (Structured Streaming) -‹ e-eceeerxerersrrrtrrerrree 45 Hình 4.14: Hàm writeStream (Structured Streaming), request API 46 Hình 4.15: Option Checkpoint (Structured Streaming) 46 Hình 4.16: Hàm awaitTermination eescseessessssesssesssecssesssescssesseessnsesseesseesseesseessseeesseesasesseeeses 46
Hình 4.17: Cấu hình file /etc/hosts trên máy hadoopl (master) s 47
Hình 4.18: Cài đặt đường dẫn cho Hadoop và java trong file bash 48
Hình 4.19: Cấu hình file masters -2++ccSsirrcevErtrreevtrrrrrrrrrrrrrrrrrrrrerrrree 48Hình 4.20: Cấu hình file workers -:++eccetrrceverrrreertrrrrrrrrrrrrrrrrrrrrrrrrree 49Hình 4.21: Cấu hình file spark-env.sh -s++cc2treevttrerertrerrrrrrrtrrrrrrrre 49Hình 4.22: Tạo và cấu hình file Workers -+iirccceeevvevErrrrrrrtreeeeeverrrrrrrrrrree 49Hình 4.23: Kiểm tra các dịch vụ đã MO sssssssssssssssssssesssssssssssssssssssssssssssssssesessesesessssesseee 50
Trang 10DANH MUC BANG
Header của bang Entry được sử dụng trong OpenFÌow 14
Các bộ điều khiển hỗ trợ OpenFloww - -.eceerireecerrrreeerrrrrerrt 14Cấu trúc CNN-LSTM Model -ceerieriererrrrrrrrrrrree 33
Cấu trúc GRU Model -eersetreerirririiriiriirrriirereerrir 34
48 Features được trích xuất từ dữ liệu thô -iirereeerrisreee 50Phân phối các loại traffic trong file 14-02-2018 và 03-02-2018 53Tóm tắt các cầu hình Spark sssssssssesssssessssessssesasesssssesssssesassssassesasssesesses 55
Thời gian xử lý dữ liệu của cluster với mô hình học máy 58
Các kết quả của các mô hình học máy s-+ s2+-ce+rcztrce 59
Thời gian preprocess (giây) của các model với các cấu hình khác nhau.59
Thời gian huân luyện (giây) của các mô hình với các câu hình khác nhau
: Thời gian dự đoán (giây) của các mô hình với các cấu hình khác nhau 60
: Độ chính xác của các mô hình -sc-cc+x+xsees+ssrererssrersrssrsrrseree 61
Trang 11DANH MỤC TU VIET TAT
SDN Software-Defined Network
IDS Intrusion Detection System
GRU Gated Recurrent Unit
MLP MultiLayer Perceptron
GPT Generative Pre-training
CNN Convolution Neuron Network
LSTM Long Short-Tern Memory
DL Deep Learning
IDPS Intrusion Detection Prevention System
API Application Programming Interface
NIDS Network Intrusion Detection System
HDFS Hadoop Distributed File System
Trang 12TÓM TẮT KHÓA LUẬN
Mô hình mạng SDN - áp dụng cho các doanh nghiệp lớn sẽ phát sinh liên tục một
khối lượng lớn dữ liệu đa dạng Từ đó, nhu cầu về việc tận dụng công nghệ dữ liệu
lớn (Big data) nhằm hỗ trợ hiệu quả cho giải pháp đảm bảo an toàn mạng trong SDN
là bài toán cần giải quyết Khi đó, các hệ thống phòng thủ dựa trên phân tích dữ liệu
lớn có thê đạt được hiệu suất cao hơn và xử lý dữ liệu tốt hơn Trong nghiên cứu này,
chúng tôi đề xuất một mô hình IDS phân tích lưu lượng lớn trên mạng khả lập trình(SDN) - nghiên cứu về khả năng áp dụng các mô hình học sâu vào việc phát hiện sựbất thường của dữ liệu thời gian thực trong môi trường mạng SDN kết hợp với côngnghệ dữ liệu lớn Chúng tôi sử dụng lần lượt hai mô hình học sâu gồm CNN-LSTM
và GRU huấn luyện và đo đạt trên bộ dữ liệu CIC-IDS2018 được lưu trữ trong môitrường phân tán Hadoop Sau khi triển khai hệ thống chúng tôi nhận được một kết
quả khả quan với mô hình GRU trên bộ dữ liệu CIC-IDS2018 có accuracy là 96.29%
và mô hình CNN-LSTM trên cùng một bộ dữ liệu có accuracy là 95.22% cho việc
phát hiện sự bat thường trong mang (binary classification)
Trang 13Chương 1 GIỚI THIỆU
1.1 Mục tiêu
Kết hợp công nghệ SDN và công nghệ dữ liệu lớn (Big data) xây dựng một hệ thống
cung cấp môi trường dé đánh giá hệ thống phát hiện xâm nhập (IDS) với lưu lượng
phát sinh liên tục.
Xây dựng hệ thông phát hiện tấn công (IDS) trong mạng SDN dùng phương pháp họcsâu Cụ thé, nghiên cứu áp dụng các phương pháp học sâu trên các tập dữ liệu phổbiến dé tạo ra một mô hình giúp hệ thống phát hiện được những dang tấn công phổbiến
1.2 Đối tượng nghiên cứu
e Hệ thống mang SDN và cách giám sát luồng dé liệu trong mạng
e Phương pháp học sâu cho trình phát hiện xâm nhập, tan công
e Xử lý và truyền dữ liệu lớn (Big data) trong thời gian thực.
e Các thư viên hỗ trợ học máy Tensorflow, Keras.
1.3 Phương pháp nghiên cứu
e Đọc bài báo, tham khảo nguồn tài liệu từ giáo viên hướng dan
e Nghiên cứu thành phần, kiến trúc, cơ chế hoạt động, cai đặt mô hình mang
SDN Đồng thời, nghiên cứu sử dụng Apache Spark trên môi trường mạng
SDN.
e Tìm hiểu về các bộ đữ liệu thường đượng sử dụng dé huấn luyện cho các mô
hình học sâu phát hiện bất thường trong mạng, tham khảo các nghiên cứu trước
đó, cách đưa bộ dữ liệu vào huấn luyện cho mô hình
e Thực hiện các thử nghiệm khác nhau để đánh giá về hiệu năng, độ chính xác
và độ trễ dự đoán của hệ hông NIDS so với thời gian thực.
Trang 141.4 Phạm vi nghiên cứu
Trong phạm vi nghiên cứu của khóa luận này, chúng tôi triển khai các mô hình họcsâu trong việc huấn luyện và dự đoán các hoạt động bất thường trong mạng SDN trên
môi trường phân tán và áp dụng xử lý dữ liệu lớn.
1.5 Cấu trúc khóa luận
Khóa luận được trình báy với câu trúc như sau:
e Chương 1 Giới thiệu tổng quan về dé tài nghiên cứu, mục đích nghiên cứu,
phạm vi nghiên cứu và phương pháp nghiên cứu.
e_ Chương 2 Tổng quan và kiến thức nền tang
e_ Chương 3 Ý tưởng và nguyên tắc hoạt động
e Chương 4 Triển khai hệ thống
© Chương 5 Thiết kế thực nghiệm
e Chương 6 Kết luận và hướng phát trién
Trang 15Chuong 2 TONG QUAN VÀ KIÊN THUC NEN TANG
2.1 Téng quan
2.1.1 Cac nghiên cứu trên thị trường
Hệ thông phát hiện xâm nhập (IDS) là một thành phần thiết yếu để bảo mật trong cácmạng hiện đại Với sự xuất hiện của công nghệ dữ liệu lớn (Big data) và công nghệmạng khả lập trình - nhiều nghiên cứu về việc ứng dụng IDS với các công nghệ trên
đã cho những kết quả rất khả quan
Trong nghiên cứu [1 ]các tác giả đã xây dựng mô hình hoc sâu Stacked Autoencoder
(SAE) để phát hiện các loại tắn công DDos (8 loại) trong môi trường mạng SDN với
độ chính xác đạt 95.65% Nếu chỉ phân loại lưu lượng mạng bình thường và bấtthường thì hệ thống được đề xuất đạt độ chính xác 99.82% với mức độ dương tính
gia thâp hơn so với các mô hình khác.
Công trình nghiên cứu [2], các tác giả đã đề xuất một mô hình phát hiện và ngăn ngừaxâm nhập sử dụng phương pháp học sâu (Deep learning (DL) - IDPS) để phát hiện
và ngăn chặn cuộc tấn công SSH Bruce Force và DDos Attack Trong công trình
nghiên cứu này, các tác giả so sánh bốn mô hình học sâu gồm, Multilayer Perceptron
(MLP), Convolution Neuron Network (CNN), Long-Short Term Memory (LSTM)
và Bộ mã hóa tự động xếp chồng (SAE) kết quả nghiên cứu cho thay, DL-IDPS dựatrên MLP có độ chính xác gần 99%
Hiện nay, số lượng người sử dụng mạng xã hội ngày càng tăng dẫn đến sinh ra mộtkhối lượng dữ liệu lớn liên tục và đa dạng Do đó dé hệ thống IDS có thé xử lý các
dữ liệu lớn cũng như dự đoán chúng cách nhanh chóng và hiệu quả, một số công trình
nghiên cứu về khả năng ứng dụng công nghệ dữ liệu lớn vào trong hệ thống phát hiện
xâm nhập đã cho thấy những kết quả khả quan như Trong bài nghiên cứu [3] Khloud
AI Jallad và các cộng sự của ông đã dé xuất mô hình Network chat bot - một mạngthần kinh phát lại: Long Short-Term Memory (LSTM) có trên Apache Spark sử dụng
bộ dữ liệu MAWI dé huấn luyện và đo đạt — cho thấy mô hình được đề xuất có khảnăng phát hiện tốt hơn so với signature IDS hay IDS truyền thống Các tác giả xây
Trang 16dựng trên Google Colab có khả năng giảm về bộ nhớ ngoài cũng như thời gian thực hiện nên trong phan nghiên cứu này các tác giả chỉ chứng mình được những điểm bat thường chứ không thể chứ minh nó sự bất thường trong hoàn cảnh cụ thể.
Trong một bài nghiên cứu khác [4], tác giả đã sử dụng Apache Storm, một Hệ thống IDS Hybrid thời gian thực dé lập trình cho công việc của họ Apache Storm đóng vai trò như một luồng xử lý dữ liệu lớn, phân tán và chịu lỗi trong thời gian thực Hệ thống được tác giả đề xuất bao gồm 2 mạng Nơ-ron CC4 hoạt động như một Anomaly-based phát hiện những cuộc tân công chưa biết và Multi Layer Perceptron neural network hoạt động như một misuse-based phát hiện những cuộc tấn công đã biết Hệ thống đề xuất trong bài nghiên cứu này có accury lên đến 89% trong đó có tỉ
lệ dương tính giả chiếm 4,32%.
2.1.2 Vấn đề và giải pháp
2.1.2.1 Vấn đề
Mô hình mạng SDN - áp dụng cho các doanh nghiệp lớn sẽ phát sinh liên tục một
khối lượng lớn dữ liệu đa dạng Từ đó, nhu cầu về việc tận dụng công nghệ dữ liệu lớn (Big data) nhằm hỗ trợ hiệu quả cho giải pháp đảm bảo an toàn mạng trong SDN
là bài toán cần giải quyết Khi đó, các hệ thống phòng thủ dựa trên phân tích dữ liệu lớn có thể đạt được hiệu suất cao hơn và xử lý dữ liệu tốt hơn.
2.1.2.2 Giải pháp
Chúng tôi đề xuất một mô hình IDS phân tích lưu lượng lớn trên mạng khả lập trình (SDN) - nghiên cứu về khả năng áp dụng các mô hình học sâu vào việc phát hiện sự bất thường của dữ liệu thời gian thực trong môi trường mạng SDN kết hợp với công
nghệ dữ liệu lớn.
Hệ thống phát hiện xâm nhập (IDS) sẽ được đào tạo từ một mô hình học sâu để phân loại kết nối là bình thường hoặc tấn công.
Trang 172.2 Nền tang lý thuyết
2.2.1 SDN và giao thức Openflow
Với logic điều khiển phi tập trung, rất khó quản lý và phát triển của mạng truyền thống Mạng SDN (Software Define Networking) hay mạng điều khiển bằng phần mềm là một phương pháp tiếp cận mới, tách đôi thành phần điều khiển (Control Plane) và thành phan dữ liệu (Data Plane) dé đạt được kiến trúc điều khién tập trung logic cho phép lập trình để cấu hình mạng.
Một hệ thống mạng bao gồm nhiều thực thể (thiết bị định tuyến, thiết bị chuyển mạch,
các đường kết nối, các máy chủ cuối ) có thể được quản lý và lập trình riêng với các logic chuyển tiếp khác nhau Tuy nhiên việc quản lý riêng lẻ từng thực thể này trong một hệ thống mạng lớn làm tăng mức độ quản lý cho toàn bộ mạng, từ đó là
tăng chỉ phí duy trì và bảo trì mạng Giao thức quản lý mạng đơn giản (Simple
Network Management Protocol — SNMP) ra đời vào năm 1988 đã giải quyết các van
dé kể trên bằng cách cung cấp khả năng giám sát và cấu hình từ xa cho các thực thé
trong mạng Tuy nhiên, SNMP không phù hợp với các mạng có tính linh hoạt cao,
các tập lệnh của SNMP rất tốn kém và dễ lỗi trong việc duy tri vì nó thiếu khả năng lập trình cho các API Thế hệ quản lý mạng tiếp theo được thé hiện bằng các kiến trúc hướng mô hình hoạt động với các hệ thống quy mô động như đám mây và trung tâm
dữ liệu Các kiến trúc này cung cấp API và mô hình dé mô tả không chi các yếu tố mạng mà còn cả các chính sách, dịch vụ và giao dịch trong mạng Một số giao thức mới này đang nhanh chóng trở nên phổ biến, bao gồm RESTCONF, NETCONF và
Trang 186 mạch, control plane tập trung ở lớp điều khiển Data plane chịu trách nhiệm chuyền tiếp dữ liệu theo hướng dẫn của Controller Việc tách biệt hai thành phần này cho phép SDN lập trình điều khiển mạng và quản lý tập trung tại thành phần điều khiển Đây là khác biệt lớp nhất giữa kiến trúc mạng SDN và mạng IP truyền thống, nơi mà việc điều khiển mạng và chuyển tiếp dữ liệu cùng do một thiết bị thực hiện.
Trang 19lý mạng, phân tích hoặc ứng dụng kinh doanh được sử dụng để chạy các trung tâm
dữ liệu lớn Ví dụ: một ứng dụng phân tích có thể được xây dựng để nhận ra hoạt
động mạng đáng ngờ cho mục đích bảo mật, tường lửa,
Lớp điều khiển
SDN controller quan lý điều khiển luồng dé cải thiện hiệu suất quản lý và ứng dụng mạng Nền tảng bộ điều khiển SDN thường chạy trên máy chủ và sử dụng các giao thức dé báo cho các switch biết địa chỉ gửi gói tin Cho phép chuyền tiếp các quyết định về lưu lượng thông qua SDN domain thay vì phải qua từng hop.
Bộ điều khiển SDN lưu lượng truy cập trực tiếp theo các chính sách chuyền tiếp mà nhà điều hành mạng đặt, do đó giảm thiểu cấu hình thủ công cho các thiết bị mạng riêng lẻ Bằng cách loại bỏ control plane khỏi phần cứng mạng và thay vào đó là phần mềm, bộ điều khiển tập trung tạo điều kiện quan lý mạng tự động và giúp tích hợp và quản lý các ứng dụng dễ dàng hơn Nó cũng cung cấp các giao diện chương trình ứng dụng (API) cho các nhà phát triển bên thứ ba để tùy chỉnh tích hợp các ứng dụng Trong thực tế, bộ điều khiên SDN hoạt động như một loại hệ điều hành cho mạng Mọi giao tiếp với các ứng dụng và thiết bị mạng phải thông qua thông qua các giao diện phía bắc (North Bound Interface) của bộ điều khiển gồm tường lửa, bộ cân bằng
tải, hệ thống phát hiện xâm nhập (IDS), routing.
Bộ điều khiển giao tiếp với tat cả các thiết bị mạng bằng giao diện hướng nam (South Bound Interface) Các giao thức hướng nam này cho phép bộ điều khiển cau hình các thiết bị mạng và chọn đường dẫn mạng tối ưu cho lưu lượng ứng dụng.
Lớp hạ tang cơ sở
Bao gồm tập hợp của các thiết bị phần cứng mạng như switches, router, những thiết bị này có khả năng xử lý hoặc chuyên tiếp lưu lượng thông tin trong mạng Lớp này cung cấp việc truy cập có khả năng lập trình mở thông qua OpenFlow, một giao thức mạng giúp tự động cấu hình phần cứng Lớp ha tang cơ sở giúp đơn giản hóa việc cấu hình mạng cho quản trị viên, mang đến một giao diện linh hoạt và khả năng
lập trình linh hoạt.
Trang 20- Sử dụng OpenFlow làm giao thức giao tiếp chính, các APIs tại đây hỗ
trợ người dùng cuối có thêm quyên quản lí toàn bộ hệ thống mạng và tăng tính 9 hiệu quả trên bộ điều khiển phục vụ cho như cầu thực tế.
Ngoài ra, tại đây cũng có sử dụng các giao thức khác như SNMP,
ONOS, PCEP, NETCONE hoặc thông qua một cơ chế riêng biệt.
¢ Northbound API: Giao tiếp giữa bộ điều khiển và lớp ứng dụng (thiết bị cấp
cao)
- Chua có chuẩn giao tiếp chính thức được sử dung bởi lớp ứng dụng dé
giao tiếp với bộ điều khiển, nếu không có API tại đây, sẽ gây rất nhiều khó khăn khi kết nối phải được tạo trực tiếp từ phía lớp ứng dụng gây cản trở cho phát triển và mở rộng Các ngôn ngữ được thực thi tại đây
có thé ké đến như Java, Python và Ruby Cac API tại đây được áp dụng cho nhiều lĩnh vực khác nhau bao gồm các lĩnh vực phi lợi nhuận, viện giáo dục, công ty công nghệ thông tin và nhiều lĩnh vực khác.
Từ đó có thể nhận thấy, với Northbound API sẽ hỗ trợ trực tiếp phát triển giải pháp quản lí tự động hoá và hoà hợp giữa trạng thái mạng và phần cứng và phần mềm ứng dụng trên hệ thống Trong khi đó, Southbound API sẽ là đảm nhận vai trò vai trò cung cấp các giao thức
ảo hóa mạng, tương tác với cầu trúc switch hoặc tích hợp mang máy
tính phân tán.
2.2.1.3 Uu và nhược điểm của mạng SDN
Ưu điểm
Trang 21Với tính năng phân tách bộ điều khiển và thành phần chuyền tiếp dữ liệu cung cấp khả năng điều khiển mạng vượt trội thông qua việc hỗ trợ cho lập trình, giúp tạo ra các ứng dụng mới hỗ trợ việc vận hành mạng hiệu quả, phù hợp với đặc điểm và mục đích của từng hệ thống mạng Khả năng tập trung hóa sẽ giúp thiết lập các cầu hình mạng một cách tự động và đồng bộ nhanh chóng hơn.
Trong hệ thống mạng truyền thống do không có sự đồng bộ, đồng nhất giữa các nhà cung cấp thiết bị khiến thao tác cấu hình mạng hết sức khó khăn, phức tạp và có thể gây ra các xung đột làm ảnh hưởng nghiêm trọng đến hệ thống trong quá trình hoạt động Kiến trúc SDN được tin tưởng là một giải pháp giúp hỗ trợ xử lí các vấn đề trên khi được giới thiệu lần đầu tiên Khi được cấu hình, toàn bộ kiến trúc SDN có thể được lập trình và tối ưu hoá tự động dựa trên cấu trúc mạng hiện thời Bộ điều khiển (control plane) sẽ hỗ trợ thống nhất các thiết bị mạng được quản lí gồm: switch, router, tường lửa và thiết bị cân bằng tải cho phép toàn bộ hệ thống được cau hình từ
một điểm hoàn toàn tự động và đồng nhất.
Nhược điểm
Là thành phần quan trọng với chức năng điều khién và quản lí toàn bộ hệ thống mạng,
bộ điều khiển cũng là điểm yếu lớn nhất trong kiến trúc SDN Do tính chất phân tán làm giảm thiểu khả năng mở rộng mạng Thêm vào đó, lỗi thắt nút cổ chai khi lưu lượng trao đổi giữa các thiết bị mạng trong quá trình tương tác với nhau thông qua
bộ điều khiển Với khả năng sử dụng loại kiến trúc tập trung và kiểu kiến trúc phân tán cũng đồng thời đem đến các tính năng và giới hạn nhất định ở mỗi kiểu Trong
mô hình kiến trúc phân tán, các bộ điều khiển sẽ hoạt động đồng thời và sẽ đảm nhiệm điều khiển một phần mạng tương ứng được chỉ định trước đó Đối với kiểu còn lại,
mô hình kiến trúc tập trung, sẽ có một bộ điều khiển chính thực hiện các chức năng, hoạt động chính và bộ điều khiển dự phòng hoạt động song song, phòng những trường hợp xảy ra sự cô đối với bộ chính, đây còn được gọi là hệ thống cluster.
10
Trang 22Error! Reference source not found.
‘Switch Switch Switch Switch Switch Switch Switch Switch Switch Switch
Kiến trúc SDN tập trung Kiến trúc SDN phần tan
Hình 2.2: Mô hình kiến trúc mang SDN tập trung và phân tan
Ngoài các vấn đề về cấu trúc, bảo mật là yếu tố quan trọng và quyết định tính toànvẹn và hiệu quả của hệ thống mạng Với chức năng là quản trị nắm quyền cao nhất
và điều khiển toàn bộ các thiết bi mạng, bộ điều khiến luôn là mục tiêu đầu tiên vàL1 cũng là điểm yếu của hệ thống SDN Vốn là nạn nhân của các cuộc tấn công vànơi cho phép các luồng tiễn trình độc hại hoạt động và truy cập tại đây
Ngoài ra, do là một hệ thong còn rất mới và vẫn dang trong quá trình phát triển, mạngSDN vẫn còn tồn tại một số bat cập cần được giải quyết trước khi có thé thay thế hoàntoàn được hệ thống mạng truyền thống Các nhà phát triên cần đồng nhất với mộtchuẩn giao tiếp API giữa các thiết bị, ngôn ngữ lập trình cấp cao tiêu chuẩn cho toàn
bộ ứng dung; người dùng cần được cấp quyền kiểm định tính ồn định trong quá trình
vận hành của các thiết bị, tính riêng tư của quản lí tập trung
yêu câu nghiệp vụ Với OpenFlow, các mục nhập có thê được thêm và xóa vào bảng
11
Trang 23lưu lượng nội bộ của các bộ chuyển mạch và bộ định tuyến để làm cho mạng phảnứng nhanh hơn với nhu cầu lưu lượng thời gian thực.
Tổng quan về OpenFlow
OpenFlow là giao thức SDN chuẩn, được sáng lập tại Đại học Stanford vào năm 2008.Open Networking Foundation (thành lập năm 2011) là tổ chức chịu trách nhiệm cậpnhật và phát triển phần mềm này
OpenFlow Switch bao gồm một hoặc nhiều Flow Tables và một Group Table, thực
hiện việc tra cứu và chuyền tiếp, và một OpenFlow Channel kết nối với controller
bên ngoài thông qua giao thức TLS.
Hoạt động của OpenFlow Switch
Một Openflow switch bao gồm hai thành phần chính:
e Flow table: thành phan chính nhận nhiệm vụ xử lý các gói tin
e Secure channel: Kết nối gitta switch va controller (b6 điều khiển), là thành
phần giao tiếp quản lý giữa người quản trị và switch
2.2.1.5 Quy trình hoạt động của Openflow
Hình 2.3: Tiến trình xử lý của Openflow
e Bước 1: Gói tin từ máy gửi đến switch và không có flow entry tương ứng
12
Trang 24Bước 2: Gói tin bị chuyển đến bộ điều khiển Bộ điều khiển xem xét các gói
tin và quyết định các hành động thích hợp (chuyên tiếp hoặc hủy bỏ), sau đó
tạo ra một flow entry mới.
Bước 3: Flow entry được gửi đến switch cũng trên đường dẫn gửi gói tin
Bước 4 và 5: Gói tin được gửi đến máy nhận
Bước 6,7 và 8: các gói tin bắt đầu được trao đổi trực tiếp giữa hai switch vì
chúng khớp với entry mới trong flow tables.
Start at table 0
Match in table n?
Hình 2.4: Quy trình xử lý gói tin trên một OpenFlowSwitch
Cấu trúc thông số của bảng ghi luồng
Bộ so khớp của flow table có các thông số sau:
Cổng vào switch
Địa chỉ MAC nguồn
Dia chi MAC dich.
Ether type.
VLAN ID.
Dia chi IP nguồn
Dia chi IP dich.
Giao thức IP.
Port nguồn TCP/UDP
Port đích TCP/UDP.
13
Trang 25Bảng 2.1: Header của bảng Entry được sử dụng trong OpenFlow
IP Ingress | Ether | Ether | Ether | VLAN | VLAN | IP | IP ToS Src | Dst
oO
port | source | dst | type id priority | dst | proto bị port | port
1ts
e_ Chuyến tiếp gói tin đến các cổng dé truyền gói tin qua mạng
e Đóng gói và gửi gói tin đến bộ điều khiến: gói tin được gửi qua một kênh
truyền an toàn đến OpenFlow Controller từ xa, thường được áp dụng cho góitin đầu tiên dé thiết lập đường dẫn
e Hủy bỏ: hành vi nhằm mục đích bảo mật, giảm lưu lượng giả mạo từ máy chủ
cuối
Bảng 2.2: Các bộ điều khién hỗ trợ OpenFlow
Tên Nền tảng | Tổ chức | Các tính năng Trang chủ
Day- Java Foundati ; ; ` http://www.opendaylight.org
giao diện đô
OpenStack OSRG
Group
14
Trang 26Cung cấp giao | http://openflow.stanford.edu/dis
Beacon Jav Stanford
dién Web play/Beacon/Home
Rice 7
Ho tro da http://code
google.com/p/aestro-Maestro Java Universi :
luông platform/
ty
Trema | Ruby/C Mạng ảo DSL http://trema.github.io/trema
2.2.2 Học may
2.2.2.1 Khai niệm về hoc máy
Machine learning là một lĩnh vực nhỏ cua trí tuệ nhân tạo - Artificial Intelligence (AD
trong khoa học máy tính, thường sử dụng các kĩ thuật thống kê dé máy tính có khảnăng “học” với dit liệu, mà không cần phải lập trình cụ thé
Tên gọi machine learning được đặt bởi Arthur Samuel 3 năm 1959 Phát triển từnghiên cứu về nhận dang mau (pattern recognition) va lý thuyết học tính toán
(Computational learning theory) trong trí tuệ nhân tạo, machine learning nghiên cứu
và xây dựng các thuật toán có thê học hỏi và dự đoán theo hướng dữ liệu
Machine learning có mối quan hệ rất mật thiết đối với thống kê (statistics), sử dụng
các mô hình thống kê dé “ghi nhớ” lại sự phân bố của dữ liệu Tuy nhiên, không đơnthuần là ghi nhớ, machine learning phải có khả năng tổng quát hóa những gì đã được
nhìn thấy và đưa ra dự đoán cho những trường hợp chưa được nhìn thấy Machine
learning không giống với một đứa trẻ học vẹt, đứa trẻ học vẹt chỉ trả lời được nhữngcâu hỏi mà nó đã học thuộc lòng đáp án Khả năng tổng quát là một khả năng tự nhiên
và kì điệu của con người: bạn không thể nhìn thấy tất cả các khuôn mặt người trênthé giới nhưng bạn có thé nhận biết được một thứ có phải là khuôn mặt người haykhông với xác suất đúng gần như tuyệt đối Đỉnh cao của machine learning sẽ là mô
phỏng được khả năng tông quát hóa và suy luận này của con người.
15
Trang 27Deep Learning là một kĩ thuật của Machine learning Hãy suy nghĩ về nó như là mộtloại machine learning với "mạng thần kinh — neurol network" sâu có thể xử lý dữ liệu
theo cách tương tự như một bộ não con người có thé thực hiện Điểm khác biệt chính
ở đây là con người không sẽ phải day một chương trình deep learning biết một con
méo trông như thé nào, mà chi cần cung cấp cho nó đủ hình anh cần thiết về loài mèo,
và nó sẽ tự mình hình dung, tự học Các bước cần làm như sau:
e_ Cung cấp cho máy rất nhiều ảnh về mèo
e Thuật toán sẽ kiểm tra ảnh dé xem các đặc điểm, chi tiết chung giữa các bức
ảnh.
e_ Mỗi bức anh sẽ được giải mã chỉ tiết đưới nhiều cấp độ, từ các hình dạng lớn,
chung đến các ô nhỏ và nhỏ hơn nữa Nếu một hình dạng hoặc các đường được
lặp lại nhiều lần, thuật toán sẽ gan nhãn nó như là một đặc tính quan trọng
e Sau khi phân tích đủ hình ảnh cần thiết, thuật toán giờ đây sẽ biết được các
mẫu nào cung cấp bằng chứng rõ ràng nhất về mèo và tất cả những gì conngười phải làm chỉ là cung cấp các dữ liệu thô
Hiện nay, có nhiều cách phân dé phân loại học máy, một trong những cách phổ biến
nhất chính là phân loại học máy dựa trên dữ liệu đào tạo Với cách phân loại này, có
5 mô hình học máy khác nhau gồm: Học có giám sát, Học không giám sát, bán giám
sát và học tăng cường.
2.2.2.2 Học có giám sát
Supervised learning là thuật toán dự đoán đầu ra (outcome) của một dữ liệu mới dựatrên các cặp (input, outcome) đã biết từ trước Cặp dữ liệu này còn được gọi là (data,label), tức (dữ liệu, nhãn) Supervised learning là nhóm phô biến nhất trong các thuật
toán machine learning.
Trong học tập có giám sát (Supervise learning), mang(network) sẽ xây dựng mô hình dựa trên tính chính xác của việc khớp với dữ liệu nhãn.
16
Trang 282.2.2.3 Học không giám sát
Trong thuật toán này, không biét được outcome hay nhãn mà chỉ có dữ liệu đâu vào Thuật toán unsupervised learning sẽ dựa vào câu trúc của dữ liệu đê thực hiện một công việc nao đó, ví dụ như phân nhóm (clustering) hoặc giảm sô chiêu của dữ liệu
(dimension reduction) dé thuan tién trong việc lưu trữ và tinh toán
Unsupervised learning là khi chỉ có đữ liệu vào X mà không biết nhãn Y tương ứng
Những thuật toán loại này được gọi là Unsupervised learning vì không giống như
Supervised learning, chúng ta không biết câu trả lời chính xác cho mỗi dữ liệu đầu
vào.
Các bài toán Unsupervised learning được tiếp tục chia nhỏ thành hai loại:
e Phân nhóm (clustering)
Bài toán phân nhóm toàn bộ dữ liệu X thành các nhóm nhỏ dựa trên sự liên quan gitra
các dữ liệu trong mỗi nhóm Ví dụ: phân nhóm khách hàng dựa trên hành vi mua
hàng Điều này cũng giống như việc ta đưa cho một đứa trẻ rất nhiều mảnh ghép vớicác hình thù và màu sắc khác nhau, như tam giác, vuông, tròn với màu xanh và đỏ,sau đó yêu cầu trẻ phân chúng thành từng nhóm Mặc dù không cho trẻ biết mảnh nàotương ứng với hình nào hoặc màu nào, nhiều khả 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.
e Association
La bài toán khi muốn khám phá ra một quy luật dựa trên nhiều dữ liệu cho trước Vidụ: những khách hàng nam mua quan áo thường có xu hướng mua thêm đồng hồ hoặcthắt lung; những khán giả xem phim Spider Man thường có xu hướng xem thêm phimBat Man, dựa vào đó tạo ra một hệ thong gợi ý khách hang (Recommendation
System), thúc đây nhu cầu mua sắm
17
Trang 292.2.2.4 Hoc bán giám sát
Khi có một lượng lớn dtr liệu X nhưng chỉ một phần trong chúng được gán nhãn đượcgọi là Semi-Supervised Learning Những bài toán thuộc nhóm này năm giữa hai nhóm
được nêu bên trên.
Ví dụ điển hình của nhóm này là chỉ có một phần ảnh hoặc văn bản được gán nhãn(ví dụ bức ảnh về người, động vật hoặc các van bản khoa học, chính tri) và phần lớn
các bức ảnh/văn bản khác chưa được gán nhãn được thu thập từ internet Thực tế cho
thấy rất nhiều các bài toán machine learning thuộc vào nhóm này vì việc thu thập dữliệu có nhãn tốn rất nhiều thời gian và có chi phí cao Rất nhiều loại dữ liệu thậm chícần phải có chuyên gia mới gán nhãn được (như ảnh y học là một ví dụ điển hình).Ngược lại, dữ liệu chưa có nhãn có thể được thu thập với chi phí thấp từ Internet
2.2.3 Hệ thống phát hiện và phòng ngừa xâm nhập (IDS)
Intrusion Detection System (IDS) — là một hệ thong được xây dựng bởi phần cứnghoặc phần mềm — dùng dé phát hiện những hành vi xâm nhập trái phép vào trong máy
tính hoặc mạng máy tính.
e Host-based IDS (HIDS): là hệ thong dùng dé phát hiện xâm nhập trên một host
cụ thé HIDS hoạt động bằng cách phân tích các thông tin và cơ sở dit liệukiểm toán của hệ thống cụ bộ và các ứng dụng khác
e Network-based IDS (NIDS): là hệ thống dùng dé phát hiện xâm nhập trên một
miền mạng cụ thể NIDS hoạt động dựa trên việc thu thập các lưu lượng mạng,phân tích và phát hiện tan công Đây là hệ thống thông dụng nhất
e Signature-Based: Day là các IDS hoạt động dựa trên chữ ký, giám sát các gói
tin trên mạng tương tự như cách phần mềm diệt virus hoạt động Tuy nhiênSignature-Based có thể không phát hiện được những mối đe dọa mới, khi chữ
ký dé nhận biết nó chưa được IDS cập nhật
e Anomaly-Based: IDS này được sử dụng dé phát hiện mối đe dọa dựa trên sự
bất thường Anomaly-Based sẽ giám sát traffic mạng và so sánh với baseline
đã được thiết lập từ trước Baseline sẽ xác định đâu là mức bình thường của
18
Trang 30mạng và cảnh báo cho quản tri viên mạng hoặc người dùng khi phát hiện traffic
truy cập bat thường hoặc khác biệt so với baseline
e Passive: Day là IDS thụ động chi phát hiện và cảnh báo Khi phát hiện traffic
đáng ngờ hoặc độc hại, nó sẽ tạo và gửi cảnh báo đến các nhà quản tri hoặc
người dùng Những hành động sau đó sẽ phụ thuộc vào người quản tri.
e Reactive: Loại IDS này ngoài nhiệm vụ như IDS Passive, nó còn thực hiện
những hành động đã được thiết lập san dé phản ứng lại các mối đe dọa mộtcách nhanh chóng, ví như: chặn nguồn truy cập, khóa IP
2.2.4 Công nghệ dữ liệu lớn
Dữ liệu lớn gồm tập hop dit liệu có kích thước lớn từ vài tá tetrabytes đến nhiềupetapytes dữ liệu vượt xa khả năng của các công cụ thông thường dé thu thập, hiệnthị, xử lý dữ liệu trong khoảng thời gian chấp nhận được Dữ liệu lớn được mô tả là
tập hợp dữ liệu có khối lượng lớn (high-volume), tốc độ cao (high-velocity) và đa
dạng (high-variety) Thông thường dữ liệu lớn thường đặt trưng bởi 6 đặc điểm còn
được gọi là 6V.
19
Trang 31Value: Phản ảnh giá trị của dữ liệu đó.
Volume: Khối lượng
dữ liệu, kích thước của
dữ liệu.
ra và tốc độ dữ liệu
~ e data
-Velocity: Đề cập đến tốc độ dữ liệu được tạo
Variability: Tính biến thiên của dữ liệu thể
Veracity: Chất lượng
và độ tin cậy của dữ liệu.
Hình 2.5: 6Vs của Big data
Hình 2.5 minh họa 6V chính là các đặt điểm của dữ liệu lớn Tuy nhiên, dé một dữliệu có thể được phân loại là dữ liệu lớn thì nó chỉ cần đáp ứng được 3V đầu tiên về
khối lượng (volume), tốc độ (velocity) và đa dang (variety) Công nghệ dữ liệu lớn là
những công cụ hoặc công nghệ được sử dụng dé có thé xử lý các dữ liệu được cho là
dữ liệu lớn một cách hiệu quả Hiện nay, một vài công nghệ dữ liệu lớn như: Apache Hadoop, Apache Spark, Apache Storm, Apache Flink, Apache Cassandra, and
Apache HBase.
2.2.4.1 Apache Spark
Apache Spark là một framework mã nguồn mở tính toán cụm, được phát triển sơ khởi
vào năm 2009 bởi AMPLab Sau này, Spark đã được trao cho Apache Software
Foundation vào năm 2013 và được phát triển cho đến nay
20
Trang 32Tốc độ xử lý của Spark có được do việc tính toán được thực hiện cùng lúc trên nhiềumáy khác nhau Đồng thời việc tính toán được thực hiện ở bộ nhớ trong (in-memories)
hay thực hiện hoàn toan trên RAM.
Spark cho phép xử lý dữ liệu theo thời gian thực, vừa nhận dữ liệu từ các nguồn khácnhau đồng thời thực hiện ngay việc xử lý trên dữ liệu vừa nhận được
Spark không có hệ thống file của riêng mình, nó sử dụng hệ thống file khác như:
HDES, Cassandra, S3, Spark hỗ trợ nhiều kiểu định dạng file khác nhau (text, csv,
json ) đồng thời nó hoàn toàn không phụ thuộc vào bất cứ một hệ thống file nào
Spark SQL Spark Structured
Datafram Streaming MLIb GraphX
Spark Core
R | SQL | Python || Scala | Java
Hình 2.6: Các thành phan của Spark
Apache Spark gồm có 5 thành phần chính: Spark Core, Spark Streaming, Spark SQL,
MLIlib và GraphX, trong đó:
e Spark Core: là nền tảng cho các thành phan còn lại và các thành phần này
muốn khởi chạy được thì đều phải thông qua Spark Core do Spark Core đảm
nhận vai trò thực hiện công việc tính toán và xử lý trong bộ nhớ (In-memory
computing) đồng thời nó cũng tham chiếu các dữ liệu được lưu trữ tại các hệthống lưu trữ bên ngoài
e Spark SQL: cung cap một kiểu data abstraction mới (SchemaRDD) nhằm hỗ
trợ cho cả kiểu đữ liệu có cấu trúc (structured data) và dữ liệu nửa cau trúc
(semi-structured data — thường là dữ liệu dữ liệu có cấu trúc nhưng không đồng
21
Trang 33nhất và cau trúc của dữ liệu phụ thuộc vào chính nội dung của dữ liệu ấy) SparkSQL hỗ trợ DSL (Domain-specific language) dé thực hiện các thao tác trênDataFrames bằng ngôn ngữ Scala, Java hoặc Python và nó cũng hỗ trợ cả ngôn
ngữ SQL với giao diện command-line và ODBC/JDBC server.
Spark Structured Streaming: cần phân biệt ở đây là Spark Streaming với
Structured Streaming Nói một cách đơn giải thi Spark Streaming được coi là phiên bản cũ, xử lý stream dựa trên RDD Trong khi đó Structured Streaming
là phiên bản mới, xử lý stream dựa trên Dataset/DataFrame Các chuyên gia
khuyến cáo người dùng nên sử dụng phiên bản mới với nhiều tính năng cải
thiện hơn Spark Structured với khả nang xử lí dữ liệu tức thời và chịu lỗi cao
cho phép xử ly big data realtime Trong phân tích dữ liệu, Spark Structured
Streaming đóng vai trò cung cấp nền tảng đề đây dữ liệu vào các mô hình phân
tích tức thời, tăng hiệu năng của mô hình.
MLIib: (Machine Learning Library): MLIib là một nền tảng hoc máy phân tánbên trên Spark do kiến trúc phân tán dựa trên bộ nhớ Theo các so sánhbenchmark Spark MLIib nhanh hơn 9 lần so với phiên bản chạy trên Hadoop
(Apache Mahout).
GrapX: Grapx là nền tảng xử lý đồ thị dựa trên Spark Nó cung cấp các Api
dé diễn tacac tính toán trong đồ thị bang cách sử dụng Pregel Api
Những đặc điểm nỗi bật
Xử lý dữ liệu: Spark xử lý dữ liệu theo lô và thời gian thực
Tính tương thích: Có thể tích hợp với tat cả các nguồn dit liệu và định dạng
tệp được hỗ trợ bởi cụm Hadoop.
Hỗ trợ ngôn ngữ: hỗ trợ Java, Scala, Python và R.
Phân tích thời gian thực:
o Apache Spark có thé xử lý dữ liệu thời gian thực tức là dit liệu đến từ
các luông sự kiện thời gian thực với tôc độ hàng triệu sự kiện mỗi giây.
22
Trang 34Ví dụ: Data Twitter chăng hạn hoặc luợt chia sẻ, dang bai trên
Facebook Sức mạnh Spark là khả năng xử lý luỗng trực tiếp hiệu quả.Apache Spark có thê được sử dụng dé xử lý phát hiện gian lận trong khithực hiện các giao dịch ngân hang Đó là bởi vì, tat cả các khoản thanh
toán trực tuyến được thực hiện trong thời gian thực và chúng ta cần
ngừng giao dịch gian lận trong khi quá trình thanh toán đang diễn ra.
Machine Learning
Apache Spark là Framework thực thi dữ liệu dựa trên Hadoop HDFS Apache Spark
không thay thé cho Hadoop nhưng nó là một framework ứng dụng Apache Spark tuy
ra đời sau nhưng được nhiều người biết đến hơn Apache Hadoop vì khả năng xử lý
hàng loạt và thời gian thực.
Apache Spark là một hệ thống tính toán cụm da năng và nhanh chóng dùng dé xử lý
dữ liệu trong bộ nhớ với quy mô lớn Spark có mô hình lập trình tương tự như
MapReduce nhưng mở rộng nó với một phần trừu tượng chia sẻ dữ liệu được gọi làTập dữ liệu phân tán có khả năng phục hồi hoặc RDD Spark được thiết kế để xử lý
nhanh chóng cho các thuật toán lặp đi lặp lại, hỗ trợ lưu trữ trong bản ghi nhớ và phục
hồi lỗi nhanh chóng Spark sử dụng kiến trúc master/slaves được minh hoa trong hình
2.1.
23
Trang 35Cluster Manager
Hình 2.7: Kiến trúc master/slaves của Spark
2.2.4.2 Hadoop Distributed File System (HDFS)
Hadoop Distributed File System (HDFS) là một hệ thong lưu trữ dữ liệu được sử
dụng bởi Hadoop cung cấp khả năng truy cập với hiệu suất cao đến với các dữ liệu
nằm trên các cụm của Hadoop
HDES chia dữ liệu lớn thành các mảnh nhỏ hơn và lưu trữ phân tán chúng trên các
node khác nhau Từ đó, sao chép mỗi miếng dữ liệu nhỏ hơn lên nhiều node khác Do
vậy, khi node bat kì có dữ liệu bị lỗi, từ hệ thống sẽ tự động sử dụng dit liệu từ mộtnode khác rồi tiếp tục xử lý Đây là một trong những tính năng đặc biệt quan trọng
của HDES.
Kiến trúc của HDES là master/slave, một HDFS Cluster sẽ luôn bao gồm 1
NameNode NameNode này là 1 master server và nó có nhiệm vụ quản lý cho hệ
thống tập tin và điều chỉnh các truy cập đến những tập tin khác Từ đó, bổ sung choNameNode dé có nhiều DataNodes Bạn nên chú ý rằng, sẽ luôn có 1 DataNode dành
riêng cho các máy chủ dữ liệu Trong một HDFS, | tập tin lớn sẽ được chia thành 1
hoặc nhiều khối, những khối này đều sẽ được lưu trữ trong 1 tập các DataNodes.
NameNode có tác vụ chính là đóng, mở và đôi tên cho các tập tin, thư mục Ngoài ra,
nó còn điều chỉnh cho các truy cập đến hệ thống tập tin Trong khi đó, DataNode cótác vụ là ghi, đọc vào hệ thống tập tin; nó còn có nhiệm vụ tạo, xóa, nhân rộng các
di liệu dựa trên chi dan của NameNode.
24
Trang 36Quả trình hoạt động của NameNode và DataNode như sau:
e NameNode: Có trách nhiệm điều phối cho các thao tác truy cập của client với
hệ thống HDES Bởi vì các DataNode là nơi lưu trữ thật sự các block của các
file trên HDFS nên chúng là noi đáp ứng các truy cập này NameNode sẽ thực
hiện nhiệm vụ của nó thông qua daemon tên namemode chạy trên port 8021.
e DataNode: DataNode server sẽ chạy một daemon datanode trên port 8022,
theo định kỳ thì mỗi DataNode sẽ có nhiệm vụ báo cáo cho Namenode biết
được danh sách tat cả các block mà nó đang lưu trữ Đề NameNode có thể dựa
vào nó dé cập nhật lại các metadata trong nóSau mỗi lần cập nhật thì metadata trên NameNode đều sẽ đạt được các tình trạngthống nhất đữ liệu trên các DataNode Toàn bộ trạng thái của metadata trênNameNode sẽ đạt được sự thống nhất với các dit liệu ở trên DataNode
Tất cả các trạng thái của metadata ngay khi đang ở tình trạng hệ thống này sẽ đượcgọi là checkpoint Mỗi một metadata ở trạng thái checkpoint đều sẽ được sử dụng cho
25
Trang 37mục đích nhân bản metadata với mục đích phục hồi lại NameNode nếu như
NameNode xuất hiện lỗi
Đọc file trên HDFS: Khi các máy con client gửi yêu cầu đọc đến NameNode, khi đó
NameNode nhận được phải sẽ thực hiện các tác vụ dé kiểm tra xem file có tồn tại
không, file có bị lỗi hoặc bị nhiễm virus không? Nếu như file không có vấn đề thì
NameNode sẽ gửi các danh sách của các Block của file cùng với địa chỉ của các
DataNode.
Sau do, hé thong sẽ mở kết nối với DataNode rồi thực hiện chức năng RPC dé nhận
được các đữ liệu cần đọc, rồi đóng kết nối với DataNode còn lại Khi đó, các client
đọc các block của file liên tục và lặp lại cho đến block cuối của file Tiếp theo, lập
trình viên sẽ sử dụng một tập tin API của Hadoop dé có thé tương tác trực tiếp được
với HDFS Những tập API sẽ có chức năng giấu đi các NameNode dé giúp kết nốivới các DataNode đề nhận được dữ liệu
Cách ghi file trên HDFS: Tương tự quá trình đọc file, tuy nhiên quá trình này thì các
client sẽ gửi đến cho các NameNode một file entry (đây là file chưa có bat kỳ block
nào bên trong) Những file client sẽ thực hiện chia file dữ liệu thành các block và mỗi
block đều sẽ được đóng gói thành packet
Tiếp theo, Client sẽ gửi Packet cho DataNode thứ nhất, sau khi được lưu xong thìDataNode đầu tiên lại gửi tiếp packet cho DataNode thứ hai dé sao lưu Quá trình này
sẽ tiếp diễn cho đến các DataNode cuối cùng nhận được packet và sao lưu nó Thì nó
sẽ lại gửi thông báo cho client là đã lưu thành công Từ đó, client sẽ thực hiện hành
động dé báo cáo cho NameNode biết rồi cập nhật lại toàn bộ danh sách các block mà
file đã ghi lại.
2.2.5 Các công trình nghiên cứu liên quan đến IDS-Bigdata
Sự phát triển của Internet , một lượng lớn lưu lượng mạng được sinh ra trong mỗigiây Điều này dẫn đến việc các cuộc tan công ngày càng đa dang và phức tạp Dé có
thê phát hiện và thông báo kịp thời cho người quản trị thông tin các cuộc xâm nhậpcũng như các mối đe đọa nghiêm trọng trong môi trường mạng có lưu lượng lớn và
đa dạng, các nhà khoa học đã đưa ra các giải pháp về việc ứng dụng công nghệ dữ
26
Trang 38liệu lớn (Big data Technology) vào hệ thống IDS nhằm cải thiện khả năng xử lý dữ
liệu lớn và đưa ra những dự đoán trong thời gian ngắn
Trong [5]các tác giả đã đề xuất việc ứng dụng việc lưu trữ và xử lý trên môi trườngphân tán để cải thiện việc xử lý của N-IDS Cụ thể các tác giả đã tiến hành so sánh
việc xử lý và lưu trữ các IDS-logs giữa các môi trường Apache Spark, Hadoop Cluster
và HDBase Các kết quả đo đạt cho thấy, mô hình đề xuất của các tác giả sử dụng
ApacheSpark có thời gian xử lý ngắn hơn so với Hadoop hay HDBase Đối với môhình HDFS, thời gian xử lý không chỉ phụ thuộc vào khối lượng dữ liệu mà còn phụthuộc vào việc phân phối lưu trữ dữ liệu đó trong môi trường phân tán
Nghiên cứu số [6], tác giả đã đề xuất một framework sử dụng thuật toán dé giảm cácthuộc tinh không quan trọng trước khi đưa vào dé huấn luyện cho các mô hình học
máy Canonical Correlation Analysis (CCA) và Linear Discriminant Analysis (LDA)
là hai thuật toán dùng dé giảm các thuộc tính không quan trọng trước khi đưa vào déhuấn luyện cho hai mô hình học máy Các tác giả đồng thời sử dụng Apache Spark
để xử lý các dữ liệu lớn Kết quả thực nghiệm cho thấy, việc ứng sử dụng các thuậttoán loại bỏ các thuộc tính không quan trọng trước khi đưa vào huấn luyện giúp cho
việc phát hiện bất thường của các thuật toán học máy diễn ra nhanh chóng và hiệu
quả hơn Ngoài ra, việc sử dụng Apache Spark đề xử lý dữ liệu cũng góp phần tăng
tính hiệu quả, giảm thời gian dự đoán.
Mohamed Haggag và các cộng sự của ông [7] đã huấn luyện các mô hình học sâutrên Spark cluster Tién hanh danh gia thời gian train, độ chính xác, recall, fl-score,precision của các mô hình học sâu trên những ba cau hình Spark cluster khác nhau
Hê thống đề xuất của tác giả gọi là Deep Learning Spark Intrusion Detection System(DLS-IDS) Mô hình DLS-IDS sử dụng NSL-KDD dataset cho việc huấn luyện và
dự đoán Dé làm giảm sự mat cân bằng của dữ liệu, các tác giả đã sử dung SyntheticMinority Over-Sampling Technique (SMOTE) như một bước xử lý dữ liệu dé tăng
độ chính xác khi dự đoán và làm giảm overfitting Mô hình DLS-IDS sử dụng LSTM
với SMOTE có độ chính xác 83.57% khi phát hiện các loại tấn công — cao nhất trong
các mô hình Deep learning được sử dụng trong bài nghiên cứu.
27
Trang 39Chương3 Ý TƯỞNG THIẾT KE HE THONG
3.1 Ý tưởng
Mô hình mạng SDN - áp dụng cho các doanh nghiệp lớn sẽ phát sinh liên tục một
khối lượng lớn dữ liệu đa dạng Từ đó, nhu cầu về việc tận dụng công nghệ dữ liệu
lớn (Big data) nhằm hỗ trợ hiệu quả cho giải pháp đảm bảo an toàn mạng trong SDN
là bài toán cần giải quyết Khi đó, các hệ thống phòng thủ dựa trên phân tích dữ liệulớn có thé đạt được hiệu suất cao hơn và xử lý dit liệu tốt hơn
Vì vậy, chúng tôi đề xuất kiến trúc IDS hỗ trợ xử lí dữ liệu lớn với các công cụ lưutrữ và xử lý phân tán để cải thiện việc xử ly dt liệu NIDS Mục tiêu chính của hệ
thong đề xuất của chúng tôi là việc xử lý lưu lượng mang thời gian thực cho hệ thông
IDS trong môi trường dữ liệu mạng có kích thước lớn Mô hình của chúng tôi đề xuất
sử dụng một công cụ phát trực tuyến trong thời gian thực đề có thé phân tích trên lưu
lượng mạng được phát sinh liên tục.
Cơ sở hạ tang mạng truyền thống thường không cho hiệu suất cao Khi thêm bat kỳ
thành phần mạng vào kiến trúc mạng hiện tại lại khá tốn kém Ngoài ra, việc quản lý
mạng cũng trở thành một thách thức đối với các doanh nghiệp có kiến trúc mạng lớn
và phức tạp Do đó, nhu cầu sử dụng SDN (mạng khả lập trình) tăng lên, SDN tách
data plan va control plane thành hai plane riêng biệt, đồng thời các control plane được
quản lý và điều khiến bởi controller Ngoài ra, SDN cung cấp tinh mở và khả nănglập trình cho toàn mạng Rất nhiều chi phí hoạt động có thé được giảm thiểu khi sửdụng SDN Tổng quan các thành phần có trong hệ thống của chúng tôi được mô tả
trong hình 3.1.
28
Trang 40Hệ thống Monitoring network là hệ thống mang SDN gồm SDN controller dé điều
khiên cũng như quan sat mạng từ xa, OpenvSwitch được kết nôi với các host Các
luồng traffic mạng từ hệ thống nay sẽ được mirroring lại
Extrator
Extractor tao ra các tính năng luồng mạng từ dữ liệu được thu thập từ các portmirroring được đặt trong hệ thống mạng, đồng thời trích xuất các thuộc tính gửi quacluster để lưu trữ trong môi trường phân tán (HDFS)
Triển khai các thuật toán máy học dé phát hiện các mối đe dọa mạng Thành phần
của Machine model chứa các thuật toán đã được huấn luyện dé phát hiện những sự
bất thường trong mang và gửi đến cho người quản trị dé kịp thời xử lý
29