32
Trong tiền xử lý frag3 có một khái niệm mới được đưa ra đó là “target-based”. Ý tưởng của thuật ngữ này như sau: Một IDS được đặt trong hệ thống mạng, nhưng IDS này hoàn toàn không biết được các hệ điều hành trên các máy trạm trong hệ thống mạng mà nó theo dõi. Các gói tin phân mảnh sau đó được ghép lại tại các máy trạm này. Vấn đề đặt ra là nếu các attacker biết được mục tiêu của chúng là một máy trạm cài đặt hệ điều hành Linux. Chúng cố tình phân mảnh dữ liệu sao cho nếu tái hợp các mảnh này trên hệ điều hành Windows thì không có bất cứ hiệu ứng gì, nhưng nếu hệ điều hành Linux tái hợp các phân mảnh đó thì sẽ gây ra một lỗ hổng có thể khai thác được.
Điều quan trọng là nếu IDS được điều chỉnh để tái hợp các phân mảnh như trên hệ điều hành Windows thì IDS sẽ không thể phát hiện được cuộc tấn công như trên. Và attacker đã đánh lừa được IDS và xâm nhập vào được hệ thống mạng mà không gặp bất trắc gì.
Ý tưởng đặt ra là cấu hình sao cho IDS có thể kiểm soát được các hệ điều hành cài đặt trên các máy trạm trong hệ thống mạng. Nếu có bất kỳ gói tin nào được gửi tới máy trạm đó, IDS sẽ phân tích và tái hợp các phân mảnh như hệ điều hành tại máy trạm đó.
Cấu hình: Có hai chỉ thị tiền xử lý trong việc cấu hình Frag3 đó là cấu hình toàn cục và cấu hình động cơ. Có thể có nhiều cấu hình động cơ nhưng chỉ duy nhất một cầu hình toàn cầu.
Cấu hình toàn cầu:
Tên tiền xử lý: frag3_global
Các tùy chọn (các tùy chọn này được phân cách bằng dấu phẩy “,”)
- max_frags <number>: Số lượng tối đa các phân mảnh được theo
dõi đồng thời. Mặc định là 8192.
- memcap <bytes>: Bộ nhớ tự quản, mặc định là 4MB. Con số này
thể hiện bộ nhớ lớn nhất mà Frag3 được phép sử dụng.
- prealloc_memcap <bytes>:
33
- disabled:
Cấu hình động cơ:
Tên tiền xử lý: frag3_engine
Các tùy chọn (cách nhau bởi khoảng trắng)
- timeout <seconds>: Thời gian timeout của phân mảnh. Những
phân mảnh tồn tại trên hệ thống sau thời gian này sẽ bị hủy. Mặc định là 60s.
- min_ttl <value>: Giá trị TTL tối thiểu chấp nhận được cho một
phân mảnh gói tin. Mặc định là 1, chấp nhận giá trị từ 1-255.
- detect_anomalies: Phát hiện các phân mảnh dị thường.
- bind_to <ip_list>: Danh sách các địa chỉ IP bị ràng buộc với cấu hình này. Tiền xử lý này sẽ chỉ xử lý với các địa chỉ đích có trong danh sách này. Mặc định là tất cả.
- overlap_limit <number>: Giới hạn số phân mảnh chồng chéo
trên mỗi gói tin. Mặc định giá trị là “0” nghĩa là không giới hạn. Yêu cầu tùy chọn detect_anomalies phải được thiết lập trước đó.
- min_fragment_length <number>: Định nghĩa kích thước nhỏ
nhất của một phân mảnh (kích thước phần payload) được chấp nhận. Những phân mảnh có kích thước nhỏ hơn hoặc bằng sẽ bị coi là độc hại và sẽ có một hành động xử lý. Mặc định giá trị là “0” không giới hạn, giá trị tối thiểu là “0”. Tùy chọn này cũng yêu c ầu tùy chọn detect_anomalies được thiết lập trước.
- policy <type>: Lựa chọn chế độ chống phân mảnh dựa trên mục
tiêu. Gồm các loại như first, last, bsd, bsd-right, linux, windows và solaris. Mặc định là bsd.
34
Platform Type Platform Type
AIX 2 BSD Linux 2.4 (RedHat
7.1-7.3)
Linux
AIX 4.3 8.9.3 BSD MacOS First
Cisco IOS Last OpenBSD Linux
FreeBSD BSD OS/2 BSD
HP JetDirect BSD-right OSF1 V4.0,5.0,5.1 BSD
HP-UX B.10.20 BSD SunOS 4.1.4 BSD
HP-UX 11.00 First SunOS
5.5.1,5.6,5.7,5.8
First
IRIX 6.2, 6.3 BSD Tru64 Unix
V5.0A,V5.1
BSD
IRIX64 6.4 BSD Windows
(95/98/NT4/W2K/XP)
Windows