HỆ THỐNG PHÁT HIỆN XÂM NHẬP SVELTE
Định tuyến trong RPL và cơ chế tấn công sinkhole
DAG (Directed Acyclic Graph) là một cấu trúc mạng mà mọi kết nối giữa các nút (Node) đều hướng về DAG ROOT và không tạo ra vòng lặp Trong giao thức RPL, DAG được sử dụng để định tuyến, với 6BR là DAG ROOT và các thiết bị đóng vai trò là các Node Thuật toán định tuyến này sử dụng giá trị gọi là rank để xác định đường đi từ nút gửi đến DAG ROOT, trong đó DAG ROOT có rank nhỏ nhất, và các nút xa hơn sẽ có rank cao hơn Mỗi nút sẽ chọn nút hàng xóm có rank nhỏ nhất làm nút chuyển tiếp gói tin, được gọi là nút cha.
Hình 2.1 - Chọn Node cha (parent) trong thuật toán định tuyến RPL
Tấn công sinkhole là một phương thức mà kẻ tấn công chiếm quyền điều khiển một node để khai báo sai lệch rank, nhằm đánh lừa các node khác trong mạng chọn node đó làm node cha để chuyển tiếp gói tin Kiểu tấn công này có thể kết hợp với tấn công selective forwarding, tạo ra hậu quả nghiêm trọng cho mạng, khiến một phần lớn mạng không thể kết nối với Internet bên ngoài.
Hình 2.2 - Cơ chế tấn công của sinkhole attack
SVELTE tập trung vào việc phát hiện các kiểu tấn công thông qua phân tích thông tin về thứ hạng mà các Node trong mạng gửi về Mô hình SVELTE được triển khai trên cả 6BR và các node trong mạng.
Hình 2.3 – Hệ thống phát hiện xâm nhập SVELTE
Module 6LoWPAN Mapper (6Mapper) được cài đặt trên 6BR, có chức năng thu thập và phân tích thông tin từ các node để đưa ra cảnh báo về các cuộc tấn công trong mạng Trong khi đó, module 6Mapper client được cài trên các node, có nhiệm vụ thu thập thông tin và gửi về cho 6Mapper.
Khi nhận thông tin từ các node, 6Mapper tiến hành phân tích các gói tin bằng các thuật toán nhằm phát hiện sự không nhất quán trong mạng và nhận diện mâu thuẫn giữa các mối quan hệ cha-con trong hệ thống.
Các thành phần phát hiện xâm nhập trong SVELTE
The module, commonly referred to as 6Mapper, is responsible for reconstructing the network structure within 6BR by rebuilding the information of nodes using predefined data structures To achieve this, 6Mapper sends mapping request packets to all nodes, which include essential information such as RPL Instance ID (IID), DODAG ID, DODAG version, and timestamp.
Hình 2.4 - Cấu trúc mapping request packet
- DODAG ID: địa chỉ gửi gói tin, trong trường hợp này là địa chỉ của 6BR
- DODAG version: phiên bản của DODAG
- Timestamp: nhãn thời gian của gói tin
SVELTE có thể áp dụng các giải pháp mã hóa và xác thực gói tin, nhưng để đơn giản hóa quá trình cài đặt mô phỏng, giả thiết rằng gói tin đã được mã hóa và xác thực Trong thực tế, nếu hệ thống được triển khai với xác thực gói tin, trường DODAG ID không cần thiết phải được thêm vào gói tin Mapping request, vì thông tin xác nhận đã chứa thông tin về nguồn gửi gói tin 6Mapper sử dụng thông tin nhận được từ các node gửi tới để phân tích và đưa ra nhận định về khả năng mạng có phải là mục tiêu của cuộc tấn công hay không.
Sự không nhất quán trong việc tái cấu trúc mạng tại 6BR có thể dẫn đến cảnh báo sai trong hệ thống Nguyên nhân của sự không nhất quán này có thể là do thông tin về một node đã lỗi thời hoặc do kẻ tấn công cố tình cung cấp thông tin sai lệch.
Luồng xử lý thông tin trong SVELTE
Dữ liệu được xử lý thông qua ba thuật toán chính: phát hiện và hiệu chỉnh thông tin không nhất quán giữa các node, nhận diện các node có thông tin quá hạn, và phát hiện bất thường trong mối quan hệ cha-con Sau khi hoàn tất phân tích, hệ thống sẽ cung cấp cảnh báo về các node có dấu hiệu bất thường.
Hình 2.5 – Luồng xử lý dữ liệu trong SVELTE 2.2.1.1 Phát hiện sự không nhất quán trong mạng
Trong mạng Internet của vạn vật, các node có thể bị kẻ tấn công chiếm quyền điều khiển qua nhiều phương thức Khi một node bị chiếm, kẻ tấn công có khả năng gửi thông tin sai lệch về rank của node đó hoặc của các node lân cận đến 6Mapper Thông tin sai lệch này cũng có thể xảy ra do mất mát gói tin, điều này thường xuyên xảy ra trong mạng không dây của các thiết bị năng lượng thấp Do đó, việc phát hiện và sửa chữa sự không nhất quán trong thông tin của các node là rất quan trọng Giải thuật dưới đây sẽ giải quyết vấn đề này.
Require: N – A list of nodes for Node in N do for Neighbor in Node.neighbors do
Diff= |Node.neighborRank(Neighbor) - Neighbor.rank | Avg = (Node.neighborRank(Neighbor) + Neighbor.rank)/2
{If the absolute difference is greater than 20% of the ranks average} if Diff > Avg * 0.2 then
Node.fault = Node.fault + 1 Neighbor.fault = Neighbor.fault + 1 end if end for end for
Phát hiện và hiệu chỉnh thông tin không nhất quán
Phát hiện các node có thông tin quá hạn Phát hiện bất thường giữa node cha và con
Cảnh báo for Node in N do if Node.fault > FaultThreshold then
Node.rank = Rank reported for Node by any neighbor for Neighbor in Node.neighbors do
Node.neighborRank (Neighbor) = Neighbor.rank end for end if end for
Giải thuật GT1 phát hiện sự không nhất quán thông tin trong mạng bằng cách tích lũy số lần thông tin không nhất quán của các node Trong vòng lặp đầu tiên, thuật toán kiểm tra thông tin không nhất quán, với mỗi node được đại diện trên 6BR bởi một cấu trúc dữ liệu có biến fault Nếu chênh lệch rank giữa báo cáo của node và hàng xóm lớn hơn 20% trung bình của hai giá trị, biến fault sẽ tăng thêm 1 tại cả hai node Vòng lặp thứ hai kiểm tra biến fault, và nếu vượt ngưỡng cho phép, node đó sẽ bị coi là không nhất quán, thông tin về rank sẽ được điều chỉnh theo thông tin từ bất kỳ hàng xóm nào Ngưỡng 20% này được xác định qua thực nghiệm trong mạng từ 8 đến 32 node và có thể thay đổi tùy thuộc vào cấu trúc mạng khác.
Thuật toán GT1 gặp khó khăn trong việc phân biệt thông tin không nhất quán do kẻ tấn công gây ra và sự truyền tải gói tin trong mạng Tuy nhiên, việc phát hiện sự cố do truyền tải gói tin có thể được thực hiện hiệu quả thông qua kỹ thuật gán nhãn thời gian vector.
2.2.1.2 Kiểm tra các node còn hoạt động trong mạng
Việc kiểm tra các node hoạt động trong mạng là rất quan trọng, đặc biệt trong trường hợp xảy ra cuộc tấn công selective forwarding Khi một node bị chiếm quyền điều khiển, nó có thể chặn tất cả các gói tin ngoại trừ gói tin định tuyến RPL Để xác định các node còn hoạt động, chúng ta có thể dựa vào bảng định tuyến RPL tại node root Quá trình kiểm tra cần sử dụng danh sách trắng W và danh sách các node đã biết thông tin từ 6Mapper là M Kết quả cuối cùng sẽ là danh sách các node bị lọc F.
Require: W – Set of whitelisted nodes Require: M – Set of nodes known to the 6Mapper
F = [] {F will contain the filtered nodes} for Node in W do if Node in M and M[Node].lastUpdate() > RecencyThreshold then
F.add (Node) end if end for return F
Trong giải thuật này, một vòng lặp được sử dụng để duyệt qua tất cả các node trong danh sách trắng Nếu một node là node 6Mapper và thông tin cùng thời gian gửi của nó vượt quá ngưỡng quy định, node đó sẽ được đưa vào danh sách các node bị lọc.
2.2.1.3 Phát hiện sai lệch trong quan hệ giữa node cha và node con
Kẻ tấn công có thể thực hiện cuộc tấn công sinkhole để quảng bá tuyến đường ngắn nhất cho các hàng xóm trong việc gửi gói tin Khi kiểu tấn công này kết hợp với các phương thức khác như tấn công chọn lọc, hậu quả sẽ rất nghiêm trọng, dẫn đến việc một lượng lớn gói tin trong mạng có thể không được gửi đi.
SVELTE có khả năng phát hiện hầu hết các cuộc tấn công sinkhole attack thông qua việc phân tích cấu trúc mạng Trong giao thức RPL, rank của node cha luôn nhỏ hơn rank của node con, vì nó tăng dần từ root Do đó, nếu rank của node cha lớn hơn rank của node con, đó là dấu hiệu rõ ràng của một cuộc tấn công sinkhole attack.
Việc phát hiện sai lệch thông tin giữa các node trong quan hệ cha-con là cần thiết để đảm bảo tính chính xác của hệ thống Để thực hiện điều này, cần thiết lập một ngưỡng số lần phát hiện rank của node con nhỏ hơn rank của node cha Nếu số lần phát hiện vượt quá ngưỡng quy định, hệ thống sẽ tự động đưa ra cảnh báo để xử lý kịp thời.
Require: N – A list of nodes for Node in N do if Node.rank < Node.parent.rank + MinHopRankIncrease then
Node.fault = Node.fault + 1 end if end for for Node in N do if Node.fault > FaultThreshold then
//Raise alarm end if end for
Trong RPL, một root sẽ có giá trị MinHopRankIncrease là giá trị tăng nhỏ nhất của rank, hiểu đơn giản rank của node con phải lớn hơn ít nhất
MinHopRankIncrease so với rank của node cha
Vòng lặp đầu tiên kiểm tra sự sai lệch về rank giữa node con và node cha Nếu phát hiện sai lệch, biến toàn cục fault sẽ được tăng lên Khi mức độ sai lệch vượt quá ngưỡng quy định, hệ thống sẽ phát ra cảnh báo.
Thuật toán này hiệu quả trong việc phát hiện các cuộc tấn công sinkhole attack, khi kẻ tấn công quảng bá rank của node bị điều khiển thấp hơn rank của node cha, giúp cải thiện kết quả Ngược lại, nếu kẻ tấn công quảng bá rank cao hơn rank của node cha, điều này không ảnh hưởng nhiều đến việc định tuyến các gói tin.
Module này có chức năng thu thập thông tin của các node hàng xóm và gửi đến cho 6Mapper qua gói tin Mapping reponse
Các node dựa vào thông tin của gói tin yêu cầu lấy thông tin về node để xây dựng lên gói tin trả lời (Mapping response packet)
Cấu trúc gói tin trả lời như sau:
Hình 2.6 - Cấu trúc mapping response packet
- Node ID: id của node gửi gói tin trả lời
- IID, DAG ID, ver, TS: là các giá trị được lấy từ gói tin yêu cầu gửi thông tin
- Rank: rank của node gửi gói tin
- Parent ID: id của node cha
- Neighbors: là danh sách chứa các thông tin về hàng xóm Danh sách này gồm:
+ Nbr ID: id của node hàng xóm
+ Rank: rank của hàng xóm
3 CẢI TIẾN GIẢI THUẬT PHÁT HIỆN SỰ KHÔNG NHẤT QUÁN VỀ THÔNG TIN TRONG MẠNG
Hạn chế của SVELTE
Giải thuật gốc tích lũy thông tin sai khác mà không hiệu chỉnh ngay các thông tin của các node Sau khi phân tích các gói tin từ các node, giải thuật thực hiện vòng lặp cuối cùng để kiểm tra biến đánh dấu sự không nhất quán Nếu biến này vượt ngưỡng, thông tin của node sẽ được cập nhật từ bất kỳ hàng xóm nào Tuy nhiên, có thể xảy ra trường hợp một số node không được cập nhật do biến không vượt ngưỡng, dẫn đến việc không phát hiện được node giả mạo Bên cạnh đó, SVELTE phân tích sự bất thường dựa trên rank, điều này có thể gây nhầm lẫn khi sự bất thường về rank là do đặc điểm của mạng, không phải do tấn công giả mạo từ bên ngoài.
Hình 3.1 – Ví dụ SVELTE không phân biệt được sự không nhất quán do bản thân mạng
Node K là cha của Node G, R m (Node) sẽ là rank của Node tại 6Mapper,
R a (Node) sẽ là rank thực tế của Node đó, R n (Node) là rank của node ghi nhận tại các node neighbor
- K gửi thông tin về rank cho 6Mapper là 1280, vì thế R a (K) = 1280, R m (K)
- Đến một thời điểm nào đó, node K tính toán lại rank và giá trị lúc đó là
768, node K sẽ quảng bá rank tới các hàng xóm trong đó có cả G, vậy
- Vì một lý do nào đó, Node K chưa gửi lại gói tin mapping response cho 6Mapper 6Mapper vẫn chỉ ghi nhận rank của node K, R m (K) = 1280
- G nhận được giá trị rank mới của K, G tính toán lại rank của bản thân, gửi thông tin lại cho 6Mapper, lúc này R a (G) = 1024, R m (G) = 1024,
Node E và node G gửi gói tin mapping response cho 6Mapper, kèm theo thông tin về rank của chính mình và node K Hiện tại, 6Mapper ghi nhận rank của K là 1280, rank của G là 1024, trong khi node G báo rank của K là 768 Sự khác biệt này khiến 6Mapper nghi ngờ và bắt đầu đếm số lần phát hiện sai khác rank từ các node láng giềng Nếu số lần này vượt quá ngưỡng cho phép, 6Mapper sẽ coi đó là một cuộc tấn công sinkhole Tuy nhiên, sự sai khác rank của node K có thể do lỗi trong quá trình xây dựng DAG mạng, delay hoặc sự cố khiến node K chưa kịp gửi thông tin cập nhật rank mới cho 6Mapper.
Việc áp dụng nhãn thời gian vector trong các bài toán thực tiễn giúp phân biệt rõ ràng các luồng thông tin gửi-nhận, từ đó xác định thứ tự các sự kiện theo quan hệ nhân quả Kỹ thuật này, khi được tích hợp vào hệ thống SVELTE, sẽ hỗ trợ trong việc phân tích và xác định liệu sự khác biệt thông tin giữa các node có phải do mạng gây ra hay không Chi tiết về thuật toán cải tiến sẽ được trình bày trong phần tiếp theo.
Cải tiến SVELTE sử dụng nhãn thời gian Vector
Khái niệm đồng bộ hóa tiến trình
Trong hệ thống tin học phân tán, đồng bộ hóa tiến trình là quá trình đảm bảo sự hoạt động nhịp nhàng giữa các đối tượng tham gia chia sẻ tài nguyên chung Điều kiện quan trọng để đồng bộ hóa các tiến trình trong hệ phân tán là sự phối hợp hiệu quả giữa các thành phần.
Các tiến trình của hệ thống cần được phát triển đồng thời trong cùng một chu kỳ thực hiện, mặc dù thời gian thực hiện lệnh có thể khác nhau do khả năng xử lý của các bộ xử lý hoặc vi xử lý khác nhau.
Các tiến trình phát triển trong các hệ thống thành phần khác nhau, được đặt tại các địa điểm khác nhau và kết nối với nhau qua đường truyền, vẫn có thể diễn ra một cách hiệu quả ngay cả khi xảy ra sự cố kỹ thuật.
Không sử dụng bộ nhớ và đồng hồ chung
Để đáp ứng yêu cầu và điều kiện kỹ thuật, cần nghiên cứu các giải pháp mạnh mẽ và hiệu quả nhằm đồng bộ hóa các tiến trình, từ đó tạo ra sự hoạt động ổn định cho hệ thống đồng bộ.
Xác định trật tự cho các sự kiện trong hệ phân tán
Một hệ thống phân tán bao gồm các thành phần như tiến trình, trạm, nút hoặc máy chủ, không sử dụng bộ nhớ chung và giao tiếp thông qua việc trao đổi thông điệp Mỗi thành phần hoạt động như một otomat, thực hiện các phép toán có khả năng thay đổi trạng thái của chính nó và toàn bộ hệ thống.
Các phép toán cần được sắp xếp theo trình tự tự nhiên của chúng Trong một tiến trình cho phép nhiều luồng trên hệ thống đơn bộ xử lý, thứ tự thực hiện các lệnh sẽ do bộ xử lý quyết định Bộ xử lý đảm nhiệm vai trò sắp xếp các sự kiện trong tiến trình này.
Xác định trật tự sự kiện trên hệ thống đa bộ xử lý là một thách thức phức tạp, đặc biệt trong việc duy trì thời gian tuyệt đối Trong hệ thống tin học phân tán, việc đồng bộ hóa các sự kiện thông qua việc thống nhất giá trị đồng hồ vật lý là không khả thi do độ trễ trong truyền thông.
Sự không thống nhất các đồng hồ vật lý theo một chuẩn nhất định
Xử lý không theo thời gian thực
Các khái niệm cơ bản
Trên một trạm, các sự kiện có thể được sắp xếp theo trật tự thực hiện hoặc thời gian tuyệt đối Đồng thời, sự kiện truyền tải thông điệp luôn xảy ra trước khi sự kiện nhận thông điệp diễn ra Điều này được thể hiện qua trật tự nhân quả.
Khái niệm này được biểu diễn theo kiểu như sau:
Sự kiện có trước một sự kiện , ta viết , nếu một trong hai điều kiện sau đây là đúng:
1 và diễn ra trên cũng một trạm và diễn ra trước theo đồng hồ logic trên chính trạm đó
2 tương ứng với việc gửi thông điệp trên trạm và tương ứng với việc nhận thông điệp này trên trạm với và là số thứ tự của hai trạm trong hệ Khái niệm có trước/nhân quả được ký hiệu bằng và phản ánh quan hệ bắc cầu giữa các sự kiện
3 Nếu là các sự kiện mà và thì (phép bắc cầu của quan hệ)
Trật tự của các sự kiện được xác định thông qua quan hệ nhân quả, trong khi các sự kiện không có sự so sánh này được gọi là quan hệ tương tranh.
Khái niệm thời gian vô hướng do Lamport giới thiệu nhằm sắp xếp thứ tự các sự kiện trong hệ thống phân tán Thời gian logic vô hướng được biểu thị bằng các số nguyên không âm và thường được gọi là đồng hồ toàn cục của hệ thống.
Thời gian logic của sự kiện thể hiện trật tự giữa hai sự kiện, trong đó trật tự này có thể không chặt chẽ khi hai sự kiện riêng rẽ có cùng thời gian logic, được gọi là hai sự kiện tương tranh Một quan hệ trật tự chặt chẽ được thiết lập khi có điều kiện cụ thể, với số thứ tự của hai trạm bất kỳ trong hệ.
- Cập nhật đồng hồ Logic Lamport
Gọi là thời gian logic vô hướng tại trạm Hai quy luật sau nhằm cập nhật đồng hồ logic vô hướng của một trạm:
1 Tăng mỗi khi có một sự kiện mới bất kỳ xảy ra tại
2 Khi một trạm gửi thông điệp , nó gán nhãn thời gian cho thông điệp truyền đi Khi một trạm nhận được thông điệp, nó sẽ cập nhật nhãn thời gian của mình theo công thức sau:
Sau đấy nó sẽ áp dụng quy luật 1 cho thông điệp
(i, j là thứ tự của các trạm trong hệ , 1≤ i ≤n, 1≤ j≤ n , n là số trạm hoạt động của hệ)
Nhãn thời gian gán cho thông điệp chính là giá trị của đồng hồ logic tại thời điểm truyền tải, được gọi là dấu hiệu của thông điệp.
Ví dụ về sự cập nhật đồng hồ lôgic vô hướng trong quá trình gửi và nhận các thông điệp :
Hình 3.2 – Ví dụ về sự cập nhật Logic Lamport timestamp
- Hạn chế của thời gian Logic vô hướng
Hệ thống đồng hồ logic sử dụng thời gian vô hướng gặp phải vấn đề không tương thích, do đồng hồ logic cục bộ và đồng hồ logic của trạm chỉ là một Điều này dẫn đến việc mất thông tin, khiến chúng ta không thể xác định trạng thái của các trạm khác cũng như trạng thái của các thông điệp được truyền đi tại bất kỳ thời điểm nào.
Cài đặt và cấu hình
Tôi thực hiện mô phỏng trong môi trường giả lập Contiki Cooja với các node Tmote Sky Để cài đặt Contiki 2.6, trước tiên, bạn cần truy cập vào trang chủ của ContikiOS.
[8], tải mã nguồn về, phiên bản mới nhất hiện tại là phiên bản 2.7
Trong luận văn này, Contiki được cài đặt trên hệ điều hành Ubuntu 12.04 Sau khi tải mã nguồn về và giải nén, người dùng cần mở terminal và di chuyển đến thư mục Contiki\tool\cooja Để khởi động Cooja, sử dụng lệnh: sudo ant run, tuy nhiên, trước đó cần cài đặt ant trên Ubuntu bằng lệnh: sudo apt-get -u install ant Giao diện của Cooja sẽ xuất hiện sau khi thực hiện các bước trên.
Để thực hiện mô phỏng bằng mã nguồn SVELTE đã được cải tiến, người dùng cần khởi động công cụ Cooja trên hệ điều hành Ubuntu, như đã trình bày ở phần trước Lưu ý rằng việc chạy mô phỏng yêu cầu một số điều kiện nhất định để đảm bảo hoạt động hiệu quả.
Để thiết lập IDS, cần tạo một thư mục mới tương tự như thư mục chứa module phát hiện xâm nhập, với đuôi “-evil” ở cuối Thư mục này sẽ lưu trữ mã nguồn của node bị kẻ tấn công điều khiển Ví dụ, thư mục Contiki-IDS-IDS chứa mã nguồn SVELTE-VC, trong khi thư mục Contiki-IDS-IDS-evil lưu trữ mã nguồn của node bị tấn công.
Hình 4.2 - Đặt tên thư mục để chạy SVELTE-VC
Kịch bản mô phỏng
Để tiện việc so sánh kết quả với bài báo [6], luận văn cũng sử dụng kịch bản mô phỏng tương tự với bài báo [6], cụ thể như sau
Mô phỏng được thực hiện với ba cấu hình node: 8, 16 và 32 Node, với 30 lần chạy cho mỗi cấu hình, mỗi lần với vị trí node khác nhau trong mạng Kết quả được ghi nhận tại các thời điểm 5 phút, 10 phút, 20 phút và 30 phút Trong kịch bản tấn công, mô phỏng tập trung vào kiểu tấn công sinkhole attack, trong đó node bị tấn công sẽ báo cáo sai giá trị rank về cho 6Mapper.
Chúng tôi sẽ áp dụng giải thuật cải tiến kết hợp với kỹ thuật gán nhãn thời gian vector để xác định nguyên nhân gây ra sự khác biệt ở các node, nhằm phân biệt giữa sự không nhất quán trong xây dựng mạng và cuộc tấn công sinkhole Bằng cách này, chúng tôi sẽ đánh giá tỷ lệ phát hiện thành công các node độc hại giữa thuật toán gốc và thuật toán cải tiến, cũng như số lượng cảnh báo mà hệ thống phát ra Nghiên cứu sẽ được thực hiện trên các cấu trúc mạng với số lượng node là 8, 16 và 32.
Hình 4.3 - Mô phỏng với 8 Node, trong đó có 1 Node bị attacker điều khiển
Hình 4.4 - Mô phỏng với 16 Node, trong đó có 2 Node bị attacker điều khiển
Hình 4.5 - Mô phỏng với 32 Node, trong đó có 4 Node bị attacker điều khiển
Kết quả mô phỏng
Chạy mô phỏng SVELTE-VC Đây là mô phỏng hệ thống phát hiện xâm nhập với sinkhole attack với 26 node và 1 node bị tấn công
Hình 4.6 - Mô phỏng sinkhole attack với 26 node mạng
Các loại Node trong mô phỏng:
- Node màu xanh lá chính là 6BR, node thu thập dữ liệu của các sensor trong mạng để phân tích dữ liệu, đưa ra các cảnh báo
- Node màu vàng là các node bình thường trong mạng
Node màu tím là một mote bị kẻ tấn công điều khiển, thực hiện các hành động gây hại cho mạng Trong cuộc tấn công sinkhole, node này phát đi một rank nhỏ, khiến các node lân cận định tuyến qua nó, từ đó ảnh hưởng tiêu cực đến hoạt động của mạng.
Trong phần 4.2, tôi đã trình bày các kịch bản mô phỏng để đánh giá tỷ lệ phát hiện thành công các node độc hại xâm nhập vào hệ thống Tỷ lệ này được tính bằng số lượng node độc hại được phát hiện so với tổng số node độc hại đã xâm nhập, cùng với tỷ lệ dương tính đúng, tức là tỷ lệ cảnh báo thành công trên tổng số cảnh báo mà hệ thống đưa ra Việc phát hiện thời gian thực có nghĩa là khả năng phát hiện ngay khi node độc hại xâm nhập vào hệ thống.
Trong mô phỏng, 6Mapper được cấu hình để yêu cầu và phân tích dữ liệu sau mỗi 2 phút, nhưng kết quả đầu tiên chỉ xuất hiện sau 4 phút do dữ liệu chưa được thu thập Thuật toán gốc có tỉ lệ phát hiện đúng các node độc hại không cao, thường dẫn đến cảnh báo sai Nguyên nhân có thể do sự sai khác thông tin của node trong mạng Tuy nhiên, với thuật toán cải tiến sử dụng nhãn thời gian vector, tỉ lệ phát hiện sai các node độc hại đã giảm rõ rệt, trong nhiều trường hợp không còn phát hiện sai.
Kết quả mô phỏng với kịch bản kẻ tấn công khai báo sai rank cho 6Mapper cho thấy tỉ lệ phát hiện thành công các cuộc tấn công ngang bằng so với thuật toán gốc Hệ thống mới đã phát hiện những sai khác thông tin của node do quá trình xây dựng DODAG, không phải do tấn công giả mạo, từ đó giảm thiểu cảnh báo sai Tỉ lệ dương tính sai được tính bằng tổng số cảnh báo sai trên tổng số cảnh báo mà hệ thống đưa ra, trong khi tỉ lệ dương tính đúng được tính bằng tổng số cảnh báo phát hiện thành công trên tổng số cảnh báo được đưa ra.
Hình 4.7 – Tỉ lệ dương tính sai với kịch bản 8 node của SVELTE và SVELTE-VC
Hình 4.8 – Tỉ lệ dương tính sai với kịch bản 16 node của SVELTE và SVELTE-VC
False Positive Rate with 8 nodes
False Positive Rate with 16 nodes
Hình 4.9 – Tỉ lệ dương tính sai với kịch bản 32 node của SVELTE và SVELTE-VC
Hình 4.10 – Tỉ lệ dương tính đúng với kịch bản 8 node của SVELTE và SVELTE-VC
Hình 4.11 – Tỉ lệ dương tính đúng với kịch bản 16 node của SVELTE và SVELTE-VC
False Positive Rate with 32 nodes
True Positive Rate with 8 nodes
True Positive Rate with 16 nodes
Hình 4.12 – Tỉ lệ dương tính đúng với kịch bản 32 node của SVELTE và SVELTE-VC Năng lượng tiêu thụ
Trong mạng Internet của vạn vật, các node thường tiêu thụ năng lượng thấp chủ yếu từ pin, khiến nguồn năng lượng trở thành tài nguyên khan hiếm Để đo lường mức tiêu thụ năng lượng tại các node và toàn hệ thống, tôi sử dụng module Powertrace trong hệ điều hành Contiki.
Tôi sử dụng phương pháp 3V để tính toán và áp dụng các giá trị danh nghĩa trong điều kiện hoạt động của Tmote Sky Trong đó, chế độ MCU idle và radio off được xem là chế độ năng lượng thấp (LPM), trong khi MCU on và radio off được coi là thời gian CPU hoạt động Thời gian radio nhận và truyền dữ liệu khi MCU đang hoạt động được phân tách thành hai giai đoạn riêng biệt Thời gian đo năng lượng tiêu thụ cho mô phỏng RPL và RPL với Network mapper là 30 phút.
Typical conditions Min NOM Max Unit
MCU on, Radio RX 21.8 23 mA
MCU on, Radio TX 19.5 21 mA
Bảng 4.1 - Tmote Sky Operating Conditions
True Positive Rate with 32 nodes
Từ năng lượng tiêu thụ của toàn mạng, tôi tính toán năng lượng tiêu thụ trung bình như sau:
Khi chia tổng năng lượng tiêu thụ cho số lượng node, tôi tính được điện năng trung bình tại mỗi node trong hệ thống Kết quả cho thấy rằng năng lượng tiêu thụ của hệ thống và điện năng trung bình của mỗi node trong mạng chỉ sử dụng RPL so với mạng RPL có 6Mapper ở các mạng nhỏ (8 node, 16 node) không có sự chênh lệch đáng kể Sự khác biệt rõ ràng chỉ xuất hiện khi số lượng node từ 32 trở lên.
Hình 4.13 – Năng lượng sử dụng của toàn mạng trong 30 phút
RPL Only RPL & Mapper network
Hình 4.14 – Điện năng sử dụng trung bình của các node trong 30 phút
Avarage Power per Node (mW)
RPL Only RPL & Mapper network
5 KẾT LUẬN VÀ PHƯƠNG HƯỚNG PHÁT TRIỂN
Xây dựng hệ thống phát hiện xâm nhập là nhu cầu thiết yếu cho mạng Internet của vạn vật (IoT) trong bối cảnh công nghệ phát triển nhanh chóng Sự gia tăng lỗ hổng bảo mật và các phương pháp tấn công mới từ kẻ xấu đòi hỏi nghiên cứu và phát triển hệ thống bảo vệ hiệu quả Kết quả nghiên cứu của luận văn này sẽ cung cấp những giải pháp thiết thực cho việc nâng cao an ninh mạng trong môi trường IoT.
- Luận văn đã trình bày được những đặc điểm cơ bản của hệ thống phát hiện xâm nhập trong mạng Internet của vạn vật SVELTE
Luận văn đã nghiên cứu và cải tiến thuật toán phát hiện sự không nhất quán trong mạng, với kết quả cho thấy thuật toán mới mang lại hiệu quả vượt trội so với phiên bản cũ.
Contiki OS là một hệ điều hành phổ biến được sử dụng để mô phỏng các hệ thống phát hiện xâm nhập Sau một thời gian nghiên cứu, tôi đã nắm rõ cơ chế hoạt động của các process trong Contiki OS và có kiến thức cơ bản về các thuật toán định tuyến trong RPL.
Mặc dù thời gian và kinh nghiệm có hạn, luận văn vẫn gặp một số hạn chế, đặc biệt là trong việc thực hiện mô phỏng với số lần chưa đủ nhiều, điều này có thể dẫn đến sai sót trong kết quả Do đó, trong thời gian tới, chúng tôi sẽ tiến hành chạy lại mô phỏng với số lần lớn hơn để đạt được kết quả khách quan hơn.
SVELTE được phát triển với khả năng mở rộng để đối phó với nhiều kiểu tấn công khác nhau, trong đó có tấn công wormhole Hệ thống này cho phép phát hiện wormhole attack thông qua việc mô hình hóa mạng bằng đồ họa máy tính Điều này trở nên khả thi nhờ vào các giải pháp đã được đề xuất để phát hiện tấn công wormhole trên mạng không dây.