Giải pháp chống tấn công lỗ đen

Một phần của tài liệu An toàn mạng AD HOC (Trang 64)

3.2.1. Phƣơng pháp nghiên cứu

65

Trong quá trình thực hiện đề tài, tôi đã nghiên cứu cải tiến giao thức AODV sử dụng trong mạng ad-hoc trước nguy cơ bị tấn công lỗ đen. Giao thức mới xây dựng cần đảm bảo những yêu cầu sau:

 Giảm thiểu những tổn hại có thể gây nên cho mạng khi bị tấn công.

 Giao thức cần xây dựng đơn giản, không tiêu tốn nhiều tài nguyên của mạng.

 Hoạt động ổn định khi không bị tấn công.

Các bước tiến hành nghiên cứu giao thức chống tấn công lỗ đen:  Bước 1: Khảo sát:

 Các giải pháp chống tấn công lỗ đen trên thế giới.  Công cụ mô phỏng hợp lý.

 Bước 2: Thiết kế giải pháp, xây dựng các kịch bản mô phỏng.  Bước 3: Mô phỏng kiểm chứng giải pháp thiết kế

 Kết quả không tốt quay về bước 2.

 Thiết kế hoàn thành khi kết quả thu được đáp ứng tốt những yêu cầu đặt ra.

3.2.2. Khảo sát các nghiên cứu liên quan

Hiện nay, có rất nhiều nghiên cứu giải pháp chống tấn công lỗ đen trong mạng không dây đã được công bố. Việc khảo sát, phân tích các nghiên cứu đó hết sức cần thiết trong quá trình xây dựng giải pháp chống tấn công lỗ đen phù hợp với mạng ad-hoc và phạm vi của đề tài.

Trong tài liệu [10], tác giả đã thực hiện loại gói tin trả lời đầu tiên nhận được tại nút nguồn. Giải pháp được tác giả đưa ra do khi nút lỗ đen khi nhận bản tin yêu cầu sẽ ngay lập tức gửi lại bản tin trả lời cho nút nguồn mà không kiểm tra bảng định tuyến. Khi đó, bản tin trả lời từ nút độc có thể sẽ tới nút nguồn đầu tiên. Tuy

66

nhiên, khi nút đích ở gần nút nguồn hơn nhiều nút độc thì vấn đề sẽ không được giải quyết. Do đó, hiệu suất của giải pháp này tương đối thấp.

Trong tài liệu [8], tác giả đã đưa ra giải pháp xác định một giá trị số tuần tự đích ngưỡng. Giá trị này được xác định từ nội dung lưu trữ các thông tin về tuyến trước đó. Một nút gửi bản tin trả lời có số tuần tự đích lớn hơn giá trị ngưỡng sẽ được xác định là nút lỗ đen. Nút nhận được bản tin trả lời từ nút lỗ đen sẽ hủy gói tin đó và gửi cảnh báo tới tất cả các nút trong mạng. Khi đó, tất cả các bản tin đến từ nút độc sẽ bị từ chối. Giải pháp đưa ra có hiệu suất cao, tuy nhiên lại tiêu tốn tài nguyên khi cần lưu trữ các thông tin định tuyến để xác định giá trị ngưỡng và việc phải gửi thêm gói tin cảnh báo.

Trong tài liệu [11], nút nguồn lưu trữ tất cả các gói tin trả lời nhận được trong một khoảng thời gian xác định trước. Sau đó, số tuần tự đích lớn nhất trong danh sách lưu trữ các bản tin trả lời sẽ bị loại bỏ. Trong kết quả của giải pháp [11] được công bố, tỷ lệ gói tin nhận thành công rất cao, tuy nhiên giải pháp lại gặp phải vấn đề trễ truyền dẫn và lưu trữ do thực hiện lưu các bản tin trả lời trước khi xử lý.

Các giải pháp trên đưa ra đã giúp hạn chế ảnh hưởng của phương thức tấn công lỗ đen tới hoạt động của mạng. Hai giải pháp trong tài liệu [8], [11] đạt được hiệu quả cao nhưng lại gây tiêu tốn tài nguyên mạng do đó việc áp dụng các giải pháp này trong mạng ad-hoc sẽ thiếu tính hợp lý.

3.2.3. Xây dựng giải pháp chống tấn công lỗ đen

Sau quá trình tìm hiểu phương thức tấn lông lỗ đen và các giải pháp đã được công bố, tôi đã xác định đặc điểm hạn chế trong AODV khi các nút nhận các bản tin trả lời. Nút nhận bản tin RREP sẽ kiểm tra giá trị số tuần tự đích của gói tin nó nhận được. Nút này sẽ chấp nhận bản tin RREP nếu nó có số tuần tự cao hơn số tuần tự trong bảng định tuyến của nó. Do vậy, bản tin trả lời của nút lỗ đen với số tuần tự cao sẽ được chấp nhận và nút bị hại sẽ gửi dữ liệu cho nút lỗ đen đó mà không có phương thức phòng vệ nào.

67

tuần tự của bản tin trả lời một nút nhận được với một giá trị ngưỡng. Giá trị ngưỡng này sẽ được khởi tạo là giá trị số tuần tự lớn nhất trong bảng định tuyến của nút đó. Sau đó, mỗi khi nhận được bản tin RREP có số tuần tự lớn hơn giá trị ngưỡng hiện thời, giá trị ngưỡng sẽ được cập nhật bằng giá trị RREP vừa nhận được. Khi một nút nhận được bản tin RREP có số tuần tự đích lớn hơn giá trị ngưỡng, bản tin đó sẽ bị hủy và địa chỉ của nút gửi bản tin đó sẽ được đưa vào một danh sách đen của nút đó. Bất cứ bản tin RREP nào được gửi từ một nút trong danh sách đen sẽ không được chấp nhận.

68

Bằng phương pháp này, các nút đen với số tuần tự đích cao sẽ bị cô lập và hạn chế tác động của chúng tới mạng cảm biến. Việc thực hiện cải tiến giao thức này cũng tiêu tốn ít tài nguyên mạng khi chỉ đưa thêm vào một danh sách đen để kiểm tra và không phát sinh gói tin mới.

Giải pháp đưa ra có chung ý tưởng xác định nút độc từ đặc điểm số tuần tự đích cao của chúng như ở tài liệu [8], [11]. Hai giải pháp này có hiệu suất cao và khá toàn diện, tuy nhiên lại khó ứng dụng trong mạng cảm biến. Bên cạnh đó, giải pháp tôi đưa ra vẫn có thể chống lại phương thức tấn công lỗ đen thực hiện với số tuần tự đích cao nhưng lại phù hợp với mạng ad-hoc với đặc điểm tài nguyên hạn chế.

3.3. Thiết kế mô phỏng

Khi nghiên cứu, đánh giá hiệu năng mạng ad-hoc khi xây dựng những giao thức mới, việc mô phỏng hệ thống trước khi triển khai phát triển là rất cần thiết. Việc triển khai thực tế trong quy mô phòng thí nghiệm chỉ cho phép thực hiện ở quy mô nhỏ và yêu cầu chi phí đầu tư. Do đó, việc thực hiện mô phỏng với nhiều thông số đầu vào biến đổi giúp ta có những đánh giá tương đối chính xác về chất lượng sản phẩm. Hiện nay, hầu hết các nghiên cứu trong mạng ad-hoc nói chung và mạng ad-hoc nói riêng đều sử dụng các công cụ mô phỏng trước khi phát triển trên các hệ thống thực tế. Trong quá trình thực hiện, tôi sử dụng công cụ NS-2 để thực hiện mô phỏng, đánh giá hiệu năng của mạng.

3.3.1. Giới thiệu công cụ mô phỏng mạng NS-2

NS (Phiên bản 2) là phần mềm mô phỏng mạng điều khiển sự kiện riêng rẽ hướng đối tượng, được phát triển tại UC Berkely, viết bằng ngôn ngữ C++ và OTcl. Nó thực thi các giao thức mạng như giao thức điều khiển truyền tải (TCP) và giao thức gói người dùng (UDP); các dịch vụ nguồn lưu lượng như Giao thức truyền tập tin (FTP), Telnet, Web, Tốc độ bit cố định (CBR) và Tốc độ bit thay đổi (VBR) ; các kỹ thuật quản lý hàng đợi như Vào trước Ra trước (Drop Tail), Dò sớm ngẫu nhiên (RED) và CBQ; các thuật toán định tuyến như Dijkstra… NS cũng thực thi

69

multicasting và vài giao thức lớp Điều khiển truy cập đường truyền (MAC) đối với mô phỏng LAN.

3.3.1.1. Kiến trúc NS-2

Hình 3.4. Tổng quan về NS dưới góc độ người dùng Bảng 3.1. Các thuật ngữ trong NS 2

OTcl Script Kịch bản OTcl

Simulation Program Chương trình Mô phỏng

OTcl Bộ biên dịch Tcl mở rộng hướng đối tượng

NS Simulation Library Thư viện Mô phỏng NS

Event Scheduler Objects Các đối tượng Bộ lập lịch Sự kiện

Network Component Objects Các đối tượng Thành phần Mạng

Network Setup Helping Modules Các mô đun Trợ giúp Thiết lập Mạng

Plumbling Modules Các mô đun Plumbling

70

Analysis Phân tích

NAM Network Animator Minh họa Mạng NAM

NS là bộ biên dịch Tcl mở rộng hướng đối tượng, bao gồm bộ lập lịch sự kiện, các đối tượng thành phần mạng và các modul trợ giúp thiết lập Mạng (hay các mô đun Plumbing).

Để sử dụng NS-2, user lập trình bằng ngôn ngữ kịch bản OTcl. User có thể thêm các mã nguồn Otcl vào NS-2 bằng cách viết các lớp đối tượng mới trong OTcl. Những lớp này khi đó sẽ được biên dịch cùng với mã nguồn gốc.

Thuật ngữ plumbing được dùng để xây dựng các đường dữ liệu giữa các đối tượng mạng bằng cách thiết lập con trỏ “neighbour” cho một đối tượng để chỉ đến địa chỉ của đối tượng tương ứng. Mô đun plumbing OTcl trong thực tế thực hiện việc trên rất đơn giản.

Thành phần mạng là bộ lập lịch sự kiện, bộ lập lịch sự kiện trong NS-2 thực hiện những việc sau:

 Tổ chức bộ định thời mô phỏng

 Hủy các sự kiện trong hàng đợi sự kiện  Gọi lại các thành phần mạng trong mô phỏng

Phụ thuộc vào mục đích của user đối với kịch bản mô phỏng OTcl mà kết quả mô phỏng có thể được lưu trữ như file trace. Định dạng file trace sẽ được tải vào trong các ứng dụng khác để thực hiện phân tích:

 File nam trace (file.nam) được dùng cho công cụ Minh họa mạng NAM

 File Trace (file.tr) được dùng cho công cụ Lần vết và Giám sát Mô phỏng XGRAPH hay TRACEGRAPH

71

Hình 3.5. Luồng các sự kiện cho file Tcl chạy trong NS

NAM Visual Simulation Mô phỏng ảo NAM

Tracing and Monitoring Simulation Mô phỏng Lần vết và Giám sát

3.3.1.2. Các đặc điểm NS-2

NS-2 thực thi những tính năng sau:

 Các kỹ thuật quản lý hàng đợi Router như DropTail, RED, CBQ,  Multicasting

 Mô phỏng mạng không dây

 Được phát triển bởi Sun Microsystems + UC Berkeley (Dự án Daedalus)

 Thuộc mặt đất (di động, ad-hoc, GPRS, WLAN, BLUETOOTH), vệ tinh

 Chuẩn IEEE 802.11 có thể được mô phỏng, các giao thức Mobile-IP và ad-hoc như DSR, TORA, DSDV và AODV

 Hành vi nguồn traffic – www, CBR, VBR  Các agent truyền tải – UDP, TCP

72  Luồng packet

 Mô hình mạng

 Các ứng dụng – Telnet, FTP, Ping

 Các packet tracing trên tất cả các link và trên các link xác định

3.3.2. Quản lý nhận gói tin trong AODV

Tại lớp mạng, gói tin được gửi từ lớp MAC sẽ được đưa tới hàm recv() để xử lý đầu tiên. Hàm recv() sẽ xử lý các bản tin dựa vào kiểu của chúng. Các loại bản tin điều khiển tuyến AODV sẽ được chuyển tới hàm recvAODV(). Nếu bản tin do chính nút đó tạo ra, nó sẽ thực hiện chèn thêm mào đầu IP vào bản tin để kiểm soát việc phát quảng bá. Nếu không, nó sẽ hủy gói tin nếu có vòng lặp hoặc chuyển tiếp gói tin tới nút tiếp theo.

Tại hàm recvAODV () được được mô tả chi tiết trong đoạn mã nguồn dưới đây. Hàm này có nhiệm vụ phân loại các bản tin điều khiển RREQ, RREP, RERR, HELLO để đưa tới hàm có nhiệm vụ xử lý gói tin đó.

73

3.3.3. Thiết lập giao thức mô phỏng hành vi tấn công lỗ đen

Giao thức mô phỏng hành vi của nút lỗ đen sẽ được phát triển từ giao thức gốc AODV nhưng quá trình xử lý khi nhận gói tin sẽ được thay đổi. Khi một nút cảm biến nhận được gói dữ liệu, nó sẽ chuyển tiếp gói tin đó tới đích nhưng nút lỗ đen sẽ thực hiện hủy tất cả gói dữ liệu nó nhận được. Việc sửa đổi sẽ được thực hiện tại hàm recv() khi nút độc nhận được các gói dữ liệu

void

AODV::recvAODV(Packet *p) {

struct hdr_aodv *ah = HDR_AODV(p); switch(ah->ah_type) { case AODVTYPE_RREQ: break; case AODVTYPE_RREP: break; case AODVTYPE_RERR: break; case AODVTYPE_HELLO: break; default:

fprintf(stderr, "Invalid AODV type (%x)\n", ah->ah_type); exit(1);

} }

74

Khi nhận được bản tin yêu cầu, hành vi gửi bản tin trả lời với giá trị số chặng tới đích nhỏ nhất và số tuần tự đích lớn nhất sẽ được thực hiện bởi hàm sendReply(). Bằng cách đó, bản tin trả lời của nút lỗ đen sẽ được tất cả các nút chấp nhận và thực hiện gửi dữ liệu cho nó.

3.3.4. Thiết lập giao thức giải pháp chống tấn công lỗ đen

Giao thức pAODV sẽ được thiết lập để mô phỏng giải pháp phòng chống tấn công lỗ đen như đã trình bày ở phần 3.2. Giao thức pAODV được cải tiến từ giao thức AODV nhưng được bổ sung thêm cơ chế để có khả năng chống lại phương thức tấn công lỗ đen.

Trong quá trình thiết lập giao thức mới cần thay đổi phương pháp xử lý khi nhận bản tin trả lời được thực hiện tại hàm recvReply(). Bên cạnh đó, cần tạo một bộ nhớ đệm lưu trữ danh sách các nút độc.

Quá trình quản lý danh sách đen được thực hiện bởi hai hàm:

 Hàm rrep_insert() được sử dụng để đưa những địa chỉ những nút gửi bản tin trả lời RREP có số tuần tự lớn hơn giá trị ngưỡng cho phép.

 Hàm rrep_lookup() được dùng để kiểm tra nút gửi bản tin trả lời RREP có phải nằm trong danh sách đen hay không.

if ( (u_int32_t)ih->saddr() == index) forward((blackholeaodv_rt_entry*) 0, p, NO_DELAY); else drop(p, DROP_RTR_ROUTE_LOOP); // IP Destination // Hop Count // Dest IP Address

// Highest Dest Sequence Num // Lifetime

75 pBlackList* r = rrep_lookup(rp->rp_src); if(r != NULL){

return; }

if( rp->rp_dst_seqno > smax ){ rrep_insert(rp->rp_src);

Packet::free(p); return;

}

Bản tin trả lời RREP nhận được tại một nút sẽ được chuyển đến hàm recReply() để xử lý. Trong giao thức pAODV, nút nhận được bản tin trả lời được gửi từ nút trong danh sách đen, nó sẽ thực hiện hủy bản tin đó. Nếu một bản tin có số tuần tự đích lớn hơn giá trị ngưỡng thì bản tin đó sẽ bị hủy và nút gửi bản tin sẽ bị đưa vào danh sách đen.

void

pAODV::rrep_insert(nsaddr_t id) { pBlackList *r = new pBlackList(id); assert(r);

r->expire = CURRENT_TIME + BCAST_ID_SAVE; LIST_INSERT_HEAD(&rrephead, r, link); } pBlackList* pAODV::rrep_lookup(nsaddr_t id) { pBlackList *r = rrephead.lh_first; for( ; r; r = r->link.le_next) { if (r->dst == id) return r; } return NULL; }

76

3.4. Mô phỏng và đánh giá kết quả

3.4.1. Cấu hình kịch bản

Sau quá trình thiết lập mô phỏng tấn công lỗ đen và giao thức định tuyến pAODV, tôi thực hiện cấu hình các kịch bản mô phỏng để đánh giá ảnh hưởng của tấn công lỗ đen đối với hoạt động của mạng cảm biến và hiệu quả giải pháp pAODV khi mạng bị tấn công.

Bảng 3.2. Các thông số cấu hình mô phỏng

Thông số Giá trị

Công cụ NS-2

Giao thức lớp MAC 802.11

Giao thức định tuyến AODV, pAODV

Nguồn lưu lượng CBR

Kích thước gói 1000 bytes

Tốc độ dữ liệu 10, 25, 50, 75, 100Kbps

77

Hình 3.6. Vị trí các nút trong kịch bản

Quá trình mô phỏng sẽ tập trung vào đánh giá tham số tỷ lệ phát tin thành công (PDR), được tính bởi tỷ lệ số gói tin nhận được trên tổng số gói tin gửi đi. Tham số này rất quan trọng trong quá trình đánh giá ảnh hưởng của phương thức tấn công lỗ đen do đặc điểm hủy các gói tin khi nhận được của phương thức này.

Quá trình đánh giá kết quả sẽ quan tâm tới ảnh hưởng của phương thức tấn công lỗ đen cũng như hiệu quả của giải pháp pAODV khi thay đổi tốc độ dữ liệu trong mạng đồng thời giữ nguyên kích thước gói tin. Bên cạnh đó, để các kết quả thu được mang tính khách quan, trong mỗi trường hợp tôi thực hiện xây dựng các kịch bản khác nhau khi thay đổi vị trí và thời điểm đến của các luồng lưu lượng.

3.4.2. Kết quả thu đƣợc và đánh giá

Với mỗi trường hợp tốc độ dữ liệu cụ thể, việc thực hiện mô phỏng được thực hiện nhiều lần với các kết nối thay đổi ngẫu nhiên.

78

Bảng 3.3. Tỷ lệ PDR(%) trong trường hợp tốc độ dữ liệu 10Kps

Kịch bản AODV pAODV AODV bị tấn công pAODV bị tấn công

Kịch bản 1 99,23 99,23 24,47 91,06 Kịch bản 2 99,85 99,85 25,68 80,81 Kịch bản 3 99,69 99,69 12,11 95,35 Kịch bản 4 99,07 99,07 12,38 95,88 Kịch bản 5 99,54 99,54 25,68 86,75

Một phần của tài liệu An toàn mạng AD HOC (Trang 64)

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

(83 trang)