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

Thiết kế bộ tiền xử lý cho hệ thống phát hiện xâm nhập mạng nids tốc độ cao báo cáo tổng kết kết quả đề tài khcn cấp trường msđt t khmt 2013 22

40 18 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 40
Dung lượng 0,98 MB

Các công cụ chuyển đổi và chỉnh sửa cho tài liệu này

Nội dung

Khi hệ thống NIDS nhận được gói truyền lại như vậy sẽ tưởng nhầm là gói trước đó nên không phát hiện được tấn công.. Hình 1-1 mô tả tình huống trên Hình 1-1 Tấn công vượt tường lửa Ngoà

Trang 1

ĐẠI HỌC QUỐC GIA TP HCM

TRƯỜNG ĐẠI HỌC BÁCH KHOA

Thời gian thực hiện: 05/2013 – 05/2014

Chủ nhiệm đề tài: Trần Huy Vũ

Thành phố Hồ Chí Minh – Tháng ……/20…

Trang 2

Danh sách các cán bộ tham gia thực hiện đề tài

(Ghi rõ học hàm, học vị, đơn vị công tác gồm bộ môn, khoa/ phòng ban)

1 TS Trần Ngọc Thịnh

2 ThS Trần Huy Vũ

3 ThS Trần Trung Hiếu

Trang 3

cơ bản của việc giám sát và lọc ở mức phần đầu gói dữ liệu (packet header) Tuy nhiên, không phải tất cả xâm nhập nguy hiểm đều bị ngăn chặn Điều này đòi hỏi những giải pháp an ninh mạng tốt hơn Vì vậy, hệ thống phát hiện xâm nhập mạng (Network Intrusion Detection – NIDS) đi xa thêm một bước nữa là lọc ở mức sâu hơn gói dữ liệu mạng để tìm kiếm các dấu hiệu tấn công và xâm nhập mạng NIDS khác tường lửa ở chỗ nó cho phép kiểm tra mức sâu nội dung của gói dữ liệu (packet payload) Một cách tổng quát, phần lớn NIDS tìm kiếm dựa trên một tập quy luật (rules) có sẵn Những qui luật này thường bao gồm thông tin về TCP/IP header và thường có những mẫu (patterns) của các loại hình tấn công như worm, Trojan, v.v…

Có thể nói, các hệ thống NIDS đang ngày càng chứng tỏ được vị thế trong lĩnh vực an ninh mạng Các hệ thống này có thể làm khá tốt việc phát hiện và ngăn chặn các cuộc xâm nhập mạng bất hợp pháp, tuy nhiên các tội phạm có thể lợi dụng các kẽ hở trong

hệ thống giao thức mạng, như sự truyền không đúng thứ tự, để vượt qua các bộ NIDS này Môt phương pháp rất phổ biến mà các kẻ tấn công mạng hay sử dụng là lợi dụng việc hỗ trợ truyền lại trong giao thức TCP để thực hiện vượt tường lửa Hơn nữa, để

Trang 4

các hệ thống NIDS đủ mạnh để theo dõi các đường truyền tốc độ cao, chúng cần được hiện thực một số phần cốt lõi bằng phần cứng mà FPGA là một lựa chọn thích hợp Với những lí do trên, nhóm thực hiện đề tài đã quyết tâm tìm hiểu và xây dựng một bộ tiền xử lý cho hệ thống NIDS trên FPGA Bộ tiền xử lý này có nhiệm vụ chuẩn hóa tất

cả các dòng dữ liệu vào ra của hệ thống NIDS, đảm bảo kẻ tấn công không thể sử dụng các kỹ thuật vượt tường lửa thông dụng để vượt qua Đồng thời nhóm cũng hiện thực các bộ giải mã trước các dữ liệu tầng ứng dụng để hỗ trợ các NIDS không hiện thực các luật mã hóa ứng dụng

Chủ nhiệm dự án

Trần Huy Vũ

Trang 5

Mục lục

Danh sách các cán bộ tham gia thực hiện đề tài II LỜI MỞ ĐẦU III

Danh mục hình ảnh VII Danh mục bảng biểu VIII

Chương 1 Giới thiệu đề tài 1

-1.1 Tính cấp thiết của đề tài 1

-1.2 Đối tượng và vấn đề nghiên cứu 3

-1.3 Tình hình nghiên cứu trong và ngoài nước 3

-1.4 Thiết kế ý niệm 7

-Chương 2 Kiến thức liên quan 8

-2.1 Hệ thống phát hiện xâm nhập IDS 8

-2.2 Chuẩn hóa dòng TCP 9

-2.3 FPGA và board NetFPGA 12

-2.3.1 Board NetFPGA 13

-2.3.2 IP Core TEMAC 14

-2.3.3 Phát triển ứng dụng với các thiết kế mẫu 15

-Chương 3 Thiết kế bộ tiền xử lý 16

-3.1 Cấu trúc dữ liệu 16

-3.2 Chuẩn hóa dòng dữ liệu 19

-3.3 Hiện thực 20

-Chương 4 Đánh giá hệ thống 24

Trang 6

-4.1 Mô hình triển khai 24

-4.2 Kết quả thực nghiệm 25

-4.2.1 Băng thông 25

-4.2.2 Khả năng hỗ trợ nhiều kết nối đồng thời (kết hợp NIDS) 26

-4.2.3 Bộ nhớ động 27

-Chương 5 Kết luận và hướng phát triển 28

TÀI LIỆU THAM KHẢO 29

Trang 7

-Danh mục hình ảnh

Hình 11 Tấn công vượt tường lửa 2

Hình 12 Tấn công dạng mã hóa URL 2

Hình 13 Thiết kế ý niệm mô hình và vị trí áp dụng bộ tiền xử lý 7

Hình 21 Mô hình triển khai của hệ thống NIDS 8

Hình 22 Mô hình triển khai của hệ thống HIDS 9

Hình 23 Các trường hợp truyền lại không khớp biên 10

Hình 24 Mô hình triển khai của hệ thống HIDS 13

Hình 31 Cấu trúc dữ liệu lưu thông tin kết nối 18

Hình 32 Cấu trúc dữ liệu hash list lưu các phần tử hash 19

Hình 33 Các trường hợp áp dụng XORMAC hash 19

Hình 34 Sơ đồ khối bộ tiền xử lý 21

Hình 35 Phần lõi bộ tiền xử lý 22

Hình 41 Mô hình kiểm nghiệm bộ tiền xử lý và tích hợp với NIDS 24

Hình 42 Băng thông hệ thống (hệ thống đáp ứng trên mức này) 25

Hình 43 Khả năng quản lý nhiều luồng đồng thời sau tích hợp 26

Hình 44 Bộ nhớ động sử dụng của hệ thống 27

Trang 8

-Danh mục bảng biểu

No table of figures entries found

Trang 9

Chương 1 Giới thiệu đề tài

1.1 Tính cấp thiết của đề tài

Ngày nay mạng máy tính trở thành một phần không thể thiếu của cuộc sống, từ kinh tế, giáo dục, đến quân sự đều ứng dụng mạng máy tính vào hoạt động của mình Thương mại điện tử là một điển hình cho sự ứng dụng mạnh mẽ mạng máy tính vào kinh doanh, chính phủ điện tử cũng đã được nhiều nước triển khai Chính vì sự quan trọng của mạng máy tính mà nó cũng trở thành thành phần thu hút nhiều sự tấn công nhất, và việc áp dụng các giải pháp bảo mật cho mạng máy tính trở thành vấn đề cấp thiết hơn bao giờ hết Các báo cáo thống kê chỉ ra rằng tội phạm thông tin, mà chủ yếu là tội phạm tấn công mạng, tăng đột biến trong những năm gần đây Báo cáo của tổ chức cảnh sát quốc tế cho thấy tổng thiệt toàn cầu hại do tội phạm thông tin gây ra trong năm 2011 đã vượt quá 388 tỷ đô-la, và nếu tính cả các thiệt hại do đánh cắp các sở hữu trí tuệ thì con số có thể lên tới nhiều ngàn tỉ đô-la Loại tội phạm này (còn gọi là Cybercrime [1]) thường sử dụng máy tính và mạng để thực hiện các vụ xâm nhập bất hợp pháp hoặc là làm tê liệt một hệ thống máy chủ bằng các cuộc tấn công DoS Các cuộc xâm nhập mạng này có thể được thực hiện bởi nhiều giao thức khác nhau; tuy nhiên giao thức TCP/IP vẫn được sử dụng phổ biến nhất, các báo cáo trong [2][3] cho thấy 85% dữ liệu trên mạng sử dụng giao thức TCP/IP Để bảo vệ các hệ thống thông tin trước các nguy cơ tấn công mạng, người ta hiện thực các bộ phát hiện (hay phòng chống) xâm nhập mạng NIDS – Network Intrusion/Prevention System Những NIDS này thường làm việc theo kiểu so trùng các mẫu, khi phát hiện một chuỗi dữ liệu so trùng với mẫu tấn công, các NIDS này sẽ đưa ra một tín hiệu cho biết rằng nó phát hiện

có sự xâm nhập Hơn nữa, gần đây đã có nhiều nghiên cứu hiện thực các hệ thống NIDS trên phần cứng như ASIC hay FPGA Các NIDS này có khả năng hoạt động ở

Trang 10

tốc độ rất cao, tuy nhiên, nó khó có khả năng chống chọi với các kỹ thuật vượt tường lửa vì hiện thực các luật phát hiện kỹ thuật này rất khó, mà phải phát hiện bằng các biện pháp như thống kê và quản lý trạng thái dòng dữ liệu Một kỹ thuật rất thường được sử dụng để hiện thực việc vượt tường lửa là sử dụng cơ chế truyền lại của giao thức TCP Kẻ tấn công đầu tiên sẽ gửi một gói giả có nội dung an toàn nhưng không có

ý nghĩa và thiết lập các thông số để gói này đi qua hệ thống NIDS nhưng không thể đến được hệ thống đích Sau đó kẻ tấn công sẽ gửi một gói khác cùng ID thông số nhưng nội dung chứa mã độc, và thiets lập thông số tìm đường để gói có thể đến máy đích Khi hệ thống NIDS nhận được gói truyền lại như vậy sẽ tưởng nhầm là gói trước

đó nên không phát hiện được tấn công Hình 1-1 mô tả tình huống trên

Hình 1-1 Tấn công vượt tường lửa

Ngoài ra, một số hệ thống NIDS không hiện thực các luật cho các dữ liệu được mã hóa

ở tầng ứng dụng như HTTP, FTP, SSH Như vậy NIDS sẽ quét các dữ liệu sau khi đã được mã hóa, và cả mẫu tấn công cũng được mã hóa nên không thể phát hiện ra như trong hình 1-2

Cannot reach victim

Trang 11

1.2 Đối tượng và vấn đề nghiên cứu

 Đề tài nhằm mục đích đưa ra một giải pháp để xử lý trước các dạng tấn công mà

hệ thống NIDS không thể phát hiện

 Đề tài còn đưa ra phương pháp kiểm tra tính nhất quán của các gói tin để đảm bảo hệ thống có thể ngăn được kỹ thuật vượt tường lửa

 Đề tài cũng hiện thực các bộ giải mã ứng dụng nhằm giảm thiểu việc các mẫu tấn công lẩn tránh trong các dữ liệu mã hóa

 Ngoài ra đề tài cũng cải tiến các phương pháp cũ nhằm làm cho thiết kế được tối

ưu về bộ nhớ và tốc độ

1.3 Tình hình nghiên cứu trong và ngoài nước

 Hệ thống NIDS đầu tiên phải kể đến có lẽ là Snort Đây là một phần mềm mã nguồn mở nổi tiếng được phát triển bởi Sourcefire Rất nhiều nghiên cứu hiện thực các hệ thống NIDS thường đều dựa trên Snort Được giới thiệu lần đầu vào năm 1998 với chức năng chỉ đơn giản như một Sniffer (bắt các gói tin và lưu lại) Kể từ đó đến nay, Snort được phát triển không ngừng và kết hợp thêm nhiều chức năng IDS mạnh mẽ Hiện tại, Snort là một IDS được phát triển rộng rãi nhất với hàng triệu lượt download Nó có thể chạy trên nhiều hệ điều hành khác nhau như Windows, Linux, Solaris, … Ưu điểm của Snort là dễ sử dụng, tương đối mạnh, nó có thể được cấu hình để chạy như một NIDS hay NIPS Snort hoạt động chủ yếu dựa trên tập luật được định nghĩa trước Kiến trúc của Snort có thể được chia thành một số phần như trong hình 1-2 Detection Engine chính là các máy so trùng để tìm kiếm các mã tấn công trong các gói tin trên mạng Các phần còn lại có thể được xem là Framework cho các engine này Ở

các phiên bản trước, phần Preprocessor (tiền xử lý) chưa được bổ sung,

Framework sẽ làm nhiện vụ bắt các gói tin (Sniffer), phân tách ra phần header

Trang 12

và payload để đưa vào từng máy so trùng, kết quả sẽ được ghi lại trong cơ sở dữ liệu (Alert/Logging/Database Snort là một hệ thống NIDs hoàn chỉnh có nghĩa

là nó đã bao gồm các máy so trùng, và Framework cho các máy so trùng đó bao gồm bộ bắt gói (Sniffer), bộ tách/ giải mã các gói, bộ quản lí và lưu giữ các sự

kiện trong các cơ sở dữ liệu Trong các bản gần đây, Snort thêm vào bộ tiền xử

lý hiện thực chuẩn hóa các dữ liệu trước khi máy quét bên trong quét dữ liệu

Trong đó chức năng tiền xử lý là chức năng gây ra nút thắt cổ chai của hệ thống

vì quá trình quản lý và so sánh các gói dữ liệu quá khứ và hiện tại đòi hỏi rất nhiều tính toán mà phần mềm không thể đáp ứng nhanh được

 Năm 2008, Mithili Vutukuru và các cộng sự đã đề ra một phương pháp tương đối đầy đủ để giải quyết vấn đề TCP normalization Họ đã thiết kế một hệ thống tên là Robonorm [4] Phương pháp được đề ra là lưu giá trị hash của các gói được truyền lần đầu vào danh sách liên kết Giá trị hash của các gói truyền lại được so sánh với phần tử tương ứng trong danh sách liên kết này để kiểm tra tính nhất quán Một điểm nổi bật của nghiên cứu này là đưa ra được cơ chế giải phóng bộ nhớ dựa trên tín hiệu ACK gọi là ACK promotion Các phần tử hash trong danh sách liên kết mà có số ACK nhỏ hơn giá trị ACK tích lũy sẽ được giải phóng Các gói truyền lại mà có số ACK nhỏ hơn giá trị ACK tích lũy sẽ bị

bỏ đi vì bên nhận đã nhận được dữ liệu của gói tương ứng trước đó rồi Mặc dù việc đưa ra cơ chế ACK promotion được xem là một đóng góp xuất sắc, hệ thống này vẫn phải lưu lại các gói tin truyền lại không khớp biên, dẫn đến có thể

bị tấn công tràn bộ nhớ nếu hacker gửi rất nhiều luồng chứa gói truyền lại không khớp biên

 Mới đây nhất, năm 2012, Smita Verma và Garima Krishna tiến hành một nghiên cứu dựa nhiều trên những nghiên cứu của [5] Mục tiêu của họ là hiện thực một

bộ TCP normalization trên hệ điều hành Linux Tuy các tác giả không trình bày

Trang 13

rõ phương pháp sử dụng trong nghiên cứu của họ, nhưng việc hiện thực trên phần mềm sẽ làm giảm đáng kể băng thông hệ thống vốn cần xử lý các gói tin trong thời gian thực

 Trong một nghiên cứu khác [6], các tác giả đã thiết kế một bộ quét các dòng dữ liệu mà không cần phải sắp xếp các gói dữ liệu trước khi đưa vào các máy quét Bằng cách cho các bộ quét quét lại một phần dữ liệu chồng lấn giữa các gói tin trong cùng một luồng, những mẫu tấn công trải trên nhiều gói mà có chiều dài nhỏ hơn chiều dài đoạn dữ liệu chồng lấn sẽ được phát hiện Trong phương pháp này, hai lược đồ hoạt động được đề nghị đó là lược đồ đệm một cạnh (one-edge buffering scheme) và lược đồ đệm hai cạnh (two-edge buffering scheme)

với l là chiều dài tối đa của luật so trùng Các tác giả căn cứ vào tập luật Snort

và thấy rằng chủ yếu các luật Snort có độ dài nhỏ hơn 128 bytes và độ dài luật

dài nhất được chọn là 122 Trong giản đồ đệm hai cạnh, hệ thống sẽ lưu l-1 byte

tại hai đầu của mỗi phân đoạn TCP Nếu gói tiếp theo là gói liền trước của đoạn

TCP thì hệ thống sẽ quét gói tiếp theo liền với l-1 byte đầu của phân đoạn TCP rồi cập nhật lại l-1 byte đầu Nếu là gói liền sau của đoạn TCP thì hệ thống sẽ quét l-1 byte cuối của đoạn liền với gói đó và cập nhật lại l-1 byte cuối Trong

giản đồ đệm một cạnh, hệ thống sẽ lưu lại l-1 byte đầu của đoạn TCP và lưu trạng thái của máy so trùng tại cuối đoạn TCP Khi gói liền sau của đoạn TCP đến, hệ thống sẽ nạp lại trạng thái máy so trùng và quét tiếp gói đó Khi gói liền

trước của đoạn đến, hệ thống sẽ quét gói đó liền với l-1 byte đầu của đoạn TCP,

và cập nhật lại l-1 byte đầu Phương pháp này khá đơn giản và hiệu quả trong

trường hợp độ dài luật tối đa tương đối ngắn và là dạng mẫu tĩnh Đối với những mẫu dạng biểu thức chính qui thì chiều dài chuỗi trùng không thể đoán trước được, vì thế không thể dùng cho dạng máy này được Trong nghiên cứu này, vấn đề TCP normalization đã được tính đến Các tác giả cũng dùng phương pháp hash để so sánh các gói truyền lại nhằm tìm ra gói truyền lại không nhất

Trang 14

quán Tuy nhiên, đối với các gói truyền lại không khớp biên, các tác giả chọn giải pháp lưu lại để chờ các gói khác đến lấp đầy khoảng chênh lệch Việc này

sẽ gây tiêu tốn bộ nhớ nhiều nếu số lượng gói truyền lại không khớp biên nhiều; đồng thời việc tính hash sẽ phải tính lại cho một gói lớn sẽ tốn nhiều thời gian Một điều quan trong nữa là nghiên cứu này chưa xét đến việc xử lý ACK để giải phóng bớt bộ nhớ khi biết chắc bên nhận đã nhận đủ dữ liệu

 Hiện nay, trên thế giới cũng đã có nhiều nhóm nghiên cứu việc hiện thực một hệ thống NIDS tương tự Snort trên FPGA nhằm tăng tốc quá trình so trùng chuỗi

để có thể đạt được băng thông của một mạng Backbone (Gbps) Điển hình là các nghiên cứu [18], các tác giả đưa ra một phương pháp hiện thực một IDs trên FPGA Virtex2Pro cho 1125 luật của Snort và đạt được tốc độ 10Gbps; hay như trong nghiên cứu [19], các tác giả đã đề xuất một phương pháp hiện thực các PCRE (Perl Compatible Regular Expression) của Snort lên thiết bị FPGA nhằm tăng tốc quá trình so trùng biểu thức chính quy hiệu quả, có thể đạt tốc độ 12Gbps Hiện nay, tại khoa Khoa học và Kỹ thuật Máy tính cũng có một nhóm nghiên cứu về việc hiện thực một NIDS trên FPGA và đã công mố nhiều kết quả của việc hiện thực các bộ so trùng luật Snort, hỗ trợ lên đến vài ngàn luật Tuy nhiên để có được một NIDS hoàn chỉnh, mạnh mẽ trước các tấn công Đặc biệt là chống được kỹ thuật vượt tường lửa, vì nếu một hệ thống an ninh mạng mạnh mẽ đến đâu, mà kẻ địch có thể đánh lừa hệ thống đó thì xem như đã thất bại Vì vậy cần phải xây dựng một bộ tiền xử lý, mà sẽ được hiện thực trong đề tài này, nhằm trang bị cho hệ thống NIDS khả năng chống kỹ thuật vượt tường lửa Ngoài ra, hiện tại ở Việt Nam, chưa có nhóm nghiên cứu nào làm về đề tài này

Trang 15

1.4 Thiết kế ý niệm

Như tên gọi của nó, bộ tiền xử lý có nhiệm vụ xử lý trước các dữ liệu đi qua hệ thống NIDS nhằm giúp hệ thống NIDS hoạt động hiệu quả hơn; vì vậy chắc chắn nó phải đứng trước hệ thống NIDS Việc kiểm tra tính nhất quán của các gói truyền lại đòi hỏi phải biết thông tin truyền nhận gói trong qá khứ, vì vậy bộ tiền xử lý sẽ phải sử dụng

bộ nhớ để lưu các thông tin này, và sau đó so sánh các thông tin này với các gói mới tới Mô hình ý niệm của bộ tiền xử lý được mô tả trong hình 1-3

Trang 16

Chương 2 Kiến thức liên quan

2.1 Hệ thống phát hiện xâm nhập IDS

Hệ thống phát hiện xâm nhập là một hệ thống phần cứng hoặc phần mềm làm nhiệm

vụ giám sát tất cả các hoạt động trong một mạng máy tính và cố gắng phát hiện bất kỳ hoạt động xâm nhập bất hợp pháp nào Một IDs có thể là một hệ thống phát hiện xâm nhập cho mạng (Network-based Network Intrusion Detection System - NIDS) hoặc là một hệ thống phát hiện xâm nhập cho máy (Host-based Network Intrusion Detection System - HIDS) Một NIDS thường được cài đặt trên một mạng backbone để giám sát tất cả các dữ liệu ra hoặc vào mạng được bảo vệ như được mô tả trong hình 2-1

Hình 2-1 Mô hình triển khai của hệ thống NIDS

Một HIDS thường được cài đặt tại bất kỳ máy nào cần được bảo vệ trong một mạng máy tính, chữ Host-based nói lên rằng hệ thống này chỉ giám sát máy mà nó được cài đặt mà không giám sát toàn bộ mạng Mô hình triển khai một HIDS được minh họa trong hình 2-2

Trang 17

Hình 2-2 Mô hình triển khai của hệ thống HIDS

Một NIPS (Network Intrusion Prevention System) thậm chí còn mạnh hơn cả một NIDS Một NIDS chỉ phát hiện các dấu hiệu tấn công và đưa ra cảnh báo, còn một NIPS ngoài việc phát hiện các dấu hiệu tấn công, nó còn có thể loại bỏ các gói khỏi đường truyền hay chuyển hướng các gói đó đến một địa chỉ khác mà gói đó sẽ được phân tích sâu hơn một khi phát hiện ra dấu hiệu tấn công trong gói dữ liệu đó

Trang 18

gian và phải so sánh lại từng byte Đặc biệt, khi mà các gói truyền lại không nằm đúng

vị trí với các gói truyền lần đầu thì việc lưu trữ và so sánh lại càng trở nên cồng kềnh

và phức tạp Theo khảo sát của chúng tôi cũng như một số nghiên cứu liên quan [4][5][6] thì có thể xảy ra những trường hợp truyền lại không khớp biên như trong Hình 2-3

Hình 2-3 Các trường hợp truyền lại không khớp biên

Một cách khác là dùng giá trị hash như là thông tin xác thực gói tin Đối với các hàm hash tốt như MD5, DES, thì khả năng hai chuỗi byte khác nhau có cùng giá trị hash là vô cùng nhỏ Chính vì vậy mà phương pháp dùng giá trị hash để xác thực gói tin rất thường được sử dụng trong thực tế, ngay cả trong bản thân các giao thức IP, TCP, … cũng sử dụng phương pháp này dưới tên gọi là checksum Một lợi ích to lớn khác từ việc sử dụng hàm hash là việc so sánh trở nên nhanh chóng vì chỉ cần so sánh hai số thay vì hai chuỗi Tuy nhiên vẫn còn một vấn đề nữa là tính giá trị hash cho các đoạn dữ liệu bị phân mảnh, như trong các trường hợp truyền lại không khớp biên với các gói ban đầu, chẳng hạn truyền lại một phần, truyền lại chồng lấn Rất nhiều hàm hash tuy tốt về phân bố, nhưng lại không thể cộng gộp; có nghĩa là giá trị hash của một chuỗi lớn không thể được tính từ những giá trị hash thành phần Chính vì vậy mà việc kiểm tra tính nhất quán của những gói truyền lại không khớp biên sẽ tốn rất nhiều thời gian và bộ nhớ do vẫn phải lưu lại một phần dữ liệu và tính lại giá trị hash Rất may là

có một lớp hàm hash khác được gọi là hash tăng trưởng (incremental hash) có thể giải quyết được vấn đề này Hash tăng trưởng có thể tính lại giá trị hash từ những giá trị hash thành phần mà không cần lưu lại các dữ liệu thành phần tương ứng Thực ra, hàm

XOR cũng là một hàm hash tăng trưởng theo kiểu ^(ABCD) =( ^(AB)) ^ (^(CD)) Tuy

Trang 19

nhiên phân phân bố xác suất của hàm XOR lại quá tệ Một số hàm hash khác cho phép tính toán một cách tăng trưởng, tuy nhiên lại khó hiện thực phần cứng hay không cho phép tăng trưởng lui như CBC-MAC [13][14] Hàm này cho phép thêm các block dữ liệu vào sau chuỗi hiện tại mà không thêm vào trước chuỗi được, trong khi đối với các gói TCP thì việc thêm một gói vào trước một dữ liệu vẫn diễn ra trong trường hợp các gói đến không đúng thứ tự như mô tả ở phần TCP reassembly Năm 1995 Mihir Bellare và các cộng sự tại đại học MIT đã phát minh ra một hàm hash mới dùng cho authentication đó là XOR-MAC hash [15] Đây là một hàm hash tăng trưởng không những cho phép thêm các block dữ liệu vào trước, sau, mà còn có thể thêm, sửa hay xóa một block bất kỳ Các tác giả đã chứng minh hàm hash này có độ tin cậy rất cao Tương tự như một số hàm hash tăng trưởng khác, hàm hash này sử dụng một hàm hash khác như là hạt nhân của hàm, gọi là pseudorandom function (PRF) Đăc biệt, các hàm PRF này có thể chọn bất kỳ một hàm hash nào khác Giải thuật hash này có thể có hai dạng được mô tả như bên dưới:

Random: Z = F(0.r)^F(1.<1>.M[1])^F(1.<2>.M[2])^…^F(1.<n>.M[n])

Counter:Z = F(0.C)^F(1.<1>.M[1])^F(1.<2>.M[2])^…^F(1.<n>.M[n])

Dữ liệu được chia thành các block có độ dài giống nhau bằng m và được đánh số thứ tự từ 1 tới n Ký hiệu <i> là dạng biểu diễn nhị phân d-bit của số i; đối với dạng XORMAC ngẫu nhiên (random), r là một số ngẫu nhiên có độ dài {m+d}-bit; còn đối với dạng XORMAC đếm thì C là một biến đếm có độ dài {m+d}-bit Dễ nhận thấy

rằng vì XORMAC hash dùng phép toán XOR nên có tính giao hoán và kết hợp, hơn nữa mỗi phần tử đều được gắn kèm với giá trị chỉ số <i> của nó nên có thể dễ dàng thêm vào một block bất kỳ, điều này là rất quan trong khi mà các gói TCP đến rời rạc

và không đúng thứ tự Trong TCP normalization, việc chọn hàm hash an toàn là một việc quan trọng và cần được xem xét kỹ, nếu không, hacker có thể tìm ra quy luật hash

và gửi các gói tin giả được tính toán sao cho giá trị hash trùng với gói tin tấn công thực

Trang 20

sự Hàm XORMAC hash được chứng minh là an toàn theo [15] Giả sử số chuỗi yêu

cầu đánh dấu hacker tạo ra nhỏ hơn q s , và số chuỗi yêu cầu kiểm chứng nhỏ hơn q v,

hàm PRF có chiều dài input là l và chiều dài output là L, khả năng hacker thành công

được tính như sau:

Random: P = 2.q s .2-l + q v.2-L

Counter: P = q v.2-L

Theo như công thức trên thì XORMAC dạng counter n toàn hơn XORMAC dạng random, mặc dù sự chênh lệch là rất nhỏ Mặt khác, hiện thực một counter trên phần cứng thì dễ hơn rất nhiều so với một mạch sinh số giả ngẫu nhiên

2.3 FPGA và board NetFPGA

FPGA là từ viết tắt của cụm từ Field Programable Gate Array, là một loại vi mạch khả cấu hình, bao gồm hàng ngàn các phần tử logic lập trình được gọi là logic cell, giữa các logic cell này còn có các phần tử bộ nhớ hay các chuyển mạch để kết nối các logic cell này lại với nhau Mỗi logic cell nay có thể được cấu hình để thực hiện một chức năng đơn giản nào đó, tuy nhiên rất nhiều logic cell kết hợp lại có thể hiện thực được những mạch rất phức tạp Vì đây là sự kết hợp của nhiều đơn vị phần cứng khả cấu hình nên

nó có thể hoạt động ở tốc độ của phần cứng chứ không như việc thực thi các lệnh phần mềm vốn phải tốn nhiều chu kỳ xung clock để hoàn thành một tác vụ đơn giản Ngoài

ra chính nhờ sự kết hợp các logic cell này mà FPGA có thể được song song hóa ở một mức độ vô cùng cao FPGA có thể tái cấu hình để hiện thực nhiều mạch khác nhau mà không đòi hỏi phải sản xuất lại, chính vì vậy FPGA rất uyển chuyển so với các chip ASIC vốn có thể hoạt động ở tốc độ rất cao Nhờ những tính chất ưu việt đó mà FPGA

là một giải pháp rất phù hợp cho các ứng dụng đòi hỏi tốc độ xử lí rất cao mà lại phải cập nhật thường xuyên, mà NIDS là một hệ thống như vậy Trước đây, khi công nghệ sản xuất vi mạch chưa phát triển mạnh và phổ biến, các chip FPGA chủ yếu chỉ được dùng đề làm các bản mẫu (prototype) cho các chip ASIC Hiện nay, với những công

Ngày đăng: 01/02/2021, 00:22

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

TÀI LIỆU LIÊN QUAN

🧩 Sản phẩm bạn có thể quan tâm

w