MỤC LỤC
Giao thức này không có cơ chế kiểm tra lỗi hay việc mất các gói tin trong khi truyền vì vậy nó cung cấp một phương thức truyền linh hoạt, nó tạo ra một liên kết ảo khi truyền các khối dữ liệu. Tầng này tương ứng là hai tầng liên kế dữ liệu và tầng vật lý trong mô hình OSI Trong cấu trúc phân tầng này, khi truyền dữ liệu từ tầng ứng dụng đến tầng vật lý thì mỗi tầng đều thêm phần header hoặc có thể là tailer của mình vào. Nó định nghĩa cách thức truyền các khối dữ liệu IP (IP datagram). Các giao thức ở tầng này phải biết cấu trúc vật lý mạng ở dưới nó bao gồm cấu trúc gói, địa chỉ..) để định dạng được chính xác các dữ liệu sẽ được truyền tùy vào từng loại mạng cụ thể.
Chức năng định dạng dữ liệu được truyền ở tầng này bao gồm việc đóng gói các khối dữ liệu IP datagram vào các frames sẽ được truyền trên mạng và sắp xếp các địa chỉ IP vào phần địa chỉ vật lý được dùng cho mạng. Giao thức UDP cung cấp các chương trình ứng dụng thâm nhập trực tiếp đến các dịch vụ lưu chuyển datagram, cho phép trao đổi các thông điệp ra ngoài mạng với số lượng nhỏ các giao thức. Điều này làm giảm nhẹ các thủ tục kết nối mạng nhưng làm tăng độ phức tạp trong công việc kiểm soát luồng dữ liệu và kiểm tra tính đúng đắn của dữ liệu, đặc biệt là trong trường hợp nhiều người sử dụng đồng thời.
Nếu địa chỉ đích là địa chỉ của một trạm nằm trên mạng đó thì trạm nguồn sẽ truyền thẳng tới trạm đó, nếu không nằm trên cùng một mạng với trạm nguồn thì các khối dữ liệu được truyền đến Gateway để chuyển đi.
Như vậy họ giao thức TCP/IP được xây dựng dựa trên cơ sở phân tầng có sự tương ứng với mô hình tham chiếu OSI. Các tầng trong họ giao thức TCP/IP đều chứa một tập các giao thức cung cấp khả năng truyền dữ liệu tin cậy giữa các tầng và giữa các mạng kết nối với Internet. Giao thức trên mạng IP (Internet Protocol) cung cấp chức năng liên kết các mạng nội bộ thành liên mạng để truyền dữ liệu.
Nó không cần có giai đoạn thiết lập liên kết trước khi truyền dữ liệu và do đó không cần phải giải phóng liên kết khi không có nhu cầu truyền. Dùng để nhận dạng khối dữ liệu, định danh duy nhất cho một datagram trong thời gian nó còn trên liên mạng, nhận dạng các đoạn trong khối giống như số hiệu tuần tự. Chỉ vị trí của đoạn (fragment) trong datagram, tính theo đơn vị 64 bit, mỗi fragment phải chứa một vùng dữ liệu có độ dài là bội số của 64 bit.
Khi thời gian này giảm đến 0, datagram bị loại bỏ để tránh tình trạng một datagram cứ chạy mãi trên mạng.
Vùng đệm, dùng để đảm bảo cho phần header luôn kết thúc ở một mốc 32 bit. Phần này gồm các header của các giao thức tầng cao hơn và dữ liệu của người sử dụng. Lớp này định danh tối đa 221 mạng mỗi mạng có tối đa 28 trạm làm việc nối vào.
Các địa chỉ này không được dùng để định danh một trạm hay một mạng nào.
Số báo nhận này tham chiếu đến đoạn dữ liệu tiếp theo mà bên nhận đang mong nhận tiếp. Nếu báo nhận không được nhận trước khi quá một thời gian nào đó thì đoạn dữ liệu sẽ được gửi lại. Điều khiển luồng (flow control) đựơc thực hiện theo cách một biến cửa sổ đựoc gửi đi với báo nhận của bên nhận.
Nếu bên nhận không đủ bộ đệm thì nó sẽ gửi một biến cửa sổ với giá trị nhỏ hơn. Cứ thế cho đến khi tốc độ truyền nhận phù hợp cho cả hai bên -Tức là bên gửi không gửi nhiều hơn khả năng bên nhận có thể nhận.
Trường này được dùng để báo cho biết segment trước có nhận thàn công hay không. -SYN: Dùng để đồng bộ hóa các số hiệu tuần tự lúc ban đầu khi thiết lập liên kết. Chỉ số byte dữ liệu được chấp nhận, bắt đầu từ byte được chỉ ra trong vùng ACK Number.
Chỉ số hiệu tuần tự của byte đi theo sau dữ liệu khẩn, cho biết độ dài của dữ liệu khẩn. Khai báo các options của TCP, trong đó có độ dài tối đa của vùng TCP data trong một segment. Phần chèn thêm vào header của TCP để header luôn kết thúc ở cột mốc 32 bit, trường Padding chỉ gồm toàn số 0.
Độ dài tối đa ngầm định là 556 byte, giá trị này có thể thay đổi được trong phần options.
Trên mô hình mạng TCP/IP tại tầng truy nhập mạng có thể dùng các chuẩn như Ethernet802.3, Tockenring hay FDDI. Trong chương trình của em hỗ trợ bắt gói tin theo chuẩn Ethernet802.3 nên em xin giới thiệu khuôn dạng gói tin tại tầng này theo chuẩn Ethernet 802.3. Phần dữ liệu bên trong có thể thay đổi từ 46 byte đến 1500 byte, và cuối cùng là phần checksum dài 4 byte.
Độ dài tối thiểu của gói Ethernet là 64 byte, nếu không dủ 64 byte thì nó sẽ tự động thêm các byte rỗng vào cho đủ 64 byte. Khuôn dạng gói tin tại tầng truy cập phương tiện theo chuẩn Ethernet 802.3 Trong đó. • Length chứa trong 1 byte thể hiện độ dài của header gói Ethernet, nhưng thường là giá trị 14.
Viờc biết rừ cỏc trường thụng tin trong gói Ethernet này sẽ phục vụ chúng ta trong việc phân tích các thông tin của gói tin khi nhận được từ card mạng.
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. 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. 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.
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 đó. - 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). Sử dụng thư viện PacketVB là phiên bản loại nhẹ của bộ thư viện WinPcap hỗ trợ bắt gói, chương trình được lập trình bằng ngôn ngữ Visual Basic.
Trong phần xử lý các gói tin sẽ bao gồm cả việc ghép các gói IP bị Fragment và nếu có các gói tin bất thường thì cũng cập nhập cảnh báo vào bảng Alert. Form chính của chương trình có thể được coi là form cấu hình cho chương trình với để thực hiện các thao tác trước khi chương trình làm việc. Form này còn cho phép người sử dụng có thể lựa chọn việc sử dụng lại cơ sở dữ liệu của việc chạy chương trình lần trước hay là dùng mới một cơ sở dữ liệu( Xoá cơ sở dữ liệu của việc chạy chương trình lần trước).
Trong form có cho phép người dùng mở cơ sở dữ liệu cũ ra để xem thông tin cấu hình và xem lại các thông tin mà chương trình đã thu thập và phân tích được trong các lần chạy trước. Các cổng trên các máy được giám khi có các kết nối đến được cho là bình thường còn khi có kết nối đến các địa chỉ IP này mà không thuộc tập các cổng được phép thì chương trình cũng sẽ đưa ra cảnh báo. Nó cho phép người sử dụng quan sát được các phiên làm việc của các máy trong mạng, địa chỉ IP, địa chỉ Mac, cổng giao dịch và giao thức mà hai máy sử dụng.
Các cảnh báo mỗi khi có hiện tượng bất thường đều được cập nhập ngay và thông báo cho người sử dụng biết để có biện pháp đối phó kịp thời. • Các chương trình thương mại hiện nay đều tiến hành phân tích dựa trên các mẫu có sắn, còn chương trình này thì sử dụng phương pháp thống kê. Sau khi tìm hiểu lý thuyết và bắt tay vào xây dựng được một chương trình IDS, có khả năng phát hiện được một số dấu hiệu bất thường trong mạng IP.
Trong quá trình làm đề tài thì em cũng đã có những hiểu biết thêm về vấn đề an ninh mạng và những kinh nghiệm thực tiễn chỉ có thể gặp được khi trực tiếp bắt tay vào việc xây dựng một chương trinh nghiêm túc.