Các công cụ hỗ trợ bổ sung cho IDS

Một phần của tài liệu nghiên cứu, xây dựng một số giải pháp và phần mềm cảnh báo, phát hiện xâm nhập mạng, chống truy cập trái phép (Trang 30)

Một số công cụ hiện nay bổ sung IDS thƣờng đƣợc coi nhƣ là các sản phẩm phát hiện xâm nhập vì chúng có những tính năng tƣơng tự. Đó là các công cụ nhƣ Hệ thống phân tích thƣơng tổn, Bộ kiểm tra tính toàn vẹn tệp, Honey Pot và Padded cell.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

1.2.5.1 Đánh giá tính thương tổn của hệ thống

Công cụ phân tích khả năng thƣơng tổn dùng để xác định liệu hệ thống có bị thƣơng tổn trƣớc một cuộc tấn công đã biết hay không? Quá trình hệ thống phân tích thƣơng tổn bao gồm:

- Lấy mẫu một số thuộc tính của hệ thống

- Kết quả mẫu đƣợc lƣu một nơi an toàn và đƣợc so sánh với một bộ giữ liệu tham chiếu đƣợc coi nhƣ một mẫu “cấu hình chuẩn”

- Bất kỳ sự khác biệt nào giữa hai bộ mẫu đều đƣợc xác định và thông báo.

Có hai phƣơng pháp đƣợc áp dụng để phân tích tính thƣơng tổn của hệ thống, đó là phƣơng pháp phân tích tính thƣơng tổn dựa vào host và phƣơng pháp phân tích tính thƣơng tổn dựa vào mạng. Phƣơng pháp phân tích tính thƣơng tổn dựa vào host là xác định khả năng thƣơng tổn bằng cách đánh giá các nguồn dữ liệu hệ thống, chẳng hạn nhƣ nội dung tệp hệ thống, các tệp thiết lập cấu hình và các thông tin trạng thái khác. Thông tin này thu nhận đƣợc dựa trên các truy vấn hệ thống chuẩn.Tuy vậy phƣơng pháp này đôi khi cũng gặp nguy hiểm vì kẻ tấn công cũng có thể lấy đƣợc quyền root trong Unix hoặc Administrator trong NT.

Ưu điểm của phân tích tính thương tổn:

- Là một phần của hệ thống giám sát an ninh mạng cho phép phát hiện các chỗ yếu trên hệ thống mạng không có IDS hỗ trợ.

- Đƣa ra các giải pháp kiểm tra an ninh dựa vào kết quả của việc ghi nhận tình trạng an ninh của hệ thống mạng máy tính.

- Khi hệ thống đánh giá tính thƣơng tổn đƣợc sử dụng thƣờng xuyên theo định kỳ, chúng ta sẽ ghi nhận những thay đổi về tình trạng an ninh của hệ thống, cảnh báo cho các chuyên gia bảo mật những lỗi cần phải khắc phục.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

- Việc kiểm tra hai lần trƣớc và sau khi khắc phục lỗi đảm bảo cho hệ thống an toàn hơn và không bị những lỗ hổng khác phát sinh mới sau khi sửa lỗi.

Nhược điểm của phương pháp phân tích thương tổn:

- Phƣơng pháp phân tích tính thƣơng tổn dựa vào host có tính ràng buộc với các hệ điều hành và các ứng dụng cụ thể do đó việc bảo dƣỡng, khắc phục lỗi và quản lý thƣờng rất phức tạp và tốn kém.

- Phƣơng pháp phân tích tính thƣơng tổn dựa trên nền mạng thƣờng áp dụng trên nhiều hệ điều hành, do vậy kết quả phân tích kém chính xác hơn và thƣờng đƣa ra nhiều cảnh báo. Lƣu ý một vài kiểm tra tính thƣơng tổn của hệ thống dựa vào mạng, đặc biệt với các cuộc tấn công từ chối dịch vụ có thể làm ngƣng trệ hệ thống đích.

- Việc sử dụng hệ thống đánh giá tính thƣơng tổn phải luôn chú ý đến việc bảo mật thông tin dữ liệu trên những hệ thống đích.

1.2.5.2 Kiểm tra tính toàn vẹn của tệp

Một thành phần quan trọng đƣợc bổ sung cho IDS đó là kiểm tra tính toàn vẹn của tệp bằng kỹ thuật chữ ký số. Bộ kiểm tra tính toàn vẹn tệp cực kỳ có giá trị đối với việc tiến hành các phân tích hệ thống đã bị tấn công, do nó có khả năng nhận dạng nhanh và tin cậy bằng kỹ thuật kiểm tra chữ ký số nội dung tệp để phát hiện việc in dấu chân của một vụ tấn công. Điều này giúp các nhà quản trị khôi phục nhanh các dịch vụ mà không cần phải cài đặt lại toàn bộ hệ thống.

1.2.5.3 Hệ thống nhử mồi (Honey Pot và Padded Cell)

Honey Pot là hệ thống nhử mồi đƣợc thiết kế để thu hút kẻ tấn công hƣớng chúng ra khỏi hệ thống quan trọng. Mục đích của Honey Pot là:

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

- Thu thập thông tin về hoạt động của kẻ tấn công.

- Giữ chân kẻ tấn công đủ lâu để ngƣời quản trị kịp có biện pháp ứng phó.

Honey Pot là hệ thống gồm những thông tin giả nhƣng đƣợc làm nhƣ chúng rất có giá trị. Hệ thống đƣợc trang bị các bộ giám sát rất nhạy và bộ ghi nhật ký các sự kiện để thu thông tin về kẻ tấn công. Tuy vậy hệ thống nhử mồi cũng có những nhƣợc điểm của nó. Về mặt pháp lý nó chƣa đƣợc chứng minh là có hữu dụng đối với mọi công nghệ bảo mật. Ngoài ra, một kẻ tấn công sừng sỏ một khi phát hiện ra là nó bị lừa thì có thể sẽ tung ra những cuộc tấn công thù địch dữ dội hơn.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

CHƢƠNG II: TÌM HIỂU VỀ PHẦN MỀM SNORT 2.1 Giới thiệu về Snort

Snort là một NIDS đƣợc Martin Roesh phát triển dƣới mô hình mã nguồn mở. Tuy Snort miễn phí nhƣng nó lại có rất nhiều tính năng tuyệt vời mà không phải sản phẩm thƣơng mại nào cũng có thể có đƣợc. Với kiến trúc thiết kế theo kiểu module, ngƣời dùng có thể tự tăng cƣờng tính năng cho hệ thống Snort của mình bằng việc cài đặt hay viết thêm mới các module. Cơ sở dữ liệu luật của Snort đã lên tới trên 3000 luật và đƣợc cập nhật thƣờng xuyên bởi một cộng đồng ngƣời sử dụng. Snort có thể chạy trên nhiều hệ thống nền nhƣ Windows, Linux, OpenBSD, FreeBSD, Solaris, HP-UX, AIX, MacOS.

Bên cạnh viện có thể hoạt động nhƣ một ứng dụng thu bắt gói tin thông thƣờng, Snort còn có thể đƣợc cấu hình để chạy nhƣ một NIDS. Snort hỗ trợ khả năng hoạt động trên các giao thức sau: Ethernet, 802.11, Token Ring, FDDI, Cisco HDLC, SLIP, PPP, và PF của OpenBSD.

2.2 Kiến trúc của Snort

Snort bao gồm nhiều thành phần, với mỗi phần có một chức năng riêng. Các phần chính đó là:

 Module giải mã gói tin (Packet Decoder)

 Module tiền xử lý (Preprocessors)

 Module phát hiện (Detection Engine)

 Module log và cảnh báo (Logging and Alerting System)

 Module kết xuất thông tin (Output Module)

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Hình 2.1: Mô hình kiến trúc của hệ thống Snort

Khi Snort hoạt động nó sẽ thực hiện việc lắng nghe và thu bắt tất cả các gói tin nào di chuyển qua nó. Các gói tin sau khi bị bắt đƣợc đƣa vào Module giải mã gói tin. Tiếp theo gói tin sẽ đƣợc đƣa vào Module Tiền xử lý, rồi Module phát hiện. Tại đây, tùy theo việc có phát hiện đƣợc xâm nhập hay không mà gói tin có thể đƣợc bỏ qua để lƣu thông tiếp hoặc đƣợc đƣa vào Module Log và cảnh báo để xử lý. Khi các cảnh báo đƣợc xác định Module kết xuất thông tin sẽ đƣợc hiện việc đƣa cảnh báo ra theo đúng định dạng mong muốn. Sau đây ta sẽ đi sâu vào chi tiết hơn về cơ chế hoạt động và chức năng của từng thành phần.

2.2.1 Module giải mã gói tin

Snort sử dụng thƣ viện pcap để bắt mọi gói tin trên mạng lƣu thông qua hệ thống. Một gói tin sau khi đƣợc giải mã sẽ đƣợc đƣa tiếp vào Module tiền xử lý. Hình sau mô tả việc một gói tin Ethernet sẽ đƣợc giải mã thế nào:

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Hình 2.2: Xử lý một gói tin Ethernet

2.2.2 Module tiền xử lý

Module tiền xử lý là một module rất quan trọng đối với bất kỳ một hệ thống IDS nào để có thể chuẩn bị gói dữ liệu và chuyển cho Module phát hiện phân tích. Ba nhiệm vụ chính của Module này là:

Kết hợp lại các gói tin: Khi một lƣợng dữ liệu lớn đƣợc gửi đi, thông tin sẽ không đóng gói toàn bộ vào một gói tin mà phải thực hiện phân mảnh, chia gói tin ban đầu thành nhiều gói tin rồi mới gửi đi. Khi Snort nhận đƣợc các gói tin này nó phải thực hiện việc ghép nối lại để có đƣợc dữ liệu nguyên dạng ban đầu, từ đó mới thực hiện dƣợc các công việc xử lý tiếp. Nhƣ ta đã biết khi một phiên làm việc của hệ thống diễn ra, sẽ có rất nhiều gói tin đƣợc trao đổi trong phiên đó. Một gói tin riêng lẻ sẽ không có trang thái và nếu công việc phát hiện xâm nhập chỉ dựa hoàn toàn vào gói tin đó sẽ không đem lại hiệu quả cao. Module tiền xử lý stream giúp Snort có thể hiểu đƣợc các

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

phiên làm việc khác nhau từ đó giúp đạt đƣợc hiệu quả cao hơn trong việc phát hiện xâm nhập.

Giải mã và chuẩn hóa giao thức (decode/normalize): Công việc phát hiện xâm nhập dựa trên dấu hiệu nhận dang nhiều khi bị thất bại khi kiểm tra các giao thức có dữ liệu có thể đƣợc thể hiện dƣới nhiều dạng khác nhau.

Phát hiện các xâm nhập bất thƣờng (nonrule/anormal): Các plugin tiền xử lý dạng này thƣờng dùng để đối phó với các xâm nhập không thể hoặc rất khó phát hiện đƣợc bằng các luật thông thƣờng hoặc các dấu hiệu bất thƣờng trong giao thức. Các module tiền xử lý dạng này có thể thực hiện việc phát hiện xâm nhập theo bất cứ cách nào mà ta nghĩ ra từ đó tăng cƣờng thêm tính năng cho Snort.

2.2.3 Module phát hiện

Đây là module quan trọng nhất của Snort. Nó chịu trách nhiệm phát hiện các dấu hiệu xâm nhập. Module phát hiện sử dụng các luật đƣợc định nghĩa trƣớc để so sánh với dữ liệu thu thập đƣợc từ đó xác định xem có xâm nhập xảy ra hay không. Rồi tiếp theo mới có thẻ thực hiện một số công việc nhƣ ghi log, tạo thông báo và kết xuất thông tin.

Một vấn đề rất quan trọng trong module phát hiện là vấn đề thời gian xử lý các gói tin: Một IDS thƣờng nhận đƣợc rất nhiều gói tin và bản thân nó cũng có rất nhiều các luật xử lý. Có thể maatsnhuwngx khoảng thời gian khác nhau cho việc xử lý các gói tin khác nhau. Và khi thông lƣợng mạng quá lớn có thể xảy ra việc bỏ sót hoặc không phản hồi đƣợc đúng lúc. Khả năng xử lý của module phát hiện dựa trên một số yếu tố nhƣ: số lƣợng các luật, tốc độ của hệ thống đang chạy Snort, tải trên mạng. Một số thử nghiệm cho biết, phiên bản hiện tại của Snort khi đƣợc tối ƣu hóa chạy trên hệ thống có nhiều bộ vi xử lý và cấu hình máy tính tƣơng đối mạnh thì có thể hoạt động tốt trên cả các mãng cỡ Giga.

Một module phát hiện cũng có khả năng tách các phần của gói tin ra và áp dung các luật trên từng phần nào của gói tin đó. Các phần đó có thể là:

 IP header

 Hearder ở tầng giao vận: TCP, UDP

 Header ở tầng ứng dụng: DNS header, HTTP header, FTP deader, …

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Một vấn đề nữa trong module phát hiện đó là việc xử lý thế nào khi một gói tin bị phát hiện bởi nhiều luật. Do các dòng luật trong Snort cũng đƣợc đánh thứ tự ƣu tiên, nên một khi gói tin bị phát hiện bởi nhiều luật khác nhau, cảnh báo đƣợc lấy ra sẽ là cảnh báo ứng với luật có mức ƣu tiên cao nhất.

2.2.4 Module log và cảnh báo

Tùy thuộc vào việc Module phát hiện có nhận dạng đƣợc xâm nhập hay không mà gói tin có thể bị ghi log hoặc đƣa ra cảnh báo. Các file log là các file text dữ liệu trong đó có thể đƣợc ghi dƣới nhiều định dạng khác nhau, chẳng hạn tcpdump.

2.2.5 Module kết xuất thông tin

Module này có thể thực hiện các thao tác khác nhau tùy theo việc ta muốn ghi kết quả xuất ra nhƣ thế nào. Tùy theo việc cấu hình hệ thống mà nó có thể thực hiện các công việc nhƣ:

 Ghi log file

 Ghi syslog: Syslog là một chuẩn lƣu trữ các file log đƣợc sử dụng rất nhiều trên các hệ thống Unix, Linux

 Ghi cảnh báo vào cơ sở dữ liệu

 Tạo file log dang xml: Việc ghi log file dạng xml rất thuận tiện cho việc trao đổi và chia sẻ dữ liệu.

 Cấu hình lại Router, firewall

 Gửi các cảnh báo đƣợc gói trong gói tin sử dụng giao thức SNMP. Các gói tin SNMP này sẽ đƣợc gửi tới một SNMP server nào đó giúp cho việc quản lý các cảnh báo và hệ thống IDS một cách tập trung và thuận tiện hơn.

 Gửi các thông điệp SMB tới các máy tính windows.

Nếu không hài lòng với các cách kết xuất thông tin nhƣ trên, ta có thể viết các module kết xuất thông tin riêng tùy theo mục đích sử dụng.

2.3 Cấu trúc luật của Snort 2.3.1 Khái niệm cơ sở 2.3.1 Khái niệm cơ sở

Snort dùng một ngôn ngữ mô tả các luật sáng sủa và đơn giản, nó cũng linh động và tƣơng đối mạnh. Hầu hết các luật Snort đƣợc viết trên một dòng.

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Trong các phiên bản trƣớc 1.8 thì điều này là bắt buộc. Trong các bản hiện nay, các luật có thể đƣợc viết trên nhiều dòng bằng việc thêm dấu “/” vào cuối mỗi dòng. Nếu xét về mặt logic thì các luật Snort đƣợc chia làm 2 phần, phần header và phần các tuỳ chọn. Phần header gồm có các thông tin về các giao thức, action, các địa chỉ nguồn, đích và mặt nạ mạng địa chỉ cổng nguồn, đích.

Phần tuỳ chọn chứa các thông điệp cảnh báo và các thông tin cho biết phần nào của gói tin sẽ đƣợc phân tích để xác định action đƣợc thực hiện.

Ví dụ minh họa một luật Snort đơn giản:

alert tcp any ->192.168.1.0/24 111{content:”/00 01 86 a5/”: msg: “mounld avvess”:}

Từ đầu dòng đến dấu ngoặc đơn đầu tiên là phần header và phần nằm trong cặp nguồn là phần tuỳ chọn. Các từ nằm trong cặp dấu “//” là từ khoá tuỳ chọn. Lƣu ý là phần tuỳ chọn là không đƣợc luật nào yêu cầu cụ thể, chúng chỉ để dùng với mục đích xác định rõ gói tin để tập hợp và cảnh báo (hoặc huỷ). Tất cả các thành phần cấu thành luật phải đúng để các action đƣợc thực hiện. Khi đƣợc đặt cùng nhau, các thành phần có thể đƣợc xem nhƣ hình thành nên một câu lệnh AND về mặt logic và các luật trong file thƣ viện có thể đƣợc xem nhƣ tạo nên một câu lệnh OR. [5]

2.3.1.1 Includes

Từ khoá include cho phép các file luật khác đƣợc nằm trong file luật mà dòng lệnh Snort chỉ ra. Nó làm việc giống nhƣ # include trong ngôn ngữ lập trinh C, đọc các content của file đƣợc chỉ ra và đặt chúng vào trong file nơi include xuất hiện.

Định dạng:

Số hóa bởi Trung tâm Học liệu – Đại học Thái Nguyên http://www.lrc-tnu.edu.vn

Lƣu ý không có dấu: ở cuối mỗi dòng. Các file include sẽ thay các biến đƣợc định nghĩa trƣớc vào trong các biến tham chiếu của nó.

2.3.1.2 Các biến

Các biến có thể đƣợc định nghĩa trong Snort. Đây là các biến thay thế đơn giản đƣợc đặt cùng với từ khoá var:

Định dạng:

var: <name> <value>

var: MY_NET [192.168.1.0/24, 10.1.1.0/24]

alert tcp any any -> S MY_NET any (flag: S; msg: “ SYN packet”;) Có một số các định nghĩa tên biến, có thể định nghĩa biến meta dùng toán tử S và các toán tử bổ xung, ? và -

* S var-định nghĩa biến meta, *(S var)- thay bằng giá trị của biến var, * S (var: - default) – thay bằng giá trị của biến var hoặc giá trị default nếu var không đƣợc định nghĩa. * S var:? message) – thay bằng giá trị của biến var

Một phần của tài liệu nghiên cứu, xây dựng một số giải pháp và phần mềm cảnh báo, phát hiện xâm nhập mạng, chống truy cập trái phép (Trang 30)

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

(81 trang)