3.1. Cơ sở dữ liệu.
Xây dựng 1 bộ cơ sở dữ liệu dùng để lưu trữ các thông tin cần thiết dùng trong chương trình như thông tin về loại các gói tin, thông tin về các phiên làm việc để chương trình có thể thao tác trên đó. Trong cơ sở dữ liệu cũng chứa luôn cả cấu hình hệ thống mà ngưới sử dụng đưa vào để sau đó chương trình có thể lấy ra đối chiếu. Cơ sở dữ liệu lựa chọn là Access. Đây là một cơ sở dữ liệu nhỏ vỡi số bản ghi hỗ trợ được không lớn lắm.Khi số lượng bản ghi lớn thì có thể làm treo chương trình.. Mặc dù có những hạn chế như vậy nhưng bù lai là việc truy xuất các cơ sở dữ liệu Access trong Visual Basic lại đơn giản và trong khuôn khổ một đồ án tốt nghiệp thì có thể chấp nhận được
Thông tin cấu hình Cập nhập
Nhận các thông tin tuỳ chọn của người sử dụng
tblConfig, tblMoniterHost, tblMoniterString Người dùng
Các bảng cơ sở dữ liệu được dùng trong chương trình: 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.(tblPacket)
- Bảng chứa các thông tin về gói tin IP, dùng để ghép các gói IP(tblPacketIp). - Bảng chứa các thông tin về các gói tin TCP.(tblPacketTCP)
- Bảng chứa các thông tin về các phiên làm việc(tblSession). - Bảng chứa các thông tin về các cảnh báo (tblAlert).
- Bảng chứa các thông tin về cấu hình cho chương trình(tblConfig).
- Bảng chứa các xâu cần cảnh báo khi nó xuất hiện trong gói tin.(tblMoniterString)
- Bảng chứa thông tin về các địa chỉ IP và cổng giám sát(tblMoniterHost).
Các bảng Cơ sở dữ liệu dùng trong chương trình
3.2. Thu bắt các gói tin
Chương trình sử dụng một bộ thư viện PacketVB là một phiên bản loại nhẹ của bộ thư viện Winpcap. Bộ thư viên này có các chức năng thu bắt, lọc gói tin, và một số hàm có liên quan trong việc thu nhận các gói tin. Trong mạng Lan là môi trường chia sẻ đường truyền nên tất cả các gói tin khi được truyền trên đó đều có thể đựoc thu bắt tại một card mạng.
Trong chế độ bình thường thì các card mạng chỉ thu nhận và xử lý các gói tin mà có đích đến là chính card mạng đó còn với các gói tin khác thì card mạng có nhận được nhưn sau khi kiểm tra gói tin đó không phải dành cho nó thì nó bỏ gói tin đó không xử lý. Vói chế độ thu bắt gói tin là Promicous thì card mạng sẽ thu nhận và xử lý tất cả các gói tin đựoc truyền trên mạng. Mỗi khi bắt đựoc một gói tin Ethernet thì thư viện PacketVB được tự động triệu gọi và trả lại cho chúng ta mảng byte chứa gói tin. mảng byte này được cập nhập ngay vào cơ sở dữ liệu để phục vụ cho việc phân tích sau này.
3.3. Xây dựng lại phiên làm việc
Phiên làm việc được xây dựng dựa trên thông tin về các gói tin TCP mà chương trình thu được. Các gói tin TCP này lấy được sau khi phân tích các gói tin IP trong cơ sở dữ liệu. Sau khi đã có các gói tin TCP rồi thì tiến hành ghép các gói tin này lại theo các phiên làm việc xác định.
Trong quá trình xây dựng lại phiên làm việc thì có hai công việc chính cần làm là.
• Với các gói tin IP không hoàn chỉnh(bị Fragment) thì cần tiến hành ghép các gói này lại để tạo ra gói IP hoàn chỉnh. Như đã giới thiệu ở phần trên của báo cáo trong phần cấu trúc khối dữ liệu IP. Mỗi khối IP đều có các trường cần thiết cho việc ghép lại gói IP ban đầu, các trường đó là Identification và Offset.
• Phần xây dựng lại các phiên giao dịch từ các gói tin IP. Nếu gói tin IP là không hoàn chỉnh trong phần header thì chương trình sẽ bỏ qua vì không đủ dữ liệu để phân tích. Từ các gói tin IP lấy ra các gói tin TCP . Với các gói TCP này, chương trình sẽ xây dựng lại phiên TCP giữa hai máy và sau đó lưu phiên đã được xây dựng vào trong cơ sở dữ liệu. Đây là một công việc rất tốn kém, tiêu tốn nhiều tài nguyên nhưng lại là một công việc quan trọng. Việc này chỉ liên quan đến giao thức TCP. Hiện nay chương trình chưa làm được việc phân tích gói tin ICMP.
3.4. So sánh với các cấu hình trong hệ thống
Dựa trên cơ sở dữ liệu về các phiên làm việc chương trình sẽ thực hiện việc thống kê. Kết quả sẽ đựoc so sánh với cấu hình của người sử dụng cũng đã được lưu trong cơ sở dữ liệu. Khi phát hiện được những điều không bình thường thì chương trình lập tức báo cáo cho người sử dụng. Các cảnh báo này sẽ đựoc lưu lại để tiện cho việc sử dụng sau này.