PHƯƠNG PHÁP THỰC HIỆN

Một phần của tài liệu Khóa luận tốt nghiệp An toàn thông tin: Tăng cường khả năng phát hiện tấn công bằng mạng sinh đối kháng trong mạng khả lập trình (Trang 41 - 66)

4.1. Xây dựng và huấn luyện bộ khung DIGFuPAS

Trong khoá luận này, chúng tôi giới thiệu DIGFuPAS - bộ khung ứng dụng

GAN nhằm tạo ra các luồng lưu lượng đối kháng bảo toàn được các thuộc tính chức

năng quan trọng có khả năng vượt qua được IDS nhưng vẫn đảm bảo tính hợp lệ của luồng lưu lượng.

Bộ khung DIGFuPAS được huấn luyện có khả năng tạo ra dữ liệu tấn công đối kháng từ mẫu tan công ban dau dựa trên Wassertein GAN - một biến thé khắc phục vấn đề khó đào tạo bộ sinh và khả năng hội tụ trong mô hình GAN tiêu chuẩn.

Mục tiêu của bộ khung sau khi được huấn luyện là bộ sinh có thể tạo ra các mẫu tan công đối kháng mà B-IDS không có khả năng nhận diện, phát hiện; từ đó sử dung đầu ra của bộ sinh làm dữ liệu kiểm thử và tái huấn luyện tăng cường B-IDS.

Chúng tôi thiết kế DIGFuPAS gồm 3 thành phan chính:

- Bộ sinh (Generator — G)

- Bộ phân biệt (Discriminator — D)

- IDS hộp den (Blackbox IDS — B-IDS)

4.1.1. Tiền xử ly dữ liệu

Chúng tôi thực hiện nghiên cứu trên bộ dữ liệu công khai CICIDS-2017 [21].

Tại thời điểm thực hiện nghiên cứu, bộ dữ liệu CICIDS được thu thập và gán nhãn

bởi Viện An ninh mạng Canada (Canadian Institute for Cybersecurity) đã có phiên

bản mới là CICIDS-2018. Tuy nhiên, CICIDS-2018 là bộ dữ liệu có kích thước lớn

cần yêu cầu cao về tài nguyên phần cứng nên CICIDS-2017 vẫn là phương án tối ưu

được chúng tôi sử dụng trong nghiên cứu này.

Bộ dữ liệu CICIDS-2017 bao gồm lưu lượng mạng lành tính và lưu lượng mạng độc hại trước các cuộc tấn công phổ biến, được cung cấp dưới dạng các tệp PCAP

chứa các gói tin mạng trong quá trình thu thập dữ liệu và các tệp CSV chứa thông tin

31

trích xuất các thuộc tính thống kê lưu lượng mạng bằng bộ trích xuất thuộc tính CICFlowMeter gồm 84 cột thuộc tính đã được gán nhãn. Tổng dung lượng các tệp

CSV của bộ dữ liệu là 1.2 GB.

Chúng tôi sử dụng dữ liệu từ 6 trong tổng số 8 tệp CSV đã được cung cấp dé thực hiện huấn luyện và kiém thử trong nghiên cứu. Thông tin chi tiết về đữ liệu thuộc

các tệp được mô tả trong Bảng 4.1.

Bang 4.1: Thông tin phân bồ dé liệu trong bộ dữ liệu CICIDS-2017 Tép dữ liệu Thông tin số lượng nhãn Mục đích

sử dụng

Wednesday- BENIGN: 440031 records (63.52%) DOS

WorkingHours. DoS Slowloris: 5796 records (0.84%) (chinh)

DoS Slowhttptest: 5499 records (0.79%) DoS Hulk: 231073 records (33.36%)

peap_ISCX.csv

(raw 1)

DoS GoldenEye: 10293 records (1.49%) Heartbleed: 11 records (0.0%)

Friday- BENIGN: 97718 records (43.29%) DDOS

WorkingHours- DDoS: 128027 records (56.71%) (chinh)

Afternoon-DDos.

pcap_ISCX.csv

(raw2)

Tuesday- BENIGN: 432074 records (96.9%) Bruteforce

WorkingHours. FTP-Patator: 7938 records (1.78%) (chinh)

pcap_ISCX.csv SSH-Patator: 5897 records (1.32%)

(raw3)

Thursday- BENIGN: 288566 records (99.99%) Infiltration

WorkingHours- Infiltration: 36 records (0.01%) (chinh)

32

Afternoon-

Infilteration.

pcap_ISCX.csv

(raw4)

Friday- BENIGN: 127537 records (44.52%) Bruteforce

WorkingHours- PortScan: 158930 records (55.48%) (b6 sung)

Afternoon-

PortScan.

pcap_ISCX.csv

(raw5)

Thursday- BENIGN: 168186 records (36.64%) Infiltration

WorkingHours- Web Attack Brute Force: 1507 records (0.33%) | (bố sung)

Morning- Web Attack XSS: 652 records (0.14%)

WebAttacks. Web Attack Sql Injection: 21 records (0.0%)

pcap_ISCX.csv NaN: 288602 records (62.88%)

(raw6)

Friday- BENIGN: 189067 records (98.97%) Không

WorkingHours- Bot: 1966 records (1.03%) sử dung

Morning.

pcap_ISCX.csv

Monday- BENIGN: 529918 records (100.0%) Không

WorkingHours. sit dung

pcap_ISCX.csv

Tông sô

BENIGN: 2.273.097 records (72,87%)

Attack: 557.646 records (17,88%)

33

(3.119.345 Chưa gán nhãn: 288.602 records (9.25%)

records)

Dữ liệu trong mỗi tệp được trình bày dưới dạng bảng có nhiều cột thuộc tính (tabular) và cần được tiền xử lý trước khi có thé sử dụng. Quá trình tiền xử lý gồm 2 giai đoạn chính là phân nhóm dữ liệu về các nhóm tan công và xử lý dữ liệu dé các

mô hình học máy sử dụng.

Phân nhóm dé liệu:

Dựa vào đặc tính của dữ liệu đã được cung cấp qua nhãn, chúng tôi gom nhóm

dữ liệu vào 4 nhóm tấn công là DOS, DDOS, Bruteforce va Infiltration dựa trên sự tương ứng về tính chat.

Chúng tôi sử dụng dữ liệu từ 4 tệp dữ liệu chính là CSV raw1, raw2, raw3,

raw4 làm dit liệu chính cho từng nhóm tấn công là DOS, DDOS, Bruteforce và Infiltration như đã mô tả ở Bảng 4.1. Thêm vào đó, nhằm giải quyết sự mat cân bằng

dữ liệu ở loại tan công Bruteforce va Infiltration khi dữ liệu tắn công ở 2 loại này quá

ít, chúng tôi sử dụng lần lượt hai tệp raw5 và raw6 dé bổ sung dữ liệu về 2 loại tan công này; lưu ý rang chúng tôi chỉ b6 sung dữ liệu tan công mà không bổ sung dit

liệu lành tính (BENIGN).

Sau quá trình này, chúng tôi có bộ dit liệu tương ứng cho từng nhóm tan công với các thông tin phân bé dữ liệu như Bảng 4.2

Bảng 4.2: Bảng phân bồ dữ liệu các nhóm tấn công Loại tan công Thông tin số lượng nhãn

DOS BENIGN: 440031 records (63.52%)

DoS Slowloris: 5796 records (0.84%)

DoS Slowhttptest: 5499 records (0.79%)

DoS Hulk: 231073 records (33.36%)

34

DoS GoldenEye: 10293 records (1.49%)

DDOS BENIGN: 97718 records (43.29%)

DDoS: 128027 records (56.71%)

Bruteforce BENIGN: 432074 records (71.26%)

FTP-Patator: 7938 records (1.31%)

SSH-Patator: 5897 records (0.97%)

PortScan: 158930 records (26.21%)

Web Attack Brute Force: 1507 records (0.25%)

Infiltration BENIGN: 288566 records (99.75%)

Infiltration: 36 records (0.01%)

Web Attack Sql Injection: 21 records (0.01%)

Web Attack XSS: 652 records (0.23%)

Heartbleed: 11 records (0.0%)

Xử lý dữ liệu

Đầu tiên, chúng tôi chuẩn hoá tên cột bằng cách xoá đi các khoảng trống (space) và chuyền đổi thành định dạng chữ cái viết thường.

Tiếp theo, chúng tôi bỏ di các cột mà thuộc tính bi trùng lặp và các cột mà thuộc tính chỉ chứa duy nhất 1 giá trị không ảnh hưởng đến quá trình huấn luyện và được xuất hiện trong dit liệu của cả 4 loại tan công, bao gồm bwd avg packets/bulk,

fwd avg bulk rate, bwd avg bulk rate, bwd psh flags, bwd avg bytes/bulk, bwd urg

flags, fwd avg packets/bulk, fwd avg bytes/bulk. Ngoài ra, các cột thuộc tính thuộc

về chỉ tiết của luồng lưu lượng thé hiện thông tin hệ thống sử dụng dé xây dựng bộ

dữ liệu cũng bị loại bỏ, cụ thé là flow id, source ip, source port, destination ip, destination port, protocol, timestamp. Tổng cộng có 1 cột bi trùng lặp va 15 cột thuộc

35

tính sẽ bị loại bỏ. Sau quá trình này, mỗi bộ dữ liệu của từng nhóm tan công sẽ gồm

68 thuộc tính.

Tiếp theo, chúng tôi loại bỏ các bản ghi chưa hoàn thiện là các hàng có chứa

giá tri NaN (Not a Number — không xác định). Sau đó, mỗi giá tri trong tệp dữ liệu được chuẩn hoá về khoảng [0, 1] bằng hàm Min-Max theo Công thức 4.1, với xmin, Xmax lần lượt là giá trị nhỏ nhất và giá trị lớn nhất của cột thuộc tính. Dé thuận tiện cho quá trình huấn luyện, đối với từng loại tắn công, các nhãn mang giá trị BENIGN

sẽ được thay đôi thành 0, các nhãn còn lại biểu thị chi tiết về kiểu tan công sẽ được thay đổi thành 1.

r xX — Xmin x! = Công thức 4.1

Xmax — Xmin

Cuối cùng, từng tệp dữ liệu sẽ bị xáo trộn rồi chia thành 3 tệp con với tỉ lệ

40:40:20 (%), mỗi tệp chứa 68 thuộc tính và nhãn. Trong đó, 2 tệp chiếm tỉ lệ cao hơn gọi là tệp frain1 và train2 được sử dung dé huấn luyện độc lập B-IDS va GAN, tệp còn lại gọi là tệp test dùng dé kiêm tra kết quả huấn luyện.

4.1.2. Xây dựng kiến trúc DIGFuPAS

Bộ sinh và bộ phân biệt được xây dựng dựa trên mô hình Wassertein GAN nham tang tinh ồn định của quá trình học. Trong đó, bộ sinh nhận đầu vào là các bản ghi tan công kèm theo nhiễu dé sinh ra các bản ghi lưu lượng đối kháng. Các bản ghi này được đưa đến cho IDS hộp đen gán nhãn, sau đó chuyên kết quả gán nhãn đến bộ phân biệt dé bộ phân biệt học được cách phân loại lưu lượng của IDS hộp đen. Từ

đó, bộ phân biệt sẽ đưa ra phan hồi về chất lượng đữ liệu mà bộ sinh tạo ra. Bộ sinh dựa vào phản hồi của bộ phân biệt dé tự điều chỉnh va cải thiện khả năng sinh dé liệu của mình. Qua quá trình huấn luyện, bộ sinh và bộ phân biệt học hỏi lẫn nhau để tìm

ra cách qua mặt IDS hộp đen mà không cần biết gì về cấu trúc thuật toán bên trong. Chỉ tiết về luồng hoạt động của DIGFuPAS được trình bày trong Hình 4.1.

36

samples

- Generator meet '

Es! =] Adversarial

Attack sample:

Feedback

Black-box IDS

B

Labeled traffic

Discriminator

D

Hình 4.1: Mô hình huấn luyện DIGFuPAS

4.1.2.1. IDS hộp den (Blackbox IDS — B-IDS)

Nghiên cứu sử dụng B-IDS đóng vai trò như một ML IDS đang hoạt động tốt với các dit liệu thông thường không có tính đối kháng. Đây là một hệ thống hộp đen

mô phỏng thực tế khi kẻ tan công (trong trường hợp này là mang GAN) không có thông tin về cầu tạo và các thuật toán hoạt động bên trong của trình phân loại. Sau khi được huấn luyện, B-IDS phải có khả năng phát hiện các luồng lưu lượng độc hại

khi có tân công xảy ra.

B-IDS nhận đầu vào là 68 thuộc tính thé hiện thông tin của luồng lưu lượng mang đã được tiền xử lý và đầu ra là kết quả phân loại dự đoán luồng lưu lượng lành

tính hay tân công với độ chính xác cao.

Chúng tôi hiện thực B-IDS trên 6 thuật toán phân loại học máy đã được xây

dựng trong thư viện scikit-learn gồm:

" Logistic Regression (LR)

= Support Vector Machine (SVM)

= Gaussian Naive Bayes (NB)

=" Decision Tree (DT)

=" Random Forest (RF)

=" K-Nearest Neighbor (KNN).

Ngưỡng tan công được lựa chọn là 0.5, vì vậy nhãn dự đoán B-IDS sẽ là 1 (tan cụng) nếu ứ >= 0.5, ngược lại nhón dự đoỏn là 0 (lành tớnh) nếu ứ < 0.5.

37

4.1.2.2. Bộ sinh (Generator — G)

Bộ sinh có nhiệm vụ tạo ra dữ liệu đối kháng có khả năng đánh lừa B-IDS. Trong 68 thuộc tính của luồng lưu lượng sau tiền xử lý, chúng tôi tham khảo công trình SIGMA [20] của nhóm tác giả Simon và cộng sự dé chọn ra M thuộc tính đặc trưng (functional features) cho từng nhóm tấn công cụ thê cần phải được giữ lại như Bang 4.3. Nếu M thuộc tinh này bị thay đổi sẽ làm ảnh hưởng lớn đến tính chất của cuộc tan công. Vì vậy, chúng tôi sử dụng bộ sinh dé làm nhiễu những thuộc tính phi chức năng (nonfunctional-features) còn lại nhằm tạo ra dữ liệu đối kháng có khả năng vượt qua được IDS nhưng vẫn giữ được khả năng tấn công.

Các thuộc tính chức năng là những thuộc tính có ảnh hưởng lớn đến tính chất của cuộc tan công. Một ví dụ cụ thé, đối với tan công DOS thì các thuộc tính chức năng như số lượng gói tin, độ đài gói tin sẽ mang ý nghĩa quan trọng hơn các thuộc

tính phi chức năng khác như time-to-live, loại giao thức.

Bảng 4.3: Các thuộc tính đặc trưng cho từng nhóm tấn công Nhóm tan công | Thuộc tinh đặc trưng (chức năng)

DOS Flow Duration, Active Mean, Average Packet Size, Packet

Length Std, Flow IAT Mean, PSH Flag Count, Idle Max

DDOS Flow Duration, Bwd Packet Length Std, Average Packet Size,

Packet Length Std, Flow IAT Std, ACK Flag Count

Bruteforce PSH Flag Count, Flow Duration, Total Length of Fwd Packets,

Init_Win_bytes_forward, Packet Length Std, Subflow Fwd Bytes, Fwd PSH Flags

Infiltration Subflow Fwd Bytes, Total Length of Fwd Packets, Flow

Duration, Idle Mean, Active Mean, Init_Win_bytes_backward, PSH Flag Count

Một vector nhiễu mang các giá tri ngẫu nhiên trong khoảng [0, 1] được nối thêm các thuộc tính phi chức năng làm vector input đầu vào cho bộ sinh. Việc thêm các giá trị nhiễu ngẫu nhiên giúp bộ sinh từ 1 luồng lưu lượng ban đầu có thé sinh ra nhiều luồng lưu lượng đối kháng, đa dạng hoá kết quả đầu ra. Trong khoá luận này, chúng

tôi chọn đại diện một vector nhiều 3 chiêu.

38

Bộ sinh gồm 6 lớp mạng nơ-ron được chúng tôi thử nghiệm và chọn thiết kế chỉ tiết cho bộ sinh như Bảng 4.4.

Bảng 4.4. Bảng thiết kế bộ sinh Lớp Số lượng nơ-ron Hàm kích hoạt

Input Layer 68-M+3 (input_dim) ReLU

Hidden Layers input_dim//2 ReLU

input_dim//2 ReLU

input_dim//2 ReLU

input_dim//2 Sigmoid

Output Layer 68-M

Bộ sinh sẽ nhận đánh giá từ bộ phân biệt va điều chỉnh trọng số dé cải thiện khả năng sinh đữ liệu của mình. Hàm mat mát (loss function) của bộ sinh (Công thức 4.2) theo mô hình WGAN được định nghĩa là trung bình cộng điểm số đánh giá của bộ

phân biệt cho dữ liệu được sinh ra từ bộ sinh.

Lạ = E D(G(a, noise) ) Công thức 4.2AaCSATTACK,n0ise

Đầu ra của bộ sinh gồm 68-M thuộc tinh phi chức năng đã bị làm nhiễu sẽ được ghép với các thuộc tính chức năng được giữ nguyên ban đầu dé tạo nên ludng lưu lượng đối kháng hoàn chỉnh. Đây chính là tính Function-Preserving (bảo toàn chức năng) trong DIGFuPAS. Hình 4.2 mô tả quá trình chuyên đổi từ đữ liệu ban đầu thành

dữ liệu đối kháng với các thuộc tính chức năng được bảo toàn.

39

Non-functional

Attack Samples

Functional Functional

Hình 4.2: Quá trình sinh dữ liệu đối kháng bảo toàn chức năng

4.1.2.3. Bộ phân biệt (Discriminator — D)

Trong quá trình đào tạo, bộ phân biệt nhận các dữ liệu phi chức năng đã được

gán nhãn từ B-IDS và cố găng học theo (bắt chước) cách hoạt động của B-IDS. Bộ phân biệt học cách đánh giá sự khác biệt giữa dữ liệu tấn công đối kháng và dữ liệu lành tính không mang tính tấn công bằng thuật toán Wasserstein Distance. Chúng tôi thử nghiệm và chọn sử dụng thiết kế cho bộ phân biệt như Bảng 4.5.

Bảng 4.5: Bảng thiết kế bộ phân biệt Lớp Số lượng no-ron Hàm kích hoạt

Input Layer 68-M (input_dim) ReLU

Hidden Layers input_dim*2 ReLU

input_dim*2 ReLU

input_dim*2 ReLU

input_dim//2 Không sử dung

Output Layer 68-M

Kết quả huấn luyện bộ phân biệt được dùng dé đánh giá dữ liệu sinh ra từ bộ sinh và phản hồi lại cho bộ sinh giúp cải thiện khả năng sinh đữ liệu. Để tự cải thiện

40

khả năng phân biệt, hàm mắt mát của bộ phân biệt (Công thức 4.3) được định nghĩa

là hiệu của trung bình cộng điểm số cho dữ liệu được gán nhãn tấn công với trung bình cộng điểm số cho dữ liệu được gan nhãn là bình thường.

CBATTACK

4.1.3. Qua trình huấn luyện

B-IDS sẽ được huấn luyện độc lập trước bang tệp dữ liệu train]. Sau quá trình huấn luyện, B-IDS có khả năng phân biệt được lưu lượng là tan công hay bình thường

với độ chính xác cao.

Tiếp theo, thực hiện huấn luyện đồng thời G và D bang tệp dữ liệu train2. Cụ thể, G sẽ nhận đầu vào là các thuộc tính phi đặc trưng của lưu lượng tấn công kèm

theo nhiễu và đầu ra sẽ được ghép với các thuộc tính đặc trưng ban đầu được giữ lại

tạo nên lưu lượng tan cong đối kháng hoàn chỉnh. Dữ liệu đối kháng tạo ra được trộn

với các dữ liệu bình thường đề đưa vào B-IDS gán nhãn. Kết quả gán nhãn là đầu vào của D, nhằm huấn luyện cho D cách phân loại và gán nhãn dữ liệu từ B-IDS.

Cuối cùng, G sẽ gửi mẫu lưu lượng tạo ra cho D đánh giá và sử dụng kết quả đánh giá của D dé cải thiện khả năng sinh dữ liệu của mình.

Quá trình huấn luyện được xem như thành công khi có nhiều dit liệu đối kháng

tạo ra được B-IDS gan nhãn là lành tính, có nghĩa là G đã có khả năng sinh ra dữ liệu đánh lừa được B-IDS.

Đề đảm bảo độ tin tưởng mô hình vẫn hoạt động tốt khi triển khai thực tế, tệp

dữ liệu rest dùng dé đánh giá kết quả huấn luyện chỉ chứa những dữ liệu ma IDS và DIGFuPAS chưa từng biết trước khi huấn luyện.

4.2. Tự động kiểm thử và tăng cường khả năng phát hiện tấn công cho IDS

Hệ thống phát hiện xâm nhập IDS sau khi được triển khai cần liên tục kiểm thử

và cập nhật đê thích ứng với các cuộc tân công mới. Với mục đích tạo ra cơ chê kiêm

41

thử khả năng phát hiện xâm nhập của IDS một cách tự động và liên tục, bộ khung

DIGFuPAS sau khi huấn luyện sẽ được sử dung dé xây dựng cơ chế này.

DIGFuPAS nhận các dữ liệu tấn công thông thường dé tạo nên các luồng lưu lượng đối kháng đột biến rồi đưa vào IDS dé kiêm thử kha năng phát hiện. Ngay khi nhận thấy các luồng lưu lượng đối kháng có thé vượt qua IDS với tỉ lệ cao, nghĩa là khả năng phát hiện của IDS đã giảm xuống, thì chính những luồng dữ liệu đối kháng này được sử dụng để tái huấn luyện. Quá trình này có thé được thực hiện một cách tự

động và liên tục.

Cụ thé, sau khi kiếm thử bằng tệp dữ liệu test độc lập nếu khả năng phát hiện của IDS bị giảm xuống (kết quả được trình bày ở Bang 5.1), chúng tôi sé tiến hành thu thập dir liệu đối kháng nhằm tái huấn luyện. Với mỗi luồng lưu lượng tan công nguyên gốc trong tệp dữ liệu train/ (tệp dit liệu huấn luyện IDS), chúng tôi sử dụng DIGFuPAS để sinh ra 5 luồng lưu lượng đối kháng bằng cách thêm vào các vectơ nhiễu mang giá trị ngẫu nhiên. Các luồng lưu lượng đối kháng tạo ra được xem như một luồng lưu lượng tan công mới (có nhãn 1) rồi b6 sung vào tệp dữ liệu train] ban đầu từ đó tái huấn luyện tăng cường cho IDS.

Dé tăng chất lượng huấn luyện, chúng tôi đề xuất những dit liệu do DIGFuPAS sinh ra nên được đưa vào IDS dé xem xét có phát hiện ra được luéng lưu lượng này

là tan công hay không. Nếu IDS có thê phát hiện (gán nhãn 1) thì bỏ qua bởi vì IDS

đã nhận diện được mẫu này, ngược lại nếu không thê phát hiện (gán nhãn 0) thì sẽ thu thập lại những luồng lưu lượng này.

Quá trình này đảm bảo thu thập được những mẫu đối kháng có chất lượng tốt. Tuy nhiên, việc kiểm tra và sinh đữ liệu như vậy sẽ cần nhiều tài nguyên tính toán hơn mà chúng tôi chưa thê đáp ứng, tốc độ sinh dữ liệu mà chúng tôi đã thử nghiệm còn chậm, do đó đề xuất này sẽ được chúng tôi hiện thực trong tương lai.

42

Một phần của tài liệu Khóa luận tốt nghiệp An toàn thông tin: Tăng cường khả năng phát hiện tấn công bằng mạng sinh đối kháng trong mạng khả lập trình (Trang 41 - 66)

Tải bản đầy đủ (PDF)

(71 trang)