Npcap (Winpcap) là một ứng dụng mạnh mẽ, được thiết kế để cung cấp cho người dùng Windows khả năng truy cập sâu vào mạng ở tầng liên kết dữ liệu. Ứng dụng này cho phép các ứng dụng bắt và truyền tải các gói dữ liệu mạng, đồng thời cung cấp các tính năng hữu ích khác như công cụ thống kê mạng, bộ lọc gói tin ở cấp độ kernel và hỗ trợ chụp gói tin từ xa.
Mục Lục
Npcap (Winpcap) là gì?
Npcap bao gồm một trình điều khiển (driver) mở rộng hệ điều hành, cung cấp khả năng truy cập mạng ở mức thấp. Đồng thời, nó cung cấp một thư viện giúp đơn giản hóa việc truy cập các lớp mạng ở mức thấp. Thư viện này cũng bao gồm phiên bản Windows của libpcap Unix API, cho phép các ứng dụng Windows sử dụng cùng một mã nguồn để bắt gói tin trên cả Windows và Unix.
Nhờ các tính năng hữu ích, Npcap là một tiện ích lọc và chụp gói dữ liệu hiệu quả, được sử dụng rộng rãi bởi nhiều công cụ mã nguồn mở như công cụ phân tích giao thức, hệ thống phát hiện xâm nhập mạng (IDS), bộ tạo lưu lượng truy cập, công cụ kiểm tra mạng và công cụ quét bảo mật. Các công cụ nổi tiếng như Wireshark, Nmap và Snort đều tận dụng Npcap để thực hiện các chức năng mạng cốt lõi.
Npcap (Winpcap) được phát hành theo giấy phép mã nguồn mở BSD, cho phép người dùng tự do thay đổi và sử dụng nó trong các ứng dụng của mình. Mã nhị phân (binary code) và mã nguồn (source code) luôn có sẵn để tải xuống và sử dụng.
Các tính năng nổi bật của Npcap
-
Tương thích Windows 10: Npcap hoạt động trên Windows 7 trở lên bằng cách sử dụng API NDIS 6 Light-Weight Filter (LWF) mới. API này nhanh hơn và ổn định hơn so với API NDIS 5 cũ, vốn có thể bị Microsoft loại bỏ bất cứ lúc nào. Driver của Npcap được Microsoft ký chứng chỉ EV, đảm bảo khả năng tương thích và hoạt động trên các phiên bản Windows 10 yêu cầu đăng ký driver nghiêm ngặt hơn (từ phiên bản 1607 trở đi).
-
Tăng cường bảo mật: Npcap cung cấp khả năng giới hạn quyền truy cập, chỉ cho phép người dùng có quyền quản trị (administrator) mới có thể bắt các gói tin. Nếu một người dùng không có quyền quản trị sử dụng Npcap thông qua các phần mềm như Nmap hoặc Wireshark, họ sẽ phải thông qua hộp thoại User Account Control (UAC) để được cấp quyền sử dụng driver. Cơ chế này tương tự như trên hệ thống UNIX, nơi quyền truy cập root thường là cần thiết để bắt gói tin. Npcap cũng kích hoạt tính năng bảo mật ASLR (Address Space Layout Randomization) & DEP (Data Execution Prevention) và sử dụng driver đã được ký số để ngăn chặn các hành vi giả mạo.
Giao diện cài đặt Npcap phiên bản mới nhất, thể hiện các tùy chọn cấu hình và chế độ tương thích.
-
Bắt các gói tin Loopback: Npcap hỗ trợ phát hiện và bắt các gói tin loopback (gói tin được gửi từ máy tính đến chính nó) bằng cách sử dụng nền tảng lọc của Windows (Windows Filtering Platform – WFP). Sau khi cài đặt, Npcap sẽ tạo một bộ điều hợp (adapter) ảo có tên là “Npcap Loopback Adapter”. Người dùng Wireshark có thể chọn bộ điều hợp này để bắt các gói tin loopback, cho phép phân tích lưu lượng mạng nội bộ một cách dễ dàng. Để kiểm tra tính năng này, bạn có thể sử dụng lệnh “ping 127.0.0.1” (đối với IPv4) hoặc “ping ::1” (đối với IPv6).
-
Gửi các gói tin Loopback: Npcap cũng hỗ trợ gửi các gói tin loopback bằng kỹ thuật Winsock Kernel (WSK). Các ứng dụng ở chế độ người dùng (user-level) như Nping có thể gửi các gói tin ra bên ngoài thông qua bộ điều hợp Npcap Loopback Adapter, tương tự như bất kỳ bộ điều hợp mạng thông thường nào. Sau đó, Npcap sẽ loại bỏ tiêu đề Ethernet của gói tin và đưa phần dữ liệu (payload) vào ngăn xếp TCP/IP của Windows.
-
API Libpcap: Npcap sử dụng thư viện Libpcap, cho phép các ứng dụng Windows sử dụng một API duy nhất để bắt gói tin, tương thích với cả Linux và macOS. Trong khi Winpcap dựa trên Libpcap 1.0.0 từ năm 2009, Npcap tích hợp phiên bản Libpcap mới nhất cùng với nhiều cải tiến khác.
-
Chế độ tương thích Winpcap: Để đảm bảo khả năng tương thích với các ứng dụng chưa tận dụng các tính năng nâng cao của Npcap, Npcap có thể được cài đặt ở “Npcap (Winpcap) Compatible Mode”. Chế độ này sẽ thay thế bất kỳ cài đặt Winpcap hiện có nào. Nếu chế độ tương thích không được chọn, Npcap sẽ tồn tại song song với Winpcap. Các ứng dụng chỉ nhận diện Winpcap sẽ tiếp tục sử dụng nó, trong khi các ứng dụng khác có thể chọn sử dụng driver Npcap mới và nhanh hơn.
Cập nhật Npcap mới nhất
Npcap 0.9995
- Sửa lỗi treo BSoD (Blue Screen of Death) trong NPF_Read khi mô-đun bộ lọc NDIS bị tháo khỏi bộ điều hợp mạng.
- Trên Windows 10, driver Npcap được cập nhật lên NDIS 6.50 và tương thích với Windows 10 WFP, hỗ trợ cải thiện hiệu suất mạng như RSC (Receive Side Coalescing).
- Tuân thủ kích thước frame tối đa cho bộ điều hợp mạng theo truy vấn OID_GEN_MAXIMUM_TOTAL_SIZE thay vì sử dụng MTU (Maximum Transmission Unit), không bao gồm không gian cho header của lớp liên kết dữ liệu.
- Sửa lỗi rò rỉ tài nguyên khi sử dụng Npcap để gỡ cài đặt hoặc nâng cấp.
- Tuân theo snaplen (pcap_set_snaplen()) ngay cả khi chưa thiết lập bộ lọc gói.
- Nâng cấp để chống lại các vấn đề pool/slab allocator, cho phép giải phóng bộ nhớ khi không sử dụng.
- Khi cài đặt Npcap OEM trong chế độ silent (cài đặt tự động), tránh chạy C:sentayho.com.vn nếu có một quy trình cài đặt Npcap hiện tại đang chạy.
Npcap 0.9981
- Khi nâng cấp Npcap, không gỡ cài đặt phiên bản Npcap hiện tại cho đến khi người dùng nhấp vào nút “Install”.
- Xác định lại mã điều khiển I/O được sử dụng bởi Npcap khi sử dụng macro CTL_CODE để đảm bảo kiểm soát và khớp thông số phù hợp. Thay đổi này yêu cầu cả sentayho.com.vn và driver Npcap phải cùng phiên bản.
- Sửa lỗi tràn bộ nhớ 1-byte trong sentayho.com.vn khi đóng các tiến trình đang sử dụng Npcap DLLs.
- Trong trường hợp PacketOpenAdapter được đặt tên trong UTF-16LE, biên dịch nó sang ASCII trước khi tiến hành các hoạt động chuỗi.
- Sắp xếp lại cấu trúc dữ liệu nội bộ để giảm mức sử dụng bộ nhớ và chi phí khởi tạo.
Npcap tiếp tục được phát triển và cải tiến để cung cấp một giải pháp bắt gói tin mạng mạnh mẽ, an toàn và hiệu quả cho người dùng Windows.
