Mô tả dữ liệu đầu vào

Một phần của tài liệu Phát hiện xâm nhập dựa trên thuật toán k means (Trang 50 - 55)

Dữ liệu đầu vào của bài toán là một phần nhỏ trong khoảng 4 gigabyte nén dữ liệu nhị phân TCP dump lấy từ bảy tuần lưu lượng mạng. Dữ liệu ban đầu này sau đó đã được xử lý vào khoảng 5.000.000 bản ghi kết nối được sử dụng trong cuộc thi phát hiện xâm nhập KDD 1999. Trong chương trình cài đặt này tác giả chủ yếu tập trung vào việc vận dụng thuật toán K-means để phân lớp, phát hiện các phần tử bình thường và phần tử dị biệt nên các khối thực hiện việc scan đường truyền và thu thập các gói kết nối không được thực hiện mà sẽ sử dụng khoản 50.000 bản ghi trong bộ dữ liệu KDD 1999 để thực hiện.

Bộ dữ liệu đầu vào của chương trình gồm chính xác 49402 bản ghi với 42 thuộc tính được chia làm ba nhóm như bảng 3.1, 3.2. và 3.3, mỗi bản ghi là một tập các giá trị của 42 thuộc tính trên:

3.2.1 Mô tả các thuộc tính trong file dữ liệu đầu vào

Mỗi bản ghi kết nối có 42 thuộc tính, chi tiết các thuộc tính như mô tả ở các bảng sau:

Bảng 3.1: Các thuộc tính cơ bản (nhóm này chứa tất cả các thuộc tính có được từ một kết nối TCP / IP)

Thuộc tính Mô Tả Kiểu

duration Độ dài (số giây) của kết nối. continuous

protocol_type Kiểu giao thức kết nối, e.g. tcp, udp, etc. discrete service Kiểu dịch vụ mạng ở thiết bị cuối, e.g., http,

telnet, etc.

discrete

src_bytes Số byte dữ liệu truyền từ nguồn tới đích continuous dst_bytes Số byte dữ liệu truyền từ đích tới nguồn continuous

flag Trạng thái cờ lỗi của kết nối discrete

land 1 nếu kết nối là từ hoặc tới cùng một host/port;

0 Nếu ngược lại

discrete

wrong_fragment Số khung tin bị lỗi continuous

urgent Số gói tin khẩn cấp continuous

Continuous: liện tục, discrete: rời rạc.

Bảng 3.2: Các thuộc tính lưu thông (nhóm này bao gồm các thuộc tính mà nó được tính toán với khoảng thời gian một cửa sổ)

Thuộc tính Mô Tả Kiểu

count Số kết nối tới 1 host hiện tại và trong khoản thời gian 2 s trước

continuous

Thuộc tính "cùng máy chủ”.

serror_rate % các lỗi kết nối "SYN" continuous rerror_rate % các lỗi kết nối "REJ" continuous same_srv_rate % các kết nối có cùng 1 dịch vụ continuous diff_srv_rate % các kết nối có khác dịch vụ continuous srv_count Số kết nối tới có cùng loại dịch vụ ở thời

điểm hiện tại và trong khoản thời gian 2 s trước đó.

continuous

Thuộc tính “cùng dịch vụ”:

srv_serror_rate % các lỗi kết nối "SYN" continuous

srv_rerror_rate % các lỗi kết nối "REJ" continuous srv_diff_host_rate % các kết nối tới các host khác nhau. continuous

Bảng 3.2: Các thuộc tính nội dung

Thuộc tính Mô Tả Kiểu

hot Số hiệu của "hot" continuous

num_failed_logins Số lần cố gắng thực hiện đăng nhập nhưng không thành công.

continuous

logged_in 1 Nếu thực hiện đăng nhập thành công; 0 nếu ngược lại

discrete

num_compromised Số tác động gây thiệt hại continuous root_shell 1 nếu dành được quyền cao nhất rôt; 0 trong

các trường hợp khác.

discrete

su_attempted 1 nếu cố gắng thực thi lệnh "su root"; 0 trong các trường hợp khác.

discrete

num_root Số truy cập có quyền "root" continuous

num_file_creations Số file được tạo ra continuous

num_shells Số shells được thực hiện. continuous

num_access_files Số hành động điều khiển việc truy cập file continuous num_outbound_cmd

s

Số lệnh thực thi lệnh truyền nhận file ra bên ngoài chẳng hạn như FPT.

continuous

is_hot_login 1 nếu đăng nhập từ danh sách "hot"; 0 nếu đăng nhập từ chỗ khác.

discrete

is_guest_login 1 nếu đăng nhập với quyền là khách; 0 nếu đăng nhậpvới quyền khác.

discrete

3.2.2 Giảm số lượng bản ghi trong dữ liệu đầu vào:

Do dữ liệu đầu vào trong file có đuôi *.arff với 5 triệu bản ghi nên việc thực thi thuật toán K-means trên bộ dữ liệu đầy đủ đòi hỏi phải có cấu hình máy tốt, thuật toán phải tối ưu để rút gọn thời gian thực thi. Những điều kiện này tương đối khó khăn với một người lập trình bình thường nên tác giả thực hiện giảm số lượng

bản ghi đầu vào bằng cách dùng phần mềm Weka 3 để mở file dữ liệu sau đó chọn phương thức để giảm số instance như hình sau:

Hình 3.1: Giảm số bản ghi cho file đầu vào của chương trình

Sau khi thực hiện việc lọc ta save as dữ liệu sang một file khác để làm đầu vào cho chương trình. Tùy từng tiêu chí lọc mà số lượng các bản ghi kết nối sẽ giảm số lượng nào đó.

Với mục đích giảm số lượng bản ghi trong file đầu vào để chương trình thực hiện khả thi hơn về mặt thời gian nên trong luận văn sử dụng lọc RemovePercentaga. Với phương pháp lọc này ta chỉ cần cung cấp số % muốn loại bỏ thì Weka 3 sẽ giúp ta giữ lại ngẫu nhiên số bản ghi tương ứng với thiết lập của ta từ file dữ liệu gốc.

Khi đó dữ liệu dạng đầu vào của chương trình sẽ nằm trong file *.arff có dạng vecto được mô tả như trong hình 3.2. Các thuộc tính như đã được mô tả trong phần trên. Mỗi bản ghi kết nối được thể hiện trên một hàng với các giá trị của các thuộc tính tương ứng… thể hiện các tính chất của một kết nối. Khi đó, nếu ở trong Weka 3 ta vẫn có thể chỉnh sửa được nội dung file nếu cần.

Hình 3.2: Xem và chỉnh sửa cho file đầu vào của chương trình nếu cần.

Dữ liệu đầu vào của bài toán là tập các bản ghi dữ liệu chưa được phân lớp.

Với mỗi bản ghi dữ liệu sẽ chứa giá trị của các thuộc miền rời rạc.

Hình 3.3: Dữ liệu của chương trình mở bằng Notepad.

Cấu trúc dữ liệu của tệp đầu vào có thể mô tả lại như sau:

• Đầu tiên là các thông tin về phiên bản, tác giả, ngày khởi tạo, ý nghĩa, các thông tin về file dữ liệu

• Tiếp theo là n dòng thông tin các thuộc tính có dạng @ thuộc tính với n là số thuộc tính.

• Mỗi dòng tương ứng với giá trị của một đối tượng trong luận văn này thì mỗi dòng thể hiện dữ liệu của một bản ghi kết nối.

• Các giá trị của mỗi thuộc tính cách nhau bởi một dấu “,”

3.3 Cài đặt thuật toán K-Means và thử nghiệm trong phân cụm phần tử dị biệt

Một phần của tài liệu Phát hiện xâm nhập dựa trên thuật toán k means (Trang 50 - 55)

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

(69 trang)
w