Thông qua khóa luận này, em mong muốn sẽ xây dựng được một hệ thống phát hiệnDDoS với độ chính xác cao, tốc độ xử lí nhanh cùng với khả năng giải thích được các dự đoán của mô hình dựa t
Dinh nghia 0
SHAP (Shapley Additive exPlanation) [22] [23] là một framework được đề xuất bởi Lundberg và Lee dé giải thích các dự đoán SHAP giải thích dự đoán của một đối tượng x bằng cách tính toán sự đóng góp của mỗi tính năng vào dự đoán đầu ra.
Chú ý: SHAP chỉ thé hiện sự đóng góp hoặc sự quan trọng của mỗi tính năng trên dự đoán của mô hình, chứ nó không đánh giá chất lượng dự đoán mô hình.
Phương pháp giải thích SHAP tính toán Shapley values từ lí thuyết trò chơi liên minh. Giá trị của thuộc tính (feature values) của một đối tượng dtr liệu đóng vai trò là người choi trong liên minh Shapley values cho chúng ta biết cách phân bổ công băng tiền (đầu ra) giữa các tính năng Một người chơi có thé là một giá trị tính năng (feature value) riêng lẻ Một người chơi cũng có thê là một nhóm các giá trị tính năng Ví dụ dé giải thích một hình ảnh, pixels có thé được nhóm thành superpixels và dự đoán được phân tán giữa chúng Một sự đổi mới mà SHAP đem đến cho bảng là giải thích Shapley value được biéu diễn dưới dạng một phương pháp phân bồ tính năng bồ sung, một mô hình tuyến tính kết nỗi LIME va Shapley values Cụ thé được biéu diễn băng công thức sau:
Trong đó g là mô hình giải thích, z’ € {0,1} là vector liên minh (coalition vector hoặc simplified features), M là kích thước lớn nhất của liên minh và ở ; €]§ là Shapley values của feature j Trong vector liên minh, mục nhập | có nghĩa là feature value tương ứng là “hiện điện” và 0 nghĩa là vắng (thiếu) Công thức còn lại đơn giản như sau: g(x") = 6o + > 4, j=1
Shapley values là giải pháp duy nhất thỏa mãn các thuộc tinh Efficiency, Symmetry,
Dummy và Additivity SHAP cũng thoả mãn cái này, vì nó tính toán giá tri Shapley values SHAP mô tả 3 thuộc tính đáng mong đợi sau:
Nếu như bạn định nghĩa gy) = Ex(ÿ)) và cho tat ca x’ j = 1, day là thuộc tính efficiency của Shapley Lúc nay, ta được: f(x) = do + >ằ bx") = Ex(f(X)) + ằ j=l j=l
Những feature nào bị thiếu hooặc không có sẵn sẽ có một giá trị Shapley bằng 0.
Cho f(z’) = ƒ(h„(Z)) và z'_; = 0 Với bat kì hai mô hình f và f’ thỏa mãn: i: @') 5E722>., 2É.)
Với tất cả đầu vào z’ € {0,1}” thi:
Thuộc tinh consistency nói rằng nêu một mô hình thay đổi dé mà đóng góp cận biên của feature value tăng hoặc giữ nguyên (bất chấp những tính năng khác), Shapley value cũng sẽ tăng hoặc giữ nguyên.
Cài đặt SHAP: pip install shap
Global explanation cung cấp những hiểu biết về hành vi mô hình và quá trình đưa ra quyết định thông qua toàn bộ dataset hoặc tập con quan trọng của nó Nó tập trung vào khám phá các mẫu, xu hướng và môi quan hệ chung mà mô hình đã học được.
Các kĩ thuật global explanation có thé bao gồm phân tích feature importance, feature dependence, feature interations Chúng cung cap một cái hiểu ở cấp cao về biểu hiện tông quát của mô hình và các tác nhân ảnh hưởng đên dự đoán. a) Feature Importance
21 Ý tưởng đằng sau SHAP feature importance rất đơn giản Các features với Shapley values tuyệt đối lớn thì sẽ là những tính năng quan trọng Vì chúng ta muốn độ quan trọng toàn cục, chúng ta tính trung bình giá trị tuyệt đối của Shapley values mỗi feature thông qua dữ liệu:
Tiếp theo, chúng ta sắp xếp các features theo độ giảm mức độ quan trong va biéu diễn chúng Hình sau thể hiện các SHAP feature importance đối với mô hình được huấn luyện bằng CNN-LSTM:
Init Fwd Win Byts Fwd Pkt Len Max Init Bwd Win Byts Fwd Pkt Len Mean
Down/Up Ratio Bwd Seg Size Avg
ACK Flag Cnt Fwd Pkt Len Std
RST Flag Cnt Bwd Pkt Len Max
Fwd IAT Std Flow IAT Mean Pkt Len Mean
Pkt Len Max Flow IAT Std den
Pkt Size Avg == Benign mmm DDOS attack-HOIC
Pkt Len Std #4 DDoS attacks-LOIC-HTTP
| mmm DDOS attack-LOIC-UDP
0.0 0.1 0.2 0.3 0.4 0.5 0.6 mean(|SHAP value|) (average impact on model output magnitude)
Hình 3.9: Ví dụ về SHAP feature importances
Feature importance hữu ích, nhưng không chứa thông tin nào khác ngoài những tính năng quan trọng Dé có nhiều thông tin hơn, chúng ta sẽ xem xét summary plot. b) SHAP Summary Plot
Summary plot kết hop feature importance với anh hưởng của feature Mỗi điểm trên summary plot là một Shapley value cho 1 feature va 1 instance Trên trục Y là features và trục X là Shapley value Màu sắc thé hiện giá trị của feature từ thấp đến cao Các điểm chồng lên nhau trên trục X, nên chúng ta hiểu được sự phân bố của Shapley values mỗi feature Các features được sắp xếp theo độ quan trọng của chúng.
Hormonal.Contraceptives years oa Doom cen ene oes ome
Age or a eee ncn oo s 08 6
Num.of.pregnancies b _ “ng mews 6
IUD years meee oe wm eee g
Smokes years ° ota oe we 8
STDs Time.since.last.diagnosis 4 ome
STDs Time.since.first.diagnosis 7 one se
SHAP value (impact on model output)
Hình 3.10: Ví dụ về SHAP summary_plot Trong summary plot, chúng ta thấy những dấu hiệu đầu tiên về mối quan hệ giữa những giá trị của một tính năng và tác động đối với dự đoán Những dé xem chính xác mối quan hệ, chúng ta phải xem SHAP dependence plots. c) SHAP Dependence Plot
SHAP feature dependence có thé là hình ảnh đơn giản nhất của giải thích toàn cục. Đầu tiên, chọn một feature Tiếp theo, với mỗi đối tượng, vẽ một điểm với feature value trên trục x và Shapley value tương ứng trên trục Y.
SHAP value for Hormonal.Contraceptives years
Hình 3.11: Vi du về SHAP dependencies plot
So sánh với 0 years, càng ít năm sé làm thấp dự đoán và với số năm cao sẽ làm tăng dự đoán.
SHAP dependence plots thay thé cho partial dependence plots (PDP) và accumulated local effects (ALE) Trong khi PDP va ALE plot thé hiện các ảnh hưởng trung bình, SHAP dependence cho thay phương sai trên trục Y Đặc biệt trong trường hợp tương tác, SHAP dependence plot sẽ phân tán nhiều hon trong trục Y Dependence plot có thé được cải thiện bang cách highlight những feature interactions. d) SHAP Interaction values
Tương tac ảnh hưởng (feature effect) được bổ sung kết hợp sau khi giải thích feature effects riêng lẻ Shapley tương tác index từ lí thuyết game có thể được định nghĩa:
Khi i # j và: õ,;(S) = £&(S U GID — AS UTD) — FS UTD + £&(S)
Một số khái niệm cơ bản 2-¿- 5¿©e+©x++xz+zxezxeerxesrxee 30 3.5.1.3 Cac lớp cơ ban cua mô hình mạng CNN - ô+ 31
- Độ trượt (Stride): Kí hiệu là S La sỐ pIxel mà cửa số sẽ đi chuyền sau mỗi lần thực hiện phép tính.
Hình 3.14: Minh hoa độ trượt
- B6 lọc (Filter): Kí hiệu là F, hay còn gọi 1a kernel, filter hoặc feature detect là một ma trận có kích thước nhỏ, thường có kích thước là 3x3 hoặc 5x5.
- Đầu vào (Input): Kí hiệu là I.
- Pau ra (Output): Kí hiệu là O.
- Filter map: là ma trận đầu ra của lớp tích chập trong mạng Nó đại diện cho sự kích hoạt của các nơ ron trong lớp này, chứa các mẫu hoặc tính năng cục bộ của dữ liệu đầu vào.
- Zero padding: tên gọi của quá trình thêm các số không vào các biên của đầu vào Giá tri này có thể được lựa chọn thủ công hoặc một cách tự động.
3.5.1.3 Các lớp cơ bản của mô hình mang CNN
Theo [26], kiến trúc truyền thống của một mạng CNN - Là một dạng mạng neural được câu thành bởi các lớp cơ bản sau:
Tấm ảnh đầu vào Tích chập Pooling Kết nối đầy đủ
Hình 3.15: Các lớp cơ bản của mạng CNN a) Lớp tích chập — Convolution Layer
- Tích chập là lớp đầu tiên để trích xuất các tinh năng từ hình ảnh đầu vào Tích chập duy trì mối quan hệ giữa các pixel bằng cách tìm hiểu các tính năng hình ảnh băng cách sử dụng các ô vuông nhỏ của dữ liệu dau vào Nó là một phép toán có hai dau vào như ma trận hình ảnh va một bộ lọc hoặc hạt nhân.
- _ Xem xét một ma trận 5x5 có giá tri pixel là 0 và 1 Ma trận bộ lọc 3x3 như hình bên dưới:
Hinh 3.16: Minh hoa ma tran hinh anh va ma tran b6 loc
- Convolution hay tích chập là nhân từng phan tử bên trong ma trận 3x3 với ma trận bên trái Kết quả quả được một ma trận gọi là Convolved feature hay một
Feature map như hình bên dưới.
Hinh 3.17: Minh hoa cach nhan tich chap
- Su két hop của một hình anh với các bộ lọc khác nhau có thể thực hiện các hoạt động khác nhau như phát hiện cạnh, làm mờ và làm sắc nét bằng cách áp dụng các bộ lọc khác nhau Ví dụ đưới đây cho thấy kết quả hình ảnh tích chập khác nhau ra sao khi áp dụng cho các kernel khác nhau.
Operation Filter oo 2 cro ũ 1 0 Edge detection 1 -#1 ũ I
Hình 3.18: Ảnh tích chập khi áp dụng các kernel khác nhau b) Lớp Pooling
Trong mô hình CNN có hai khía cạnh cần quan tâm là tính bắt biến (Location Invariance) và tính kết hợp (Compositionality) Với cùng một đối tượng, nếu đối tượng này được chiếu theo các góc độ khác nhau (translation, rotation, scaling) thì độ chính xác của thuật toán sẽ bị ảnh hưởng đáng kê.
Lớp pooling thường được sử dụng ngay sau lớp convolutional dé đơn giản hóa thông tin đầu ra, giảm bớt số lượng neuron Lớp Pooling sẽ cho bạn tính bất biến đổi với phép dịch chuyền (translation), phép quay (rotation) và phép co giãn (scaling).
Các pooling có hai loại thường được sử dụng: Max Pooling, Average Pooling.
Kiêu Max pooling Average pooling
Từng phép pooling chọn giá trị | Tung phép pooling tính trung
Chức năng | lớn nhất trong khu vực mà nó | bình các giá trị trong khu vực mà đang được áp dụng nó đang được áp dụng.
Bảo toàn các đặc trưng đã phát | Giảm kích thước feature map
Nhận xét | hiện Được sử dụng trong mạng LeNet. Được sử dụng thường xuyên
Minh họa c) Lớp kết nối đầy đủ (Fully Connected Layer)
Tang kết nối đầy đủ (FC) nhận đầu vào là các dữ liệu đã được làm phẳng, mà mỗi đầu vào đó được kết nối đến tat cả neuron Trong mô hình mạng CNNs, các tang kết nối day đủ thường được tìm thay ở cuối mạng và được dùng dé tối ưu hóa mục tiêu của mạng (như độ chính xác của lớp). ĐẦU Sta XY OSS QL f2 Use ch
Hình 3.19: Minh họa tang kết nối đầy đủ
Mang CNN là một tập hợp các lớp Convolution chồng lên nhau và sử dụng các hàm nonlinear activation như ReLU và tanh dé kích hoạt các trọng số trong các node.
Hình 3.20: Sơ đồ tông quan của CNN
Mỗi một lớp sau khi thông qua hàm kích hoạt sẽ tạo ra các thông tin trừu tượng hơn cho các lớp tiếp theo Trong mô hình CNN thì các layer liên kết được với nhau thông qua cơ chế tích chập.
Lớp tiếp theo là kết quả tích chập từ lớp trước đó, nhờ vậy mà ta có được các kết nối cục bộ Như vậy mỗi nơ-ron ở lớp kế tiếp sinh ra từ kết quả của filter áp lên một vùng ảnh cục bộ của nơ-ron trước đó.
Mỗi một lớp được sử dụng các filter khác nhau và có hàng trăm hàng nghìn filter như vậy và kết hợp kết quả của chúng lại Ngoài ra có một số lớp khác nhau pooling/subsampling layer dùng đề chắt lọc, cô đọng lại các thông tin hữu ích hơn
(loại bỏ các thông tin nhiễu).
Trong quá trình huấn luyện, (training) CNN tự động học các giá trị qua các lớp filter dựa vào cách thức mà người nghiên cứu muôn thực hiện.
3.5.1.5 Lựa chọn tham số cho CNN
- Convolution layer: Nếu lớp này có số lượng lớn hơn, chương trình chạy của ban sẽ càng được cải thiện va tiến bộ Sử dụng layer với sỐ lượng nhiều có thé giúp các tác động được giảm một cách đáng kê Trong da phan các trường hợp, chỉ cần khoảng 3 đến 5 lớp là bạn sẽ thu về kết quả như mong đợi.
- Filter size: Thông thường, các filter size sẽ có kích thước là 3x3 hoặc 5x5.
- Pooling size: Với các hình ảnh thông thường, bạn nên sử dụng loại kích thước
2x2 Nếu đầu vòa xuất hiện dạng hình ảnh lớn hơn thi bạn nên chuyền sang dùng loại 4x4.
- Train test: Càng thực hiện nhiều lần train test, bạn càng có nhiều khả năng thu được các parameter tốt nhất, giúp mô hình thông minh và hiệu quả hơn.
3.5.2.1 Mạng nơ-ron hồi quy (Recurrent Neural Network -RNN)
Day là mạng nơ-ron nhân tạo được thiệt kê cho việc xử lí các loại dữ liệu có dang chuỗi tuần tự.
Mỗi block RNN sẽ lấy thông tin từ các block trước và input hiện tại.
Hình 3.21: Minh họa mạng RNN
Các x ở đây đại diện cho dt liệu đầu vào lần lượt (được chia theo time step). x, đại diện cho time step thứ t, va y, là output của một step.
Trong mạng RNN, trạng thái ấn tại mỗi bước thời gian sẽ được tính toán dựa vào dữ liệu đầu vào tại bước thời gian tương ứng và các thông tin có được từ bước thời gian trước đó, tạo khả năng ghi nhớ các thông tin đã được tính toán ở những bước thời gian trước cho mạng.
Mạng nơ-ron hồi quy (Recurrent Neural Network -RNN)
Day là mạng nơ-ron nhân tạo được thiệt kê cho việc xử lí các loại dữ liệu có dang chuỗi tuần tự.
Mỗi block RNN sẽ lấy thông tin từ các block trước và input hiện tại.
Hình 3.21: Minh họa mạng RNN
Các x ở đây đại diện cho dt liệu đầu vào lần lượt (được chia theo time step). x, đại diện cho time step thứ t, va y, là output của một step.
Trong mạng RNN, trạng thái ấn tại mỗi bước thời gian sẽ được tính toán dựa vào dữ liệu đầu vào tại bước thời gian tương ứng và các thông tin có được từ bước thời gian trước đó, tạo khả năng ghi nhớ các thông tin đã được tính toán ở những bước thời gian trước cho mạng.
Trong những năm gần đây, RNN đã có những ứng dụng không thể tin nỗi trong nhiều lĩnh vực: nhận dạng giọng nói, mô hình hóa ngôn ngữ, dịch máy, mô tả ảnh, Andrej
Karpathy có liệt kê một số kết quả mà RNN mang lại tại [27].
Hạn chế của RNN o essesesssseecssseecesseeeessntesssneecssnsecssneeeesnneeesaneessnees 37 3.5.2.3 Mụ hỡnh LSẽTM .- Ăn HH HH nh nh 38 3.5.3 CNN-LSTM Ăn HH TH HH TH ng nh như 43 E999
Van đề về phụ thuộc xa (hay còn gọi Vanishing Gradient Problem): Mạng RNN bị ảnh hưởng bởi khả năng ghi nhớ ngắn hạn (short-term memory) Nếu dữ liệu đầu vào là một chuỗi trình tự dai, mạng RNN sẽ gặp khó khăn trong việc truyén tải thông tin từ thời gian đầu tiên đến sau đó Ta có thé xem xét ví dụ dé hiểu rõ hơn van dé này Ví dụ, ta có “kim tự ” thì ta sẽ biết ngay từ phía sau là “tháp” Trong tình huống này, khoảng cách tới thông tin cần dé dự đoán là nhỏ, nên RNN hoàn toàn có thê xử lí được. ® ® Ú) pp Pt WH BO WwW @
Hình 3.22: Minh hoa RNN khi khoảng tới thông tin nhỏ
Nhưng khi ta xem xét câu sau: “Tôi lớn lên ở Pháp nên tôi có thé giao tiếp tốt tiếng ” Ta xem các thông tin gần “nên tôi có thé giao tiếp tốt tiếng” chi cho phép ta biết được sau nó sẽ là tên của một ngôn ngữ nao đó, chúng ta không thê biệt được cụ thé
37 là ngôn ngữ gì Muốn biết được, ta cần phải có thêm ngữ cảnh ở xa “Tôi lớn lên ở Pháp”, chúng ta mới có thể suy luận được Như vậy, trong trường hợp này, khoảng cách thông tin đã khá xa rồi.
Thật không may là đối với khoảng cách càng lớn dần thì RNN cũng bắt đầu không thê nhớ và học được nữa. đ)
Hình 3.23: Minh họa RNN khi khoảng cách tới thông tin xa
Về mặt lý thuyết, rõ ràng là RNN có khả năng xử lý các phụ thuộc xa (long-term dependencies) Chúng ta có thé xem xét và cai đặt các tham số sao cho khéo là có thé giải quyết được van dé này Tuy nhiên, trong thực tế RNN có vẻ không thé học được các tham số đó Van dé này đã được khám phá sâu bởi [28] và [29], trong các bài báo của mình, họ đã tìm được những lí do cơ bản dé giải thích tại sao RNN không thé học được.
Tuy nhiên, LSTM có thê giải quyết được vấn đề này!
LSTM là một phiên bản mở rộng của mạng RNN, LSTM được giới thiệu bởi [30].
LSTM được thiết kế để giải quyết các bài toán về phụ thuộc xa (long-term dependencies) trong mạng RNN.
Việc ghi nhớ thông tin trong suốt thời gian dài là một đặc tính mặc định của LSTM, chứ ta không cần phải huấn luyện hay tinh chỉnh dé có thé nhớ được Có nghĩa là ngay hiện tại của nó đã có thé ghi nhớ được mà không cần bat kì tác động nào.
Mọi mạng hỏi quy đều có dạng là một chuỗi các mô dun lặp đi lặp lại của mạng nơ ron Với mạng RNN chuân, các mô đun này có câu trúc rât đơn giản, thường là một lớp tanh.
Hình 3.24: Cấu trúc mạng RNN chuẩn LSTM cũng có kiến trúc dạng chuỗi như vậy, nhưng các mô đun trong nó có cấu trúc khác với mạng RNN chuẩn Thay vì chỉ có một tầng mạng nơ ron, chúng có tới bốn tầng tương tác với nhau một cách rất đặc biệt.
Hình 3.25: Kiến trúc mạng LSTM a) Y tưởng cốt lõi
Chia khóa của LSTM là trạng thái tế bao (cell state) — chính đường chạy thông ngang phía trên của sơ đô hình vẽ bên dưới.
Hinh 3.26: Duong trang thai té bao (cell state) Trạng thái tế bao là một dang giống như băng chuyền Nó chạy xuyên suốt tat cả các mắt xích (các nút mạng) và chỉ tương tác tuyến tính đôi chút Vì vậy mà các thông tin có thể dễ dàng truyền đi thông suốt mà không sợ bị thay đồi.
LSTM có khả năng thêm vào hoặc bỏ đi các thông tin cần thiết cho trạng thái tế bào, chúng được điều chỉnh cần thận bởi các nhóm được gọi là công (gate).
Các công là nơi sàng lọc thông tin đi qua nó, chúng được kết hợp bởi một tầng mạng sigmoid và một phép nhân.
Hình 3.27: Minh họa công (gate) trong LSTM Tầng sigmoid sẽ cho đầu ra là một số trong khoảng [0, 1], mô tả có bao nhiêu thông tin có thể được thông qua Khi đầu ra là 0 thì có nghĩa là không cho thông tin nào đi qua cả, còn khi 1 thì có nghĩa là cho tất cả các thông tin đi qua nó.
Một LSTM gồm có ba cổng như vậy dé duy trì và điều hành trạng thái của tế bào.
Trước khi trình bày các phương trình mô tả cơ chế hoạt động bên trong của một tế bào LSTM, chúng ta sẽ thống nhất quy ước một số ký hiệu được sử dụng sau đây: e *x¿: là vector dau vào tại mỗi bước thời gian t.
40 se My, We, W;: là các ma trận trọng số trong mỗi tế bào LSTM. ® br, bc, bị, bạ là các vector bias (độ lệch). © fz, iz, o¿: lần lượt chứa các giá trị kích hoạt lần lượt cho các cổng: công quên, công vào và công ra tương ứng. © CnC: lần lượt là các vector đại diện cho trạng thái tế bào và một cập nhật cho trạng thái mới. eh: trạng thái ấn tại thời gian t. b) Cơ chế hoạt động
Bước đầu tiên của LSTM là quyết định xem thông tin nào cần phải bỏ đi từ trạng thái tế bào Quyết định này được đưa ra bởi tang sigmoid — gọi là “tầng công quên” (forget gate layer) Nó sẽ lay đầu vào là h,_; va x; rồi đưa ra kết qua là một số trong khoảng [0 1] cho mỗi số trong trạng thái tế bào OFT Pau ra 1a 1 thé hién rang nó giữ toàn bộ thông tin lai, còn 0 chỉ rằng toàn bộ thông tin sẽ bi bỏ di.
Hình 3.28: Minh họa cách hoạt động của công quên Bước tiếp theo là quyết định xem thông tin mới nào ta sẽ lưu vào trạng thái tế bào. Việc này gồm hai phần Đầu tiên là sử dụng một tầng sigmoid được gọi là “tầng công vào” (input gate layer) dé quyết định giá tri nào ta sẽ cập nhật Tiếp theo là một tang tanh tạo ra một vector cho giá trị mới C, nhằm thêm vào trạng thái Trong bước tiếp theo, ta sẽ kết hợp hai giá trị đó lại dé tạo ra một cập nhật cho trạng thái.
Cy = tanh(Wo-[hi-1,2] + bc)
Hình 3.29: Minh họa cách hoạt động của công đầu vào va công thức Trạng thái tế bào cũ C,_, sẽ được cập nhật thành trạng thái mới C,.
Ta sẽ nhận trang thái cũ với f, dé bỏ đi những thông tin ta quyết định quên lúc trước.
Sau đó cộng thêm i, * Ế, Trạng thái mới thu được này phụ thuộc vào việc ta quyết định cập nhật mỗi giá trị trạng thái ra sao.
Với bài toán mô hình ngôn ngữ, chính là việc ta bỏ đi thông tin về giới tính của nhân vat cũ, và thêm thông tin về giới tính của nhân vật mới như ta đã quyết định ở các bước trước đó.
Hình 3.30: LSTM khi cap nhật trang thái mới
Giới thiỆU nh HH TH HH Hà HH nh như 45 3.6.2 Cai na
CICFlowMeter (trước đây là ISCXFlowMeter) [31], là một bộ tạo va phân tích lưu lượng mạng.
Nó có thê được sử dụng dé tạo các luồng hai chiều, trong đó gói đầu tiên xác định các hướng chuyền tiếp (nguồn tới đích) và ngược (đích đến nguồn), do đó có hơn 80 tính năng lưu lượng truy cập mạng thống kê như Duration, Number of packets, Number of bytes, Length of packets, có thể được tính riêng theo hướng tiến và lùi.
Các chức năng bồ sung bao gồm, chọn các tính năng từ danh sách các tính năng hiện có, thêm các tính năng mới và kiểm soát thời hạn của flow timeout Đầu ra của ứng dung là tệp định dạng CSV có sáu cột được gan nhãn cho mỗi luồng (FlowID,
SourceIP, DestinationIP, SourcePort, DestinationPort và Protocol) với hơn 80 tính năng phân tích lưu lượng mạng.
Các luồng TCP thường được kết thúc khi kết thúc sự có kết nối (bằng gói FIN) trong khi các luồng UDP bị cham dứt bởi thời gian chờ luồng Giá trị thời gian chờ dòng có thé được gan tùy ý bởi sơ đồ riêng, ví dụ: 600 giây cho ca TCP va UDP.
- Gitclone github: https://github.com/datthinh1801/cicflowmeter.g1t
Code Pull requests Actions Security Insights main x P1 91 Go to file Code ~
HTTPS SSH _ GitHub CLI tests
gitignore https: //github com/datthinh1801/cicflowmeter.
LICENSE ° EH Open with GitHub Desktop
README.md Open with Visual Studio requirements.txt
:~/Documents$ git clone “https://github.com/datthin h1801/cicflowmeter.git"
Cloning into 'cicflowmeter’ remote: Enumerating objects: 61, done. remote: Counting objects: 100% (24/24), done.
Hinh 3.34: Git clone github vé may
- Vao thư mục cicflowmeter và tiên hành cai dat: cd cicflowmeter python3 setup.py install
- _ Các sử dung cua cicflowmeter
46 usage: cicflowmeter [-h] (-i INPUT_INTERFACE | -f INPUT FILE) [-c]
[-u URL_MODEL] output positional arguments: output output file name (in flow mode) or directory (in sequence mode) optional arguments:
-h, help show this help message and exit
-i INPUT INTERFACE, interface INPUT INTERFACE capture online data from INPUT INTERFACE -f INPUT FILE, fiLe INPUT FILE capture offline data from INPUT FILE -C, CSV, flow output flows as csv
-u URL_MODEL, url URL MODEL
URL endpoint for send to Machine Learning Model e.g http://0.0.0.0:80/prediction 1:
Hình 3.35: Cách sử dụng của cicflowmeter khi cài đặt thành công
3.6.3 Một số đặc điểm và tính năng của CicFlowmeter
Bảng 3.1: Bảng cách đặc điểm của CicFlowmeter
Tên tính năng Mô tả
Flow duration Thời gian của flow tinh bằng Microsecond total Fwd Packet Tông số Packet theo hướng thuận total Bwd packets Tổng số Paket theo hướng ngược lại total Length of Fwd l
Tông kích thước của Packet theo hướng thuận
Packet total Length of Bwd l
Tông kích thước của Packet theo hướng ngược lại Packet
Fwd Packet Length Min | Kích thước tối thiểu của Packet theo hướng thuận
Fwd Packet Length Max | Kích thước tối đa của Packet theo hướng thuận
Fwd Packet Length Mean | Kích thước trung bình của Packet theo hướng thuận
Kích thước độ lệch chuẩn của Packet theo hướng
Fwd Packet Length Std h thuan
Bwd Packet Length Min Kích thước tối thiêu của Packet theo hướng ngược lại Bwd Packet Length Max | Kích thước tôi đa của Packet theo hướng ngược lại
Kích thước trung bình của Packet theo hướng ngược Bwd Packet Length Mean |_| lai
Kích thước độ lệch chuẩn của Packet theo hướng
Bwd Packet Length Std ; ngược lại
Flow Byte/s Số lượng flow bytes mỗi giây
Flow Packets/s Số lượng flow packet mỗi giây
Thời gian trung bình giữa hai gói được gửi trong
Thời gian lệch chuân giữa hai gói được gửi tron
Flow IAT Std ` s ` ` mẽ ` luông
Flow LAT Max Thời gian tối đa giữa hai gói được gửi trong flow
Flow LAT Min Thời gian tối thiểu giữa hai gói được gửi trong flow
Thời gian tối thiêu giữa hai gói được gửi theo hướng
Thời gian tối đa giữa hai gói được gửi theo hướn
Fwd IAT Max we 5 thuận
Thời gian trung bình giữa hai gói được gửi theo
Fwd IAT Mean ° we hướng thuận
Thời gian lệch chuẩn giữa hai gói được gửi theo
Fwd IAT Std ` 6 6 wee hướng thuận
Tổng thời gian giữa hai gói được gửi theo hướn
Fwd IAT Total š sme 5 we thuan
Thời gian tối thiểu giữa hai gói được gửi theo hướng
Bwd IAT Min ngược lại
Thời gian tối đa giữa hai gói được gửi theo hướn
Bwd IAT Max 5 5 h mẽ 5 ngược lại
Thời gian trung bình giữa hai gói được gửi theo
Bwd IAT Mean h h we hướng ngược lại
Thời gian lệch chuẩn giữa hai gói được gửi theo
Bwd IAT Std hướng ngược lại
Tổng thời gian giữa hai gói được gửi theo hướn
Bwd IAT Total 8608 ws ngược lại
Số lần cờ PSH được đặt trong gói gửi đi theo hướng
Fwd PSH flag thuận (0 với UDP)
Số lần cờ PSH được đặt trong gói gửi đi theo hướng
Bwd PSH Flag : ngược lại (0 với UDP)
Số lần cờ URG được đặt trong gói gửi đi theo hướng
Fwd URG Flag ; thuan (0 voi UDP)
Số lần cờ URG được đặt trong gói gửi đi theo hướng
Bwd URG Flag ngược lại (0 với UDP)
Tổng số byte được sử dụng cho header theo hướng
Tổng sô byte được sử dụng cho header theo hướng
Bwd Header Length ; ngược lại
FWD Packets/s Số lượng gói hướng thuận mỗi giây
Bwd Packets/s Số lượng gói hướng ngược lại mỗi giây
Min Packet Length Độ dai tôi thiêu của một gói
Max Packet Length Độ dài toi da của một gói
Packet Length Mean Độ dài trung bình của một gói
Packet Length Std Độ dài lệch chuân của một gói
Packet Length Variance Độ dai phương sai của một gói
FIN Flag Count Số lượng gói với FIN
SYN Flag Count Số lượng gói với SYN
RST Flag Count Số lượng gói với RST
PSH Flag Count Số lượng gói với PSH
ACK Flag Count Số lượng gói với ACK
URG Flag Count Số lượng gói với URG
CWR Flag Count Số lượng gói với CWR
ECE Flag Count Số lượng gói với ECE down/Up Ratio Tỉ lệ tải xuống và tai lên
Average Packet Size Kích thước trung bình của gói
Kích thước trung bình quan sat được theo hướng thuận
AVG Bwd Segment Size Kích thước trung bình quan sát theo hướng ngược lại
Fwd Header Length Kích thước header của gói theo hướng thuận
Số lượng trung bình của bytes bulk rate (tốc độ hàng
Fwd Avg Bytes/Bulk loạt byte) theo hướng thuận
Số lượng trung bình của packets bulk rate theo
Fwd AVG Packet/Bulk hướng thuận
Fwd AVG Bulk Rate Số lượng trung bình của tỉ lệ bulk theo hướng thuận
Số lượng trung bình của byte bulk rate theo hướng
Bwd Avg Bytes/Bulk ; ngược lại
Số lượng trung bình của packet bulk rate theo hướng
Bwd AVG Packet/Bulk ngược lại
Số lượng trung bình của tỉ lệ bulk theo hướng ngược
Bwd AVG Bulk Rate lai
Số lượng gói trung bình trong một luồng phụ theo
Subflow Fwd Packets ms sims sp hướng thuận
Số lượng bytes trung bình trong một luông phụ theo
Subflow Fwd Bytes hướng thuận
Số lượng gói trung bình trong một luồng phụ theo
Subflow Bwd Packets — : = Spm hướng ngược lai
Số lượng byte trung bình trong một luồng phụ theo
Subflow Bwd Bytes 5 š SP hướng ngược lại
Tổng sô byte được gửi trong cửa số ban đầu theo hướng thuận
Tổng số byte được gửi trong cửa số ban dau theo hướng ngược lại
Dém các gói có it nhất 1 byte dữ liệu payload TCP theo hướng thuận min_seg_size_forward
Kích thước segment tối thiêu quan sát được theo hướng thuận
Thời gian tối thiểu một luồng được kích hoạt trước khi không hoạt động
Thời gian trung bình một luồng được kích hoạt trước khi không hoạt động
Thời gian tối đa một luông được kích hoạt trước khi
Active Max không hoạt động
Thời gian lệch chuẩn một luồng được kích hoạt trước
Active Std khi không hoạt động
Thời gian tối thiểu một luồng không hoạt động trước
Idle Min khi kích hoạt
Thời gian trung bình một flow không hoạt động
Idle Mean trước khi được kích hoạt
Thời gian tối đa một luông không hoạt động trước
Idle Max khi kích hoạt
Thời gian lệch chuẩn một luồng không hoạt động
Idle Std trước khi được hoạt động
3.7.1 Poisoning attack (Tan công đầu độc)
Các hệ thống AI thường được huấn luyện lại bằng dữ liệu mới thu thập được sau khi triển khai dé thích ứng với các thay đổi trong đầu vào Vi dụ, một hệ thống phát hiện xâm nhập (IDS) liên tục thu thập mẫu trên mạng và huấn luyện lại mô hình dé phat hiện các cuộc tân công mới Trong cuộc tân công dau độc, kẻ tan công có thê chèn các mẫu độc hại do mình tạo ra đê làm nhiễm ban dữ liệu huân luyện khiên cho hệ thống AI không hoạt động bình thường nữa như là không thể phát hiện các cuộc tấn công hoặc phân loại sai các loại tan công Mô hình học sâu yêu cau số lượng lớn mẫu cho quá trình huấn luyện đề có thé đạt được những dự đoán và kết quả chính xác, vì thế không thể đảm bảo hoàn toàn chất lượng của các mẫu.
Các loại tan công đầu độc là: tan công gradient tối ưu, tan công tối ưu toàn cầu và tan công tối ưu hóa thống kê Các cuộc tấn công này nhắm vào các bộ dữ liệu chăm sóc sức khỏe, cho vay và bất động sản để ảnh hưởng đến suy đoán của các mô hình AI trên các mẫu mới - ảnh hưởng đến liều lượng, quy mô cho vay/lãi suất, và dự đoán giá nhà đất Bằng cách thêm 8% dữ liệu huấn luyện độc hại, kẻ tan công có thé gây ra thay đổi tới 75% liều lượng thuốc được đề xuất cho một nửa số bệnh nhân.
Quá trình tan công đầu độc bao gồm các bước:
- Tiém dữ liệu: Kẻ tấn công đưa vào các đữ liệu độc hại vào trong tập dữ liệu huấn luyện Điều này có thể thực hiện bằng cách thao túng những mẫu thử huấn luyện hiện có hoặc thêm toàn bộ những mẫu thử mới đã thiết kế cho mô hình.
- Huan luyện mô hình: Dữ liệu độc hại được sử dung để huấn luyện mô hình học máy Mô hình sẽ học từ các dữ liệu trên và điều chỉnh các tham số bên trong của nó cho phù hợp.
- Ảnh hưởng mô hình: Sự hiện diện của những dữ liệu độc hại trong tập huấn luyện có thé ảnh hưởng đến hiệu suất và hành vi của mô hình Nó có thé dan đến những dự đoán sai lệch, giảm độ chính xác, hoặc thậm chí các lỗ hồng có thé được khai thác bởi kẻ tan công.
Các cuộc tấn công đầu độc có thể có nhiều mục tiêu và hậu quả khác nhau, phụ thuộc vào mục tiêu của kẻ tân công Một vài mục tiêu phô biên bao gôm:
- Phan loại sai: Mục đích của kẻ tan công sẽ khiến cho mô hình phân loại sai một đầu vào cụ thể thành lớp khác hoặc lớp mục tiêu mà kẻ tấn công muốn.
- Backdooring: Kẻ tan công chèn thêm các trigger hoặc backdoor pattern vào trong tập huấn luyện, sau đó kích hoạt dé thao túng hành vi của mô hình trong quá trình thực thi.
- Suy thoái mô hình: Kẻ tấn công có chủ ý làm giảm hiệu suất chung của mô hình bằng cách thêm vào những dữ liệu nhiễu hoặc dễ gây nhầm lẫn vào tập huân luyện.
3.7.2 Evasion attack (tan công né tránh)
Trong một cuộc tân công né tránh [32], kẻ tan công sẽ chỉnh sửa dữ liệu đâu vào khiến cho mô hình AI không thé nhận diện được đầu vào.
Cho một mô hình máy học (ví dụ như phân loại mã độc, phân loại hình ảnh) với hàm quyết định f: X > Y ánh xạ đầu vào x € X thành nhãn đúng y„„¿ € Y, ta gọi x’ x + 6 được gọi là adversarial sample với ổ được gọi là adversarial perturbation, nếu:
FQ) = Vy' # Vựaue, |Iửl| < e, trong đú || l| là distance metric (chỉ số khoảng cỏch), và € là perturbation tối da cho phép dẫn đến phân loại sai trong khi vẫn bảo toàn tính toàn vẹn ngữ nghĩa (semantic integrity) của x Semantic integrity là một miền hoặc nhiệm vụ cụ thé Ví dụ, trong phân loại hình ảnh, thị giác bình thường không thé nhận ra sự khác biệt giữa x’ va x Trong phân loại mã độc, x'va x cần thỏa mãn một vài chức năng tương đương nhất định Trong né tránh không mục tiêu (untargeted evasion), mục tiêu là khiến cho mô hình phân loại sai một mẫu thành một lớp khác