Thiết kế chương trình

Một phần của tài liệu Tìm hiểu và xây dựng hệ thống phát hiện xâm nhập trên mạng IP (Trang 57 - 62)

Theo yêu cầu của chương trình em chia chương trình ra làm 5 modul chính , 1 bộ CSDL . 5 module chính làm việc trên cùng 1 CSDL đó:

o Module thứ nhất: Có nhiệm vụ bắt các gói tin di qua card mạng.và chuyển các gói tin này cho module thứ hai phân tích.

o Module thứ hai: phân tích các gói tin và đưa các thông tin của các gói tin vào một cơ sở dữ liệu như là loại giao thức, địa chỉ ip nguồn, đích, địa chỉ cổng dịch vụ nguồn và đích….

o Module thứ ba: Xây dựng lại các phiên làm việc, dựa trên các thông tin trong cơ sở dữ liệu mà ta đã xây dựng được.

o Module thứ tư: cho phép người dùng có thể tuỳ chọn 1 số các tham số được dùng để đối chiếu khẳng định các yếu tố nào là các yếu tố bất thường cần cảnh báo.

o Module thứ năm: So sánh với các cấu hình trong hệ thống để đưa ra cảnh báo, có lưu trữ vào trong cơ sở dữ liệu để có thể đưa ra theo báo cáo trong ngày.

Hệ thống IDS So sánh và đưa ra cảnh báo Thu nhận cấu hình Module bắt gói

Sơ đồ các hoạt động của các module trong chương trình

2.1. Cơ sở dữ liệu:

Các dữ liệu trong CSDL bao gồm:

- Bảng chứa các gói tin lấy ra từ network adapter.

- Bảng chứa các thông tin về gói tin IP, dùng để ghép các gói IP.

- Bảng chứa các thông tin về các gói tin TCP.

- Bảng chứa các thông tin về các Session.

- Bảng chứa các thông tin về các cảnh báo

- Bảng chứa các xâu cần cảnh báo khi xuất hiện trong gói tin TCP

- Bảng chứa các địa chỉ IP và cổng giám sát.

Các bảng được cập nhật thường xuyên khi chạy chương trình.

Module bắt các gói tin

Bắt gói tin

Dựng lại các phiên làm việc

So sánh và đưa ra cảnh báo

Phân tích các gói tin

Cơ sở dữ liệu

Nhận các thông tin tuỳ chọn của người sử dụng

Luồng gói tin

Bảng Bắt gói tin

Các gói tin qua

Module này nhận được các thông tin đầu vào về gói tin về gói tin từ card mạng. Các gói tin này là gói tin Ethernet. Các thông tin nhận được nữa là :

• Mảng byte chứa toàn bộ gói tin Ethernet.

• Số lượng byte của gói Ethernet mà card mạng bắt được.

Sau khi nhận được các thông tin trên thì module này cập nhập vào bảng tblPacket các thông tin sau.

• Toàn bộ mảng byte chứa gói tin.

• Số lượng byte của gói tin.

2.3 Module phân tích các gói tin

Module này lấy các thông tin sau từ trong bảng tblPacket ra để xử lý.

• Mảng byte chứa toàn bộ gói tin Ethernet(có thể coi là gói Ethernet)

Khi đã có thông tin này thì tiến hành việc phân tích tìm ra các thông tin trong phần header của gói Ethernet . Các thông tin này là:

• Địa chỉ Mac của máy gửi.

• Địa chỉ Mac của máy nhận.

• Loại gói tin của tầng bên trên (Network layer) mà nó chứa bên trong (IP , Arp, SNMP,... ).

Tiếp theo nếu loại gói tin của tầng network là IP thì tiến hành phân tích theo khuôn dạng của gói IP để tìm ra được các thông tin sau về gói IP .

• Địa chỉ IP của máy gửi.

• Địa chỉ IP của máy nhận.

• Trường Identification.

• Trường Fragment Offset.

• Loại gói tin của tầng trên(Transport ) mà nó chứa bên trong(TCP, UDP ...). Nếu gói IP này là hoàn chỉnh(không bị Fragment) và gói tin của tầng Transport là TCP thì tiến hành phân tích theo khuôn dạng của gói TCP để tìm ra các thông tin sau:

• Số cổng dịch vụ dùng trên máy gửi. Cập nhập

Phân tích các gói tin Bảng tblPacket Bảng

• Số cổng dịch vụ dùng trên máy nhận.

• Loại ứng dụng sử dụng (HTTP, TELNET, FTP...).

Khi này Module sẽ cập nhập các thông tin sau về gói TCP vào trong bảng tblPacketTCP:

• Địa chỉ Mac của máy gửi.

• Địa chỉ Mac của máy nhận.

• Địa chỉ IP của máy gửi.

• Địa chỉ IP của máy nhận.

• Số cổng dịch vụ dùng trên máy gửi.

• Số cổng dịch vụ dùng trên máy nhận.

• Loại ứng dụng sử dụng (HTTP, TELNET, FTP...).

• Các cờ thể hiện trạng thái của phiên làm việc.(SYN, FIN, RESET)

Trong Module này khi gói IP là không hoàn chỉnh thì ta sẽ lưu toàn bộ thông tin về gói IP đó bao gồm các thông tin về header và các dữ liệu của nó vào bang tblPacketIP để tiến hành ghép các gói IP lại. Các thông tin cần để ghép các gói IP lại là trường Identification và Fragment trong Header của gói IP. Khi đã có gói IP hoàn chỉnh thì ta lại tiến hành phân tích như trên.

Khi nhận được gói TCP thì cũng tiến hành đối chiếu nếu chuỗi cần cảnh báo (được lấy ra từ bảng tblMoniterString) xuất hiện bên trong phần dữ liệu của gói TCP thì cập nhập vào bảng tblAlert một cảnh báo gồm

• Thời gian cảnh báo.

• Xâu chứa nội dung cảnh báo.

• Mức độ cảnh báo.

2.3. Xây dựng lại phiên làm việc

Module này lấy từ bảng tblPacketTCP ra các gói tin TCP của cùng một phiên làm việc tức là các gói tin có cùng 4 tham số sau.

• Địa chỉ IP nguồn.

• Địa chỉ IP đích.

• Số hiệu cổng nguồn.

• Số hiệu cổng đích

Tiếp theo xem tiếp trạng thái của phiên này, được thể hiện trong trường Status của các gói TCP. Dựng lại các phiên làm việc Bảng tblPacketTCP Cập nhập Bảng tblSession

Cuối cùng kiểm tra phiên đó trong bảng tblSession xem, nếu phiên này có sự thay đổi trạng thái thì tiến hành cập nhập vào trong bảng này các thông tin sau.

• Địa chỉ Mac của máy gửi.

• Địa chỉ Mac của máy nhận.

• Địa chỉ IP của máy gửi.

• Địa chỉ IP của máy nhận.

• Số cổng dịch vụ dùng trên máy gửi.

• Số cổng dịch vụ dùng trên máy nhận.

• Loại ứng dụng sử dụng (HTTP, TELNET, FTP...).

• Trạng thái của phiên làm việc(bắt đầu, kết thúc, reset.)

• Thời gian bắt đầu.

• Thời gian kết thúc.

2.4. So sánh với các cấu hình trong hệ thống

Trong module này, chương trình sử dụng phương pháp thống kê để xem những liên kết giữa các máy trong mạng. Các thông tin được lấy ra từ bảng tblSession.

• Địa chỉ IP của máy gửi.

• Địa chỉ IP của máy nhận.

• Số cổng dịch vụ dùng trên máy gửi.

• Số cổng dịch vụ dùng trên máy nhận.

• Trạng thái của phiên làm việc(bắt đầu, kết thúc, reset.)

• Thời gian bắt đầu.

• Thời gian kết thúc.

Các thông tin sau được lấy ra từ bảng tblConfig

• Số lượng kết nối tối đa đến một máy

Cập nhập Bảng tblSession,

Bảng

tblAlert So sánh và đưa ra cảnh báo

• Thời gian cho số lượng kết nối.

• Số lượng tối đa kết nối đến một máy bị RESET.

• Thời gian cho số lượng kết nối bị RESET .

Các thông tin lấy ra từ bảng tblSesion được thống kê lần lượt theo các thông số lấy từ bảng tblConfig khi có sự trùng khớp thì cập nhập vào bảng tblAlert cảnh báo có các mục.

• Thời gian cảnh báo.

• Xâu chứa nội dung cảnh báo.

• Mức độ cảnh báo.

Module nhận các thông tin từ người sử dụng

Các thông tin mà module này nhận từ người dùng là

• Số lượng kết nối tối đa đến một máy

• Thời gian cho số lượng kết nối.

• Số lượng tối đa kết nối đến một máy bị RESET.

• Thời gian cho số lượng kết nối bị RESET .

• Thời gian lưu trữ các cảnh báo.

• Chế độ bắt gói tin.

• Xâu cần cảnh báo khi xuất hiện trong gói tin.

• Các địa chỉ IP và cổng dịch vụ cần giám sát.

Sáu thông tin trên cùng được lưu vào bảng tblconfig. Thông tin tiếp được lưu vào bảng tblMoniterString. Thông tin còn lại được lưu vào bảng tblMoniterHost.

Một phần của tài liệu Tìm hiểu và xây dựng hệ thống phát hiện xâm nhập trên mạng IP (Trang 57 - 62)

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

(77 trang)
w