NSL-KDD: Góc nhìn chi tiết về tập dữ liệu huấn luyện cho các IDS

RESEARCH CREW
13:33 12/02/2020

Phương pháp để các hệ thống hoặc mạng có thể tránh bị malware hoặc lưu lượng mạng xấu từ Internet tấn công là triển khai các hệ thống ở các vị trí nhằm bảo vệ các thông tin quan trọng trong các máy tính hoặc hệ thống mạng. Những hệ thống phát hiện các lưu lượng mạng độc hại như vậy được gọi là các hệ thống phát hiện xâm nhập (IDS) và được huấn luyện với các dữ liệu lưu lượng mạng Internet. Tập dữ liệu phổ biến nhất là NSL-KDD, cũng là bộ dữ liệu chuẩn cho dữ liệu Internet hiện nay.

Khi làm nghiên cứu về lĩnh vực bảo mật thì cái tên DARPA ắt hẳn không phải là cái tên xa lạ với mọi người. DARPA là một bộ dữ liệu thô cơ sở. Trong khi đó, KDD99 là phiên bản trích xuất tính năng của bộ dữ liệu DARPA. Tiếp đó, NSL-KDD là phiên bản được loại bỏ và giảm kích thước của bộ dữ liệu KDD99.

Hình 1 - Mối quan hệ giữa các bộ dữ liệu cho IDS: DARPA, KDD99, NSL-KDD

NSL-KDD không phải là tập dữ liệu đầu tiên dành cho các IDS. Đã từng có một cuộc thi là KDD Cup, một cuộc thi quốc tế về các công cụ Khai thác tri thức và khai phá dữ liệu. Năm 1999, cuộc thi này được tổ chức với mục đích thu thập các bản ghi lưu lượng mạng. Nhiệm vụ của cuộc thi là xây dựng một hệ thống phát hiện xâm nhập mạng, một mô hình dự đoán có thể phân biệt được các kết nối “xấu” – gọi là xâm nhập hoặc tấn công – và các kết nối thông thường. Kết quả sau cuộc thi đã thu thập được một lượng bản ghi lưu lượng mạng và gom thành tập dữ liệu gọi là KDD’99, và từ đó, tập dữ liệu NSL-KDD được tạo ra, như là một phiên bản đã sửa đổi, tối ưu hóa của KDD’99 từ Đại học New Brunswick.

Tập dữ liệu này gồm 4 tập dữ liệu con: KDDTest+, KDDTest-21, KDDTrain+, KDDTrain+_20Percent, mặc dù KDDTest-21 và KDDTrain+_20Percent là các tập con của KDDTest+ và KDDTrain+. Từ đây, KDDTrain+ sẽ được xem là tập huấn luyện và KDDTest+ sẽ được xem là tập kiểm tra. Tập KDDTest-21 là một tập con của tập kiểm tra, loại bỏ những bản ghi dữ liệu khó nhất (điểm 21) và tập KDDTrain+_20Percent là tập con của tập huấn luyện, với số bản ghi bằng 20% tổng số bản ghi có trong tập huấn luyện. Nói cách khác, các bản ghi lưu lượng mạng có trong KDDTest-21 và KDDTrain+_20Percent đã lần lượt có trong các tập kiểm tra và tập huấn luyện, đồng thời không có bản ghi nào đồng thời tồn tại trong cả 2 tập dữ liệu.

Tập dữ liệu gồm các bản ghi lưu lượng mạng Internet được quan sát bởi một mạng phát hiện xâm nhập đơn giản và là những lưu lượng một IDS có thể gặp phải, là những dấu vết còn sót lại. Tập dữ liệu gồm 43 thuộc tính trong mỗi bản ghi, với 41 thuộc tính liên quan đến chính lưu lượng, 2 thuộc tính cuối là nhãn (tấn công hoặc không tấn công) và điểm (mức độ nghiêm trọng của lưu lượng đầu vào).

Trong tập dữ liệu NSL-KDD có 4 lớp tấn công bao gồm: Tấn công từ chối dịch vụ (Denial of Services – DoS), Do thám (Probe), User to Root (U2R) và Remote to Local (R2L).

Mô tả ngắn gọn của mỗi lớp tấn công như sau:

Cần lưu ý rằng từ những mô tả phía trên, DoS hoạt động khác so với 3 nhóm tấn công còn lại, ở đó DoS cố gắng làm hệ thống ngưng hoạt động để cuối cùng ngăn các lưu lượng bình thường, trong khi các tấn công khác chỉ âm thầm xâm nhập hệ thống và cố gắng không bị phát hiện.

Bảng bên dưới (Hình 2) liệt kê các lớp con của mỗi nhóm tấn công ở trên trong bộ dữ liệu:

Hình 2 - Các lớp tấn công trong tập dữ liệu NSL-KDD

Dù cùng tồn tại trong tập dữ liệu nhưng độ phân bố của các tấn công này cũng không đồng đều, như ta có thể thấy trong bảng bên dưới (Hình 3). Về cơ bản, hơn một nửa các bản ghi trong tập dữ liệu là lưu lượng bình thường, và số lượng bản ghi của tấn công U2R và R2L khá thấp. Mặc dù thấp, tập dữ liệu vẫn đại diện chính xác cho phân bổ của các lưu lượng tấn công trên mạng Internet ngày nay, khi hầu hết các tấn công là DoS và tấn công U2R và R2L thường ít thấy.

Hình 3 - Độ phân bố của các loại tấn công trong tập dữ liệu

Các thuộc tính trong mỗi bản ghi lưu lượng cung cấp các thông tin về tấn công có thể chia làm 4 loại: Cơ bản (Intrinsic), Nội dung (content), host-based và time-based, cụ thể:

Kiểu dữ liệu của các thuộc tính có thể chia làm 4 loại:

Danh sách các giá trị có thể có của các thuộc tính kiểu phân loại có thể xem ở bảng dưới (Hình 4). Trong đó, có 3 giá trị cho thuộc tính Protocol Type, 60 giá trị cho thuộc tính Service và 11 giá trị Flags.

Hình 4 - Giá trị các thuộc tính kiểu phân loại có thể có của NSL-KDD

Không giống như các thuộc tính Protocol Type hoặc Service có giá trị tự giải thích cho ý nghĩa của nó (giá trị mô tả kết nối), thuộc tính Flags hơi khó hiểu. Flag mô tả trạng thái của kết nối và các cờ trong gói tin có được bật hay không. Mỗi giá trị của Flag đại diện cho một trạng thái của kết nối và ý nghĩa của mỗi giá trị có thể xem ở bảng bên dưới (Hình 5).

Hình 5- Giá trị của Flag

Cuối cùng, để kết thúc bài viết này, phần mô tả chi tiết về từng thuộc tính trong bộ dữ liệu NSL-KDD được diễn giải cụ thể ở liên kết Google Sheet.

Tham khảo và lược dịch bài viết của Gerry Saporito

TIN LIÊN QUAN
  Trí tuệ nhân tạo hoàn toàn có thể bị đánh lừa Mạng nơ-ron hay mạng thần kinh nhân tạo đang được tung hô do đạt được hiệu suất siêu phàm trong nhiều lĩnh vực, nhưng chúng rất dễ bị đánh lừa. Bạn có thể tham khảo một demo về...
Trong thời đại ngày nay, vấn đề an ninh bảo mật luôn tạo nhiều tiếng vang trong thế giới công nghệ. với lý do chính đáng, các câu hỏi và mối quan tâm xoay quanh quyền riêng tư và sự an toàn của thông tin cá nhân của người dùng...
Dưới sự phát triển của các công nghệ học máy – học sâu, nhiều người bắt đầu cũng nhận thức được rằng các Hệ thống phát hiện xâm nhập (Intrusion Detection Systems – IDS) dựa trên phương pháp học máy sẽ chịu nhiều rủi ro trước kiểu tấn công đối...