Có thể sử dụng các công cụ phần mề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.. CHƯƠNG 4 KẾT LUẬN VÀ
Trang 1HỌ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 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
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
Trang 2- Đề 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 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 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 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 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
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 mà 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ễ
Trang 3đầ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)
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 (ở mô 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 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 mã nguồn mở Winpcap
Trang 4Để in tất cả các gói tin ICMP mà 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
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
Trang 5- 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
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 mà 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 mà không gửi qua Ethernet broadcast hoặc multicast
Lệnh: windump ether[0] & 1 = 0 and ip[16] >= 224
Trang 6- 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 Mô hình thử nghiệm thứ nhất
Tại mô 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 Mô hình thử nghiệm thứ hai
Tại mô 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 để
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 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 mã 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
Trang 72.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 Mô 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
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 mô 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 Mô 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 mã gói tin (Packet Decoder)
Bộ phận giải mã gói tin sẽ giải mã 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
Trang 8dù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 mô 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 Mô hình kiến trúc của hệ thống giám sát mạng
3.3.1 Đề xuất mô 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 mô của mạng cần giám sát mà 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ừ
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)
Trang 9NPF 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 mà 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ị mà 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)
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 mã độ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 mô 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
Trang 10- 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
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