1. Trang chủ
  2. » Luận Văn - Báo Cáo

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

11 666 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 11
Dung lượng 325,64 KB

Nội dung

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 1

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 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 7

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 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 8

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 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 9

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 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

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

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w