Chương 1: Hệ thống hóa cơ sở lý thuyết và các vấn đề nghiên cứu liên quan, cụ thể như: thu thập lưu lượng mạng Internet; các phương pháp và mô hình phân tích, phát hiện lưu lượng mạng bất thường; nhóm phương pháp dựa trên PCA; phân tích, đánh giá ưu nhược điểm của những công trình nghiên cứu dựa trên PCA. Chương 2: Mô hình hệ thống phân tích và phát hiện lưu lượng bất thường dựa trên PCA; đề xuất một công thức mới để tính khoảng cách và phân tích các tham số; đề xuất phương pháp dPCA với hai chế độ một mức ngưỡng và hai mức ngưỡng; thử nghiệm và đánh giá kết quả. Chương 3: Trình bày vấn đề khử ngoại lai trong tập dữ liệu mẫu; đề xuất hai phương pháp phát hiện và khử ngoại lai bằng udPCA và bằng K-means; thử nghiệm phát hiện và khử ngoại lai, đánh giá hiệu quả của việc khử ngoại lai với udPCA và K-means trong tập dữ liệu mẫu; đánh giá kết quả phát hiện bất thường của dPCA khi sử dụng udPCA và K-means khử ngoại lai trong tập dữ liệu mẫu. Chương 4: Đề xuất tích hợp phương pháp dPCA vào một hệ thống giám sát có thể áp dụng trong thực tế.
Các nội dung chủ yếu gồm: kiến trúc hệ thống giám sát; vấn đề nhận dạng, phân loại bất thường và khả năng kết hợp phát hiện lưu lượng bất thường với phát hiện xâm nhập dựa trên mẫu dấu hiệu; đề xuất mô hình kết hợp phát hiện bất thường với phát hiện xâm nhập dựa trên tập mẫu dấu hiệu; thử nghiệm phát hiện bất thường và một số loại tấn công mạng. 11 CHƢƠNG 1 CƠ SỞ LÝ THUYẾT VÀ CÁC NGHIÊN CỨU LIÊN QUAN 1. Thu thập lƣu lƣợng mạng Internet 1. Các đặc tính của lưu lượng mạng Lưu lượng mạng Internet được tạo thành từ các gói tin IP.
Mỗi gói tin IP có phần tiêu đề và phần dữ liệu. Tập các gói tin có chung địa chỉ IP và cổng tạo thành một luồng tin IP (IP flow) [62, 43]. Tập các luồng tin giữa hai điểm cuối của cùng một loại ứng dụng được gọi là phiên (session). Một luồng tin IP được định nghĩa là chuỗi đơn hướng các gói tin IP quan sát trong một khoảng thời gian và có chung một số thuộc tính đặc trưng của luồng tin.
Đặc tính lưu lượng Internet khi thu thập các gói tin và luồng tin thường được thể hiện qua các thuộc tính tách ra được. Các thuộc tính điển hình là kiểu giao thức, địa chỉ IP nguồn, địa chỉ IP đích, cổng nguồn, cổng đích. Trong thực tế, một số kỹ thuật của các hãng công nghệ sử dụng thêm những thuộc tính khác, thí dụ Cisco Netflow và Juniper J- Flow sử dụng thêm trường kiểu dịch vụ (ToS-Type of Service) và giao diện đầu vào [43, 16]. Một số nghiên cứu mô tả thu thập lưu lượng mạng đường trục (backbone) [36, 57].
Những mạng này có thể là mạng của nhà cung cấp dịch vụ Internet hoặc mạng diện rộng của những tổ chức lớn. Tuy nhiên do mức độ phức tạp của kiến trúc mạng như vậy, luận án chỉ đề cập đến việc thu thập lưu lượng trên bộ định tuyến hoặc thiết bị mạng có kết nối Internet của mạng nội bộ sở hữu bởi các doanh nghiệp, cá nhân. Trong phát hiện bất thường, có thể phân chia các thuộc tính thành hai loại: thuộc tính khối lượng (volume) và thuộc tính đặc trưng (feature). Thuộc tính khối lượng tính số lượng gói tin, số byte trên một liên kết, giao diện, luồng, kết nối, phiên trong những khoảng thời gian nhất định.
Theo khảo sát các nghiên cứu đã có, thuộc tính theo khối lượng thường dùng để phát hiện những bất thường có sự biến động lớn trong lưu lượng. Những thuộc tính đặc trưng, (ví dụ: địa chỉ IP, cổng) thường dùng để phát hiện những bất thường không tạo ra đột biến về gói tin hoặc byte nên nếu chỉ dùng thuộc tính khối lượng có thể không phát hiện được [36]. Để tạo được thuộc tính cho phát 12 hiện bất thường, cần thiết phải thu thập lưu lượng mạng. Gói tin, luồng tin sau khi được thu thập sẽ trích xuất ra các thuộc tính khối lượng và đặc trưng cho kết nối, luồng tin.
Tách thuộc tính được thực hiện với phần tiêu đề hoặc cả phần dữ liệu của gói tin cho các kết nối lớp giao vận hoặc phiên lớp ứng dụng. Đối với luồng tin, các thuộc tính được tách cũng tương tự như kết nối hoặc phiên.1 liệt kê những thuộc tính sử dụng trong hệ thống MINDS tại đại học Minnesota (Mỹ) [19] được tách từ luồng theo chuẩn Netflow. Một ví dụ về dữ liệu thuộc tính Thuộc tính Ý nghĩa # Byte Số lượng byte trong luồng # Packet Số lượng gói tin trong luồng Source IP Address Địa chỉ IP nguồn Destination IP Address Địa chỉ IP đích Source port Cổng nguồn Destination port Cổng đích Protocol Giao thức Flags Bit cờ của gói tin Số lượng luồng đến một địa chỉ duy nhất trên mạng Count-dest trong T giây từ cùng một nguồn Số lượng luồng từ cùng một địa chỉ nguồn bên trong Count-src mạng trong T giây đến cùng một đích Số lượng luồng từ địa chỉ IP nguồn đến cùng cổng đích Count-serv-src trong T giây Số lượng luồng đến địa chỉ IP đích từ cùng một cổng Count-serv-dest nguồn trong T giây Số lượng luồng đến địa chỉ IP đích duy nhất từ bên Count-dest-conn trong mạng trong N luồng cuối cùng từ cùng một nguồn Số lượng luồng từ cùng một địa chỉ IP nguồn duy nhất Count-src-conn bên trong mạng trong N luồng cuối cùng đến cùng một đích Số lượng luồng từ địa chỉ IP nguồn đến cùng cổng đích Count-serv-src-conn trong N luồng cuối cùng Số lượng luồng đến địa chỉ IP đích từ cùng một cổng Count-serv-dest-conn nguồn trong N luồng cuối cùng 13 Trong [43], những thuộc tính cơ bản nhất của luồng tin gồm: Số byte, số gói tin, số bản ghi, địa chỉ IP nguồn, địa chỉ IP đích, cổng nguồn, cổng đích, thời gian kết nối trung bình. Một tập các thuộc tính tương tự được sử dụng trong 31].
Có nhiều loại thuộc tính là thuộc tính đơn (gồm một thuộc tính dữ liệu) và đa thuộc tính (gồm nhiều thuộc tính dữ liệu), song các thuộc tính cần được sử dụng bổ sung cho nhau [43]. Trong thống kê, đây là bài toán đơn biến và đa biến. Phương pháp đơn biến chỉ xét một biến hoặc thuộc tính khi xử lý dữ liệu đầu vào. Ví dụ, phương pháp phát hiện bất thường chỉ dựa trên số lượng byte dữ liệu theo một chiều là phương pháp đơn biến.
Phương pháp đa biến xác định sự tương quan giữa hai hoặc nhiều hơn các biến thay vì quan sát các biến một cách độc lập. Phương pháp này hiệu quả khi các biến có sự liên quan đến nhau. Dữ liệu thu được sau quá trình thu thập thường chứa cả những thông tin không cần thiết. Vì vậy, cần có bước tiền xử lý nhằm lọc bỏ những thông tin không liên quan, đồng thời tách ra những thuộc tính quan trọng.
Thí dụ nếu dữ liệu ở dạng luồng, sẽ bao gồm những thông tin cơ bản như địa chỉ IP nguồn và đích, cổng nguồn và đích, giao thức. Ở dạng phức tạp hơn, dữ liệu cần có tính thống kê với đơn vị thay đổi theo từng loại dữ liệu. Ngoài ra, dữ liệu cũng cần chuyển đổi hoặc chuẩn hóa sang dạng phù hợp tùy thuộc vào cơ chế phát hiện của hệ thống. Việc lựa chọn thuộc tính dữ liệu rất quan trọng vì ảnh hưởng trực tiếp đến hiệu suất cũng như độ chính xác phát hiện.
Một số nghiên cứu đã sử dụng dữ liệu chuỗi thời gian (time series) 36, 57, 43]. Dữ liệu chuỗi thời gian có ưu điểm là có thể phân tích và áp dụng các thuật toán về thời gian như entropy, EWMA, histogram v. Biểu diễn dữ liệu chuỗi thời gian trên biểu đồ cũng dễ dàng hơn. Với dữ liệu chuỗi thời gian có thể tính được sự tương quan của cùng một biến (thuộc tính) tại những thời điểm khác nhau (tính tự tương quan – auto correlation).
Tuy nhiên khi phát hiện ra bất thường, dữ liệu chuỗi thời gian thường chỉ phát hiện được thời điểm hoặc khoảng thời gian có bất thường nhưng lại khó tìm ra nguồn gây ra bất thường. Một số nghiên cứu tổng hợp dữ liệu chuỗi thời gian từ luồng, gói tin vào các khoảng thời gian giống nhau sau đó lại phải tìm ra luồng trong khoảng thời gian đó 14 gây ra bất thường. Điều này gây lãng phí tài nguyên về cả năng lực xử lý và thời gian [43]. Các phương pháp phân tích dữ liệu chuỗi thời gian cũng có những nhược điểm cơ bản là luôn cần áp dụng thêm các phương pháp bổ sung khác như: phương pháp bầu chọn (voting), phương pháp khai phá dữ liệu (data mining) … để phát hiện luồng tin gây ra bất thường [57, 6].
Vì những lý do nêu trên, luận án lựa chọn dữ liệu thống kê tổng hợp từ kết nối (hay theo luồng tin), lựa chọn các thuộc tính dữ liệu lưu lượng mạng điển hình gồm: giao thức, địa chỉ IP nguồn/đích, cổng nguồn/đích,. Đây cũng chính là những thông số cơ bản của luồng nên hoàn toàn có thể áp dụng được cho dữ liệu được tổng hợp trực tiếp từ luồng theo các chuẩn Netflow, IPFIX. Ưu điểm của dữ liệu thống kê theo kết nối hoặc luồng tin là sau khi phát hiện ra bất thường, có thể biết được chính xác kết nối hoặc luồng nào (địa chỉ IP, cổng) gây ra bất thường mà không phải áp dụng các thuật toán, phương pháp nào khác như đối với dữ liệu chuỗi thời gian. Các phương pháp thu thập lưu lượng Internet Việc thu thập lưu lượng có thể thực hiện ở nhiều mức khác nhau: mức gói tin (bắt giữ từng gói tin), mức luồng tin (chỉ bắt giữ định danh luồng tin, Flow-Id), hay mức liên kết (thu thập gói tin/byte vào/ra trên các đường link).
Tuy nhiên, phổ biến nhất vẫn là thu thập mức gói tin và mức luồng tin. Thu thập mức gói tin Thu thập mức gói tin lấy thông tin chi tiết về từng gói tin. Đa số các hệ thống giám sát mạng và các hệ thống quản lý mạng truyền thống sử dụng phương pháp này. Các gói tin được bắt giữ ở các vị trí khác nhau trên mạng, cụ thể là tại các đầu ra của các bộ chuyển mạch, định tuyến, trạm đầu cuối ,… và được truyền về trung tâm phân tích.
Các gói tin có thể được bắt giữ với các phần mềm tiện ích chuẩn như pcap/libcap (Linux/Unix) hay winpcap (Windows) và được truyền về trung tâm thông qua các giao thức chuẩn như Remote Network Monitoring (RMON), Simple Network Management Protocol (SNMP), IP Flow Information eXport Protocol (IPFIX) [43]. Kỹ thuật thu thập mức gói tin có độ phức tạp cao, thời gian xử lý và phân tích lâu, yêu cầu bộ nhớ lớn để lưu các gói tin.