ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ
ĐẶNG XUÂN ĐÍCH
PHÁT HIỆN XÂM NHẬP THEO THỜI GIAN THỰC
TRONG MẠNG INTERNET CỦA VẠN VẬT
Ngành: Công nghệ thông tin
Chuyên ngành: Truyền dữ liệu và mạng máy tính
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
Ngƣời hƣớng dẫn khoa học: TS. NGUYỄN ĐẠI THỌ
Hà Nội, 2016
LỜI CẢM ƠN
Lời đầu tiên, tôi xin gửi lời cảm ơn chân thành nhất đến thầy giáo, Tiến
sĩ Nguyễn Đại Thọ. Thầy đã tận tình chỉ bảo, hướng dẫn tôi trong suốt quá
trình nghiên cứu, tìm hiểu, hoàn thành luận văn.
Tôi xin bày tỏ lời cảm ơn chân thành đến những thầy cô đã giảng dạy
tôi trong thời gian học cao học, các thầy cô đã giúp tôi trang bị những kiến
thức để phát triển trong tương lai.
Tôi cũng xin cảm ơn đến những bạn bè, người thân trong gia đình tôi
đã luôn ủng hộ, động viên tôi vượt qua những khó khăn trong cuộc sống.
Hà Nội, ngày 28 tháng 9 năm 2016
Học viên
Đặng Xuân Đích
TÓM TẮT
Luận văn tập trung nghiên cứu và cải tiến các giải pháp phát hiện xâm
nhập theo thời gian thực đối với mạng Internet của vạn vật được đề xuất năm
2013 là SVELTE [6].
SVELTE thực hiện tái hiện cấu trúc mạng trên một thiết bị trung tâm,
thiết bị trung tâm này là nơi trung gian gửi nhận dữ liệu giữa các thiết bị bên
trong và mạng Internet bên ngoài. Việc tái tái hiện cấu trúc được thực hiện
dựa trên các thông tin từ các thiết bị trong mạng gửi về cho thiết bị trung tâm.
Trong quá trình gửi nhận thông tin, do việc mất mát gói tin hoặc do một cuộc
tấn công trong mạng, sự không nhất quán về thông tin giữa các thiết bị có thể
xảy ra. Một trong những module của SVELTE giải quyết vấn đề này. Luận
văn tập trung vào cải tiến thuật toán phát hiện sự không nhất quán về thông
tin của các thiết bị trong mạng bằng kỹ thuật gán nhãn thời gian vector [1].
Tôi tự gọi hệ thống cải tiến với tên là SVELTE-VC.
Kết quả mô phỏng cho thấy thuật toán cải tiến đã có hiệu quả so với
phương pháp cũ. Tỉ lệ phát hiện thành công các cuộc tấn công vẫn giữ được
như trong SVELTE trong khi tỉ lệ phát hiện sai đã giảm xuống đáng kể.
Từ khóa: SVELTE, IDS, Internet of Things
ABSTRACT
My graduation thesis will present an improvement to intrusion
detection system in the Internet of Things, SVELTE [6] that was introduced
in 2013.
SVELTE reconstructs the network topology on a control device, this
device functions as sending and receiving data centre among internal and
external network nodes.
The reconstruction is based on informations that the control device has
received from internal network devices. When transfer is in progress, because
of the loss of information or network attacks, the inconsistency of
informations among devices would happen. Therefore, a module in SVELTE
was created to solve this problem. My Thesis proposes an improvement to the
inconsistent information detection algorithm in SVELTE, using a novel
vector clock timestamp technique [1]. Improved system is also called
SVELTE-VC.
The simulation results indicate that our improved system has achieved
better performance: the detection rate for attack is the same as SVELTE's
while the wrong alarm rate significantly reduces.
Keyword: SVELTE, IDS, IoT
Lời cam đoan
Tôi xin cam đoan những vấn đề được trình bày trong luận văn về xây
dựng hệ thống phát hiện xâm nhập theo thời gian thực trong mạng Internet
của vạn vật là do sự tìm hiểu của cá nhân dưới sự hướng dẫn của Tiến sĩ
Nguyễn Đại Thọ.
Tất cả những tham khảo từ các nghiên cứu liên quan đều được trích
dẫn, nêu rõ nguồn gốc một cách rõ ràng từ danh mục tài liệu tham khảo trong
luận văn. Trong luận văn này, tôi cam đoan không sao chép nguyên bản tài
liệu, công trình nghiên cứu của người khác mà không chỉ rõ về tài liệu tham
khảo.
Hà Nội, ngày 28 tháng 9 năm 2016
Học viên
Đặng Xuân Đích
MỤC LỤC
1. MỞ ĐẦU .................................................................................................... 1
1.1 Bối cảnh chung .................................................................................... 1
1.2 Các công trình nghiên cứu liên quan ................................................ 3
1.3 Mục đích của luận văn ........................................................................ 3
1.4 Kết quả đạt được ................................................................................. 4
1.5 Cấu trúc của luận văn ......................................................................... 4
2. HỆ THỐNG PHÁT HIỆN XÂM NHẬP SVELTE .......................... 5
2.1 Định tuyến trong RPL và cơ chế tấn công sinkhole........................ 5
2.2 Các thành phần phát hiện xâm nhập trong SVELTE ...................... 7
2.2.1 6LoWPAN Mapper ................................................................ 7
2.2.2 6LoWPAN Client ................................................................ 12
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 ........................................................ 14
3.1 Hạn chế của SVELTE....................................................................... 14
3.2 Cải tiến SVELTE sử dụng nhãn thời gian Vector ......................... 17
3.2.1 Khái niệm đồng bộ hóa tiến trình ........................................ 17
3.2.2 Xác định trật tự cho các sự kiện trong hệ phân tán ............. 17
3.2.3 Thiết lập nhãn thời gian Vector trong SVELTE.................. 21
4. MÔ PHỎNG ........................................................................................... 27
4.1 Cài đặt và cấu hình ............................................................................ 27
4.2 Kịch bản mô phỏng ........................................................................... 28
4.3 Kết quả mô phỏng ............................................................................. 30
4.3.1 Tỉ lệ phát hiện ...................................................................... 32
4.3.2 Năng lượng tiêu thụ ............................................................. 35
5. KẾT LUẬN VÀ PHƢƠNG HƢỚNG PHÁT TRIỂN .................... 38
6. TÀI LIỆU THAM KHẢO ................................................................... 39
7. PHỤ LỤC ................................................................................................ 41
BẢNG CÁC KÝ HIỆU, CHỮ VIẾT TẮT
Viết tắt
Tiếng Anh
Tiếng Việt
IoT
Internet of Things
Mạng Internet của vạn vật
6LoWPAN
IPv6 over Low-power Wireless
Personal Area Network
Mạng các thiết bị không
dây năng lượng thấp
6BR
6LoWPAN Border Router
Thiết bị định tuyến biên
của 6LoWPAN
IDS
Intrusion detection system
Hệ thống phát hiện xâm
nhập
6Mapper
6LoWPAN Mapper
Tên một module trong hệ
thống SVELTE
RPL
Giao thức định tuyến cho
Routing Protocol for Low Power mạng tổn hao năng lượng
and Lossy Network
thấp và mạng cảm biến
không dây
DAG
Directed Acyclic Graph
Đồ thị có hướng đi không
tuần hoàn
DAG ROOT
Directed Acyclic Graph ROOT
Gốc đồ thị có hướng đi
không tuần hoàn
Destination-Oriented DAG
Đồ thị có hướng đi không
tuần hoàn có điểm đến
được định hướng
DODAG
DANH SÁCH HÌNH VẼ
Hình 1.1 - Ví dụ mạng Internet of Things......................................................... 1
Hình 2.1 - Chọn Node cha (parent) trong thuật toán định tuyến RPL .............. 6
Hình 2.2 - Cơ chế tấn công của sinkhole attack................................................ 6
Hình 2.3 – Hệ thống phát hiện xâm nhập SVELTE ......................................... 7
Hình 2.4 - Cấu trúc mapping request packet..................................................... 8
Hình 2.5 – Luồng xử lý dữ liệu trong SVELTE ............................................... 9
Hình 2.6 - Cấu trúc mapping response packet ................................................ 13
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 ........................................................................................................ 15
Hình 3.2 – Ví dụ về sự cập nhật Logic Lamport timestamp ........................... 20
Hình 3.3 – Ví dụ về sự cập nhật nhãn thời gian Vector ................................ 21
Hình 3.4 – Cấu trúc mapping response packet sử dụng nhãn thời gian vector ..... 22
Hình 3.5 – Ví dụ mô phỏng phát hiện không nhất quán do bản thân mạng. .. 25
Hình 4.1 - Giao diện của chương trình cooja trên ubuntu .............................. 28
Hình 4.2 - Đặt tên thư mục để chạy SVELTE-VC ......................................... 28
Hình 4.3 - Mô phỏng với 8 Node, trong đó có 1 Node bị attacker điều khiển 29
Hình 4.4 - Mô phỏng với 16 Node, trong đó có 2 Node bị attacker điều khiển... 30
Hình 4.5 - Mô phỏng với 32 Node, trong đó có 4 Node bị attacker điều khiển... 30
Hình 4.6 - Mô phỏng sinkhole attack với 26 node mạng............................... 31
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 ... 32
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 . 33
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 . 33
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 .. 34
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. 34
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. 34
Hình 4.13 – Năng lượng sử dụng của toàn mạng trong 30 phút ..................... 36
Hình 4.14 – Điện năng sử dụng trung bình của các node trong 30 phút ........ 36
Luận văn thạc sĩ CNTT
Đặng Xuân Đích
1. MỞ ĐẦU
1.1 Bối cảnh chung
IoT là thuật ngữ khoa học dùng để chỉ ra những đối tượng có thể được
nhận biết (identifiable) cũng như chỉ sự tồn tại của chúng trong một kiến trúc
mang tính kết nối. Cụm từ này được đưa ra bởi Kevin Ashton vào năm 1999.
Ông là một nhà khoa học đã sáng lập ra Trung tâm Auto-ID ở đại học MIT, nơi
thiết lập các quy chuẩn toàn cầu cho RFID (một phương thức giao tiếp không
dây dùng sóng radio) cũng như một số loại cảm biến khác. IoT sau đó cũng
được dùng nhiều trong các ấn phẩm đến từ các hãng và nhà phân tích.
Hình 1.1 - Ví dụ mạng Internet of Things
Internet of Things đang phát triển mạnh mẽ, nhận được nhiều sự quan tâm.
Dưới đây là một số dự đoán từ những chuyên gia của Businessinsider, một blog
tài chính nổi tiếng, dự đoán về tương lai của IoT:
- Internet of Things sẽ là thị trường thiết bị lớn nhất trên thế giới. Vào năm
2019 số lượng thiết bị IOT sẽ gấp đôi tổng số smartphone, PC, tablet, thiết
bị đeo thông minh wearable cộng lại.
1
Luận văn thạc sĩ CNTT
Đặng Xuân Đích
- IOT sẽ mang lại 1700 tỷ USD giá trị gia tăng cho nền kinh tế toàn cầu
trong năm 2019. Con số này bao gồm phần cứng, phần mềm, chi phí lắp
đặt, dịch vụ quản lý, và giá trị kinh tế gia tăng.
- Giá trị của các thiết bị IOT sẽ chạm mốc 6,7 tỷ USD vào năm 2019.
Trong đó doanh thu từ phần cứng sẽ chỉ chiếm 8% - khoảng 50 triệu
USD, các nhà sản xuất phần mềm và các công ty cơ sở hạ tầng sẽ thu lợi
nhiều hơn từ cổ phiếu IOT.
- Sự tăng trưởng của IOT sẽ mang lại hiệu quả lớn và chi phí thấp hơn tại
nhà, nơi làm việc và các thành phố trong tương lai. Tuy nhiên, việc sử
dụng các thiết bị điện tử trong hệ thống an ninh vẫn là một vấn đề nan
giải.
- Nền tảng IOT đang thiếu một chuẩn công nghệ và tiêu chuẩn chung để
tương thích và sử dụng với các thiết bị. Hiện nay có rất ít các tiêu chuẩn
(hoặc quy định) cho những thiết bị chạy trên nền tảng này. Vấn đề cấp
bách nhất là phải chuẩn hoá các nền tảng IOT và giải quyết những vấn đề
an ninh hiện tại.
(Trích, genk.vn – Internet of Things sẽ thế nào trong 5 năm tới)
Rõ ràng, IoT có thể thay đổi hoàn toàn cách sống của con người trong
tương lai. Khi mọi thứ đã được “Internet hóa”, người dùng hoàn toàn có thể điều
khiển chúng từ bất cứ đâu, chỉ cần một chiếc điện thoại có kết nối Internet.
Nhưng đây cũng là một thách thức cho các nhà quản lý, một khi “vạn vật” được
kết nối, thì tính bảo mật sẽ bị đặt dấu hỏi lớn và trở nên quan trọng.
Các thiết bị trong mạng IoT kết nối với nhau thông qua một thiết bị điều
khiển, thiết bị điều khiển này có thể là một máy tính, smartphone,... Các thiết bị
này có khả năng kết nối trực tiếp ra Internet, sẽ dễ dàng cho những kẻ tấn công
sử dụng chính mạng Internet đó xâm nhập và tấn công các thiết bị trong mạng.
Do IoT là mạng kết nối mà các phần tử sẽ truyền tải thông tin, giao tiếp với
nhau, vì thế việc truyền tải gói tin cần được bảo vệ chặt chẽ. Mặc dù giải pháp
mã hóa và xác thực đã được thực hiện trong IoT nhưng IoT vẫn bị ảnh hưởng
nặng bởi một số kiểu tấn công đặc biệt như sinkhole attack, selective forwarding
attack... Vì thế cần có một giải pháp chống lại các kiểu tấn công dạng này. Giải
2
Luận văn thạc sĩ CNTT
Đặng Xuân Đích
pháp phổ biến nhất hiện này là triển khai hệ thống phát hiện xâm nhập theo thời
gian thực trong mạng Internet của vạn vật.
1.2 Các công trình nghiên cứu liên quan
Trên thế giới hiện nay, cũng có một số hệ thống phát hiện xâm nhập theo
thời gian thực đã được đề xuất, ví dụ như:
- RIDES [7], một hệ thống phát hiện xâm nhập trong mạng cảm biến không
dây dựa trên chữ ký.
- Phát hiện xâm nhập DoS trong mạng 6LoWPan [8] hay SVELTE, một hệ
thống phát hiện xâm nhập theo thời gian thực phát hiện các cuộc tấn công
sinkhole đã được kiểm chứng qua mạng giả lập.
SVELTE triển khai trên mạng IoT sử dụng Ipv6 để định danh các thiết bị
trong mạng và được định tuyến bằng giao thức RPL. IoT được gọi là mạng cho
các thiết bị năng lượng thấp (6LoWPAN), thiết bị chuyển tiếp gói tin từ các thiết
bị trong mạng ra ngoài được gọi là 6BR. SVELTE được cài đặt trên 6BR và trên
các node, module chạy trên các node có nhiệm vụ gửi thông tin về cho 6BR,
module trên 6BR nhận thông tin và phân tích các thông tin để đưa ra các cảnh
báo. Hệ thống SVELTE được đề xuất có tỉ lệ phát hiện khá cao, đặc biệt với
những mạng nhỏ. Tuy nhiên, SVELTE cũng có một hạn chế là không thể phân
biệt được sự không nhất quán thông tin của các node báo về cho 6Mapper là do
bản thân mạng hay do cuộc tấn công từ bên ngoài.
1.3 Mục đích của luận văn
Sự không nhất quán thông tin trong mạng có thể bị gây ra bởi việc gửi
nhận gói tin không đồng thời trong SVELTE hoặc do kẻ tấn công cố tình gửi
thông tin sai lệch. Thuật toán phát hiện sự không nhất quán của SVELTE dựa
vào thông tin khai báo bởi số đông hàng xóm so với thông tin của node đó để
đưa ra quyết định về sự không nhất quán. Thuật toán này có nhược điểm đó là
không xác định được thông tin sai lệch là do kẻ tấn công gây ra hay do việc gửi
nhận thông tin trong mạng gây ra. Vì thế, luận văn tập trung cải tiến thuật toán
này dựa vào kỹ thuật gán nhãn thời gian vector. Kết quả cho thấy thuật toán mới
chạy ổn định và thu được kết quả tốt hơn.
3
Luận văn thạc sĩ CNTT
Đặng Xuân Đích
1.4 Kết quả đạt đƣợc
SVELTE được chạy mô phỏng trên Contiki OS, hệ điều hành chuyên để
mô phỏng các thiết bị nhúng không dây.
Mô phỏng được chạy với mạng có 8 node, 16 node, 32 node trong 5 phút,
10 phút, 20 phút, 30 phút với một số lần nhất định để tìm ra được tỉ lệ phát hiện
đúng các cuộc tấn công trong mạng.
Kết quả đã phát hiện được các kiểu tấn công sinkhole attack với tỉ lệ phát
hiện đúng tương đương SVELTE trong khi tỉ lệ phát hiện sai đã giảm so với hệ
thống cũ.
1.5 Cấu trúc của luận văn
Phần tiếp theo của luận văn được tổ chức như sau:
- Chƣơng 2: Hệ thống phát hiện xâm nhập SVELTE
Chương này mô tả cấu trúc, thuật toán của SVELTE và hạn chế của
thuật toán gốc.
- Chƣơng 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
Chương này đi sâu phân tích, thiết kế giải thuật, đưa ra các giả mã
của thuật toán sử dụng kĩ thuật gán nhãn thời gian vector để phát hiện các
sự sai khác là do bản thân mạng hay do cuộc tấn công sinkhole. Trình bày
ưu điểm của giải thuật cải tiến.
- Chƣơng 4: Mô phỏng
Chương này đưa ra hướng dẫn cài đặt mô phỏng SVELTE-VC, đưa
ra các giả thiết, trường hợp trong mô phỏng. Đồng thời, trong chương này
cũng đưa ra các biểu đồ, so sánh kết quả với kết quả cũ đã được kiểm
chứng.
- Chƣơng 5: Kết luận và phƣơng hƣớng phát triển
Chương này tóm lược nội dung luận văn, đề xuất những hướng phát
triển của đề tài.
4
Luận văn thạc sĩ CNTT
Đặng Xuân Đích
2. HỆ THỐNG PHÁT HIỆN XÂM NHẬP SVELTE
SVELTE được cài đặt trên mạng của các thiết bị hạn chế về tài nguyên kết
nối với mạng Internet thông qua giao thức Ipv6 để định danh 6LoWPAN. RPL
được sử dụng làm giao thức định tuyến trong hệ thống.
SVELTE có ba module chính. Module đầu tiên là 6LoWPAN Mapper,
module được cài trên 6BR với nhiệm vụ phân tích, phát hiện xâm nhập trong
mạng từ dữ liệu thu thập được và phát hiện xâm nhập, module này sẽ được trình
bày trong phần 2.2.1. Module thứ hai là 6LoWPAN Client, được cài đặt trên các
node, có nhiệm vụ thu thập thông tin của các node hàng xóm và gửi về cho
6Mapper, module này sẽ được trình bày trong phần 2.2.2. Module cuối cùng là
hệ thống tường lửa được thiết kế để lọc các gói tin không muốn truyền tải trong
mạng, nhưng do luận văn nghiên cứu và cải tiến hệ thống phát hiện xâm nhập,
nên việc triển khai tường lửa không được đề cập tới.
Nhưng trước hết, để hiểu được hệ thống phát hiện xâm nhập, ta phải hiểu
cơ chế định tuyến và tấn công trong RPL.
2.1 Định tuyến trong RPL và cơ chế tấn công sinkhole
DAG [13] [14] là một topo mạng mà mọi kết nối giữa các phần tử (Node)
trong DAG đều có hướng hướng về DAG ROOT và đảm bảo không tạo ra các
vòng lặp trong DAG. RPL [13] [14] sử dụng DAG để định tuyến, 6BR chính là
DAG ROOT trong RPL, các thiết bị là các Node trong RPL. Thuật toán định
tuyến này sử dụng một giá trị gọi là rank để xác định tuyến đường từ node cần
gửi tin tới DAG ROOT. DAG ROOT sẽ có rank nhỏ nhất, càng ra xa, các node
sẽ có rank càng cao, node sẽ chọn node bên cạnh (node hàng xóm – node
neighbor) có rank nhỏ nhất làm node chuyển tiếp gói tin (node cha – node
parent).
5
Luận văn thạc sĩ CNTT
Đặng Xuân Đích
Hình 2.1 - Chọn Node cha (parent) trong thuật toán định tuyến RPL
Sinkhole attack [3] là kiểu tấn công mà node bị kẻ tấn công điều khiển
khai báo sai lệch rank nhằm mục đích đánh lừa các node trong mạng chuyển tiếp
gói tin qua node đó tức là chọn node đó làm node cha. Kiểu tấn công này có thể
kết hợp với selective forwarding attack [3]. Sự kết hợp giữa hai kiểu tấn công
này gây hậu quả rất nghiêm trọng cho mạng, có thể một phần lớn mạng không
thể giao tiếp với mạng Internet bên ngoài.
Hình 2.2 - Cơ chế tấn công của sinkhole attack
6
Luận văn thạc sĩ CNTT
Đặng Xuân Đích
SVELTE tập trung vào phát hiện kiểu tấn công trên dựa vào việc phân tích
các thông tin về rank do các Node trong mạng gửi về. SVELTE được cài đặt
trên cả 6BR và các node trong mạng, đây là mô hình của SVELTE:
Hình 2.3 – Hệ thống phát hiện xâm nhập SVELTE
Module cài trên 6BR được gọi là 6LoWPAN Mapper (6Mapper), 6Mapper
có nhiệm vụ thu thập thông tin về mạng do các node báo lại, phân tích đưa ra
các cảnh báo về các cuộc tấn công trong mạng. Module cài trên các Node gọi là
6Mapper client, module này chỉ có nhiệm vụ thu thập thông tin và gửi về cho
6Mapper.
Khi nhận được các thông tin của các node, 6Mapper bắt đầu phân tích các
gói tin bằng các giải thuật như phát hiện sự không nhất quán thông tin trong
mạng, phát hiện mâu thuẫn giữa quan hệ cha-con trong mạng, ...
1.
1.1.
2.2 Các thành phần phát hiện xâm nhập trong SVELTE
2.2.1 6LoWPAN Mapper
Module này còn được gọi tắt là 6Mapper. Nó thực hiện nhiệm vụ tái hiện
lại cấu trúc mạng tại 6BR, tức là xây dựng lại thông tin của các node trên 6BR
bằng các cấu trúc dữ liệu định sẵn.
Để tái hiện lại cấu trúc của của mạng, 6Mapper sẽ gửi đi các gói tin yêu
cầu lấy thông tin tới tất cả các node (còn gọi là Mapping request packet). Các
7
Luận văn thạc sĩ CNTT
Đặng Xuân Đích
gói tin này bao gồm các thông tin: RPL Instance ID (IID), DODAG ID,
DODAG version, timestamp.
IID
DODAG
ID
DODAG VERSION
TIMESTAMP
Hình 2.4 - Cấu trúc mapping request packet
-
Trong đó:
IID: IID của 6BR.
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ể sử dụng các giải pháp mã hóa và xác thực gói tin, nhưng để
đơn giản phần cài đặt mô phỏng, giả thiết gói tin đã được mã hóa và xác thực.
Nếu trong thực tế khi triển khai hệ thống, hệ thống mà có cài đặt thêm
việc xác thực gói tin thì trường DODAG ID không cần được thêm vào gói tin
Mapping request do việc xác nhận đã chứa thông tin về nguồn gửi gói tin.
6Mapper dựa vào các thông tin nhận được từ các node gửi tới để phân tích
đưa ra nhận định về việc mạng có là mục tiêu của cuộc tấn công nào hay không.
Sự không nhất quán trong khi xây dựng lại cấu trúc của mạng tại 6BR có
thể xảy ra, điều đó có thể gây ra cảnh báo sai lầm trong hệ thống. Sự không nhất
quán này có thể xảy ra khi thông tin về một node quá cũ hoặc do kẻ tấn công cố
tình gửi thông tin sai lệch.
Luồng xử lý thông tin trong SVELTE
Dữ liệu được xử lý với 3 thuật toán: phát hiện và hiệu chỉnh thông tin
không nhất quán giữa các node, phát hiện các node có thông tin quá hạn (out of
date), phát hiện bất thường giữa quan hệ cha-con. Sau khi dữ liệu được phân
tích, hệ thống sẽ đưa ra cảnh báo về các node có dấu hiệu bất thường.
8
Luận văn thạc sĩ CNTT
Thông
tin node
Đặng Xuân Đích
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
Cảnh
báo
Phát hiện bất thường giữa node cha và con
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ị chiếm quyền điểu
khiển bởi kẻ tấn công thông qua nhiều cách. Khi node bị chiếm quyền điều
khiển, kẻ tấn công có thể chỉ định node đó gửi các thông tin sai lệch về rank của
node đó hoặc rank của hàng xóm cho 6Mapper. Thông tin sai lệch này cũng có
thể bị gây ra bởi sự mất mát gói tin, do mạng Internet của vạn vật là mạng không
dây của các thiết bị năng lượng thấp (thường là chạy bằng pin), nên việc mất
mát gói tin là không tránh khỏi. Vì thế việc phát hiện sự không nhất quán về
thông tin của các node và sửa lại thông tin đó rất quan trọng. Giải thuật dưới đây
giải quyết vấn đề trên. Sau đây là mã giả của giải thuật:
Giải thuật (GT1):
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
9
Luận văn thạc sĩ CNTT
Đặng Xuân Đích
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 về thông tin trong mạng
dựa vào sự tích lũy số lần thông tin không nhất quán của các node. Vòng lặp đầu
tiên kiểm tra thông tin không nhất quán. Mỗi node được tái hiện trên 6BR bởi
một cấu trúc dữ liệu. Mỗi cấu trúc dữ liệu biểu diễn một node sẽ có một biến
fault. Nếu sự chênh lệch về rank của node đó do node đó báo cáo với 6Mapper
và do hàng xóm của node đó báo cáo với 6Mapper lớn hơn 20% trung bình của
hai giá trị thì biến fault được cộng thêm 1 tại cả hai node. Vòng lặp thứ hai kiểm
tra biến fault của các node, biến fault của node nào vượt ngưỡng cho phép, node
đó sẽ bị đánh giá là không nhất quán thông tin so với thực tế, thông tin về rank
của node đó sẽ được sửa theo thông tin của bất kỳ hàng xóm nào báo về. Con số
20% trung bình của hai giá trị rank được tác giả đưa ra qua kết quả thực nghiệm
trong mạng từ 8 đến 32 node, con số này có thể bị thay đổi với các mạng có số
cấu trúc mạng khác.
Thuật toán (GT1) có nhược điểm không phân biệt được thông tin không
nhất quán do kẻ tấn công gây ra hay do sự truyền tải gói tin trong mạng. Việc
phát hiện do việc truyền tải gói tin trong mạng hoàn toàn có thể xác định được
bằng 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 còn hoạt động trong mạng rất quan trọng. Ví dụ,
khi có cuộc tấn công selective forwarding trong mạng, node bị chiếm quyền điểu
khiển có thể chặn tất cả các gói tin, chỉ cho gói tin định tuyến RPL đi qua.
Chúng ta có thể dựa vào bảng định tuyến RPL tại node root để kiểm tra các node
còn hoạt động hay không. Việc kiểm tra cần sử dụng một danh sách trắng W,
10
Luận văn thạc sĩ CNTT
Đặng Xuân Đích
danh sách các node đã biết thông tin bởi 6Mapper là M. Kết quả của việc kiểm
tra sẽ là danh sách các node bị lọc F.
Giải thuật (GT2):
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 trên, một vòng lặp được tạo ra để duyệt hết các node trong
danh sách trắng, nếu node đó là node 6Mapper đã biết thông tin và thời gian gửi
thông tin của node đó quá một ngưỡng thì node đó sẽ được thêm 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.
Một kẻ tấn công có thể thực hiện sinkhole attack để quảng bá tuyến đường
ngắn nhất cho các hàng xóm để gửi các gói tin. Nếu kiểu tấn công này kết hợp
với các kiểu tấn công khác như selective forwarding attack thì hậu quả rất
nghiêm trọng, một lượng lớn gói tin trong mạng có thể không được gửi đi.
SVELTE có thể phát hiện hầu hết các cuộc tấn công sinkhole attack bằng
việc phân tích cấu trúc mạng. Trong RPL, rank sẽ tăng dẫn từ root, vì thế rank
của node cha luôn luôn nhỏ hơn node con. Với mọi trường hợp, rank của node
cha lớn hơn rank của node con đều là dấu hiệu của cuộc tấn công sinkhole
attack.
Việc phát hiện sai hoàn toàn có thể xảy ra, vì thế cần đặt ra một ngưỡng số
lần phát hiện rank của node đó nhỏ hơn rank của cha, nếu vượt ngưỡng thì hệ
11
Luận văn thạc sĩ CNTT
Đặng Xuân Đích
thống sẽ đưa ra cảnh báo. Sau đây là giải thuật phát hiện sai lệch thông tin trong
quan hệ cha-con:
Giải thuật (GT3):
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 thứ nhất để kiểm tra sự sai lệch về rank giữa node con và node
cha. Biến toàn cục fault sẽ được tăng nếu có sự sai lệch đó. Khi sự sai lệch vượt
quá ngưỡng đặt ra trước thì cảnh báo sẽ được đưa ra.
Giải thuật này phát hiện hầu hết các cuộc tấn công sinkhole attack. Kẻ tấn
công khi thực hiện sinkhole attack sẽ quảng bá rank của node bị điều khiển nhỏ
hơn rank của node cha, vì thế thuật toán cho kết quả tốt. Nếu kẻ tấn công quảng
bá rank lớn hơn rank của node cha, điều này không có ý nghĩa nhiều về việc
định tuyến các gói tin qua nó.
2.2.2 6LoWPAN Client
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.
12
- Xem thêm -