Học viện Kỹ thuật Mật mã
ĐỒ ÁN TỐT NGHIỆP
MỤC LỤC
Trang
MỤC LỤC 1
DANH MỤC CÁC TỪ VIẾT TẮT..................................................................4
DANH MỤC CÁC BẢNG...............................................................................8
DANH MỤC CÁC HÌNH VẼ........................................................................12
LỜI MỞ ĐẦU................................................................................................16
Chương 1 18
1.1. TỔNG QUAN HỆ THỐNG MẠNG TCP/IP........................................18
1.1.1. Khái niệm mạng máy tính...............................................................18
1.1.2. Kiến trúc phân tầng của mạng máy tính..........................................19
1.1.3. Mô hình tham chiếu OSI.................................................................21
1.1.4. Mô hình TCP/IP..............................................................................24
1.1.5. So sánh giữa mô hình OSI và TCP/IP.............................................25
1.2. TÌM HIỂU VỀ MÔ HÌNH TCP/IP.......................................................26
1.2.1. Cấu trúc phân tầng của mô hình TCP/IP.........................................26
1.2.2. Quá trình truyền nhận dữ liệu trong TCP/IP...................................29
1.2.3. Sơ lược chức năng từng tầng trong mô hình TCP/IP......................30
1.2.4. Các giao thức chính trong mô hình TCP/IP và khuôn dạng dữ liệu
tương ứng..................................................................................................31
Chương 2 43
2.1. CÁC KHÁI NIỆM................................................................................43
2.1.1. Packet..............................................................................................43
2.1.2. Network Traffic...............................................................................43
2.1.3. Packet capture.................................................................................43
2.1.4. Packet Analyzer (Sniffer)................................................................44
2.2. ỨNG DỤNG CỦA VIỆC CHẶN BẮT GÓI TIN.................................44
-1-
Học viện Kỹ thuật Mật mã
ĐỒ ÁN TỐT NGHIỆP
2.2.1. Khả năng.........................................................................................44
2.2.2. Mục đích của việc chặn bắt gói tin..................................................45
2.3. CÁC THÀNH PHẦN CHÍNH CỦA MỘT CHƯƠNG TRÌNH CHẶN
BẮT GÓI TIN..............................................................................................45
2.3.1. Thành phần phần cứng....................................................................45
2.3.2. Thành phần Capture driver..............................................................46
2.3.3. Thành phần Buffer:.........................................................................46
2.3.4. Thành phần Real-time analysis.......................................................46
2.3.5. Thành phần Decode.........................................................................46
2.3.6. Thành phần Packet editting/transmission........................................46
2.4. CÁCH THỨC HOẠT ĐỘNG CỦA VIỆC CHẶN BẮT GÓI TIN......46
2.4.1. Theo dõi Network Traffic...............................................................46
2.4.2. Phân tích Network Traffic...............................................................46
2.5. CÁC PHƯƠNG PHÁP CHẶN BẮT GÓI TIN....................................49
2.5.1. Mức hệ điều hành (Socket, Raw Socket)........................................49
2.5.2. Mức Network Adapter (Pcap).........................................................50
2.5.3. So sánh Raw Socket và Pcap..........................................................51
2.6. PHÒNG CHỐNG SNIFFER TRÊN MẠNG MÁY TÍNH...................53
2.6.1. Phát hiện sniffer trong mạng...........................................................53
2.6.2. Ngăn chặn sniffer............................................................................54
2.6.3. Một số chương trình phát hiện sniffer.............................................54
Chương 3 55
3.1. HƯỚNG THỰC HIỆN CHƯƠNG TRÌNH..........................................55
3.2. LỰA CHỌN PHƯƠNG PHÁP VÀ NỀN TẢNG XÂY DỰNG
CHƯƠNG TRÌNH.......................................................................................58
3.2.1. Lựa chọn ngôn ngữ lập trình...........................................................58
-2-
Học viện Kỹ thuật Mật mã
ĐỒ ÁN TỐT NGHIỆP
3.2.2. Lựa chọn phương pháp chặn bắt gói tin..........................................59
3.3. THƯ VIỆN WINPCAP VÀ SHARPPCAP..........................................60
3.3.1. WinPcap..........................................................................................60
3.3.2. SharpPcap........................................................................................62
3.4. PHÂN TÍCH THIẾT KẾ CHƯƠNG TRÌNH.......................................72
3.4.1. Các chức năng chính.......................................................................72
3.4.2. Phân tích xây dựng các chức năng chính........................................73
3.5. CHƯƠNG TRÌNH HOÀN THIỆN.......................................................80
3.5.1. Mô tả...............................................................................................80
3.5.2. Giao diện chương trình...................................................................81
Chương 4 85
4.1. Ý TƯỞNG CHUNG CHO VIỆC THỰC HIỆN PHÁT HIỆN XÂM
NHẬP THÔNG MINH................................................................................85
4.2. MÔ HÌNH MAXIMUM ENTROPY....................................................86
4.2.1. Khái niệm Entropy..........................................................................86
4.2.2. Giới thiệu mô hình học thống kê Maximum Entropy (ME)...........87
4.2.3. Các thuật toán xác định tham số trong mô hình Maximum Entropy.
...................................................................................................................90
4.2.4. Học máy theo mô hình Maximum Entropy dựa trên thuật toán GIS.
...................................................................................................................93
4.3. XÂY DỰNG CHƯƠNG TRÌNH PHÁT HIỆN XÂM NHẬP THÔNG
MINH...........................................................................................................97
4.3.1. Lựa chọn thư viện hỗ trợ thuật toán GIS.........................................97
4.3.2. Giới thiệu về thư viện SharpEntropy..............................................97
4.3.3. Làm việc với SharpEntropy..........................................................101
4.3.4. Phân tích thiết kế chương trình.....................................................102
KẾT LUẬN 107
-3-
Học viện Kỹ thuật Mật mã
ĐỒ ÁN TỐT NGHIỆP
TÀI LIỆU THAM KHẢO............................................................................110
PHỤ LỤC 110
A. CHƯƠNG TRÌNH CHẶN BẮT VÀ PHÂN TÍCH GÓI TIN..............111
A.1. Các bước làm việc với SharpPcap của chương trình......................111
A.2. Các lớp của chương trình................................................................113
A.3. Các hàm xử lý chính của chương trình...........................................114
B. CHƯƠNG TRÌNH PHÁT HIỆN XÂM NHẬP THÔNG MINH..........115
B.1. Các lớp của chương trình................................................................115
B.2. Các hàm xử lý chính của chương trình............................................116
B.3. Demo một tập mẫu học để training cho chương trình.....................118
DANH MỤC CÁC TỪ VIẾT TẮT
-4-
Học viện Kỹ thuật Mật mã
Ký hiệu
ĐỒ ÁN TỐT NGHIỆP
Thuật ngữ
Ý nghĩa
TCP/IP
Transmission Control
Protocol/Internet Protocol
Bộ giao thức liên mạng
SNA
Systems Network
Architecture
Kiến trúc mạng do IBM tạo ra
DECnet
Digital Equipment
Corporation protocol suite
Bộ giao thức mạng độc quyền
của hãng Digital Equipment
Corporation
ARPANET Advanced Research
Projects Agency Network
Mạng lưới cơ quan với các đề án
nghiên cứu tân tiến
OSI
Open Systems
Interconnection
Mô hình tham chiếu kết nối các
hệ thống mở
PDU
Protocol Data Unit
Đơn vị dữ liệu giao thức
WAN
Wide Area Network
Mạng diện rộng
FDDI
Fiber Distributed Data
Interface
Giao diện Dữ liệu Phân bố theo
Cáp sợi quang
ATM
Asynchronous Transfer
Mode
Chế độ truyền không đồng bộ
DoD
Department of Defense
Mô hình mạng của Bộ Quốc
phòng Mỹ
FTP
File transfer Protocol
Giao thức truyền tập tin
SMTP
Simple Mail Transfer
Protocol
giao thức truyền tải thư tín đơn
giản
DHCP
Dynamic Host
Configuration Protocol
Giao thức cấu hình địa chỉ động
cho các host
DNS
Domain Name System
Hệ thống dịch vụ tên miền
SNMP
Simple Network
Giao thức quản lý mạng đơn
-5-
Học viện Kỹ thuật Mật mã
ĐỒ ÁN TỐT NGHIỆP
Management Protocol
giản
HTTP
HyperText Transfer
Protocol
Giao thức truyền tải siêu văn bản
WWW
World Wide Web
mạng lưới toàn cầu
UDP
User Datagram Protocol
Giao thức gói dữ liệu người
dùng
TCP
Transmission Control
Protocol
Giao thức điều khiển truyền dẫn
IP
Internet Protocol
Giao thức liên mạng
ARP
Address Resolution
Protocol
Giao thức phân giải địa chỉ
ICMP
Internet Control Message
Protocol
Giao thức thông báo điểu khiển
mạng
IGMP
Internet Group
Management Protocol
Giao thức quản lý nhóm mạng
MAC
Media Access Control
Giao thức điều khiển truy nhập
môi trường
LAN
Local Area Network
Mạng máy tính cục bộ
IEEE
Institute of Electrical and
Electronics Engineer
Viện kỹ nghệ Điện và Điện Tử
CRC
cyclic redundancy check
Mã sửa sai dự phòng
CSMA/CD Carrier Sense Multiple
Access with Collision
Detect
Đa truy cập cảm nhận sóng
mang
RARP
Reserve Address
Resolution Protocol
Giao thức phân giải địa chỉ
ngược
PING
Packet internet gropher
Cộng cụ kiểm tra kết nối mạng
-6-
Học viện Kỹ thuật Mật mã
ĐỒ ÁN TỐT NGHIỆP
TTL
Time To Live
Thời gian sống của gói tin
MTU
Maximum Transmission
Unit
Đơn vị truyền tải dữ liệu ngược
DPC
Deep Packet Capture
Là hành động chặn bắt toàn bộ
các gói tin trên mạng
DPI
Deep Packet Inspection
Kiểm tra và phát hiện các hiện
tượng mạng
POP
Post Office Protocol
Giao thức nhận thư
NNTP
Network News Transfer
Protocol
Giao thức chuyển tin trong mạng
máy tính
IMAP
Internet Message Access
Protocol
Giao thức nhận thư, phiên bản
mới của POP
API
Application Programming
Interface
Giao diện lập trình ứng dụng
Pcap
packet capture
Thư viện chứa giao diện lập
trình ứng dụng dùng cho việc
xây dựng các chương trình bắt
gói tin
SSL
Sercure Socket Layer
Giao thức truyền tải an toàn
trong mạng máy tính
SSH
Sercure Shell
Giao thức kết nối từ xa an toàn
CLR
Common Language
Runtime
Môi trường phát triển ứng dụng
chung
IDS
Intrusion Detection System Hệ thống phát hiện xâm nhập
IPS
Intrusion Prevention
Systems
Hệ thống phòng chống xâm
nhập
MEM
Maximum Entropy Model
Mô hình độ hỗn loạn cực đại
GIS
Generalized Iterative
Thuật toán lặp tổng quát
-7-
Học viện Kỹ thuật Mật mã
ĐỒ ÁN TỐT NGHIỆP
Scaling
IIS
Improved Iterative Scaling
Thuật toán lặp mở rộng
DANH MỤC CÁC BẢNG
Trang
MỤC LỤC 1
DANH MỤC CÁC TỪ VIẾT TẮT..................................................................4
DANH MỤC CÁC BẢNG...............................................................................8
DANH MỤC CÁC HÌNH VẼ........................................................................12
LỜI MỞ ĐẦU................................................................................................16
Chương 1 18
1.1. TỔNG QUAN HỆ THỐNG MẠNG TCP/IP........................................18
1.1.1. Khái niệm mạng máy tính...............................................................18
1.1.2. Kiến trúc phân tầng của mạng máy tính..........................................19
1.1.3. Mô hình tham chiếu OSI.................................................................21
-8-
Học viện Kỹ thuật Mật mã
ĐỒ ÁN TỐT NGHIỆP
1.1.4. Mô hình TCP/IP..............................................................................24
1.1.5. So sánh giữa mô hình OSI và TCP/IP.............................................25
1.2. TÌM HIỂU VỀ MÔ HÌNH TCP/IP.......................................................26
1.2.1. Cấu trúc phân tầng của mô hình TCP/IP.........................................26
1.2.2. Quá trình truyền nhận dữ liệu trong TCP/IP...................................29
1.2.3. Sơ lược chức năng từng tầng trong mô hình TCP/IP......................30
1.2.4. Các giao thức chính trong mô hình TCP/IP và khuôn dạng dữ liệu
tương ứng..................................................................................................31
Chương 2 43
2.1. CÁC KHÁI NIỆM................................................................................43
2.1.1. Packet..............................................................................................43
2.1.2. Network Traffic...............................................................................43
2.1.3. Packet capture.................................................................................43
2.1.4. Packet Analyzer (Sniffer)................................................................44
2.2. ỨNG DỤNG CỦA VIỆC CHẶN BẮT GÓI TIN.................................44
2.2.1. Khả năng.........................................................................................44
2.2.2. Mục đích của việc chặn bắt gói tin..................................................45
2.3. CÁC THÀNH PHẦN CHÍNH CỦA MỘT CHƯƠNG TRÌNH CHẶN
BẮT GÓI TIN..............................................................................................45
2.3.1. Thành phần phần cứng....................................................................45
2.3.2. Thành phần Capture driver..............................................................46
2.3.3. Thành phần Buffer:.........................................................................46
2.3.4. Thành phần Real-time analysis.......................................................46
2.3.5. Thành phần Decode.........................................................................46
2.3.6. Thành phần Packet editting/transmission........................................46
2.4. CÁCH THỨC HOẠT ĐỘNG CỦA VIỆC CHẶN BẮT GÓI TIN......46
-9-
Học viện Kỹ thuật Mật mã
ĐỒ ÁN TỐT NGHIỆP
2.4.1. Theo dõi Network Traffic...............................................................46
2.4.2. Phân tích Network Traffic...............................................................46
2.5. CÁC PHƯƠNG PHÁP CHẶN BẮT GÓI TIN....................................49
2.5.1. Mức hệ điều hành (Socket, Raw Socket)........................................49
2.5.2. Mức Network Adapter (Pcap).........................................................50
2.5.3. So sánh Raw Socket và Pcap..........................................................51
2.6. PHÒNG CHỐNG SNIFFER TRÊN MẠNG MÁY TÍNH...................53
2.6.1. Phát hiện sniffer trong mạng...........................................................53
2.6.2. Ngăn chặn sniffer............................................................................54
2.6.3. Một số chương trình phát hiện sniffer.............................................54
Chương 3 55
3.1. HƯỚNG THỰC HIỆN CHƯƠNG TRÌNH..........................................55
3.2. LỰA CHỌN PHƯƠNG PHÁP VÀ NỀN TẢNG XÂY DỰNG
CHƯƠNG TRÌNH.......................................................................................58
3.2.1. Lựa chọn ngôn ngữ lập trình...........................................................58
3.2.2. Lựa chọn phương pháp chặn bắt gói tin..........................................59
3.3. THƯ VIỆN WINPCAP VÀ SHARPPCAP..........................................60
3.3.1. WinPcap..........................................................................................60
3.3.2. SharpPcap........................................................................................62
3.4. PHÂN TÍCH THIẾT KẾ CHƯƠNG TRÌNH.......................................72
3.4.1. Các chức năng chính.......................................................................72
3.4.2. Phân tích xây dựng các chức năng chính........................................73
3.5. CHƯƠNG TRÌNH HOÀN THIỆN.......................................................80
3.5.1. Mô tả...............................................................................................80
3.5.2. Giao diện chương trình...................................................................81
- 10 -
Học viện Kỹ thuật Mật mã
ĐỒ ÁN TỐT NGHIỆP
Chương 4 85
4.1. Ý TƯỞNG CHUNG CHO VIỆC THỰC HIỆN PHÁT HIỆN XÂM
NHẬP THÔNG MINH................................................................................85
4.2. MÔ HÌNH MAXIMUM ENTROPY....................................................86
4.2.1. Khái niệm Entropy..........................................................................86
4.2.2. Giới thiệu mô hình học thống kê Maximum Entropy (ME)...........87
4.2.3. Các thuật toán xác định tham số trong mô hình Maximum Entropy.
...................................................................................................................90
4.2.4. Học máy theo mô hình Maximum Entropy dựa trên thuật toán GIS.
...................................................................................................................93
4.3. XÂY DỰNG CHƯƠNG TRÌNH PHÁT HIỆN XÂM NHẬP THÔNG
MINH...........................................................................................................97
4.3.1. Lựa chọn thư viện hỗ trợ thuật toán GIS.........................................97
4.3.2. Giới thiệu về thư viện SharpEntropy..............................................97
4.3.3. Làm việc với SharpEntropy..........................................................101
4.3.4. Phân tích thiết kế chương trình.....................................................102
KẾT LUẬN 107
TÀI LIỆU THAM KHẢO............................................................................110
PHỤ LỤC 110
A. CHƯƠNG TRÌNH CHẶN BẮT VÀ PHÂN TÍCH GÓI TIN..............111
A.1. Các bước làm việc với SharpPcap của chương trình......................111
A.2. Các lớp của chương trình................................................................113
A.3. Các hàm xử lý chính của chương trình...........................................114
B. CHƯƠNG TRÌNH PHÁT HIỆN XÂM NHẬP THÔNG MINH..........115
B.1. Các lớp của chương trình................................................................115
B.2. Các hàm xử lý chính của chương trình............................................116
B.3. Demo một tập mẫu học để training cho chương trình.....................118
- 11 -
Học viện Kỹ thuật Mật mã
ĐỒ ÁN TỐT NGHIỆP
DANH MỤC CÁC HÌNH VẼ
Trang
MỤC LỤC 1
DANH MỤC CÁC TỪ VIẾT TẮT..................................................................4
DANH MỤC CÁC BẢNG...............................................................................8
DANH MỤC CÁC HÌNH VẼ........................................................................12
LỜI MỞ ĐẦU................................................................................................16
Chương 1 18
1.1. TỔNG QUAN HỆ THỐNG MẠNG TCP/IP........................................18
1.1.1. Khái niệm mạng máy tính...............................................................18
1.1.2. Kiến trúc phân tầng của mạng máy tính..........................................19
1.1.3. Mô hình tham chiếu OSI.................................................................21
1.1.4. Mô hình TCP/IP..............................................................................24
1.1.5. So sánh giữa mô hình OSI và TCP/IP.............................................25
1.2. TÌM HIỂU VỀ MÔ HÌNH TCP/IP.......................................................26
- 12 -
Học viện Kỹ thuật Mật mã
ĐỒ ÁN TỐT NGHIỆP
1.2.1. Cấu trúc phân tầng của mô hình TCP/IP.........................................26
1.2.2. Quá trình truyền nhận dữ liệu trong TCP/IP...................................29
1.2.3. Sơ lược chức năng từng tầng trong mô hình TCP/IP......................30
1.2.4. Các giao thức chính trong mô hình TCP/IP và khuôn dạng dữ liệu
tương ứng..................................................................................................31
Chương 2 43
2.1. CÁC KHÁI NIỆM................................................................................43
2.1.1. Packet..............................................................................................43
2.1.2. Network Traffic...............................................................................43
2.1.3. Packet capture.................................................................................43
2.1.4. Packet Analyzer (Sniffer)................................................................44
2.2. ỨNG DỤNG CỦA VIỆC CHẶN BẮT GÓI TIN.................................44
2.2.1. Khả năng.........................................................................................44
2.2.2. Mục đích của việc chặn bắt gói tin..................................................45
2.3. CÁC THÀNH PHẦN CHÍNH CỦA MỘT CHƯƠNG TRÌNH CHẶN
BẮT GÓI TIN..............................................................................................45
2.3.1. Thành phần phần cứng....................................................................45
2.3.2. Thành phần Capture driver..............................................................46
2.3.3. Thành phần Buffer:.........................................................................46
2.3.4. Thành phần Real-time analysis.......................................................46
2.3.5. Thành phần Decode.........................................................................46
2.3.6. Thành phần Packet editting/transmission........................................46
2.4. CÁCH THỨC HOẠT ĐỘNG CỦA VIỆC CHẶN BẮT GÓI TIN......46
2.4.1. Theo dõi Network Traffic...............................................................46
2.4.2. Phân tích Network Traffic...............................................................46
2.5. CÁC PHƯƠNG PHÁP CHẶN BẮT GÓI TIN....................................49
- 13 -
Học viện Kỹ thuật Mật mã
ĐỒ ÁN TỐT NGHIỆP
2.5.1. Mức hệ điều hành (Socket, Raw Socket)........................................49
2.5.2. Mức Network Adapter (Pcap).........................................................50
2.5.3. So sánh Raw Socket và Pcap..........................................................51
2.6. PHÒNG CHỐNG SNIFFER TRÊN MẠNG MÁY TÍNH...................53
2.6.1. Phát hiện sniffer trong mạng...........................................................53
2.6.2. Ngăn chặn sniffer............................................................................54
2.6.3. Một số chương trình phát hiện sniffer.............................................54
Chương 3 55
3.1. HƯỚNG THỰC HIỆN CHƯƠNG TRÌNH..........................................55
3.2. LỰA CHỌN PHƯƠNG PHÁP VÀ NỀN TẢNG XÂY DỰNG
CHƯƠNG TRÌNH.......................................................................................58
3.2.1. Lựa chọn ngôn ngữ lập trình...........................................................58
3.2.2. Lựa chọn phương pháp chặn bắt gói tin..........................................59
3.3. THƯ VIỆN WINPCAP VÀ SHARPPCAP..........................................60
3.3.1. WinPcap..........................................................................................60
3.3.2. SharpPcap........................................................................................62
3.4. PHÂN TÍCH THIẾT KẾ CHƯƠNG TRÌNH.......................................72
3.4.1. Các chức năng chính.......................................................................72
3.4.2. Phân tích xây dựng các chức năng chính........................................73
3.5. CHƯƠNG TRÌNH HOÀN THIỆN.......................................................80
3.5.1. Mô tả...............................................................................................80
3.5.2. Giao diện chương trình...................................................................81
Chương 4 85
4.1. Ý TƯỞNG CHUNG CHO VIỆC THỰC HIỆN PHÁT HIỆN XÂM
NHẬP THÔNG MINH................................................................................85
4.2. MÔ HÌNH MAXIMUM ENTROPY....................................................86
- 14 -
Học viện Kỹ thuật Mật mã
ĐỒ ÁN TỐT NGHIỆP
4.2.1. Khái niệm Entropy..........................................................................86
4.2.2. Giới thiệu mô hình học thống kê Maximum Entropy (ME)...........87
4.2.3. Các thuật toán xác định tham số trong mô hình Maximum Entropy.
...................................................................................................................90
4.2.4. Học máy theo mô hình Maximum Entropy dựa trên thuật toán GIS.
...................................................................................................................93
4.3. XÂY DỰNG CHƯƠNG TRÌNH PHÁT HIỆN XÂM NHẬP THÔNG
MINH...........................................................................................................97
4.3.1. Lựa chọn thư viện hỗ trợ thuật toán GIS.........................................97
4.3.2. Giới thiệu về thư viện SharpEntropy..............................................97
4.3.3. Làm việc với SharpEntropy..........................................................101
4.3.4. Phân tích thiết kế chương trình.....................................................102
KẾT LUẬN 107
TÀI LIỆU THAM KHẢO............................................................................110
PHỤ LỤC 110
A. CHƯƠNG TRÌNH CHẶN BẮT VÀ PHÂN TÍCH GÓI TIN..............111
A.1. Các bước làm việc với SharpPcap của chương trình......................111
A.2. Các lớp của chương trình................................................................113
A.3. Các hàm xử lý chính của chương trình...........................................114
B. CHƯƠNG TRÌNH PHÁT HIỆN XÂM NHẬP THÔNG MINH..........115
B.1. Các lớp của chương trình................................................................115
B.2. Các hàm xử lý chính của chương trình............................................116
B.3. Demo một tập mẫu học để training cho chương trình.....................118
- 15 -
Học viện Kỹ thuật Mật mã
ĐỒ ÁN TỐT NGHIỆP
LỜI MỞ ĐẦU
Ngày nay, sự phát triển của công nghê thông tin và hệ thống mạng máy
tính đang diễn ra mạnh mẽ trên toàn thế giới cũng như ở Việt Nam. Những
ứng dụng của chúng đã và đang có mặt ở mọi nơi trong đởi sống kinh tế xã
hội. Trong khi công nghệ mạng và Internet mang lại nhiều cơ hội phát triển và
cạch tranh mới cho các doanh nghiệp thì đồng thời cũng đặt ra những vẫn đề
về nhu cầu cần phải bảo vệ hệ thống máy tính trước các mối đe dọa về mất an
toàn trong hoàn cảnh mà sự phát triển của những hoạt động phá hoại hệ thống
máy tính cũng song hành cùng sự phát triển của hệ thống mạng và Internet.
Song song với sự phát triển mạnh mẽ của công nghê thông tin cũng như
các hệ thống phát hiện và phòng chống xâm nhập thì các kỹ thuật tấn công,
xâm nhập các hệ thống của các tổ chức cũng ngày càng tinh vi hơn, đa dạng
hơn. Vì vậy vấn đề đặt ra là cần phải xây dựng những hệ thống phát hiện và
phòng chống những tấn công, xâm nhập trái phép để có thể ứng phó với các
nguy cơ mất an ninh đã và đang xảy ra hiện nay. Và một trong những kỹ thuật
cơ bản của các hệ thống phòng chống và phát hiện xâm nhập hoặc firewall là
kỹ thuật chặn bắt và phân tích gói tin trên mạng máy tính.
Nhận thức được tầm quan trọng của vấn đề bảo mật và an ninh thông tin
hiện nay nên em đã quyết định chọn đề tài: “Tìm hiểu kỹ thuật chặn bắt và
phân tích gói tin nhằm mục đích phục vụ phát hiện xâm nhập trên mạng máy
tính.”. Với hi vọng rằng đề tài này sẽ giúp em nâng cao vốn hiểu biết và có
- 16 -
Học viện Kỹ thuật Mật mã
ĐỒ ÁN TỐT NGHIỆP
được cái nhìn tổng quát nhất về vấn đề bảo mật hiện nay. Đồng thời, thông
qua việc tìm hiểu về kỹ thuật chặn bắt và phân tích gói tin giúp em có thể hiểu
sâu về cơ chế, cấu trúc cũng như cách thức hoạt động cơ bản của các hệ thống
phòng chống và phát hiện xâm nhập. Đây sẽ là cơ hội tốt và là tiền đề để em
có thể đi sâu và rộng hơn về vấn đề bảo mật trong tương lai.
Đề tài chủ yếu tập trung giới thiệu về cách thức hoạt động của các giao
thức mạng, giới thiệu về kỹ thuật chặn bắt và phân tích gói tin, xây dựng một
chương trình chặn bắt và phân tích gói tin, đồng thời đi vào tìm hiểu và xây
dựng thử nghiệm một hệ thống phát hiện xâm nhập thông minh dựa trên kết
quả thu được từ việc chặn bắt và phân tích gói tin. Cấu trúc chính của đề tài
bao gồm các phần sau:
Lời mở đầu: Nêu lên tầm quan trọng và xu hướng phát triển của vấn đề
bảo mật hiện nay và giới thiệu về đề tài.
Chương 1: Cơ sở lý thuyết về mạng máy tính.
Chương 2: Kỹ thuật chặn bắt gói tin trên mạng máy tính.
Chương 3: Xây dựng chương trình chặn bắt gói tin.
Chương 4: Ứng dụng kỹ thuật chặn bắt gói tin để xây dựng chương trình
phát hiện xâm nhập thông minh.
Kết luận: Đánh giá tổng kết về đề tài cũng như đưa ra một số giải pháp.
Do kinh nghiệm chưa nhiều nên đề tài không tránh khỏi những thiếu sót,
sơ xuất, nên em rất mong nhận được những nhận xét đánh giá của các thầy cô
và sự đóng góp ý kiến của các bạn để có thể rút ra được kinh nghiệm cho việc
học tập, làm việc và nghiên cứu sau này. Em cũng xin chân thành cảm ơn
Thạc sĩ Nguyễn Anh Tuấn và Thạc sĩ Nguyễn Quốc Toàn đã tận tình hướng
dẫn em thực hiện đề tài này.
SV thực hiện
- 17 -
Học viện Kỹ thuật Mật mã
ĐỒ ÁN TỐT NGHIỆP
Chương 1
CƠ SỞ LÝ THUYẾT VỀ MẠNG MÁY TÍNH
1.1. TỔNG QUAN HỆ THỐNG MẠNG TCP/IP.
1.1.1. Khái niệm mạng máy tính.
Từ những năm 1960 đã xuất hiện các mạng nối các máy tính và các
Terminal để sử dụng chung nguồn tài nguyên, giảm chi phí khi muốn thông
tin trao đổi số liệu và sử dụng trong công tác văn phòng một cách tiện lợi.
Với việc tăng nhanh các máy tính mini và các máy tính cá nhân làm tăng
yêu cầu truyền số liệu giữa các máy tính, giữa các terminal, và giữa các
terminal với máy tính là một trong những động lực thúc đẩy sự ra đời và phát
triển ngày càng mạnh mẽ các mạng máy tính. Quá trình hình thành mạng máy
tính có thể tóm tắt qua các giai đoạn sau:
- Giai đoạn các terminal nối trực tiếp với máy tính: Đây là giai đoạn đầu
tiên của mạng máy tính, để tận dụng công suất của máy tính người ta ghép nối
các terminal vào một máy tính được gọi là các máy tính trung tâm.
- Giai đoạn các bộ tiền xử lý (Prontal): Ở giai đoạn 1 máy tính trung tâm
quản lý truyền tin tới các terminal, ở giai đoạn 2 máy tính trung tâm quản lý
truyền tin tới các bộ tập trung qua các bộ ghép nối điều khiển đường truyền.
Ta có thể thay thế bộ ghép nối đường truyền bằng các máy tính nini gọi là
prontal, đó chính là bộ tiền xử lý.
- 18 -
Học viện Kỹ thuật Mật mã
ĐỒ ÁN TỐT NGHIỆP
- Giai đoạn mạng máy tính:
+ Vào những năm 1970 người ta bắt đầu xây dựng mạng truyền thông
trong đó các thành phần chính của nó là các nút mạng gọi là bộ chuyển mạch
dùng để hướng thông tin tới đích.
+ Các mạng được nối với nhau bằng đường truyền còn các máy tính
xử lý thông tin của người dùng hoặc các trạm cuối được nối trực tiếp vào các
nút mạng để khi cần thì trao đổi thông tin qua mạng. Các nút mạng thương là
máy tính nên đồng thời đóng vai trò của người sử dụng.
+ Chức năng của nút mạng là quản lý truyền tin, quản lý mạng.
Như vậy các máy tính ghép nối với nhau hình thành mạng máy tính, ở
đây ta thấy mạng truyền thông cũng ghép nối các máy tính với nhau nên khái
niệm mạng maý tính và mạng truyền thông có thể không phân biệt.
Việc hình thành mạng máy tính nhằm đạt các mục đích sau:
- Tận dụng và làm tăng giá trị của tài nguyên.
- Chinh phục khoảng cách.
- Tăng chất lượng và hiệu quả khai thác và xử lý thông tin.
- Tăng độ tin cậy của hệ thống nhờ khả năng thay thế khi xảy ra sự cố
đối với một máy tính nào đó.
Như vậy: Mạng máy tính là tập hợp các máy tính được ghép với nhau
bởi các đường truyền vật lý theo một kiến trúc nào đó.
1.1.2. Kiến trúc phân tầng của mạng máy tính.
Để giảm độ phức tạp trong thiết kế và cài đặt mạng, các mạng máy tính
được tổ chức thiết kế theo kiểu phân tầng (layering). Trong hệ thống thành
phần của mạng được tổ chức thành một cấu trúc đa tầng, mỗi tầng được xây
dựng trên tầng trước đó; mỗi tầng sẽ cung cấp một số dịch vụ cho tầng cao
hơn. Số lượng các tầng cũng như chức năng của mỗi tầng là tuỳ thuộc vào nhà
thiết kế (Ví dụ cấu trúc phân tầng của mạng SNA của IBM, mạng DECnet của
Digital, mạng ARPANET. .. là có sự khác nhau). Nguyên tắc cấu trúc của
mạng phân tầng là: mỗi hệ thống trong một mạng đều có cấu trúc phân tầng
- 19 -
Học viện Kỹ thuật Mật mã
ĐỒ ÁN TỐT NGHIỆP
(Số lượng tầng, chức năng của mỗi tầng là như nhau). Mục đích của mỗi tầng
là để cung cấp một số dịch vụ nhất định cho tầng cao hơn.
Tầng i của hệ thống A sẽ hội thoại với tầng i của hệ thống B, các quy tắc
và quy ước dùng trong hội thoại gọi là giao thức mức I.
Giữa hai tầng kề nhau tồn tại một giao diện (interface) xác định các thao
tác nguyên thuỷ của tầng dưới cung cấp lên tầng trên.
Trong thực tế dữ liệu không truyền trực tiếp từ tầng i của hệ thống này
sang tầng i của hệ thống khác (trừ tầng thấp nhất trực tiếp sử dụng đường
truyền vật lý để truyền các xâu bít (0,1) từ hệ thống này sang hệ thống khác).
Dữ liệu được truyền từ hệ thống gửi (sender) sang hệ thống nhận (receiver)
bằng đường truyền vật lý và cứ như vậy dữ liệu lại đi ngược lên các tầng trên.
Như vậy khi hai hệ thống liên kết với nhau, chỉ tầng thấp nhất mới có liên kết
vật lý còn ở tầng cao hơn chỉ có liên kết logic (liên kết ảo ) được đưa vào để
hình thức hoá các hoạt động của mạng thuận tiện cho việc thiết kế và cài đặt
các phần mềm truyền thông. Như vậy để viết chương trình cho tầng N, phải
biết tầng N+1 cần gì và tầng N -1 có thể làm được gì.
- 20 -
Học viện Kỹ thuật Mật mã
ĐỒ ÁN TỐT NGHIỆP
Hình 1.1: Minh họa kiến trúc phân tầng tổng quát.
Nguyên tắc để xây dựng kiến trúc phân tầng như sau:
- Để đơn giản cần hạn chế số lượng các tầng.
- Tạo ranh giới các tầng sao cho các tương tác và mô tả các dịch vụ là tối
thiểu.
- Chia các tầng sao cho các chức năng khác nhau được tách biệt với
nhau, và các tầng sử dụng các loại công nghệ khác nhau cũng được tách biệt.
- Các chức năng giống nhau được đặt vào cùng một tầng.
- Chọn ranh giới các tầng theo kinh nghiệm đã được chứng tỏ là thành
công.
- Các chức năng được định vị sao cho có thể thiết kế lại tầng mà ảnh
hưởng ít nhất đến các tầng kế nó.
- Tạo ranh giới giữa các tầng sao cho có thể chuẩn hóa giao diện tương
ứng.
- Tạo một tầng khi dữ liệu được xử lý một cách khác biệt.
- Cho phép thay đổi chức năng hoặc giao thức trong một tầng không làm
ảnh hưởng đến các tầng khác.
- Mỗi tầng chỉ có các ranh giới (giao diện) với các tầng kề trên và kề
dưới nó.
- Có thể chia một tầng thành các tầng con khi cần thiết.
- Tạo tầng con để cho phép giao diện với các tầng kế cận.
- Cho phép hủy bỏ các tầng con nếu thấy không cần thiết.
1.1.3. Mô hình tham chiếu OSI.
1.1.3.1. Khái quát về mô hình OSI.
- 21 -
Học viện Kỹ thuật Mật mã
ĐỒ ÁN TỐT NGHIỆP
Hình 1.2: Mô hình OSI.
Mô hình tham chiếu OSI[1] là một cấu trúc phả hệ có 7 tầng, nó xác định
các yêu cầu cho sự giao tiếp giữa hai máy tính. Mô hình này đã được định
nghĩa bởi Tổ chức tiêu chuẩn hoá quốc tế (International Organization for
Standardization) trong tiêu chuẩn số 7498-1 (ISO standard 7498-1).
Mục đích của mô hình là cho phép sự tương thích giữa các hệ máy đa
dạng được cung cấp bởi các nhà sản xuất khác nhau. Mô hình cho phép tất cả
các thành phần của mạng hoạt động hòa đồng với nhau. Vào những năm cuối
thập niên 1980, ISO đã tiến cử việc thực thi mô hình OSI như một tiêu chuẩn
mạng.
Hiện nay chỉ có một phần của mô hình OSI được sử dụng. Nhiều người
cho rằng các đặc tả của mô hình OSI quá phức tạp và việc cài đặt đầy đủ các
chức năng của nó sẽ đòi hỏi nhiều thời gian, mặc dù có nhiều người nhiệt tình
ủng hộ mô hình OSI.
1.1.3.2. Phương thức hoạt động của mô hình OSI.
Mô hình tham chiếu OSI được chia làm 7 tầng, mỗi tầng đều có chức
năng và nhiệm vụ riêng biệt, đó là:
- Tầng ứng dụng (Application ).
- Tầng trình diễn (Presentation).
- 22 -
Học viện Kỹ thuật Mật mã
ĐỒ ÁN TỐT NGHIỆP
- Tầng phiên (Session).
- Tầng giao vận (Transport).
- Tầng mạng (Network ).
- Tầng liên kết dữ liệu (Data Link).
- Tầng vật lý (Physical).
Ở mỗi tầng mô hình trong tầng ISO, có hai phương thức hoạt động chính
được áp dụng đó là: phương thức hoạt động có kết nối (connection-oriented)
và không kết nối (connectionless).
- Với phương thức có kết nối (connection-oriented):
+ Trước khi truyền dữ liệu cần thiết phải thiết lập một liên kết logic
giữa các thực thể cùng tầng.
+ Trong phương thức có kết nối quá trình truyền dữ liệu phải trải qua
ba giai đoạn theo thứ tự thời gian.
* Thiết lập kết nối: hai thực thể đồng mức ở hai hệ thống thương
lượng với nhau về tập các tham số sẽ được sử dụng trong giai đoạn sau.
* Truyền dữ liệu: dữ liệu được truyền với các cơ chế kiểm soát và
quản lý.
* Huỷ bỏ kết nối (logic): giải phóng các tài nguyên hệ thống đã
cấp phát cho liên kết để dùng cho các liên kết khác.
+ Tương ứng với ba giai đoạn trao đổi, ba thủ tục cơ bản được sử
dụng. Mỗi thủ tục trên sẽ dùng các hàm nguyên thuỷ (Request, Indication,
Response, Confirm) để cấu thành các hàm cơ bản của giao thức ISO.
- Phương thức không kết nối (connectionless):
+ Với phương thức không kết nối thì không cần lập liên kết logic và
mỗi đơn vị dữ liệu được truyền là độc lập với các đơn vị dữ liệu trước hoặc
sau nó.
+ Phương thức không kết nối chỉ có duy nhất một giai đoạn đó là:
truyền dữ liệu.
- 23 -
Học viện Kỹ thuật Mật mã
ĐỒ ÁN TỐT NGHIỆP
So sánh hai phương thức hoạt động trên chúng ta thấy rằng phương thức
hoạt động có kết nối cho phép truyền dữ liệu tin cậy, do đó có cơ chế kiểm
soát và quản lý chặt chẽ từng kết nối logic. Nhưng nó phức tạp và khó cài đặt.
Ngược lại, phương thức không kết nối cho phép các PDU (Protocol Data
Unit) được truyền theo nhiều đường khác nhau để đi đến đích, thích nghi với
sự thay đổi trạng thái của mạng, song lại trả giá bởi sự khó khăn gặp phải khi
tập hợp các PDU để di chuyển tới người sử dụng.
Hai tầng kề nhau có thể không nhất thiết phải sử dụng cùng một phương
thức hoạt động mà có thể dùng hai phương thức khác nhau.
1.1.4. Mô hình TCP/IP.
1.1.4.1. Khái quát về mô hình TCP/IP.
Để các máy tính liên lạc được với nhau qua mạng thì chúng phải sử dụng
cùng một ngôn ngữ hay còn gọi là giao thức (Protocol). Giao thức là một hệ
các luật và chuẩn cho phép các máy tính trong mạng liên lạc với nhau.
TCP/IP[2] (Transmission Control Protocol/Internet Protocol) là một bộ
gồm nhiều giao thức truyền thông khác nhau. Đây là bộ giao thức phổ biến
nhất mà Internet và hầu hết các mạng máy tính thương mại hiện đang sử
dụng. Bộ giao thức này được đặt tên theo hai giao thức chính của nó là TCP
và IP. Chúng cũng là hai giao thức đầu tiên được định nghĩa trong bộ giao
thức TCP/IP.
Bộ giao thức TCP/IP có thể được coi là một tập hợp các tầng. Mỗi tầng
trong đó giải quyết một tập hợp các vấn đề có liên quan đến việc truyền, nhận
dữ liệu, chúng cung cấp các dịch vụ cho các giao thức tầng trên và sử dụng
các dịch vụ của các giao thức tầng thấp hơn. Về mặt lôgic, các tầng ở phía
trên gần với người dùng hơn và làm việc với dữ liệu trừu tượng hơn, chúng
dựa vào các giao thức tầng dưới để biến đổi dữ liệu thành các dạng mà cuối
cùng có thể được truyền đi dưới dạng các tín hiệu điện.
- 24 -
Học viện Kỹ thuật Mật mã
ĐỒ ÁN TỐT NGHIỆP
TCP/IP được thiết kế cho hai mục tiêu chính:
- Cho phép truyền thông qua các đuờng dây của mạng diện rộng (Wide
Area Network - WAN).
- Cho phép truyền thông giữa các môi trường đa dạng.
1.1.4.2. Đặc điểm của mô hình TCP/IP.
- Là bộ giao thức chuẩn, mở và sẵn có, vì: nó không thuộc sở hữu của
bất cứ một tổ chức nào; các đặc tả thì sẵn có và rộng rãi. Vì vậy bất kì ai cũng
có thể xây dựng phần mềm truyền thông qua mạng máy tính dựa trên nó.
- TCP/IP độc lập với phần cứng mạng vật lý, điều này cho phép TCP/IP
có thể được dùng để kết nối nhiều loại mạng có kiến trúc vật lý khác nhau
như: Ethernet, Tokenring, FDDI, X25, ATM...(Trong phạm vi đề tài ta chỉ xét
tới Ethernet).
- TCP/IP dùng địa chỉ IP để định danh các host trên mạng tạo ra một
mạng ảo thống nhất khi kết nối mạng.
- Các giao thức lớp cao được chuẩn hoá thích hợp và sẵn có với người
dùng.
1.1.5. So sánh giữa mô hình OSI và TCP/IP.
Do nhiều nguyên nhân như lịch sử, chi phí… nên bộ giao thức TCP/IP
đã được sử dụng rất lâu trước khi mô hình OSI ra đời. Cũng do vậy nên mô
hình OSI không được sử dung rộng rãi trong thực tế mà là mô hình học thuật
dùng để so sánh với mô hình thực tế là TCP/IP. Hai cái có liên quan ít nhiều,
song không phải là hoàn toàn giống nhau. Điểm khác biệt đầu tiên dễ thấy
nhất là số lượng của các tầng. Trong khi bộ giao thức TCP/IP có 4 thì mô
hình OSI có tới 7 tầng với sự khác biệt là 2 tầng mới: tầng phiên và tầng trình
diễn. Nhiều so sánh đã gộp 2 tầng này vào tầng ứng dụng trong bộ giao thức
TCP/IP. Hình vẽ sau đây so sánh các tầng tương ứng lẫn nhau giữa OSI và
TCP/IP:
- 25 -