1. Trang chủ
  2. » Luận Văn - Báo Cáo

Luận văn thạc sĩ Khoa học máy tính: Hiện thực hệ thống phát hiện xâm nhập mạng dựa trên sự bất thường sử dụng FPGA & GPU

71 0 0
Tài liệu đã được kiểm tra trùng lặp

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

THÔNG TIN TÀI LIỆU

Cấu trúc

  • 1.1 Tổng quan vấn đề (19)
  • 1.2 Động lực nghiên cứu (20)
  • 1.3 Đóng góp của đề tài (20)
  • 1.4 Cấu trúc của luận văn (21)
  • 1.5 Tóm tắt Chương (22)
  • 2.1 Tổng quan về bảo mật và phương pháp phòng chống xâm nhập 5 (23)
    • 2.1.1 Tổng quan về bảo mật (23)
    • 2.1.2 Tổng quan về phương pháp phòng chống xâm nhập . 6 (24)
  • 2.2 Hệ thống phát hiện phòng chống xâm nhập - IDPS (24)
  • 2.3 Phân loại các kĩ thuật phát hiện cho hệ thống AIDS (26)
  • 2.4 Mạng nơron - Neural Network (27)
  • 2.5 Kĩ thuật xây dựng đặc trưng dữ liệu (28)
    • 2.5.1 Giới thiệu về xây dựng đặc trưng dữ liệu (28)
    • 2.5.2 Các Kĩ thuật xây dựng đặc trưng dữ liệu (30)
  • 2.6 Lựa chọn tập dữ liệu cho hệ thống AIDS (33)
  • 2.7 Nền tảng NetFPGA 10G (34)
  • 2.8 GPU & CUDA (36)
  • 2.9 Tóm tắt Chương (39)
  • 3.1 Các công trình khảo sát AIDS (40)
  • 3.2 Các công trình hiện thực hệ thống AIDS (41)
  • 3.3 Các công trình hiện thực vấn đề giao tiếp giữa FPGA và GPU 27 (45)
  • 3.4 Tóm tắt các công trình nghiên cứu (45)
  • 3.5 Tóm tắt Chương (46)
  • 4.1 Hệ thống tổng quan (47)
  • 4.2 Hệ thống F-FC (48)
  • 4.3 G-ANN (52)
  • 4.4 Tóm tắt Chương (54)
  • 5.1 Thiết lập thực nghiệm trên FPGA (55)
  • 5.2 Tài nguyên sử dụng trên FPGA (56)
  • 5.3 Kiểm chứng tốc độ và độ chính xác trên FPGA (56)
  • 5.4 Thiết lập thực nghiệm toàn hệ thống HA-IDS (57)
  • 5.5 Kiểm chứng Thời gian huấn luyện và độ tin cậy HA-IDS (57)
  • 5.6 Tóm tắt Chương (58)
  • 6.1 So sánh giữa tốc độ thực nghiệm và tốc độ lý thuyết hệ thống F-FC (59)
  • 6.2 Độ chính xác của hệ thống F-FC (61)
  • 6.3 So sánh thời gian huấn luyện giữa CPU và GPU (62)
  • 6.4 Độ tin cậy của hệ thống HA-IDS (62)
  • 6.5 Tóm tắt Chương (63)
    • 7.0.1 Kết luận (64)
    • 7.0.2 Hướng phát triển (64)

Nội dung

2.2Hệ thống phát hiện phòng chống xâm nhập - IDPS Các kĩ thuật phòng chống, phát hiện tấn công xâm nhập tổng quan cũng dựatrên ba hướng chính này đó là hệ thống phòng chống phát hiện xâm

Tổng quan vấn đề

Vào giữa thập niên 1980, sự ra đời Internet đã góp phần to lớn cho sự phát triển của xã hội, trong nhiều lĩnh vực như: quân sự, thương mại, nghiên cứu, giáo dục Cũng từ đó, các dịch vụ trên Internet không ngừng phát triển, tạo ra cho nhân loại một thời kỳ mới, thời kỳ thương mại điện tử Tuy nhiên, Internet cũng mang nhiều mối đe dọa, nguy hại cho các tổ chức, doanh nghiệp thậm chí là vận mệnh của một quốc gia.

Với xu hướng tự động hóa và trao đổi dữ liệu trong công nghiệp sản xuất đang dần chuyển bước Nền công nghiệp 4.0 tạo ra những nhà máy thông minh, điện toán đám mây (Cloud), Big Data và Internet of Thing (IoT) phát triển nhanh chóng và mạnh mẽ Tuy nhiên, cũng đặt ra những vấn đề mới, thách thức mới, trong việc phát hiện, phòng chống tấn công của các tổ chức hackers.

Theo [10] trong năm 2016, các tổ chức tội phạm đã tấn công vào các ngân hàng lớn của các quốc gia Bangladesh, Vietnam, Ecuador và Poland Chúng đã đánh cắp ít nhất là 94 triệu đô la.

Với xu thế thời đại mới, tổ chức Symantec [6], đã thành lập một IoT hon- eypot trong năm 2015 để quan sát các cuộc tấn công vào những thiết bị IoT.

Theo phân tích, thống kê của tổ chức này trong báo cáo thường niên ISTR (Internet Security Threat Report) tháng 4 năm 2017 Từ giữa tháng 1 đến tháng 12 năm 2016, số lượng tấn công và những địa chỉ IP mục tiêu của Symantec honeypot tăng gần gấp đôi từ 4.6 lần/giờ trong tháng 1 năm 2016 đến hơn 8.8 lần/giờ trong tháng 12 năm 2016 Được thống kê trong Hình 1, phần lớn các cuộc tấn công nhằm vào các thiết bị IoT Mức độ các cuộc tấn công ngày càng tăng, tinh vi và khó lường Hơn bao giờ hết, cần tăng cường hệ thống bảo mật, bảo đảm an toàn an ninh thông tin của tổ chức, doanh nghiệp, quốc gia.

Các công trình nghiên cứu cũng từ đó đang dần cố gắng từng bước xây dựng hệ thống phòng chống tấn công, phát hiện xâm nhập mạng bất hợp pháp của các kẻ tấn công.

Hình 1: Các cuộc tấn công vào Symantec honeypot từ tháng 1-12 năm 2016

Động lực nghiên cứu

Internet phát triển mạnh mẽ, nền công nghiệp 4.0 đang đến gần hơn bao giờ hết Tội phạm tấn công mạng ngày càng tăng, tinh vi, có tổ chức Nhiều cuộc tấn công phức tạp, phương pháp hoàn toàn mới mẻ so với các cuộc tấn công trước đây Việc nhận diện tấn công loại này mang nhiều thách thức.

Các hệ thống phát hiện hay phòng chống xâm nhập mạng dựa vào dấu hiệu bất thường còn chậm trễ cao trong khoảng thời gian nhận dữ liệu và phát tín hiệu phát hiện xâm nhập để đưa ra quyết định cuối cùng Bởi vì, các công trình nghiên cứu trước đây phần lớn xây dựng phân lớp bài toán phát hiện bất thường mạng trên CPU, hoặc kết hợp hai nền tảng CPU và FPGA, hoặc CPU và GPU Những công trình này chưa phát huy triệt để lợi thế của FPGA vàGPU Một sự kết hợp hai nền FPGA và GPU vào hệ thống nhằm cải thiện hiệu suất, tốc độ cho lớp bài toán loại này.

Đóng góp của đề tài

Đề tài có các đóng góp sau.

1 Xây dựng module rút trích, module chuẩn hóa dữ liệu đạt tốc độ cao trên Field Programmable Gate Array - FPGA.

2 Xây dựng các đặc trưng dữ liệu trên FPGA phục vụ cho mô hình tính toán song song Neural Network - NN.

3 Xây dựng hệ thống phức hợp, kết hợp ba nền tảng FPGA-CPU-GPU cho bài toán AIDS.

4 Đề tài nghiên cứu đã xuất bản hai bài báo khoa học được đính kèm trong phần phụ lục của luận văn.

Cấu trúc của luận văn

Luận văn được chia thành 9 phần.

1 Giới thiệu tổng quan vấn đề về bảo mật, động lực nghiên cứu, đóng góp của đề tài và trình bày cấu trúc của luận văn.

2 Các kiến thức nền tảng về bảo mật, hệ thống IDPS, IDS, AIDS, mạng nơron, các kĩ thuật, quy trình xây dựng cấu trúc đặc trưng dữ liệu, kiến thức nền tảng NetFPGA 10G, GPU và CUDA.

3 Tìm hiểu các công trình liên quan tới đề tài, quan sát và nhận định các công trình đó.

4 Trình bày thiết kế hệ thống HA-IDS, chi tiết các hệ thống con F-FC và G-ANN.

5 Trình bày từng bước hiện thực hệ thống bằng thực nghiệm, diễn tả các mô hình thực nghiệm.

6 Các thông tin về kết quả đạt được khi chạy thực nghiệm Đánh giá dựa vào các kết quả đó.

7 Trình bày về kết luận vấn đề, các hạng mục đóng góp của đề tài, các giới hạn và công việc tiếp theo của đề tài trong tương lai.

9 Phần phụ lục, toàn bộ chi tiết hai bài báo đã được xuất bản tại hội nghịRCCIE 2017 và Nafosted-NICS 2017 cùng với phần lý lịch trích ngang của tác giả.

Tổng quan về bảo mật và phương pháp phòng chống xâm nhập 5

Tổng quan về bảo mật

Các cuộc tấn công đều tập trung vào ba hướng tấn công chính sau.

1 Lỗ hổng về các thiết bị, các phương tiện truyền thông (Máy tính, Hub, Router, Switch ).

2 Lỗ hổng về phương thức giao dịch (Thông tin không được mã hoá, password quá đơn giản ).

3 Lỗ hổng các ứng dụng (Hệ điều hành, Web Server, Mail Server ).

Các giải pháp bảo mật truyền thống như tường lửa (Firewall) thì không phát hiện ra các tấn công và ngăn chặn tấn công, với mật khẩu (Password) có thể thị mất, bị hack, hoặc bị thay đổi, với trình duyệt virus Antivirus thì chỉ hoạt động tốt với các virus đã biết, với mạng riêng ảo (Virtual PrivateNetwork - VPN) thì vẫn có thể bị can thiệp giữa đường truyền (tấn công MainThe Middle) Hiện nay, theo [7], xu hướng tấn công lỗ hổng về phương thức giao dịch và lỗ hổng các ứng dụng giảm kể từ năm 2009 đến 2015 Bởi vì,việc tìm kiếm các công cụ (tool) để hacking và cracking thuộc 2 loại này có rất nhiều trên các trang web chẳng hạn như [11], các tool hỗ trợ cracking password Còn tuỳ thuộc vào các mục tiêu tấn công mà các tội phạm tấn công có thể linh động và kết hợp các phương pháp khác, các tool khác cho việc tìm kiếm, tấn công mục tiêu của mình Hơn nữa, trên cơ chế sử dụng các tool có sẵn chỉ dành cho các hacker nghiệp dư, với một hệ thống phòng thủ kiên cố,việc sử dụng các tool có sẵn này không mấy tác dụng Bởi vì, hệ thống luôn luôn cập nhật các mẫu virus mới trước khi công khai Các phương thức tấn công thông qua hệ thống mạng ngày càng tinh vi, phức tạp với luồng packet hoàn toàn mới, không có trong cơ sở dữ liệu của hệ thống Điều này gây khó khăn rất lớn cho việc nhận dạng và xử lý các luồng packet mới này Có thể dẫn đến mất mát thông tin, thậm chí có thể làm sụp đổ hoàn toàn hệ thống thông tin Vì vậy, an toàn và bảo mật thông tin là nhiệm vụ rất nặng nề và khó đoán trước được.

Tổng quan về phương pháp phòng chống xâm nhập 6

Dựa vào các cuộc tấn công tập trung vào ba hướng trên Hệ thống phòng chống đảm bảo an toàn gồm ba hướng chính sau.

1 Bảo đảm an toàn thông tin tại hệ thống máy chủ.

2 Bảo đảm an toàn cho phía các máy trạm.

3 Bảo mật thông tin trên đường truyền.

Hệ thống phát hiện phòng chống xâm nhập - IDPS

Các kĩ thuật phòng chống, phát hiện tấn công xâm nhập tổng quan cũng dựa trên ba hướng chính này đó là hệ thống phòng chống phát hiện xâm nhập (Intrusion Detection Prevention System - IDPS), được mô tả trong Hình 2.

Hệ thống IDPS được chia thành hai nhánh chính đó là hệ thống phát hiện xâm nhập (Intrusion Detection System - IDS) và hệ thống phòng chống xâm nhập (Intrusion Prevention System - IPS) Trong đó hệ thống IDS gồm có hai nhánh chính là hệ thống phát hiện xâm nhập trên Host (Host-based Intru- sion Detection System - HIDS) và hệ thống phát hiện xâm nhập trên đường truyền mạng (Network-based Intrusion Detection System - NIDS) Tương tự, hệ thống IPS gồm có hai nhánh chính đó là hệ thống phòng chống xâm nhập trên Host (Host-based IPS - HIPS) và hệ thống phòng chống xâm nhập trên mạng (Network-based IPS - NIPS) Theo [12], đối với hướng bảo đảm an toàn thông tin tại hệ thống máy chủ và máy trạm, lợi thế của HIDS và HIPS đó là:

Khi có tấn công ta xác định được User nào bị tấn công, có thể phân tách được dữ liệu mã hoá và cung cấp các thông tin liên quan về Host bị tấn công Điểm bất lợi của HIDS và HIPS đó là: Thông tin đã mất đi tính toàn vẹn (Integrity),Với hệ thống lớn có nhiều Host thì việc thiết lập phòng thủ trên từng Host cụ thể sẽ tiêu tốn nhiều thời gian và chi phí (Agent), không có khả năng phát hiện các cuộc dò quét mạng như Nmap, Netcap và đặc biệt hơn là không hiệu quả cho các cuộc tấn công Denial of Service - DoS, Distributed DoS - DDoS. Đối với hệ thống NIDS và NIPS thì lợi thế của NIDS và NIPS là quản lý được các phân khúc mạng (network segment), hệ thống trong suốt với người sử dụng và kẻ tấn công, tránh được tấn công DoS ảnh hưởng tới một Host cụ thể (Server hoặc Client) và hệ thống độc lập với hệ điều hành (Operating System) Điểm bất lợi của NIDS và NIPS đó là: Hệ thống nhận dạng sai dữ liệu cụ thể trong [13, 14], luồng dữ liệu vào là bình thường nhưng hệ thống nhận diện là tấn công (False Positive) và luồng dữ liệu vào là tấn công nhưng hệ thống nhận diện là bình thường (False Negative), hệ thống không thể phân tích được các dữ liệu được mã hoá, luôn luôn cần phải cập nhật mẫu dữ liệu thường xuyên, độ trễ giữa thời gian nhận dạng dữ liệu và phát tín hiệu cao, ngoài ra hệ thống không biết rằng cuộc tấn công đó có thành công hay không và giới hạn thông lượng của hệ thống (bottlenecked) Theo công trình [15],

+ Signature-base IDS + Anomaly-base IDS

Hình 2: Mô hình tổng quan hệ thống phát hiện, phòng chống xâm nhập IDPS

IDS có 2 kĩ thuật chính để phát hiện xâm nhập vào hệ thống đó là: Hệ thống phát hiện xâm nhập dựa vào các dấu hiệu đã biết (Signature-based Intrusion Detection System - SIDS) và hệ thống phát hiện xâm nhập dựa vào các dấu hiệu bất thường (Anomaly-based Intrusion Detection System - AIDS) Điểm bất lợi của SIDS là không phát hiện hoặc nhận biết được các luồng packet mới vào hệ thống cũng như những luồng packet bình thường nhưng có sự kết hợp nhiều dấu hiệu bình thường khác Điều này được cải thiện thông qua hệ thống AIDS.

Hiện nay, Cơ sở dữ liệu khổng lồ cùng với các thiết bị và cơ sở hạ tầng mạng ngày càng phát triển, cũng vì đó mà việc nghiên cứu AIDS cũng gặp nhiều trở ngại không kém Các công trình nghiên cứu AIDS cố gắng cải thiện,kết hợp nhiều phương pháp (giám sát, không giám sát) để có kết quả mà tỉ lệ dữ liệu lỗi là thấp nhất Theo công trình khảo sát [1], tác giả đưa ra một framework tổng quan cho AIDS như Hình 3, dữ liệu đầu vào có nhiều loại khác nhau (Input) Do đó, phải thông qua quá trình xử lý (Data Processing) như chuẩn hoá, rút trích các đặc trưng của dữ liệu , sau đó kết quả đưa vào module xử lý phát hiện bất thường (Anomaly Detection), tại module này dùng các kĩ thuật phát hiện bất thường của dữ liệu, tuỳ thuộc vào kĩ thuật được áp dụng phù hợp với mục tiêu của framework Có 2 nhóm kĩ thuật phát hiện xâm nhập bất thường đó là: kĩ thuật giám sát (Supervised) như gán nhãn, kiểm soát đầu vào, đầu ra và kĩ thuật không giám sát (Unsupervised) như không gán nhãn, đầu vào là ngẫu nhiên Việc xử lý đầu ra sử dụng 2 phương pháp gán nhãn (Label) và phương pháp tính trị (Score) để đánh giá (Evaluation) và đưa ra kết quả của việc xử lý dữ liệu đầu vào có bất thường hay bình thường.

Hình 3: Framework tổng quan AIDS [1]

Phân loại các kĩ thuật phát hiện cho hệ thống AIDS

Trong đề tài này, tác giả chỉ tập trung vào hệ thống AIDS.

Các kĩ thuật phát hiện của hệ thống AIDS được miêu tả trong Hình 4,gồm có bốn loại đó là; kĩ thuật phân lớp (Classification), kĩ thuật thống kê

(Statistical), kĩ thuật gom cụm (Clustering) và kĩ thuật lý thuyết thông tin (Information Theory) Trong đó kĩ thuật phân lớp có bốn phương pháp đó là;

Support Vector Machine (SVM) [16, 17] , Bayesian Network [18–20], Rule- Based [21, 22] và Neural Network [23, 24] Với kĩ thuật thống kê [25, 26] có ba phương pháp đó là; Mixture Model [27], Signal Processing [28] và Principal Component Analysis (PCA) [29, 30] Với kĩ thuật gom cụm [31] có hai phương pháp đó là; Regular Clustering (gom cụm có quy luật) và Co- Clustering (gom cụm không quy luật); sau cùng là kĩ thuật lý thuyết thông tin (Information Theory) [1] được sử dụng các độ đo như Entropy, Conditional Entropy, Relative Entropy, Relative Conditional Entropy và Information Gain.

Dựa vào các độ đo này để đưa ra kết quả của việc xử lý dữ liệu có bất thường hay không.

Hình 4: Phân loại các kĩ thuật của ANIDS [1]

Mạng nơron - Neural Network

Mạng Nơron (Neural Network - NN) là một mạng có nhiều nodes (các nodes này hay còn gọi là những đơn vị xử lý perceptrons) Mỗi node nhận những dữ liệu đầu vào sau đó xử lý những dữ liệu này và giao cho một đầu ra đơn Các nodes được liên kết với nhau Mỗi kết nối có 1 trọng số (weight) tương ứng.

Cấu trúc của một node được diễn tả trong Hình 5 Inputs là dữ liệu x i (x0 1, i = 1, 2, , n) hoặc Outputs (f(P w i x i , (i = 0, 1, ,n)) của các nodes khác.

Từng cặp nodes có trọng số (weight) tương ứng w i , trong đó w 0 được gọi là trọng số bias khix 0 = 1 The outputs được đưa đến hàm kích hoạt (activation function) nhằm mục đích phân loại hoặc lọc kết quả Giá trị (-w0) được xem như là giá trị ngưỡng (threshold), nếu f(P w i x i , (i = 0, 1, ,n) > 0 thì giá trị đầu ra out(x1, , x n ) được gán mẫu dương (+), giá trị khác được gán mẫu âm (-).

Hình 5: Mô phỏng một node (Perceptron)

Kĩ thuật xây dựng đặc trưng dữ liệu

Giới thiệu về xây dựng đặc trưng dữ liệu

Các nghiên cứu thường tập trung vào việc đưa ra thuật toán để khả năng phát hiện bất thường là hiệu quả nhất, giai đoạn xây dựng dựng Model là rất quan trọng Phân tích các đặc trưng phù hợp nhất cho hệ thống cần được quan tâm – thường gọi là giai đoạn tiền xử lý dữ liệu hay là Feature construction Xây dựng đặc trưng cho từng bài toán anomaly-based IDS là thành phần không thể thiếu trong mô hình học máy và thống kê mạng, giúp cho hệ thống giảm được chi phí cũng như xây dựng những phương pháp học máy một cách hiệu quả.

Bằng cách này, việc làm giảm kích thước các đặc trưng không liên quan hoặc ít ảnh hưởng tới hệ thống làm cho hệ thống tối ưu hơn, rõ ràng hơn và hiệu suất cao hơn Ngoài ra, việc lựa chọn đặc trưng này còn giúp ta thu được giá trị thông tin của dữ liệu, giá trị này quan trọng trong việc đánh giá, khảo sát cho các bài toán thống kê hoặc các bài toán liên quan tập dữ liệu đó Những thông số của việc lựa chọn này đóng vai trò quan trọng cho việc quyết định cuối cùng đó là rút trích đặc trưng Đích đến cuối cùng của hai hướng tiếp cận này là làm giảm số kích thước của tập dữ liệu Có hai sự khác biệt quan trọng trong việc xây dựng đặc trưng giữa lựa chọn đặc trưng và rút trích đặc trưng đó là: Thứ nhất, phương pháp lựa chọn đặc trưng là làm giảm kích thước của không gian đặc trưng bằng cách lựa chọn những đặc trưng con trong số các đặc trưng nguồn Trong khi đó việc rút trích đặc trưng là làm giảm kích thước của không gian đặc trưng bằng phương pháp tuyến tính hay phi tuyến tính, từ vectơ n số chiều thành vectơ k số chiều (k < n) Thứ hai, đối với phương pháp lựa chọn đặc trưng là lấy từ những đặc trưng nguồn (n- số chiều) được dựa trên những độ đo như độ lợi thông tin (information gain), các thông tin tương quan lẫn nhau và thiết lập giá trị ngưỡng để lọc ra những đặc trưng không quan trọng hoặc những đặc trưng dư thừa Chúng được áp dụng cho các bài toán liên quan về phân lớp, gom cụm, phân loại mẫu, hầu hết trong các lĩnh vực tin sinh học (bioinformatics), bảo mật mạng (network security), phân loại văn bản (text categorization), sinh trắc học, xử lý ảnh Theo công trình [2] tiến trình xử lý dữ liệu thô phải qua hệ thống xây dựng đặc trưng, được miêu tả từng bước trong Hình 6 Sau khi xây dựng đặc trưng tổng quát của bài toán hệ thống qua các kĩ thuật lựa chọn đặc trưng hoặc rút trích đặc trưng cho từng bài toán cụ thể, sau khi qua hệ thống này, chúng sẽ qua hệ thống phân lớp, tùy thuộc vào kĩ thuật học máy để phân lớp chúng và cuối cùng đưa ra quyết định phân loại lựa chọn được kiểm soát bởi người dùng Chúng có nhiều kĩ thuật được áp dụng như lọc (Filter), gói (wrapper), thống kê, lý thuyết thông tin và các công cụ, phần mềm hỗ trợ như Weka, Matlab Cơ bản, một hệ thống rút trích đặc trưng tối ưu cần phải xây dựng kết hợp các kĩ thuật một cách phù hợp Trong đề tài này chỉ tập trung các kĩ thuật cho phân lớp bài toán bảo mật mạng cụ thể là bài toán phát hiện bất thường mạng (anomaly-based NIDS), dựa trên rút trích đặc trưng trên tập dữ liệu có sẵn để đánh giá hệ thống như:

KDDcup99, NSL-KDD, ISCX-UNB.

Sy m bo ls En h a nc ed Su m bo ls D ec is io n Feature

Hình 6: Tổng quan tiến trình xử lý dữ liệu thô vào hệ thống [2]

Các Kĩ thuật xây dựng đặc trưng dữ liệu

Để đảm bào cho việc xây dựng đặc trưng tối ưu cho từng bài toán cụ thể với mong muốn hiệu suất cao cho bất kì mô hình kĩ thuật học máy nào thực tế không mang tính khả thi Với một bài toán cụ thể như anomaly-based IDS, tùy thuộc vào mô hình học máy lựa chọn trước để xây dựng cấu trúc dữ liệu đặc trưng cho phù hợp Trong đó các kĩ thuật xây dựng đặc trưng góp phần không nhỏ cho việc xây dựng tối ưu hệ thống Các kĩ thuật xây dựng đặc trưng khi được áp dụng vào hệ thống luôn đảm bảo hai mục tiêu, đó là giảm kích thước (số chiều) dữ liệu và dự đoán trong việc cải thiện hiệu suất Có ba khía cạnh quan trọng trong việc lựa chọn kĩ thuật đó là; (a) Phương pháp chuyển đổi đặc trưng, (b) phương pháp lựa chọn đặc trưng con trong tập nguồn dữ liệu, (c) tiêu chí đánh giá cho việc lựa chọn đặc trưng tập con này Dưới đây là các kĩ thuật xây dựng đặc trưng hệ thống Theo công trình [32], có bốn kĩ thuật đó là kĩ thuật lọc (filter), kĩ thuật bao bọc (warpper), kĩ thuật trộn (embedded) và kĩ thuật kết hợp (hybird).

1 Kĩ thuật lọc: Kĩ thuật này dựa trên việc phân cấp (rank) các đặc trưng dựa vào các độ đo liên quan và thêm hoặc bớt các đặc trưng vào tập các đặc trưng của tập con để tính điểm (scores) cao hay thấp để đạt được tập con chứa các đặc trưng tối ứu Quy trình được trình bày trong Hình 7.

2 Kĩ thuật bao bọc: Kĩ thuật này tạo ra những tập con các chứa các đặc trưng tương đương tuy nhiên việc đánh giá được thực hiện theo tiêu chí phủ định với kết quả mong muốn bằng việc phân lớp Quy trình được

Hình 7: Quy trình hoạt động kĩ thuật lọc trình bày trong Hình 8. dҢŽƚҨƉĐŽŶĜҭĐƚƌӇŶŐ ĄŶŚŐŝĄŬұƚƋƵңƉŚąŶůӀƉ dŝġƵĐŚşĜĄŶŚŐŝĄ

No dҨƉĐŽŶĐŚӈĂĜҭĐƚƌӇŶŐƚҺŝӇƵ WŚąŶůŽҢŝďҪŶŐĐĄĐŚƐӊ ĚӅŶŐŵҾƚďҾƉŚąŶůӀƉƋƵĂ ĐĄĐƚҨƉĐŽŶ

Hình 8: Quy trình hoạt động của kĩ thuật bao bọc

3 Kĩ thuật trộn: Kĩ thuật này được tích hợp với quá trình xây dựng bộ phân lớp, trong kĩ thuật này module tiền xử lý chuẩn bị những thông số liên quan để quyết định các đặc trưng đưa vào từng bộ phân lớp Quy trình được trình bày trong Hình 9.

DŽĚƵůĞƚŝҲŶdžӊůlj Ś Ҹ Ŷ Ĝ ҭĐ ƚƌ ӇŶ Ő EŚӋ ŶŐ Ĝ ҭĐ ƚƌӇ ŶŐ Ŭ ŚƀŶŐ ůŝġŶ ƋƵ ĂŶ dҨƉŚƵҤŶůƵLJҵŶ

EŚӋŶŐŚһƐҿĜӇӄĐƉŚąŶůӀƉ ƋƵĂƚҨƉĐŽŶĜҭĐƚƌӇŶŐůŝġŶƋƵĂŶ ӌĜŽĄŶƉŚąŶůӀƉ Һ ŝƚӇӄŶ Ő Ŭŝҳŵ ƚƌ Ă W Śą ŶůӀƉ Ĝ Ӈӄ ĐĚ ӌ Ĝ Ž ĄŶ

Hình 9: Quy trình hoạt động của kĩ thuật trộn

4 Kĩ thuật kết hợp: Kĩ thuật này nhằm khai thác các lợi thế của hai kĩ thuật lọc và kĩ thuật bao bọc để quyết định tốt các đặc trưng của tập con hoặc để nhận diện tối ưu và những đặc trưng của tập con liên quan.

Quy trình được trình bày trong Hình 10. dҢŽĐĄĐƚҨƉĐŽŶĜҭĐƚƌӇŶŐ ŚҸŶĜҭĐƚƌӇŶŐƚҺƚŶŚҤƚ ƚӉŶŚӋŶŐӈŶŐǀŝġŶůӄŝƚŚұ ƐӊĚӅŶŐŬšƚŚƵҨƚďĂŽďҸĐ

>ҸĐƌĂŶŚӋŶŐӈŶŐǀŝġŶ ůӄŝƚŚұƚӉŶŚӋŶŐƚҨƉĐŽŶ ƐӊĚӅŶŐŬšƚŚƵҨƚůҸĐ dҨƉĐŽŶĜҭĐƚƌӇŶŐƚҺŝӇƵ

Hình 10: Quy trình hoạt động của kĩ thuật kết hợp

Lựa chọn tập dữ liệu cho hệ thống AIDS

Mỗi tập dữ liệu đều có ưu và nhược điểm riêng, tùy thuộc vào bài toán áp dụng thực tế hoặc nghiên cứu mà sử dụng các dataset này cho phù hợp Trong công trình [33], tác giả đưa ra phân loại từng tập dữ liệu, từng tính năng của mỗi tập dữ liệu được trình bày trong Bảng 1.

Trong các tập dữ liệu trên, chúng tôi xem xét và sử dụng 2 tập dữ liệu: KD- DCup99 và ISCX-UNB KDD Cup 99 được coi là bộ dữ liệu để thử nghiệm và so sánh các thuật toán xâm nhập mạng được nhiều nhà nghiên cứu lựa chọn.

Tuy nhiên, nó cũng có hạn chế là dữ liệu quá cũ so với các dữ liệu mạng hiện tại Còn ISCX-UNB là tập dữ liệu khá mới – năm 2012 nhưng các loại tấn công không phong phú như KDDCup99 Do đó chúng tôi kết hợp dùng cả hai tập dữ liệu này cho các kịch bản thử nghiệm khác nhau trong việc xây dựng hệ thống anomaly-based IDS.

Bảng 1: Danh sách những tập dữ liệu có sẵn và các diễn tả

Nền tảng NetFPGA 10G

Nền tảng NetFPGA-10G [34] được phát triển dựa trên phần mềm Xilinx Em- bedded Development Kit (EDK) và AXI4 interface của kiến trúc ARM Dựa vào EDK và một số chuẩn thiết kế trước của Xilinx như AXI4 interface đã tạo điều kiện tốt để thiết kế hệ thống Các module trong hệ thống kết nối với nhau theo một theo giao thức chuẩn (AXI bus), chuẩn này rất đơn giản và tiện lợi cho người dùng, giúp đạt được hiệu năng tốt nhất của việc truyền tín hiệu.

Trước đây, EDK chủ yếu được sử dụng trong những thiết kế System on Chip(SoC) Nhưng từ phiên bản 12 trở đi, với việc chính thức hỗ trợ chuẩn AXI4 interface, EDK thực sự là một công cụ hữu hiệu cho những thiết kế mới kể cả những thiết kế không phải SoC để tiết kiệm tài nguyên đối với các hệ thống lớn Việc sử dụng EDK, thay thế gần như hoàn toàn ISE, giúp cho người dùng có thể thiết kế hệ thống của mình một cách toàn diện hơn, dễ dàng hơn, trực quan hơn khi EDK hỗ trợ người dùng giao diện đồ họa kèm theo hệ thốngIPCores lớn, đa dạng Hình 11 nhìn từ mặt trước của Board Hình 12 miêu tả sơ đồ Board NetFPGA-10G virtex5 Board NetFPGA-10G là một thiết bị phần cứng được kết hợp với hệ thống mã nguồn mở Phần cứng chính của board là PCI Express với 4 cổng 10 Gigabit Ethernet và một chip FPGA làXilinx Virtex-5 Chip Virtex-5 có tốc độ trung bình cao hơn khoảng 30% so với dòng chip trước đó là Virtex-4 và cao hơn gấp đôi so với Virtex II pro(được dùng trên board NetFPGA-1G) Ngoài tốc độ cao, Virtex-5 còn có thể

Hình 12: Sơ đồ Board NetFPGA-10G virtex 5 đáp ứng các thiết kế lớn do có trên 300,000 logic cells, cao gấp 6 lần dòng chip Virtex II pro.

Với 8 lane PCI Express, mỗi lane có tốc độ 5Gbps, NetFPGA-10G cho tổng băng thông lên đến 40Gbps, giúp cho việc truyền nhận dữ liệu rất nhanh chóng Ngoài ra băng thông dữ liệu nằm trong khoảng rất rộng từ 622 Mbps đến 6.5Gbps, hỗ trợ cho hầu hết các chuẩn giao tiếp khác nhau Kết hợp với bộ nhớ tốc độ cao 3x36bit QDRII SRAM (3x27MB) và 2x64bit RLDRAMII (2x288MB), board NetFPGA-10G cung cấp một giải pháp bộ nhớ lý tưởng cho các ứng dụng mạng.

Board NetFPGA -10G trên gồm có các thành phần sau.

• Xilinx Virtex-5 XC5VTX240T-2FFG1759C FPGA.

• Bốn interface SFP+ (hỗ trợ cả 2 chế độ 1Gbps và 10Gbps).

• X8 PCI Express Gen 2 (5Gbps/lane).

• Ba x36 Cypress QDR II (CY7C1515JV18).

• Bốn x36 Micron RLDRAM II (MT49H16M36HT-25).

• Hai Xilinx Platform XL Flash (2x128mb).

Bảng 2, miêu tả chi tiết về các đặc tính của chip Virtex 5 TX240T FPGA.

Bảng 2: Chi tiết về chip XC5VTX240T

GPU & CUDA

1 Graphics Processing Unit - GPU: Một bộ vi xử lý chuyên dụng, đảm nhận nhiệm vụ tăng tốc, xử lý đồ họa cho CPU Các GPU hiện nay có khả năng xử lý cao trong xử lý đồ họa máy tính.

2 Compute Unified Device Architecture - CUDA: Một nền tảng có khả năng tính toán song song và lập trình được phát triển bởi NVIDIA vào tháng11 năm 2006 nhằm mục đích tăng cường mạnh mẽ các khối tính toán song song trong các GPU và giúp cho các nhà phát triển thuận lợi hơn trong việc triển khai các ứng dụng non-graphic [35], CUDA hỗ trợ một số ngôn ngữ lập trình như C và Fortran, và nó có một thư viện lớn CUDA cung cấp môi trường tính toán phức hợp và có thể làm việc theo môi trường tính toán song song Một chương trình CUDA gồm có hai thành phần chính: CPU và GPU Kernel Host code chạy trên CPU trong khi GPU kernel codes là những hàm GPU chạy trên những thiết bị GPU Được miêu tả trong Hình 13 Chương trình thực thi trên GPU hoàn toàn độc lập với chương trình trên CPU.

Một ứng dụng bắt đầu thực thi bằng code trên CPU Code trên CPU chỉ thị tới một kernel GPU trên thiết bị GPU Kernel này được thực thi trên một GPU grid.

Một GPU grid chứa các thread blocks hoàn toàn độc lập với nhau Một block chứa nhiều thread Có những giới hạn về số lượng threads/block và số thread blocks/grid Bởi vì vấn đề giới hạn bộ nhớ được chia sẻ cục bộ và kích thước dữ liệu hoặc số lượng processors hoặc kiến trúc của GPU.

Hình 13: Thành phần một chương trình của một ứng dụng GPU

Bộ nhớ CUDA có nhiều thành phần bộ nhớ phân cấp khác nhau được truy cập trong quá trình hoạt động, khác vể kích thước và băng thông Chi tiết được mô tả trong Hình 14 Bên trong mỗi thread đều có bộ nhớ cục bộ riêng(Local) và bộ nhớ chia sẻ (Shared memory) Bộ nhớ chia sẻ này sẽ được nhìn thấy trong tất cả mọi threads của block với thời gian sống là như nhau và bộ nhớ toàn cục (Global memory) được kết nối tới tất cả các threads Ngoài ra, Bộ nhớ CUDA còn có hai bộ nhớ chỉ đọc (read-only) đó là Constant memory và Texture memory Hai bộ nhớ này được liên kết đến tất cả các threads Việc thêm hai bộ nhớ này nhằm tối ưu chi phí tính toán.

Input và Output dữ liệu được dịch chuyển từ CPU tới GPU và ngược lại Để khai thác GPU một cách hiệu quả thì bản thân CPU Host phải xây dựng cấu trúc dữ liệu phù hợp với GPU.

Vấn đề quan trọng cuối cùng về CUDA đó là vấn đề đồng bộ bộ nhớ CUDA giúp điều phối các threads trong block sử dụng bộ nhớ chia sẻ một cách công bằng.

Shared Registers Registers Thread(0,0) Thread(N,0)

Hình 14: Phân cấp bộ nhớ CUDA

Khi gọi một kernel thực tế là gọi một grid Những Host codes trong một ứng dụng CUDA trải qua sáu bước sau.

1 Khởi tạo một thiết bị 2 Cấp phát bộ nhớ GPU 3 Dịch chuyển dữ liệu từ/tới thiết bị 4 Chỉ định những kernels

5 Giải phóng bộ nhớ trên GPU6 Reset thiết bị

Các công trình khảo sát AIDS

Theo [3], phát hiện bất thường dữ liệu được phân làm ba loại chính đó là;

Bất thường về điểm (Point anomaly), bất thường về ngữ cảnh (Contextual anomaly) và bất thường tập hợp (Collective anomaly) Được miêu tả trong Hình 15 Trong đó các loại tấn công mạng hiện nay như tấn công DoS thuộc loại bất thường tập hợp, tấn công Probe thuộc loại bất thường về ngữ cảnh, U2R (User to Root) và R2L (Remote to User) thuộc loại bất thường về điểm.

Theo [1], tác giả đánh giá hai kĩ thuật gom cụm và lý thuyết thông tin tốt hơn

Hình 15: Phân loại các nhóm tấn công mạng bất thường [3] hai kĩ thuật phân lớp và thống kê khi hệ thống đã nhận dạng được dạng tấn công Đối với hai kĩ thuật phân lớp và gom cụm thì phù hợp nhận dạng kiểu tấn công DoS, DDoS, nếu dựa trên độ phức tạp tính toán thì kĩ thuật thống kê tỏ ra hiệu quả hơn các kĩ thuật khác, như Bảng 3 Với kĩ thuật lý thuyết thông tin phù hợp với các tấn công mà mục tiêu không cụ thể (no specific target).

Một thách thức lớn cho các hệ thống AIDS để đáp ứng trong thời gian thực phải đưa ra tín hiệu, kết quả giá trị cụ thể để đánh giá Các công nghệ

Bảng 3: Đánh giá các kĩ thuật của AIDS [1]

Technique Output Attack priority Complexity

Classification Label, score DoS Quadratic Statistical Label, score R2L, U2R Linear

Information theory Label Neutral Exponential phân tích dữ liệu đòi hỏi phải đáp ứng nhanh hơn về hiệu suất, thông lượng lớn hơn, thời gian nhanh hơn và tiêu tốn năng lượng càng thấp càng hiệu quả.

Thách thức cho nhiều mô hình giải thuật sử dụng bằng các phần mềm là quá chậm cho việc xử lý hệ thống AIDS Các công trình nghiên cứu xây dựng các hệ thống chi tiết từng phần của AIDS trên phần cứng FPGA hoặc kết hợp cả hai lần lượt ra đời, nhằm mục đích cố gắng cải thiện các điểm bất lợi mà các phần mềm không thể làm được.

Các công trình hiện thực hệ thống AIDS

Theo [36], tác giả sử dụng giải thuật new coupled learning cho việc huấn luyện tập dữ liệu NetFlow-Based IDS dùng BBNN (Block-based Neural Net- works) trên FPGA (Alrera Cyclone III) với 32M Flash và sử dụng ngôn ngữVerilog HDL (một ngôn ngữ đặc tả phần cứng) với thời gian cảnh báo lỗi giảm xuống còn 0.005 giây so với giải thuật SVM, Naive Bayes và BBNN trên phần mềm tương ứng là 8.5 giây, 1.49 giây và 6.85 giây và tỉ lệ phát hiện lỗi là 99% Trong công trình [37], tác giả phân tích các đặc trưng của quang phổ (spectral) để phát hiện bất thường của dữ liệu phân tích sử dụng kết hợp hai giải thuật phân tích mẫu có quy luật và bất quy luật thành Spectrum- based Anomaly Detection (SAD) với mong muốn tối thiểu hoá tài nguyên phần cứng, cải thiện tốc độ xử lý, độ trễ, công suất và năng lượng trên FPGAXilinx Virtex 7 XC7VX690TFFG1930-3 Tác giả cũng so sánh tài nguyên hệ thống này với hệ thống truyền thống được thực hiện bởi phần mềm với ngôn ngữ C, qua 3 thông số: Thông lượng (throughput), độ trễ (latency) và thời gian thực thi (CPU time) Qua việc so sánh này tác giả cải thiện đáng kể về năng lượng tiêu thụ giảm 33.75 lần so với CPU Tiếp theo, trong công trình [38], tác giả tiếp cận một hướng mới đó là dùng tập dữ liệu NSL-KDD, với giải thuật cây quyết định (một giải thuật phân lớp của Machine Learning) tạo ra các Code generation scripts, sau đó chuyển các code này thành ngôn ngữ C++ (phần mềm) chạy trên PC sử dụng vi xử lý Atom CPU và thành ngôn ngữ đặc tả phần cứng VHSIC Hardware Description Language (VHDL) trên FPGA Cyclone IV Kết quả so sánh này chương trình chạy trên phần cứng FPGA cải thiện được thông lượng lên tới gấp 15 lần Việc tận dụng khả năng song song hoá trên FPGA và tính linh động trong lập trình trên phần mềm cần được làm rõ Một thách thức lớn khi thực thi từng công đoạn AIDS trên FPGA đó là giới hạn về tài nguyên Có hai hướng tiếp cận cho vấn đề này đó là; Việc kết hợp linh động giao tiếp giữa phần mềm và phần cứng và giao tiếp giữa các phần cứng với nhau (communication device to device) Công trình [39] theo hướng tiếp cận giao tiếp giữa phần mềm và phần cứng, tác giả dùng phần mềm Matlab cho việc huấn luyện Neural Network (NN) và dùng FPGA của nhà sản xuất Xilinx cho việc tính toán các giá trị trọng số Hiện nay, các nhà sản xuất chip cố gắng tăng tài nguyên chip của họ, tăng tốc độ xử lý hình thành các multi core, giao tiếp các chip thông qua PCI - Express và sử dụng ngôn ngữ giao tiếp chuyên dụng của từng nhà sản xuất Chẳng hạn như [40, 41] dùng ngôn ngữ Compute Unified Device Architecture (CUDA) để viết chương trình tính toán song song hoặc các chương trình giao tiếp các chip của Nvidia với nhau (multi - GPU), cùng với các chip multi FPGA của Xilinx [42], Altera [43] Mỗi chip đều có vai trò và ứng dụng đặc thù riêng.

Bởi vì CPU đảm trách nhiều việc từ điều khiển cho tới các chương trình ứng dụng, ưu tiên các chương trình ứng dụng này một cách công bằng Do đó, với bài toán lớn như AIDS, CPU sẽ tốn rất nhiều thời gian cho việc xử lý Vì thế, các chip chuyên dụng như GPU, FPGA ra đời đáp ứng phần nào cho các bài toán cụ thể chuyên dùng cho mục đích đặc thù riêng với thời gian đáp ứng nhanh và hiệu suất cao Mỗi sản phẩm ra đời đều có lợi thế và bất lợi riêng.

Các vấn đề cho lớp bài toán như xử lý đồ hoạ, nhận diện hình ảnh, phân loại mẫu thì GPU rất phù hợp cho lớp các bài toán này Bởi vì, với thiết kế rất nhiều dãy ALU (Arithmetic Logic Unit), ít bộ điều khiển và bộ đệm (cache) thì việc tập trung cho việc xử lý tính toán được ưu tiên thay vì tập trung lưu trữ và điều khiển như CPU Với khả năng song song hoá việc tính toán và xử lý kiểu số thực (floating) thì GPU phù hợp với các lớp bài toán trên, bài toán

AIDS nằm trong lớp bài toán này, nên GPU là lựa chọn phù hợp Nhằm tận dụng khả năng hiện thực tính toán song song trên GPU, cùng với khả năng tái cấu hình từng phần và khả năng xử lý dữ liệu lớn tốc độ cao dưới FPGA.

Không may mắn đó là tài nguyên FPGA không đủ cho việc xử lý bài toán AIDS Cho nên, nhiều bài toán cần phải kết hợp giữa phần mềm và FPGA, theo công trình [39] là ví dụ điển hình Sự kết hợp giữa FPGA và GPU cần được xem xét để giải quyết cho vấn đề AIDS được quan tâm Vấn đề đặt ra là làm sao giao tiếp được các chip này với nhau Lợi thế đó là thông qua trình điều khiển CPU và PCI-Express để giải quyết vấn đề giao tiếp này Để giảm tối thiểu thời gian cho việc dịch chuyển dữ liệu, các nhà nghiên cứu tập trung giải quyết vấn đề giao tiếp trực tiếp thông qua PCI-Express mà không cần phải thông qua các trình điều khiển của CPU Một khó khăn lớn là không có các quy chuẩn, các giao thức nào của các nhà cung cấp cho vấn đề trao đổi dữ liệu trực tiếp giữa GPU và FPGA Theo công trình [5], tác giả thử nghiệm dùng GPU nVidia GeForce GTX 580, sử dụng ngôn ngữ CUDA 4.1 API, với 16 generation 2.0 PCIe lanes, thông lượng lên tới 6.2 GByte/s và FPGA Xil- inx ML605 integrated V6LX240T-1, 8 generation 1.0 PCIe lanes, với thông lượng khoảng 1.6 GByte/s (chậm hơn GPU 4 lần) Kết quả độ trễ giảm khi dịch chuyển 4 byte dữ liệu, như Bảng 5 dưới đây Chiều dịch chuyển dữ liệu từ GPU-FPGA hiệu suất được cải thiện khi so sánh chiều dịch chuyển không trực tiếp từ GPU-CPU-FPGA được 34.6%, với thông lượng đạt ngưỡng 1.6 GByte/s Chiều từ FPGA-GPU hiệu suất thấp hơn chiều dịch chuyển không trực tiếp FPGA-CPU-GPU là 52.6%, với thông lượng được 0.514 GByte/s.

Trong khi đó với mong muốn của tác giả thông lượng phải xấp xỉ được 1.6 GByte/s cho tương ứng 8 lanes Đây là giới hạn chính của công trình này Bởi vì, với việc giao tiếp trực tiếp 2 chiều giữa GPU và FPGA thì GPU luôn luôn là PCIe master và FPGA luôn là PCIe slave cho việc dịch chuyển, vấn đề bị nút thắt cổ chai (bottleneck) trong dịch chuyển dữ liệu.

Theo công trình khảo sát [44], tác giả đã thống kê các công trình liên quan tới SIDS và AIDS bằng việc tận dụng GPU giải quyết vấn đề song song hoá, giảm thiểu thời gian tính toán, hiệu suất cao và khả năng mở rộng cho các dạng bài toán này Đặc biệt là việc ra đời các dòng sản phẩm xử lý đồ hoạ cao General-Purpose Graphics Processing Units (GPGPU) làm cho bài toán AIDS là lựa chọn phù hợp với GPGPU với hỗ trợ ngôn ngữ CUDA.

Tác giả thử nghiệm trên NVIDIA GeForceGTS 450 graphics card (Fermi architecture) chạy trên máy PC Intel i3 540 3.07 GHz CPUs và 8GB DDRIII- 1333 RAM với hệ điều hành Linux Với mỗi gói tin cố định là 1536 bytes với tổng 40,000 bytes, mỗi thread xử lý 4 bytes dữ liệu, chuyển tới bộ nhớ GPU.

Kết quả đo đạc được so sánh với CPU qua các thông số như thời gian cải thiện hơn gấp 11 lần, thông lượng lên tới 2.4 Gbit/s so với CPU là 0.2 Gbit/s.

Theo [4], tác giả phân lớp các platform cho bài toán IDS của 8 tác giả như Bảng 4 dưới đây.

Bảng 4: Phân lớp Platform cho bài toán NIDS [4]

Pontarelli FPGA Real time Network-

Quang FPGA Real time Network-

IP, Port, Packets, Octets, Start

Jaic FPGA Real time Network-

TCP/IP packet header features

Jamshed GPU Real time Host-Based Packet payloads Jaehyun MultiCore

Das FPGA Real time Network-

Bảng 5: Độ trễ khi dịch chuyển 4 byte dữ liệu [5]

Transfer points and direction Latency (às)

GPU to CPU to FPGA (Total) 62.6

FPGA to CPU to GPU (Total) 59.3

Các công trình hiện thực vấn đề giao tiếp giữa FPGA và GPU 27

Công trình [45] giải quyết được vấn đề nút thắt cổ chai trong công trình [5],trong công trình này tác giả sử dụng ML555 board, 1 generation 1.1 PCIe lanes, FPGA Xilinx Virtex 5 XC5VLX50T, GPU NVIDIA GeForce 8400 GS(NV50 family) và CPU Intel Core i7, hệ thống kết hợp 2 khối đó là dùng codeVHDL cho phép FPGA thực hiện 2 Direct Memory Access (DMA) engines để dịch chuyển việc đọc, ghi dữ liệu, cấu hình lại driver của hệ điều hànhLinux cho phù hợp với driver FPGA Chiều từ FPGA-GPU thông lượng được150 MB/s và chiều ngược lại GPU-FPGA là 200 MB/s Tương ứng với việc kiểm tra trên 1 lane PCI 1.1 (đạt ngưỡng tối đa 250 MB/s) Việc phân tích và xử lý dữ liệu cũng cần quan tâm cho bài toán AIDS Mỗi gói tin đầu vào đều có các thuộc tính nhận dạng chúng, như vậy câu hỏi đặt ra là dựa vào cơ sở nào để xác định gói tin này bất thường hay không? Chúng tôi dựa vào tập dữ liệu KDD CUP 99 [46], với khối lượng lên đến gần 5 triệu mẫu, 42 thuộc tính nhận dạng, 22 loại tấn công được phân làm 4 loại đó là tấn công DoS, Probe,R2L và U2R để giải quyết vấn đề này.

Hệ thống tổng quan

Mục tiêu là tận dụng những lợi thế của FPGA và GPU Hệ thống này có tên là HA-IDS, gồm có ba hệ thống con đó là hệ thống FPGA-based Feature Construction (F-FC) được xây dựng trên FPGA; module giao tiếp trên CPU và hệ thống GPU-based Artificial Neuron Network (G-ANN) được xây dựng trên GPU Hệ thống được minh họa trên Hình 16 Hệ thống F-FC đảm nhiệm vai trò rút trích thông tin header từ gói tin Module giao tiếp trên CPU đảm nhiệm vai trò bắt tay dữ liệu giữa F-FC và G-ANN và hệ thống G-ANN đảm nhiệm vai trò phân lớp dữ liệu.

GPU-based Artificial Neural Network

Hình 16: Kiến trúc của hệ thống HA-IDS

Hoạt động của hệ thống HA-IDS từng bước sau Đầu tiên, hệ thống F-FC nhận dữ liệu từ mạng, trước khi qua module rút trích (Feature Extraction) và module chuẩn hóa (Normalization) bởi khối giám sát hoạt động (Activity Monitoring) Theo thứ tự, Dữ liệu được rút trích chuyển tới hệ thống G-ANN thông qua CPU Host CPU Host đóng vai trò như là bộ đệm dữ liệu và thu thập dữ liệu; Sau đó thông tin dữ liệu này được sử dụng cho việc huấn luyện dữ liệu (Training Phrase) và kiểm tra dữ liệu (Detecting Phrase) Cụ thể, Training Phrase là giai đoạn chính của hệ thống HA-IDS Mô hình Training Phrase tương ứng với việc xây dựng cấu trúc dữ liệu dưới hệ thống F-FC.

Có nhiều kỹ thuật kĩ thuật phát hiện bất thường như đã đề cập trong chươngKiến thức nền tảng Tuy nhiên, trong nghiên cứu này, tác giả quyết định sử dụng mạng nơron với giải thuật lan truyền ngược Back-Propagation Sau khi có kết quả mô hình mạng tối ưu đã huấn luyện xong (mô hình mạng tối ưu gồm có các giá trị như trọng số Bias, weigh, hệ số lỗi ) Hệ thống G-ANN lúc này tính toán các giá trị dựa vào các thông số mạng tối ưu đã học xong và trả kết quả về CPU (Result Report) Kết quả là giá trị 1 chỉ ra rằng dữ liệu là bất thường, ngược lại, kết quả là giá trị 0 chỉ ra rằng dữ liệu là bình thường Ngoài ra Training Phrase hoạt động ở trạng thái offline, trong khi đóDetecting Phrase hoạt động ở trạng thái online.

Hệ thống F-FC

Hệ thống F-FC hoạt động như là tính năng quan sát dữ liệu từ port InData_i (i = 0 3), bằng việc rút trích đặc trưng và đếm các thông tin cần thiết cho hệ thống HA-IDS trước khi chuẩn hóa chúng Sau đó dịch chuyển dữ liệu sau khi chuẩn hóa tới Host CPU thông qua port ConstructedData Để giải quyết những tác vụ này, hệ thống F-FC dùng ba module riêng biệt Chi tiết được minh họa trên Hình 17 Module PACKET DECODER đảm nhiệm vai trò rút trích thông tin header; Module FEM đảm nhiệm vai trò đếm số lượng gói tin và số lượng byte; và sau cùng là module NORMALIZATION đảm nhiệm vai trò chuẩn hóa dữ liệu đã được rút trích Những module khác như INPUT ARBITER, OUTPUT QUEUE được sử dụng từ mã nguồn mở NetFPGA- 10G Những gói tin nguồn được chuyển tới các port OutData_j(j = 0 3).

Module PACKET DECODER có hai chức năng đó là rút trích gói tin mạng và quản lý dòng output Sau khi nhận dữ liệu từ Internet, PACKET

INP UT ARB IT E R O U T P UT Q UE UE

Hình 17: Kiến trúc của hệ thống F-FC

DECODER chọn ra những thông tin header của gói tin và chuyển chúng tới module FEM Đồng thời, module này điều hướng toàn bộ dòng mạng ra bên ngoài thông qua port OutData_j mà không tùy chỉnh nội dung bên trong của gói tin.

Module FEM có chức năng kiểm soát rút trích mười thông tin từ một kết nối bao gồm: IP nguồn, IP đích, Port nguồn, Port đích, flag (kiểm soát bit trong TCP header), protocol, direction, application name, packet number (số lượng gói tin trong một kết nối), và byte number(số lượng byte trong k clocks) Module này có ba module con đó là module FEM Processing, FEM Output và Counter.

Module FEM Processing đảm nhiệm nhận những header gói tin từ modulePACKET DECODER Trường gói tin này gồm có 32 bit IP nguồn, 32 bit IP đích, 16 bit Port nguồn, 16 bit Port đích, 8 bit protocol và 8 bit flags Tổng cộng là 112 bit Chi tiết được minh họa trên Hình 18 Sau đó, chúng tạo ra 10 bit hash index sử dụng cho những input này Hàm hash index là hàmJenkins [47] và được cập nhật thông tin thống kê trong RAM Trong khi đó module FEM Output quản lý các dòng dữ liệu giao tiếp với các module khác.

Src_IP ±32 bits Dst_IP ±32 bits Src_Port ±16 bits Dst_Port ±16 bits Protocol ±8 bits

Hash key and Statistic value

Hình 18: Kiến trúc của module FEM

Module FEM được kết nối tới hai RAM (RAM_0, RAM_1) để đảm bảo thời gian đáp ứng của hệ thống Các RAM này hoạt động như là bộ nhớ lưu trữ dữ liệu thống kê từ module FEM Processing trong khi RAM còn lại hoạt động như là bộ nhớ output để đưa dữ liệu tới FEM Output Ngoài ra, module Control đảm nhận vai trò quản lý các quá trình của những module con khác.

Sau khi đếm đủ k chu kỳ, trình điều khiển phát sinh một tín hiệu swap để chuyển vai trò của hai RAM với nhau và tín hiệu điều khiển sẽ làm lại tất cả mọi hoạt động như ban đầu (refresh).

Module Normalization đảm nhận hai mục tiêu chính đó là chuyển kiểu số nguyên integer thành kiểu số thực float dấu chấm động và chuẩn hóa chúng.

Module này chia thành ba giai đoạn hoạt động Giai đoạn thứ nhất là chuyển số integer thành số thực float (module con Int-to-Float), giai đoạn thứ hai là chuẩn hóa, sử dụng công thức Min-Max (module con Min-Max) hoặc ánh xạ (mapping) kiểu text thành kiểu số (module con Text2Num) và giai đoạn cuối cùng là đóng gói đưa ra output Chi tiết được minh họa trên Hình 19.

Quy trình của module Normalization tiêu thụ 50 chu kỳ cho frame đầu tiên và giảm được 4 chu kì cho mỗi frame kế tiếp trong cấu trúc pipeline.

Dst_IP ±32 bits Src_Port ±16 bits Dst_Port ±16 bits

Pkt_count ±10 bits Pkt_length ±22 bits

213 bits Converting Interger to Floating Normalized Function

162 bits - total Total 7 clocks with pipeline Total 37 clocks without pipeline Total 2 clocks without pipeline Text - to - Num

Text - to - Num Direction ±2 bits

Hình 19: Module chuẩn hóa Normalization

Module con Int-to-Float được thiết kế qua bảy giai đoạn, được minh họa trên Hình 20 Từ Stage 1 tới Stage 5 đếm số bit 0 không sử dụng, kết quả đếm

Hình 20: Bảy giai đoạn của quá trình Pipeline được dùng để xác định số mũ và phân số của dấu chấm động, dựa trên chuẩn IEEE 754 ở Stage 6 Cuối cùng, đóng gói ở Stage 7 Frame đầu ra được trộn với bit dấu, số bit số mũ (exponent) và số bit phân số theo dấu chấm động độ chính xác đơn (32 bits).

Module Min-Max là sự kết hợp các thành phần phép trừ và phép chia được cung cấp bởi Xilinx Những thành phần này sử dụng tài nguyên DSP48 giúp cho tối ưu về tốc độ hoặc diện tích Công thức được trình bày dưới đây. min ( _ max _ min ) _ min max min old i new i i i i i v v new new new

Module Text2Num chuyển đổi giá trị dựa vào Bảng 6 dưới đây.

G-ANN

Là một hệ thống con của hệ thống HA-IDS, G-ANN được áp dụng giải thuậtBack - Propagation để hoạt động việc phân lớp Kĩ thuật này tương đối phổ biến cho quá trình huấn luyện cho những mạng lan truyền thẳng đa lớp, tìm ra những véc tơ trọng số sử dụng suy giảm độ dốc để cố gắng tối thiểu hóa lỗi toàn cục trong quá trình huấn luyện.

Trong quá trình huấn luyện, tiếp cận giải thuật này yêu cầu thiết lập những mẫu input, output mong muốn (đã gán nhãn), và hàm chi phí mong muốn để mapping giá trị của mạng nơron, giữa giá trị mẫu huấn luyện và giá trị output đã gán nhãn trước đó Quá trình này gồm có hai giai đoạn chính đó là; giai đoạn mạng lan truyền thẳng, giai đoạn này là tính toán giá trị output từ giá trị input; giai đoạn lan truyền ngược tính toán đệ quy nhằm làm suy giảm độ dốc cục bộ của mỗi node trong mạng Kĩ thuật này được minh họa trong Bảng 7.

Vì có nhiều thủ tục tính toán bên trong nên hệ thống có thể áp dụng đa ma trận matrix multiplication G-ANN sử dụng hiệu quả CUDA Hình 21 minh chứng hệ thống hoạt động với CUDA.

Bảng 7: Giải thuật Back-Propagation

Một chip GPU chứa nhiều vi xử lý (multiprocessors), GPU này đảm nhiệm vai trò tính toán các matrix multiplication và các multiplication sig- moid từ lớp input tới lớp output Quá trình tính toán này được chia và gán tới từng threads (T1, T2, TN) trong một block ( một multiprocessor) để tiến hành xử lý song song.

Hình 21: Kiến trúc G-ANN với thuật toán BP

Thiết lập thực nghiệm trên FPGA

Hệ thống được thiết lập gồm hai boards NetFPGA-10G, chứa chips Xilinx Virtex-5 XC5VTX24T và các cổng giao tiếp Small Form-Factor Pluggable (SFP+) Board đầu tiên dùng để triển khai hệ thống F-FC Trong khi board thứ hai hoạt động như là client mạng tốc độ cao (high-speed) sử dụng Open Source Network Tester - OSNT OSNT có hai module riêng biệt; module thứ nhất là OSNT Generator dùng để tạo ra những gói tin có thể đạt tới tốc độ 7.73 Gbps với đầu vào là những gói tin có kích thước 64 bytes và 9.87 Gbps cho những gói tin có kích thước là 1,500 bytes module thứ hai là OSNT Monitor dùng để quan sát và thống kê luồng mạng.

Trong phần thực nghiệm này, tác giả đánh giá và kiểm chứng hai chiến lược đó là tốc độ và độ chính xác Ngoài ra, để bảo đảm kết quả đa dạng và độ ổn định của hệ thống Tác giả tiến hành thực nghiệm ba kích thước K - window (K,000; 50,000; 100,000 cycles) Hình 22 miêu tả tổ chức mô hình kiểm tra hệ thống.

Result2.cap SFP+ Port-In

SFP+ Port 0 SFP+ Port 1 SFP+ Port 2 SFP+ Port 3 Size_Packets.cap

The throughput testing The Accuracy rate testing

Hình 22: Mô hình kiểm tra trên FPGA

Tài nguyên sử dụng trên FPGA

Tài nguyên sử dụng khi hiện thực hệ thống F-FC trên Xilinx Virtex-5 XC5VTX240T được trình bày trong Bảng 8.

Bảng 8: Tài nguyên sử dụng khi hiện thực hệ thống F-FC

Kiểm chứng tốc độ và độ chính xác trên FPGA

Kiểm chứng tốc độ:Đầu tiên, tác giả cố gắng kiểm tra từng trường hợp, bắn các gói tin có kích thước khác nhau lần lượt 64, 128, 256, 512, 1024, 1500 bytes vào hệ thống, mỗi lần bắn gói tin là dùng kích thước gói tin như nhau. Để xem xét tốc độ và độ ổn định của hệ thống mà không gặp đụng độ trong bảng hashing Sau khi tạo các gói tin trên bằng tool packETH, sau đó đưa vào module OSNT Generator để chuyển tới các cổng SFP+ Đầu ra của hệ thống F-FC chứa các thông tin đã được rút trích và chuẩn hóa, sau đó, chuyển tới module OSNT Monitor để kiểm chứng tốc độ của hệ thống Thứ hai, tác giả sử dụng tool HPING3 tạo ra 10.000 gói khác nhau, các gói này có cùng size 64 byte bắn vào hệ thống Để kiểm tra mức độ hiệu quả của việc đụng độ của hệ thống Quá trình này tương tự như kiểm nghiệm một kết nối ở trên.

Kiểm chứng độ chính xác: Để đánh giá độ chính xác của hệ thống, tác giả xây dựng một phần mềm hoạt động như là hệ thống F-FC, sau đó so sánh kết quả gói tin đó là; IP source, IP destination, source Port, destination Port. Đầu tiên, tác giả xây dựng nhiều tập dữ liệu khác nhau với số kết nối tăng từ100 tới 500 gói tin có cùng kích thước là 64 byte (Dataset.cap) Số kết nối này được xử lý với kích thước K-window Sau khi tạo tập dữ liệu, tác giả sử dụngOSNT Generator để gửi những gói tin này đưa tới Host PC thông qua PCIe bus, sau đó dùng công cụ Wireshark sinh ra file kết quả Sau cùng, tác giả so sánh kết quả của phần mềm (Result1) và kết quả khi dữ liệu qua hệ thốngF-FC (Result2) để đánh giá độ tin cậy.

Thiết lập thực nghiệm toàn hệ thống HA-IDS

Hệ thống thực nghiệm HA-IDS bao gồm board NetFPGA-10G chứa chip Xilinx Virtex-5 XC5VTX24T và bốn cổng SFP+ Phần giao tiếp sử dụng CPU Intel CoreTM i7-4770, 3.40GHz x 8, hệ điều hành Ubuntu 14.04 LTS 64 bit và dung lượng Ram là 16GB Một PC khác gắn card Ethernet 10G hoạt động như một user mạng Sau cùng là hệ thống G-ANN sử dụng hiện thực giải thuật BP mạng nơron trên GIGABYTE GeForce GTX 1080 (chứa 2560 cores) Hình 23 minh họa mô hình thực nghiệm.

SFP+ Port 0 SFP+ Port 1 SFP+ Port 2 SFP+ Port 3

PCI Express PCI Express pcap File TCPReplay

Hình 23: Mô hình thực nghiệm hệ thống HA-IDS

Kiểm chứng Thời gian huấn luyện và độ tin cậy HA-IDS

Để đánh giá hệ thống HA-IDS, tác giả tạo 2GB dữ liệu chứa hai tập con riêng biệt, mỗi tập con là 1GB Tập con đầu tiên tiên Data 0 chứa các gói tin bình thường (normal) Tập tin thứ hai Data 1 chứa các gói tin tấn công DDoS.

Trong phần thực nghiệm này, tác giả đánh giá và kiểm chứng hai chiến lược đó là; thứ nhất, so sánh thời gian huấn luyện giữa GPU và CPU Thứ hai, kiểm tra độ tin cậy của hệ thống.

So sánh thời gian huấn luyện dữ liệu giữa GPU và CPU:Kiểm nghiệm khi xây dựng mạng nơron dùng giải thuật BP trên CPU và GPU trong cùng chế độ huấn luyện offline Ban đầu, tác giả lấy hai tập dữ liệu Data 0 và Data 1 và gán nhãn có giá trị tương ứng là 0 và 1 Các tập dữ liệu con này được gửi bằng Ethernet packets (.pcap files) từ CPU1 tới hệ thống FPGA thông qua các cổng SFP+ Phần mềm ứng dụng TCPRelay được dùng để gửi những kết nối TCP Sau đó, tác giả trộn hai tập dữ liệu này với nhau một cách ngẫu nhiên trên Host CPU2 trước khi huấn luyện offline trên GPU và CPU với 11 input (trong đó 10 input + 1 input giá trị label), 4 lớp hidden và 1 lớp output.

Sau cùng, tác giả so sánh kết quả thời gian huấn luyện.

Kiểm tra độ tin cậy của hệ thống HA-IDS: Từ tập dữ liệu Data 0, Data1 tiếp tục lần lượt chia làm hai tập con tiếp theo Như vậy là có 4 tập con tương ứng mỗi tập có tên gọi là: D0_H, D0_K, D1_H, D1_K Với tập dữ liệuD0_H và D1_H phục vụ cho việc huấn luyện Tập D0_K, D1_K phục vụ cho việc kiểm tra Sau đó tác giả tiến hành tùy chỉnh các thông số mạng cho phù hợp, bằng cách thay đổi các giá trị số node ở lớp hidden và số epoch Sau khi tùy chỉnh các thông số phù hợp cho hệ thống, tác giả tiến hành thực hiện chế độ thời gian thực (real-time hay online) Bằng việc gửi tập D0_K và D1_K từCPU1 tới FPGA Dữ liệu đã được chuẩn hóa được chuyển tiếp tới GPU thông qua CPU2 Sau cùng, tác giả quan sát xem tỉ lệ phát hiện để kiểm tra độ tin cậy của hệ thống.

So sánh giữa tốc độ thực nghiệm và tốc độ lý thuyết hệ thống F-FC

Theo lý thuyết, khi gửi những gói tin cùng kích thước và với những K-window khác nhau thì tốc độ hệ thống phụ thuộc vào công thức sau: Theo công thức, ܵ݌݁݁݀ = ܨݎ݁ݍݑ݁݊ܿݕ ݔ ܰݑܾ݉݁ݎ ݋݂ ݌ܽܿ݇݁ݐݏ ݔ (ܦܽݐܽ ݏ݅ݖ݁ + 4) ܹ݅݊݀݋ݓ ݏ݅ݖ݁ với tần số (Frequency) là 160 MHz, được áp dụng cho toàn hệ thống F-FC, trong khi số lượng gói tin (Number of packets) được xem như là số lượng gói tin đã được rút trích và chuẩn hóa ở đầu ra và Window size là 10,000 cycles, 50,000 cycles, 100,000 cycles Một hằng số không đổi bằng 4 bytes là giá trị overhead cho việc khởi tạo cơ chế bắt tay giữa hai cổng SFP+ cho một kết nối Bảng 9 trình bày kết quả khi áp dụng công thức trên tương ứng cho ba kích thước window và số lượng gói tin đầu ra của hệ thống (1 hoặc 1024-ram size).

Bảng 9: Kết quả tốc độ trên lý thuyết

Khi dịch chuyển gói tin liên tục nhiều lần cho một kết nối cho ra một output Hình 24 minh chứng rằng, tốc độ thực tế là xấp xỉ bằng với lý thuyết là phù hợp Tại vì thông lượng output là không đổi trong khi input là thay đổi trong kích thước gói tin (từ 64 bytes tới 1,500 bytes) Tuy nhiên, Hình 25 cho thấy kết quả của việc đụng độ trong bảng hashing Điều này được diễn tả rằng thông lượng của hệ thống khi gửi 10,000 gói tin khác nhau có cùng kích

10,000_clk_Theory 10,000_clk_Experiment 50,000_clk_Theory 50,000_clk_Experiment 100,000_clk_Theory 100,000_clk_Experiment

Hình 24: Kiểm nghiệm thông lượng với 1 kết nối thước là 64 bytes ở tốc độ cao, tượng trưng cho nhiều kết nối khác nhau để cố gắng có được cực đại tốc độ của input trong một window size Quan sát trênHình 25, thông lượng thực tế là thấp hơn theo lý thuyết Ví dụ, hệ thống với window size là 10,000 cycles đạt được 5.329 Gbps chỉ đạt được 60% so với con số lý thuyết Mặc dù độ lệch của window size là 50,000 cycles và 100,000 cycles là nhỏ tương ứng với 0.0176 Gbps và 0.0003 Gbps, tác động này lớn hơn so với window size 10,000 cycles Bởi vì, window size càng lớn thì mức độ đụng độ càng cao (dễ dàng sảy ra đụng độ hơn).

10,000_clk_Theory 10,000_clk_Experiment 50,000_clk_Theory 50,000_clk_Experiment 100,000_clk_Theory 100,000_clk_Experiment

Hình 25: Kiểm nghiệm thông lượng với 1024 kết nối

Độ chính xác của hệ thống F-FC

Độ chính xác tương ứng với mỗi window size là cao, trung bình trên 70%. Được miêu tả trên Hình 26 Tuy nhiên, kết quả này cho thấy rằng số lượng

Hình 26: Độ chính xác của hệ thống F-FC kết nối càng lớn thì phần trăm độ chính xác càng giảm Ví dụ: Với 100 gói tin input là 94% nhưng với 500 gói tin input chỉ đạt được 78%.

So sánh thời gian huấn luyện giữa CPU và GPU

Một phần mềm trên CPU 2 hoạt động như một độ đo để nắm bắt thời gian huấn luyện trên CPU Kết quả chỉ ra rằng việc thời gian huấn luyện trên GPU nhanh hơn thời gian CPU hơn 12 lần, với epoch là 500 Chiến lược kiểm nghiệm này minh chứng lợi thế của CUDA - một nền tảng tính toán song song, giúp cho GPU giải quyết những vấn đề tính toán sâu hơn, tốt hơn.

Hình 27: Thời gian huấn luyện offline trên CPU và GPU

Độ tin cậy của hệ thống HA-IDS

Kết quả của chiến lược này được minh họa trong Bảng 10, tác giả tạo ba mô hình kiểm nghiệm khác nhau cho ba epoch (10,000; 50,000; 1000,000) với số node lớp ẩn là 12 và hệ số học là 0.7 Quan sát trong Bảng 10 nhận thấy độ tin cậy hệ thống hơn 80% với tỉ lệ chính xác là 0.12789 và tỉ lệ FalsePositive là 0.99 Ngoài ra, trong bảng này minh chứng rằng khi hệ số lỗi nhỏ thì theo lý thuyết hệ thống hoạt động hiệu quả Ví dụ, tỉ lệ phát hiện tấn công(ADR) và tỉ lệ độ chính xác (Accuracy Rate) là tăng, trong khi hệ số lỗi là giảm Tuy nhiên, thông lượng của hệ thống là 200Mbps vì cơ chế đụng độ trong bảng hashing cho việc lưu trữ thông tin thống kê trong bộ nhớ trên NetFPGA-10G.Vì thế, chúng làm giảm khả năng của FPGA có thể kiểm soát tới 10Gbps.

Bảng 10: Kết quả độ tin cậy của hệ thống HA-IDS

E p oc h E rror Norm a l Atta c k ADR FP R Ac c u ra c y

T ra in in g S e t Ac tu a l

P re d ic te d Cla s s Re s u lt

ADR: Atta c k De te c tion Ra te FP R: Fa ls e P os itive Ra te

Ngày đăng: 09/09/2024, 03:15

TÀI LIỆU CÙNG NGƯỜI DÙNG

  • Đang cập nhật ...

TÀI LIỆU LIÊN QUAN