Đề xuất giải pháp giám sát mạng với mã nguồn mở winpcap

11 665 0
Đề xuất giải pháp giám sát mạng với mã nguồn mở winpcap

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

BỘ GIÁO DỤC VÀ ĐÀO TẠO TẬP ĐOÀN BƯU CHÍNH VIỄN THÔNG VIỆT NAM HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG NGUYỄN THÀNH NHÂN Đ Ề XUẤT GIẢI PHÁP GIÁM SÁT MẠNG VỚI NGUỒN MỞ WINPCAP CHUYÊN NGÀNH : TRUYỀN DỮ LIỆU VÀ MẠNG MÁY TÍNH MÃ SỐ : 60.48.15 LUẬN VĂN THẠC SĨ KỸ THUẬT NGƯỜI HƯỚNG DẪN KHOA HỌC : PGS.TSKH. HOÀNG ĐĂNG HẢI HÀ NỘI - 2010 20 - Đề xuất giải pháp giám sát mạng với Winpcap. Trong phần này, bài đã đưa ra được hình kiến trúc hệ thống giám sát mạng, giải pháp giám sát mạng LAN sử dụng Winpcap và các kết quả thử nghiệm với các phần mềm nguồn mở Windump, Wireshark sử dụng thư viện phần mềm nguồn mở Winpcap. Hiện nay, các công cụ phần mềm nguồn mở có khá nhiều trên mạng. Có thể sử dụng các công cụ phần mềm nguồn mở này để phát triển tiếp các phần mềm tương tự Windump hoặc Wireshark…, tích hợp chúng vào các hệ thống giám sát mạng. Làm được điều này, ta có thể làm chủ được công nghệ, tránh phải lệ thuộc vào nước ngoài và đảm bảo được tính an ninh của các sản phẩm bảo mật đặc thù của Việt Nam. Việc nghiên cứu tiếp tục tìm hiểu các công cụ phần mềm nguồn mở và khả năng ứng dụng phát triển phần mềm của chúng là những hướng phát triển khả thi tiếp theo. 1 CHƯƠNG 1 TỔNG QUAN VỀ GIÁM SÁT MẠNG MÁY TÍNH 1.1 Nhu cầu giám sát mạng máy tính Việc nghiên cứu giám sát lưu lượng mạng máy tính trở nên rất quan trọng và cấp thiết khi lưu lượng mạng phát triển theo hàm số mũ. Những thông tin và số liệu thu được qua giám sát mạng có thể trợ giúp đắc lực cho các công tác: - Quy hoạch mạng, tối ưu lưu lượng. - Quản lý sử dụng hiệu quả tài nguyên mạng. - Đảm bảo chất lượng dịch vụ (QoS – Quality of Service) thích hợp cho tất cả các ứng dụng. - Đảm bảo an toàn an ninh mạng. 1.2 Những mục tiêu của việc giám sát mạng máy tính - Nghiên cứu cấu trúc mạng, phục vụ cho việc quy hoạch mạng và tối ưu mạng. - Cung cấp chất lượng dịch vụ (Quality of Service – QoS) phù hợp cho các ứng dụng. - Phát hiện những yếu tố bất thường ảnh hưởng đến an ninh mạng. 1.3 Giám sát an ninh mạng máy tính Những yêu cầu thực tế về giám sát an ninh cụ thể như sau: - Cung cấp thông tin về trạng thái mạng. - Cảnh báo về những dấu hiệu tấn công. - Bảo vệ dữ liệu, tài nguyên mạng. - Bảo vệ uy tín của đơn vị. 1.4 Các đặc trưng cơ bản của lưu lượng mạng máy tính 1.4.1 Các tập lưu lượng điển hình và đặc tính 1) Lưu lượng của các luồng có kiểm soát. Lưu lượng này có yêu cầu chặt chẽ về các thông số liên quan đến trễ 2 đầu - cuối và trễ jitter, tỉ lệ mất gói… Các gói tin thường đến từ các ứng dụng truyền có tín hiệu âm thanh và hình ảnh, được truyền đi với các yêu cầu đảm bảo chất lượng dịch vụ khắt khe. 2) Lưu lượng các luồng gói tin có yêu cầu mềm dẻo về các thông số lưu lượng. 1.4.2 Các thông số điển hình của lưu lượng mạng máy tính 1) Những thông số về đặc tính mẫu lưu lượng mạng máy tính: + Dữ liệu chính được thu thập bao gồm: Tốc độ gói tin đến, Thời gian chuyển tiếp các gói, Phân phối độ dài các gói, Thời gian sống của đường truyền. + Dữ liệu thống kê được thu thập bao gồm: Giá trị trung bình, Giá trị đỉnh, Giá trị đột biến (tiêu chuẩn độ lệch), Tính tự tương quan (thông số Hurst H) của các dữ liệu lưu lượng. 2) Các thông số thể hiện đặc tính mạng: + Khả năng sử dụng và thông lượng. + Sự thụ động (chỉ khả năng chiếm giữ một liên kết). + Khả năng không thể dự báo trước (chỉ sự ổn định và bền vững của một liên kết). + Khả năng đáp ứng sự thay đổi của lưu lượng IP. + Độ ổn định của định tuyến. + Độ tin cậy (khả năng định vị chính xác một số lưu lượng bất thường và khoá chúng lại). 3) Các thông số thể hiện đặc tính QoS của một liên kết: + Trễ đầu - cuối + Trễ jitter + Tỷ lệ mất gói + Thời gian khứ hồi (RTT - Round Trip Time) 19 3.5.2 Thử nghiệm Wireshark WireShark là phần mềm bắt và phân tích gói tin, có giao diện đồ họa nên rất dễ sử dụng. Bản thân Wireshark cũng là một chương trình được viết dựa trên thư viện Winpcap, nên phải cài đặt Winpcap trước hoặc cùng lúc với tiến trình cài đặt Wireshark. Sau khi khởi động Wireshark, cần thiết lập các tùy chọn bắt gói tin cho Wireshark (menu Capture - Options). Sau khi đặt các tùy chọn cần thiết, ta nhấn nút Start để bắt gói tin. Phân tích gói tin với Wireshark Mất kết nối TCP (A Lost TCP Connection) Xử lý tình huống về băng thông với Wireshark Ví dụ, toàn bộ mạng LAN download rất chậm. Có thể kiểm tra điều này thông qua việc cài đặt Wireshark lắng nghe toàn bộ đầu ra của mạng (ở hình thử nghiệm thứ 2). CHƯƠNG 4 KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN TIẾP Trong số các công cụ theo dõi, giám sát lưu lượng mạng, WinPcap là một thư viện phần mềm nguồn mở cho phép bắt giữ các gói tin, có thể sử dụng khá tốt cho việc theo dõi, giám sát lưu lượng mạng. Sau quá trình thực hiện, bài luận văn đã đạt được các nội dung nghiên cứu chính như sau: - Nghiên cứu tổng quan về vấn đề giám sát mạng máy tính. - Nghiên cứu công cụ phần mềm nguồn mở Winpcap. 18 Để in tất cả các gói tin ICMP không phải là echo requests/replies (tức là không phải là ping packets) Lệnh: windump icmp[icmptype] != icmp-echo and icmp[icmptype] != icmp-echoreply Để in tất cả các gói tin IPv4 HTTP đến và đi từ cổng 80, ví dụ chỉ in các gói có chứa dữ liệu, các gói SYN và FIN và ACK. Lệnh: windump tcp port 80 and (((ip[2:2] - ((ip[0]&0xf)<<2)) - ((tcp[12]&0xf0)>>2)) != 0) Phân tích các gói tin TCP với Windump Khi bắt gói tin với Windump, khuôn dạng chung cho dòng giao thức TCP là: src > dst: flags data-seqno ack window urgent options Sau đây là phần mở đầu của một rlogin từ máy chủ rtsg đến máy chủ csam rtsg.1023 > csam.login: S 768512:768512(0) win 4096 <mss 1024> csam.login > rtsg.1023: S 947648:947648(0) ack 768513 win 4096 <mss 1024> rtsg.1023 > csam.login: . ack 1 win 4096 rtsg.1023 > csam.login: P 1:2(1) ack 1 win 4096 csam.login > rtsg.1023: . ack 2 win 4096 rtsg.1023 > csam.login: P 2:21(19) ack 1 win 4096 csam.login > rtsg.1023: P 1:2(1) ack 21 win 4077 csam.login > rtsg.1023: P 2:3(1) ack 21 win 4077 urg 1 csam.login > rtsg.1023: P 3:4(1) ack 21 win 4077 urg 1 Dòng đầu tiên nói rằng cổng tcp 1023 trên máy rtsg gửi một gói dữ liệu tới cổng login trên máy csam. S chỉ ra rằng cờ SYN được thiết lập. Số thứ tự của gói là 768.512 và nó không chứa dữ liệu. Không có ack, nhận được các cửa sổ có 4.096 byte và đã có một max-segment-size tùy chọn yêu cầu một MSS với 1.024 byte. 3 1.5 Các phương thức thu thập thông tin lưu lượng mạng máy tính 1.5.1 Các phương thức thu thập thông tin cơ bản  Đo thụ động Một máy đo lưu lượng (có thể là phần cứng hoặc phần mềm) được gắn tại vị trí nút mạng và ghi lại lưu lượng ra/vào nút mạng. Một cách thông dụng nhất, máy đo được gắn vào liên kết giữa các node mạng, ghi lại thông tin về lưu lượng mạng trên liên kết đó.  Đo tích cực Lưu lượng mạng được nghiên cứu bằng cách gửi dữ liệu qua mạng (thường là các gói tin để đo kiểm từ đầu đến cuối) và quan sát kết quả. Giao thức bản tin điều khiển Internet (ICMP) có thể được sử dụng cho mục đích này.  Giám sát thông tin điều khiển Các thông tin điều khiển mạng ví dụ như về định tuyến hoặc thông tin quản lý mạng được bắt giữ và phân tích. 1.5.2 Phương thức lẫy mẫu thu thập thông tin Lấy mẫu là phương pháp phổ biến cho tất cả các hệ thống giám sát nhằm khắc phục khó khăn nêu trên. Đương nhiên, độ chính xác và mức độ phù hợp của phương pháp này tùy theo từng loại ứng dụng, từng loại lưu lượng. 1.5.3 Các yêu cầu đặt ra trong thu thập thông tin lưu lượng - Tính độc lập giữa giao thức và lưu lượng - Khả năng mở rộng - Tối ưu về thời gian thu thập và tính dư thừa của dữ liệu thu được - Thích ứng với sự thay đổi về hình trạng mạng - Đảm bảo độ tin cậy và bảo mật 4 - Không ảnh hưởng đến hoạt động bình thường của mạng - Khả năng dự báo 1.6 Các vị trí giám sát, thu thập thông tin trên mạng 1.6.1 Phạm vi giám sát vùng mạng cấp 1 Các giải pháp sử dụng thu thập thông tin có thể là: sử dụng Hub, SPAN port, passive Tap, các phần mềm sensor. 1.6.2 Phạm vi giám sát vùng mạng cấp 2 Các giải pháp thu thập thông tin có thể là: sử dụng Hub, SPAN port, passive Tap. Các sensor là các thiết bị thu thập thông tin, có thể nối với các Hub, hoặc các Switch, Router để lấy thông tin. 1.6.3 Phạm vi giám sát tại máy chủ hoặc máy trạm người dùng Việc thu thập thông tin có thể thông qua một phần mềm (phần mềm sensor) cài đặt trên máy chủ/ máy trạm người dùng hoặc qua một thiết bị sensor kết nối trực tiếp với máy chủ cài / máy trạm người dùng. 1.7 Các thiết bị trung gian cho giám sát, thu thập thông tin trên mạng 1.7.1 Thiết bị Hub Đây là phương thức đơn giản nhất. Hub là thiết bị nối mạng gửi song song các gói tin ra tất cả các cổng nối. Thiết bị sensor nối vào một cổng của Hub sẽ thu được mọi gói tin truyền giữa các máy tính nối vào Hub. 1.7.2 SPAN port SPAN là viết tắt của từ “Switch Port ANalyzer”, hay còn gọi là “port mirroring” hoặc “port monitoring”. Có thể cấu hình cho cổng SPAN để thu lưu lượng trên các cổng khác. Nghĩa là, nếu nối thiết bị sensor vào cổng SPAN, ta có thể thu được mọi lưu lượng đi qua nút chuyển mạch. 1.7.3 Taps 17 bắt gói. Windump có lệnh cho phép ta xem chi tiết về tất cả các card mạng tồn tại trong máy (Windump -D). Để in tất cả các gói dữ liệu đến và đi từ máy tính Svr01 Lệnh: Windump -i3 host Srv01 (ở đây -i3 là capture trên card mạng số 3 của local host; Srv01 là tên máy tính ở xa). Để in ra lưu lượng giữa hai máy tính Srv01 và NhanNt Lệnh: Windump -i3 host Srv01 and NhanNt Để in ra tất cả các gói tin IP giữa Srv02 và máy tính bất kỳ, trừ Srv01 Lệnh: Windump -i3 host Srv02 and not Srv01 Để in ra tất cả lưu lượng giữa Local host và các host ở mạng LAN1 Lệnh: Windump -i3 net LAN1 Để in ra tất cả lưu lượng Ftp thông qua internet gateway snup Lệnh: Windump -i3 gateway snup and (port ftp or ftp- data) Để in lưu lượng không có nguồn gốc cũng không có đích đến cho local host Lệnh: Windump -i3 ip and not net localnet Để in các gói bắt đầu và kết thúc (SYN and FIN packet) của mỗi hội thoại TCP liên quan đến một non-local host Lệnh: windump tcp[tcpflags] & (tcp-syn|tcp-fin) != 0 and not src and dst net localnet Để in các gói tin IP lớn hơn 576 byte được gửi qua gateway snup Lệnh: windump gateway snup and ip[2:2] > 576 Để in các gói tin IP broadcast hoặc multicast không gửi qua Ethernet broadcast hoặc multicast Lệnh: windump ether[0] & 1 = 0 and ip[16] >= 224 16 - Lưu lượng trên mạng. 3.3.2.5 Hệ thống ghi log và cảnh báo (Logging and Alerting System) Bộ phận đầu ra (Output Modules): Tại đây các cảnh báo sẽ được tạo ra và ghi lại trong các logfile dạng text hay các dạng theo yêu cầu của người quản trị. 3.4 Hệ thống giám sát mạng LAN sử dụng Winpcap 3.4.1 hình thử nghiệm thứ nhất Tại hình này, ta cài đặt Winpcap trên một hoặc hai PC (trong mạng LAN), tại đây Winpcap chủ yếu làm nhiệm vụ bắt các gói tin vào ra trên các card mạng của PC. 3.4.2 hình thử nghiệm thứ hai Tại hình này, ta cài đặt Winpcap trên một PC nằm giữa Firewall và Hub/Switch và trên một PC nằm sau Hub/Switch, tại đây Winpcap làm nhiệm vụ bắt các gói tin vào ra trên cả đoạn mạng, sử dụng chức năng Remote Capture. 3.5 Thử nghiệm hệ thống, phân tích các kết quả thu được 3.5.1 Theo dõi nội dung các gói tin với Windump Windump là một phần mềm dùng để theo dõi các gói dữ liệu lưu thông qua Card mạng. Bản thân Windump cũng là một chương trình được viết dựa trên thư viện Winpcap, nên phải cài đặt Winpcap trước hoặc cùng lúc với tiến trình cài đặt Windump. Sau khi download Windump vào một thư mục, ta vào menu Start - Run - Cmd, chuyển vào thư mục chứa chương trình Windump. Windump sẽ chạy trong chế độ dòng lệnh. Bắt gói tin với Windump Trước khi dùng Windump để bắt các gói tin, ta phải xác định được chính xác card mạng trên máy tính dùng để 5 TAP (Test Access Port) là một thiết bị nối mạng được thiết kế riêng cho việc theo dõi giám sát. Các thiết bị Tap được dùng để thiết lập các cổng truy nhập riêng để theo dõi thụ động lưu lượng. Thiết bị Tap được đặt giữa hai thiết bị mạng. 1.7.4 Inline device “Inline device” là một trình điều khiển thiết bị (phần mềm) hoặc một thiết bị phần cứng đặc biệt để theo dõi lưu lượng. 1.8 Kết luận Chương 1 đã phân tích nhu cầu giám sát mạng, nêu những mục tiêu giám sát lưu lượng mạng máy tính, trình bày những đặc trưng cơ bản của lưu lượng mạng máy tính. Các phương thức thu thập thông tin về lưu lượng mạng máy tính đã được phân tích, đánh giá. Tiếp đó, bài đã trình bày về các vị trí có thể giám sát thu thập thông tin trên mạng và các thiết bị trung gian phục vụ cho việc giám sát, thu thập thông tin trên mạng. CHƯƠNG 2 NGHIÊN CỨU THỬ NGHIỆM CÔNG CỤ PHẦN MỀM NGUỒN MỞ WINPCAP 2.1 Giới thiệu chung về công cụ phần mềm Winpcap WinPcap là công cụ phần mềm nguồn mở, gồm một trình điều khiển mở rộng cho hệ điều hành để truy nhập mức thấp vào mạng và một thư viện nguồn mở cho phép truy nhập vào các lớp mạng mức thấp. Winpcap cho phép các ứng dụng bắt (capture) các gói tin và phân tích lưu lượng mạng trên nền tảng hệ điều hành Windows. 6 2.2 Cấu trúc của Winpcap Winpcap gồm 3 thành phần chính: bộ lọc gói mức kernel, một thư viện liên kết động packet.dll mức thấp, và một hệ thống thư viện độc lập Wpcap.dll mức cao 2.2.1 Packet.dll Thư viện Packet.dll cung cấp một API (application program interface) mức thấp, truy xuất trực tiếp tới trình điều khiển thiết bị NPF (Netgroup Packet Filter device driver), độc lập với hệ điều hành Windows. 2.2.2 Wpcap.dll Thư viện Wpcap.dll cung cấp một tập các chức năng bắt gói mức cao, (tương thích với libpcap dùng trên linux). Wpcap.dll hoạt động độc lập với phần cứng mạng và hệ điều hành. 2.2.3 Trình điều khiển NPF (Netgroup Packet Filter device driver) Trình điều khiển thiết bị NPF dùng để bắt gói tin trực tiếp từ mạng. NPF phát hiện gói tin trên giao diện mạng (NIC), bắt chúng và phân phối chúng nguyên vẹn đến ứng dụng người dùng thông qua các lớp phần mềm packet.dll và wpcap.dll. 2.3 tả chức năng bắt gói với Winpcap Để có thể bắt được các dữ liệu thô đi qua trên mạng, hệ thống bắt gói tin cần đi tắt qua những chồng giao thức của các hệ điều hành. Điều này đòi hỏi một phần bên trong lõi của hệ điều hành có tương tác trực tiếp với trình điều khiển giao diện mạng. Đây là phần rất phụ thuộc vào hệ thống, được thực hiện thông qua một trình điều khiển thiết bị, gọi là Netgroup Packet Filter (NPF). Trình điều khiển NPF cung cấp hai tính năng cơ bản gồm: bắt gói tin và chèn thông tin vào gói tin. 2.4 Cấu trúc bên trong NPF 15 các Sensor này được truyền tải về trung tâm quản trị dữ liệu thông qua chính đường Internet. Đối với mạng quy cỡ quốc gia các Sensor có thể được đặt tại các cơ quan, tổ chức, các ban nghành hay văn phòng chính phủ để thu thập thông tin, phân tích và gửi các thông tin có dấu hiệu bất thường về trung tâm cảnh báo và ứng cứu quốc gia. 3.3.2 tả hoạt động của một hệ thống giám sát an toàn mạng 3.3.2.1 Bộ phận bắt giữ gói tin (Packet Capture) Bộ phận bắt giữ gói tin (phần mềm sử dụng Winpcap) sẽ lấy các gói từ các giao diện mạng khác nhau và chuẩn bị cho việc gói tin được xử lý trước. 3.3.2.2 Bộ phận giải gói tin (Packet Decoder) Bộ phận giải gói tin sẽ giải các gói, chuẩn hóa dữ liệu và chuyển gói tin đến bộ phận tiền xử lý. 3.3.2.3 Bộ phận tiền xử lý (Preprocessor) Chức năng chuẩn bị cho các gói dữ liệu được phân tích dựa trên các luật trong bộ phận phát hiện. Bộ phận tiền xử lý được dùng để sắp xếp hoặc chỉnh sửa gói dữ liệu trước khi bộ phận phát hiện tìm ra gói tin mang dấu hiệu tấn công. Bộ phận tiền xử lý có thể tái hợp các gói tin, giải mã HTTP URI, ráp lại các dòng TCP 3.3.2.4 Bộ phận phát hiện (Detection Engine) Chức năng phát hiện các gói tin có dấu hiệu tấn công dựa vào các luật. Nếu một gói tin giống với bất kì luật nào, một hành động tương ứng sẽ được thực hiện. Hiệu năng của bộ phận phát hiện phụ thuộc vào các yếu tố sau: - Số lượng các luật. - Cấu hình phần cứng của máy chủ cài phần mềm giám sát. - Băng thông sử dụng. 14 dùng và hoạt động bất thường để tìm ra được các tấn công nguy hiểm kịp thời. 3.2.2 Phát hiện bất thường Phát hiện dựa trên sự bất thường hay tả sơ lược phân tích những hoạt động của mạng máy tính và lưu lượng mạng nhằm tìm kiếm sự bất thường. Khi tìm thấy sự bất thường, một tín hiệu cảnh báo sẽ được khởi phát. Sự bất thường là bất cứ sự chệch hướng hay đi khỏi những thứ tự, dạng, nguyên tắc thông thường. 3.3 hình kiến trúc của hệ thống giám sát mạng 3.3.1 Đề xuất hình một hệ thống giám sát an toàn mạng Cấu trúc chung của một hệ thống giám sát an toàn thông tin mạng gồm 5 phân hệ kỹ thuật chức năng. Tuy nhiên tùy theo quy của mạng cần giám sát cấu hình và số lượng các thiết bị phục vụ việc giám sát có thể khác nhau. Mạng nội bộ của cơ quan, tổ chức được kết nối tới Internet và được bảo vệ bởi hệ thống Firewall (Tường lửa). Tuy nhiên firewall vẫn không thể tránh được các lỗ hổng và một số các thông tin không mong muốn (Ví dụ mã độc, thư rác, Virus ) vẫn có thể vượt qua. Do vậy người quản trị dùng thêm một thiết bị giám sát Sensor (ở đây là phần mềm). Phần mềm giám sát có nhiệm vụ bắt các gói tin, kiểm tra lưu lượng mạng sau Firewall để phát hiện ra các dấu hiệu bất thường trước khi đưa ra cảnh báo cho người quản trị hệ thống. Đối với những mạng lớn hơn (Ví dụ mạng của các công ty đa quốc gia) người ta có thể phải phân vùng giám sát và sử dụng nhiều Sensor khác nhau, mỗi Sensor giám sát cho một phân vùng mạng. Thông tin thu thập được từ 7 NPF (Netgroup Packet Filter) là phần lõi (kernel) của WinPcap. NPF xử lý các gói tin được truyền trên mạng và xuất khẩu gói tin, chèn thêm gói tin và khả năng phân tích theo các mức sử dụng. 2.4.1 NPF và NDIS NDIS (Network Driver Interface Specification) là một đặc tả tiêu chuẩn để xác định việc truyền thông giữa một card mạng và các giao thức điều khiển (ví dụ như TCP/IP). Mục đích chính của NDIS là đóng vai một gói (trình bao bọc - wrapper), cho phép trình điều khiển giao thức gửi và nhận các gói lên trên một mạng (LAN hoặc WAN) không cần quan tâm đến adapter đặc biệt hoặc hệ điều hành. NDIS hỗ trợ ba loại trình điều khiển mạng: - Trình điều khiển giao diện mạng (NIC drivers). - Trình điều khiển trung gian (Intermediate drivers). - Trình điều khiển vận chuyển (Transport drivers hoặc protocol drivers). 2.4.2 Các thành phần cơ bản của cấu trúc NPF NPF cho phép thực hiện một số hoạt động khác nhau: bắt gói, giám sát, dump to disk, packet injection… 2.5 Các chức năng của Winpcap dùng cho giám sát mạng 2.5.1 Bắt giữ gói tin (Packet Capture) Hoạt động quan trọng nhất của NPF là bắt gói. Trong khi bắt gói tin, trình điều khiển lắng nghe (sniffs) các gói bằng cách sử dụng một giao diện mạng và chuyển chúng nguyên vẹn cho các ứng dụng ở mức người dùng. Quá trình capture dựa trên hai thành phần chính: - Bộ lọc gói tin - Bộ đệm quay vòng 2.5.2 Chèn gói tin (Packet injection) 8 NPF cho phép viết các gói tin thô vào mạng. Để gửi dữ liệu, một ứng dụng mức người dùng thực hiện một lời gọi hệ thống WriteFile() trên NPF device file. Dữ liệu được gửi tới mạng như nó có, không cần đóng gói nó trong bất kỳ giao thức nào, bởi vậy ứng dụng sẽ phải xây dựng các tiêu đề (header) khác nhau cho mỗi gói. Các ứng dụng thông thường không cần phải tạo ra các FCS (Frame Check Sequence) vì nó được tính toán bởi phần cứng của bộ tiếp hợp mạng và nó được gán tự động vào cuối của gói trước khi gửi nó vào mạng. 2.5.3 Giám sát mạng WinPcap cung cấp một module giám sát lập trình được mức kernel, có khả năng tính toán thống kê đơn giản trên lưu lượng mạng. Các số liệu thống kê có thể được thu thập không cần phải sao chép các gói tới ứng dụng, đơn giản là nhận được và hiển thị các kết quả thu được từ động cơ (engine) giám sát. 2.5.4 Đẩy dữ liệu vào đĩa (Dump to disk) Khả năng dump to disk (đổ vào disk) có thể được dùng để lưu các dữ liệu mạng trực tiếp vào disk từ kernel mode. 2.5.5 Lấy về danh sách thiết bị Để lấy về danh sách các thiết bị mạng ta sử dụng hàm pcap_findalldevs_ex(). Hàm này sẽ trả về một danh sách các thiết bị sau đó ta có thể mở với hàm pcap_open(). 2.5.6 Mở một thiết bị và chặn bắt các gói tin Để mở một thiết bị mạng (thường là network adapter) để bắt đầu chặn bắt ta sử dụng hàm pcap_open(). Sau khi thiết bị đã được mở, việc chặn bắt có thể được thực hiện với hàm pcap_dispatch() hoặc pcap_loop(). 2.5.7 Lọc gói tin (Filtering) 13 Trên tổng thể, các hệ thống giám sát và cảnh bảo an toàn mạng thường bao gồm các phân hệ kỹ thuật chức năng chủ yếu là: - Phân hệ thu thập thông tin mạng: việc thu thập thông tin có thể thực hiện một cách nhân công (các kênh thông báo, công văn, fax…) hay tự động (các thiết bị bảo vệ mạng, các phần mềm giám sát …). Các thiết bị phần cứng (hay phần mềm) làm chức năng thu thập thông tin an toàn mạng một cách tự động thông thường được gọi là các Sensor. Trong phạm vi luận văn sẽ chỉ đề cập đến các phần mềm làm chức năng này. - Phân hệ phân tích thông tin: Phân hệ này có chức năng phân tích và lọc ra các thông tin có dấu hiệu bất thường như các độc, các dấu hiệu tấn công mạng … - Phân hệ cơ sở dữ liệu: lưu trữ thông tin bất thường đã phát hiện được để phục vụ cho các mục đích thống kê… - Phân hệ hỗ trợ cảnh báo và truyền tải: có chức năng đưa ra các cảnh báo cho người quản trị mạng về các dấu hiệu tấn công đã phát hiện được và truyền tải các thông tin này tới các hệ thống giám sát cấp cao hơn nếu có yêu cầu. - Phân hệ điều khiển cấu hình: Phân hệ này cho phép người quản trị mạng có thể thay đổi cấu hình của các thiết bị giám sát trên mạng tùy theo quy của hệ thống giám để tiết kiệm chi phí. 3.2 Những phương thức giám sát mạng phát hiện tấn công 3.2.1 Phát hiện dựa trên dấu hiệu Phát hiện dựa trên dấu hiệu (signature-based detection) hay còn gọi phát hiện sử dụng sai. Phương pháp này phân biệt giữa các hoạt động thông thường của người 12 - Thiết lập các tùy chọn của bộ kết nối (linker) để include file thư viện wpcap.lib cho các mục tiêu của chúng ta (x86 hay x64). - Thiết lập các tùy chọn của bộ kết nối (linker) để include file thư viện winsock ws2_32.lib. 2.7.3 Bắt giữ gói tin từ xa (Remote capture) WinPcap có kèm khả năng Remote Capture. Đây là tính năng nâng cao cho phép tương tác với một máy tính từ xa và bắt các gói bắt đầu truyền trên remote network. Điều này đòi hỏi một remote daemon (gọi là rpcapd) thực hiện việc capture và gửi dữ liệu trở lại và một local client sẽ gửi những lệnh thích hợp để nhận được dữ liệu đã bắt giữ. Các chế độ hoạt động bắt giữ gói tin từ xa (Remote Capture Running Modes) The Remote Capture Protocol (RPCAP) có thể làm việc trong hai chế độ: - Passive mode (default): client (ví dụ một network sniffer) kết nối tới remote daemon, nó gửi cho chúng lệnh thích hợp, và bắt đầu capture. - Active mode: remote daemon cố gắng thiết lập một kết nối về phía client (ví dụ một network sniffer); sau đó, client gửi lệnh thích hợp cho daemon và nó bắt đầu capture. Tên gọi này là do thực tế daemon sẽ trở thành active thay vì chờ đợi một kết nối mới. CHƯƠNG 3 ĐỀ XUẤT GIẢI PHÁP GIÁM SÁT MẠNG VỚI WINPCAP 3.1 Các chức năng cơ bản của một hệ thống giám sát mạng 9 Là một tính năng mạnh và hữu dụng nhất trong winpcap.Nó cung cấp khả năng phân tích mạng một cách hiệu quả và kết hợp hoàn hảo với cơ chế chặn bắt của Winpcap. Những hàm được sử dụng để filter packet là pcap_compile() và pcap_setfilter(). 2.5.8 Thống kê Ta có thể thống kê dựa vào thông tin của các packet chặn bắt được để thu thập thông tin tình trạng mạng. Tuy nhiên, với những ứng dụng không đòi hỏi thống kê chi tiết ta có thể yêu cầu network adapter làm công việc thống kê bằng cách thiết đặt nó trong trạng thái thống kê (statistical mode) bằng cách sử dụng hàm set_mode(). 2.6 So sánh, đánh giá các mức giám sát và bắt gói tin Thông thường các chương trình giám sát mạng thường chặn bắt gói tin ở mức ứng dụng, mức hệ điều hành và mức network adapter. 2.6.1 Mức hệ điều hành (raw socket) Socket là một phương pháp để thiết lập kết nối truyền thông giữa một chương trình yêu cầu dịch vụ (client) và một chương trình cung cấp dịch vụ (server) trên mạng LAN, WAN hay Internet và đôi lúc là giữa những quá trình ngay bên trong máy tính. Raw socket là một socket cho phép truy nhập trực tiếp tới header của một packet. Nói một cách khác, raw socket là một cách bỏ qua toàn bộ network stack và đưa packet tới thẳng tầng ứng dụng. Raw socket có thể thực hiện một trong hai tác vụ: Packet Sniffing: nhận các packet từ raw socket. Packet Injection: gửi các packet tới raw socket. 2.6.2 Pcap - mức network adapter Pcap (packet capture) bao gồm những giao diện lập trình ứng dụng (API) dùng để chặn bắt network traffic. [...]... thích với Visual Studio 6 - Microsoft Visual C++ 6.0 với Service Pack 5 hoặc 6 2.7.1.2 Biên dịch packet.dll nguồn của các DLL này nằm trong PacketNTx\dll\ Họ hệ điều hành Windows 9x không còn được hỗ trợ bởi WinPcap Tuy nhiên, nguồn cho hệ điều hành vẫn còn có sẵn trong các gói nguồn Các yêu cầu phần mềm gồm: - Microsoft Visual Studio 2005 SP1 Nó là lý thuyết khả dĩ để biên dịch x86 version với. .. được với tầng thứ 3 trong hình OSI trở lên (network layer trong TCP/IP) còn pcap có thể làm việc với tầng thứ 2 trở lên trong hình OSI (link layer trong TCP/IP) 2.7 Thử nghiệm với Winpcap 2.7.1 Biên dịch Winpcap Hai bộ nguồn chính của NPF sẵn sàng cho biên dịch được sử dụng với Windows NT4 và Windows 9x Lưu ý rằng, trình điều khiển NPF phụ thuộc hệ điều hành, và cần liên kết chính xác với các... Đối với các hệ thống thuộc họ Unix ta có thư viện libpcap, còn đối với Window ta có thư viện winpcap Pcap thường có hai thành phần cơ bản: - Driver: packet capture driver không thể được viết bằng các ngôn ngữ bậc cao thường viết bằng C hoặc assembly - Interface: là giao diện thực hiện packet capture 2.6.3 So sánh Raw socket và Pcap Raw socket và pcap đều được sử dụng để viết chương trình giám sát mạng. .. unzipped trong cùng một thư mục với nơi các nguồn WinPcap unzipped 2.7.1.3 Biên dịch wpcap.dll Wpcap.dll có thể được biên dịch cho bất kỳ Win32 platform và đã tạo ra dll độc lập với hệ thống Các yêu cầu phần mềm gồm có: - Microsoft Visual Studio 2005 SP1 - The AirPcap developer's pack; The AirPcap developer's pack cần phải unzipped trong một folder giống với folder nơi WinPcap sources đã được unzipped... WinPcap sources đã được unzipped 2.7.2 Tạo một ứng dụng với Winpcap trong chương trình Để tạo ra một ứng dụng sử dụng wpcap.dll với Microsoft Visual C++, trình tự làm theo các bước sau: - Include tập tin pcap.h tại đầu mỗi file nguồn sử dụng các chức năng exported bởi thư viện - Nếu chương trình sử dụng những chức năng đặc biệt Win32 của WinPcap, cần include WPCAP trong số những định nghĩa tiền... include WPCAP trong số những định nghĩa tiền xử lý (preprocessor definitions) - Nếu chương trình sử dụng khả năng capture từ xa của WinPcap, cần thêm HAVE_REMOTE giữa các định nghĩa tiền xử lý (preprocessor definitions) Không được include remote-ext.h trực tiếp trong nguồn các tập tin . - Đề xuất giải pháp giám sát mạng với Winpcap. Trong phần này, bài đã đưa ra được mô hình kiến trúc hệ thống giám sát mạng, giải pháp giám sát mạng. THÀNH NHÂN Đ Ề XUẤT GIẢI PHÁP GIÁM SÁT MẠNG VỚI MÃ NGUỒN MỞ WINPCAP CHUYÊN NGÀNH : TRUYỀN DỮ LIỆU VÀ MẠNG MÁY TÍNH MÃ SỐ : 60.48.15

Ngày đăng: 13/02/2014, 12:42

Từ khóa liên quan

Tài liệu cùng người dùng

Tài liệu liên quan