SlideShare a Scribd company logo
TẬP ĐOÀN BƯU CHÍNH VIỄN THÔNG VIỆT NAM
HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG HỒ CHÍ MINH
--------------------------------------------
BÁO CÁO THỰC TẬP
TỐT NGHIỆP ĐẠI HỌC
Đề tài:
“XÂY DỰNG CÔNG CỤ BẮT VÀ PHÂN TÍCH GÓI TIN
PHỤC VỤ CHO CÔNG VIỆC THEO DÕI VÀ GIÁM SÁT
MẠNG”
Người hướng dẫn : Ts. Huỳnh Trọng Thưa
Sinh viên thực hiện: Đoàn Ngọc Vương
Mã số sinh viên : N14DCAT138
Lớp : D14CQAT01-N
Khoá : 2014
Hệ: Đại Học Chính Qui
HỒ CHÍ MINH 8/2018
LỜI CẢM ƠN
Để hoàn thành đề tài thực tập tốt nghiệp này trước hết em xin gửi đến quý thầy, cô
giáo trong khoa Công nghệ thông tin2 của Học Viện Công Nghệ Bưu Chính Viễn Thông
cơ sở Hồ Chí Minh lời cảm ơn chân thành.
Đặc biệt, em xin gởi đến thầy Huỳnh Trọng Thưa trưởng bộ môn An Toàn Thông Tin,
người đã tận tình hướng dẫn, giúp đỡ em hoàn thành đề tài thực tập tốt nghiệp này.
Em xin chân thành cảm ơn Ban Lãnh Đạo của Trung Tâm An Ninh Mạng Viettel đã
tạo điều kiện thuận lợi cho em được tìm hiểu thực tiễn trong suốt quá trình thực tập tại
công ty.
Cuối cùng em xin cảm ơn các anh, các bạn trong phòng an ninh hệ thống và ứng dụng
đã giúp đỡ, chỉ bảo tận tình trong lúc làm việc.
Vì kiến thức bản thân còn hạn chế, trong quá trình thực tập, hoàn thiện chuyên đề này em
không tránh khỏi những sai sót, kính mong nhận được những ý kiến đóng góp từ thầy cô
cũng như quý công ty.
Trân trọng, ngày 6 tháng 8 năm 2018
Sinh viên thực hiện
(ký và ghi rõ họ tên)
Báo cáo thực tập tốt nghiệp Mục lục
Đoàn Ngọc Vương – D14CQAT01-N P a g e | i
MỤC LỤC
MỤC LỤC i
DANH MỤC HÌNH ẢNH ii
LỜI MỞ ĐẦU iii
CHƯƠNG I. CẤU TRÚC GÓI TIN 1
1.1. Mô hình TCP/IP 1
1.2. Cấu trúc của gói tin 3
1.2.1. Cấu trúc Frame 3
1.2.2. Cấu trúc Datagram 4
1.2.3. Cấu trúc TCP Segment 6
1.2.4. Cấu trúc UDP Datagram 8
1.3. Một số giao thức thường gặp 9
1.3.1. HTTP (HyberText Transfer Protocol) 9
1.3.2. DNS (Domain Name System) 9
1.3.3. FPT (File Transfer Protocol) 10
1.3.4. POP (Post Office Protocol) 10
1.3.5. SMTP (Simple Mail Transfer Protocol) 10
1.3.6. TELNET (Terminel Network) 11
1.3.7. SSH (Secure Shell) 11
CHƯƠNG II. GIÁM SÁT MẠNG 12
2.1. Giám sát mạng 12
2.2. Giám sát an toàn mạng (Network security monitoring) 12
2.3. Các loại dữ liệu cần thiết cho giám sát an toàn mạng 14
CHƯƠNG III. XÂY DỰNG CÔNG CỤ BẮT VÀ PHÂN TÍCH GÓI TIN 16
3.1. Thư viện Pyshark 16
3.1.1. Pyshark 16
3.1.2. Pyshark – FileCapture, LiveCapture module 17
3.2. Xây dựng công cụ bắt và phân tích gói tin dựa trên pyshark 18
3.2.1. Xây dựng giao diện 18
3.2.2. Cấu trúc công cụ 18
3.2.3. Class packet 21
Báo cáo thực tập tốt nghiệp Mục lục
Đoàn Ngọc Vương – D14CQAT01-N P a g e | ii
3.2.4. Chức năng bắt gói tin 21
3.2.5. Chức năng mở file 22
2.6. Chức năng thống kê 22
3.3. Kết quả 23
3.3.1. Hiển thị dữ liệu mô tả gói tin 23
3.3.2. Hiển thị dữ liệu chi tiết của gói tin 24
3.3.3. Hiển thị dữ liệu thống kê 24
TÀI LIỆU THAM KHẢO 25
DANH MỤC HÌNH ẢNH
Hình 1. Mô hình TCP/IP và các PDU tương ứng. 1
Hình 2. Quá trình đóng gói dữ liệu trong TCP/IP. 2
Hình 3. Dữ liệu của header Frame (Text). 3
Hình 4. Thành phần của Data Frame. 3
Hình 5. Dữ liệu trong Datagram. 4
Hình 6. Thành phần cấu trúc của một Datagram. 5
Hình 7. Dữ liệu trong TCP Segment. 7
Hình 8. Cấu trúc của TCP Segment. 7
Hình 9. Dữ liệu trong UDP Datagram. 8
Hình 10. Cấu trúc của một UDP Datagram. 9
Hình 11. Ví dụ về dữ liệu của HTTP Layer. 9
Hình 12. Ví dụ về dữ liệu của DNS Layer. 10
Hình 13. Chu trình giám sát an toàn mạng. 12
Hình 15. Giao diện. 18
Báo cáo thực tập tốt nghiệp Lời mở đầu
Đoàn Ngọc Vương – D14CQAT01-N P a g e | iii
LỜI MỞ ĐẦU
Trong vai trò là người quản trị hệ thống hoặc là chuyên gia an toàn thông tin thì công
tác giám sát mạng luôn là một viết thiết yếu. Giám sát mạng cho chúng ta biết được lưu
thông đang được sử dụng trên mạng, từ đó phân tích xác định được những thông tin đầy
đủ và cần thiết cho công việc xây dựng hoặc phân tích hệ thống mạng.
Để phục vụ cho quá trình giám sát mạng, chúng ta có thể dùng phần cứng hoặc phần mềm
để thực hiện.
Tuy đã có nhiều phần mềm ứng dụng cung cấp phục vụ cho công việc nay như Wireshark,
TCPdump...
Nhưng để hiểu rõ hơn về quá trình xây dựng và vận hành của hệ thống giám sát mạng
cũng như có thể tuỳ biến công cụ phù hợp hơn với nhu cầu của bản thân.
Đồng thời nhận thấy điểm mạnh của bản thân, đã có kinh nghiệm trong việc sử dụng ngôn
ngữ lập trình Python cùng các thư viện của nó.
Nên em quyết định sẽ vận dụng những kiến thức đã tích luỹ ở trường và quá trình thực tập
để đi tìm hiểu và xây dựng đề tài:
“Xây dựng công cụ bắt và phân tích gói tinphục vụ cho công việc theo dõi và giám
sát mạng bằng ngôn ngữ Python”.
- Lý thuyết
 Tìm hiểu và sử dụng ngôn ngữ lập trình Python.
 Tìm hiểu về cấu trúc tập tin pcap và cấu trúc các gói tin lưu thông trên
mạng.
 Tìm hiểu về các thông tin hữu ích phục vụ cho công việc theo dõi và giám
sát mạng.
- Thực hành
Xây dựng công cụ bắt và phân tích tập tin pcap, hiển thị các thông tin hữu ích
phục vụ cho công tác giám sát mạng.
Báo cáo thực tập tốt nghiệp Chương I. Cấu trúc gói tin
Đoàn Ngọc Vương – D14CQAT01-N P a g e | 1
CHƯƠNG I. CẤU TRÚC GÓI TIN
1.1. Mô hình TCP/IP
Mô hình TCP/IP là mô hình có trước so với mô hình OSI, mục đích mô hình
OSI để tham chiếu làm rõ ràng cách thức trao đổi thông tin giữa các máy tính với
nhau, hay nói cách khác là mô hình OSI mang tính chất dùng cho học tập nghiên
cứu nhiều hơn là đưa vào triển khai thực tế. Các bạn gặp rất trường hợp dùng mô
hình OSI, ngay trên mạng máy tính của bạn cũng đang
dùng TCP/IPv4 hoặc TCP/IPv6. Mô hình TCP/IP còn được gọi với tên khác là: mô
hình DoD (mô hình của bộ quốc phòng Mỹ).
Hình 1. Mô hình TCP/IP và các PDU tương ứng.
 Network Access Layer (tầng truy cập).
Có thể coi tầng truy cập là một tầng riêng biệt hoặc cũng có thể tách thành 2 tầng
vật lý và tầng liên kết dữ liệu như trong mô hình OSI, tầng truy cập được sử dụng
để truyền gói tin từ tầng mạng đến các host trong mạng. Thành phần tầng truy cập
bao gồm cả các thiết bị vật lý (hub, switch, cáp mạng, card mạng HBA-Host Bus
Adapter và các đặc tả mức thấp như tín hiệu điện.
 Internet Layer (tầng mạng)
Nhiệm vụ của tầng mạng trên mô hình TCP/IP là giải quyết vấn đề dẫn các gói tin
đi qua các mạng để đến đúng đích mong muốn.
 Transport Layer (tầng vận chuyển)
Báo cáo thực tập tốt nghiệp Chương I. Cấu trúc gói tin
Đoàn Ngọc Vương – D14CQAT01-N P a g e | 2
Cũng giống với tầng vận chuyển của mô hình OSI, tầng vận chuyển làm nhiệm vụ
phân nhỏ các gói tin có kích thước lớn khi gửi và tập hợp lại khi nhận, đảm bảo
tính toàn vẹn cho dữ liệu (không lỗi, không mất, không lặp, đúng thứ tự).
 Application Layer (tầng ứng dụng)
là nơi các chương trình mạng như Web Browser, Mail User Agent làm việc để liên
lạc giữa các node mạng. Do mô hình TCP/IP không có tầng nào nằm giữa tầng ứng
dụng và tầng vận chuyển, nên tầng ứng dụng của mô hình TCP/IP bao gồm cả các
giao thức hoạt động như tầng trình diễn và phiên trong mô hình OSI. Việc này
thường do người lập trình viên thực hiện.
Hình 2. Quá trình đóng gói dữ liệu trong TCP/IP.
- Phương thức hoạt động của bộ giao thức TCP/IP:
Khi truyền dữ liệu, quá trình tiến hành từ tầng trên xuống tầng dưới, qua mỗi
tầng dữ liệu được thêm vào thông tin điều khiển gọi là Header.
Báo cáo thực tập tốt nghiệp Chương I. Cấu trúc gói tin
Đoàn Ngọc Vương – D14CQAT01-N P a g e | 3
Khi nhận dữ liệu thì quá trình xảy ra ngược lại. dữ liệu được truyền từ tầng dưới
lên và qua mỗi tầng thì phần header tương ứng sẽ được lấy đi và khi đến tầng trên
cùng thì dữ liệu không còn phần header nữa.
Dữ liệu người dùng tại tầng ứng dụng sẽ được gắn Application Header và chuyển
giao xuống tầng vận chuyển.
Tại đây, nếu dữ liệu quá lớn, nó sẽ được chia thành nhiều phần và thêm header
TCP hoặc UDP để chuyển giao xuống phần dưới. Được gọi là Segment nếu dùng
giao thức TCP và Datagram nếu dùng giao thức UDP.
Sau đó, nó được chuyển xuống tầng mạng, được gắn thêm IP heađer. Được gọi là
Datagram. Xuống tầng truy cập sẽ là Frame.
1.2. Cấu trúc của gói tin
1.2.1. Cấu trúc Frame
Frame là thuật ngữ để chỉ PDU ở tầng truy cập (Access Layer).
Hình 3. Dữ liệu của header Frame (Text).
Hình 4. Thành phần của Data Frame.
Preamble
Preamble chỉ ra sự bắt đầu của một khung truyền. Nó gồm 1 dãy 01 xen kẽ nhau
để báo hiệu cho trạm nhận là có khung đang tới. Đồng thời là phương tiện đồng bộ
hoá những phần khung nhận của lớp vật lý với luồng bits vào.
Báo cáo thực tập tốt nghiệp Chương I. Cấu trúc gói tin
Đoàn Ngọc Vương – D14CQAT01-N P a g e | 4
SFD (Start Frame Delemiter)
SFD là chuỗi 8bit (10101011) theo sau Preamble và chỉ ra sự bắt đầu của chuỗi
thông tin với hai bit cuối là 11. Sau byte này sẽ là địa chỉ.
DestinationAddress: Bao gồm 6 byte chứa địa chỉ MAC của máy đích.
Source Address: Bao gồm 6 byte chứa địa chỉ MAC của máy gửi.
Length: Chỉ ra số byte trong PDU.
Data – trường dữ liệu(802.2 frame)
Gồm tuần tự n bytes dữ liệu (46bytes~1500bytes). Nếu không đủ,sẽ tự động
đệm thêm cho đủ 46 bytes.
CRC (Frame Check Sequence): Gồm 32bits mã kiểm tra lỗi theo mã CRC-32.
1.2.2. Cấu trúc Datagram
Datagram dùng để chỉ PDU ở tầng mạng (Internet Layer) trong mô hình
TCP/IP.
Hình 5. Dữ liệu trong Datagram.
Báo cáo thực tập tốt nghiệp Chương I. Cấu trúc gói tin
Đoàn Ngọc Vương – D14CQAT01-N P a g e | 5
Hình 6. Thành phần cấu trúc của một Datagram.
VERS (Version) – 4 bits: Định nghĩa phiên bản hiện thời của IP trên mạng.
IHL (Internet Header Length) – 4 bits
Chiều dài của đầu IP. Không phải tất cả các trường trong phần đầu đều được sử
dụng. Trường đo bằng đơn vị từ 32 bit. Đầu IP ngắn nhất là 20 bytes. Nó cũng có
thể dài hơn phụ thuộc trường option.
Service Type – 8 bits
Cho biết các thông tin về loại dịch vụ và mức ưu tiên của gói IP.
Total length – 16 bits: Đây là chiều dài của datagram đo bằng byte
Identification - 16 bits
Cùng với các tham số khác như (Source Address và Destination Address) tham số
này dùng để định danh duy nhất cho một datagram trong khoảng thời gian nó vẫn
còn trên liên mạng.
+ Flags (3 bits): Liên quan đến sự phân đoạn (Fragment) của datagram:
Bit 0: Reserved chưa sử dụng luôn lấy giá trị 0
Bit 1:
DF = 1: Gói tin bị phân đoạn, có nhiều hơn 1 đoạn
Báo cáo thực tập tốt nghiệp Chương I. Cấu trúc gói tin
Đoàn Ngọc Vương – D14CQAT01-N P a g e | 6
DF = 0: Gói tin ko bị phân đoạn.
Bit 2:
MF = 0: Đây là đoạn cuối cùng
MF = 1: Đây chưa phải là đoạn cuối cùng, còn đoạn khác phía sau nữa
Fragment Offset - 13 bits
Chỉ vị trí của đoạn (fragment) ở trong datagram, tính theo đơn vị 64 bits, có nghĩa
là mỗi đoạn (trừ đoạn cuối cùng) phải chứa một vùng dữ liệu có độ dài là bội của
64 bits. Nó được dùng để ghép các mảnh Datagram lai với nhau
Time to Live (TTL) – 8 bits
Giá trị này được đặt lúc bắt đầu gửi gói tin. Và nó sẽ giảm dần khi đi qua 1 router.
gói tin sẽ bị hủy nếu giá trị này = 0 khi chưa đến đích. Việc làm này nhằm giải
quyết vấn đề gói tin bị lặp vô hạn trên mạng.
Protocol - 8 bits: Chỉ ra giao thức lớp trên, chẳng hạn như TCP hay UDP.
Header Checksum
Mã kiểm soát lỗi sử dụng phương pháp CRC (Cyclic Redundancy Check) dùng để
đảm bảo thông tin về gói dữ liệu được truyền đi một cách chính xác (mặc dù dữ
liệu có thể bị lỗi). Nếu như việc kiểm tra này thất bại, gói dữ liệu sẽ bị huỷ bỏ tại
nơi xác định được lỗi. Cần chú ý là IP không cung cấp một phương tiện truyền tin
cậy bởi nó không cung cấp cho ta một cơ chế để xác nhận dữ liệu truyền tại điểm
nhận hoặc tại những điểm trung gian. Giao thức IP không có cơ chế Error Control
cho dữ liệu truyền đi, không có cơ chế kiểm soát luồng dữ liệu (flow control).
Source Address - 32 bits: Địa chỉ của trạm nguồn.
DestinationAddress - 32 bits: Địa chỉ của trạm đích.
Option (có độ dài thay đổi)
Sử dụng trong một số trường hợp, nhưng thực tế chúng rất ít dùng. Option bao gồm
bảo mật, chức năng định tuyến đặc biệt
1.2.3. Cấu trúc TCP Segment
TCP là giao thức điều khiển truyền vận. Là bộ giao thức cốt lỗi trong mô
hình TCP/IP. Là giao thức truyền vận đáng tin cậy (không mất gói, đúng thứ tự).
Thuật ngữ TCP segment dùng để chỉ Protocol Data Unit (PDU) ở tầng vận chuyển
(Transport Layer) nếu kết nối dùng giao thức TCP.
Báo cáo thực tập tốt nghiệp Chương I. Cấu trúc gói tin
Đoàn Ngọc Vương – D14CQAT01-N P a g e | 7
Hình 7. Dữ liệu trong TCP Segment.
Hình 8. Cấu trúc của TCP Segment.
Source Port – 16 bits: Cổng (Port) gửi.
DestinationPort – 16 bits: Cổng nhận.
Sequence number – 32 bits
Có hai vai trò:
Báo cáo thực tập tốt nghiệp Chương I. Cấu trúc gói tin
Đoàn Ngọc Vương – D14CQAT01-N P a g e | 8
Nếu cờ SYN được bật (1), thì đây là số thứ tự ban đầu (init sequence number). Số
thứ tự của byte dữ liệu tiếp theo bằng với số xác nhận vừa nhận được, và bằng với
số thứ tự trước đó cộng thêm 1.
Nếu cờ SYN tắt (0), thì đây là số thứ tự tích luỹ cyả byte dữ liệu đầu tiê của
segment này cho đến phiên hiện tại.
Ackowlegement Number (ACK number) – 32 bits
Cờ ACK được bật thì giá trị này là số thứ tự tiếp theo mà bên nhận mong đợi.
Các ACK đầu tiên dùng để xác nhận số thứ tự ban đầu của bên vừa gửi, không
chứa dữ liệu.
HLEN– 4 bits
Quy định độ dài của header. (Tối thiểu là 160bits -> Tối đa là 480 bits)
Flags – 9 bits (Hay Control bits)
 URG: Cờ cho trường Urgent pointer.
 ACK: Cờ cho trường Ackowledgement
 PSH: Hàm Push.
 RST: Thiết lập lại đường truyền.
 SYN: Đồng bộ lại số thứ tự
 FIN: Không gửi thêm số liệu, cờ kết thúc.
Window size – 16 bits: Kích thước của cửa sổ nhận.
Checksum – 16 bits: Kiểm tra lỗi của header và data.
Padding – 16 bits.
Nếu cờ URG bật thì trường này chính là số từ 16 bits mà số thứ tự gói tin Sequence
number cần dịch trái.
1.2.4. Cấu trúc UDP Datagram
UDP (User Datagram Protocol) làmột trong những giao thức cốt lõi của
giao thức TCP/IP. Dùng UDP, chương trình trên mạng máy tính có thể gửi những
dữ liệu ngắn được gọi là datagram tới máy khác.
UDP là giao thức truyền gửi không tin cậy.
Thuật ngữ UDP Datagram dùng để chỉ Protocol Data Unit (PDU) ở tầng vận
chuyển (Transport Layer) nếu kết nối dùng giao thức UDP.
Hình 9. Dữ liệu trong UDP Datagram.
Báo cáo thực tập tốt nghiệp Chương I. Cấu trúc gói tin
Đoàn Ngọc Vương – D14CQAT01-N P a g e | 9
Hình 10. Cấu trúc của một UDP Datagram.
Cấu trúc của UDP Datagram ngắn hơn rất nhiều TCP Datagram là do thuộc tính
của mỗi bên. UDP không cần kiểm soát lỗi, chỉ cần “có thể” gửi dữ liệu đến đích.
1.3. Một số giao thức thường gặp
1.3.1. HTTP (HyberText Transfer Protocol)
Là giao thức truyền siêu văn bản, nằm ở tầng ứng dụng, được sử dụng để
gửi nội dung giữa web server và web client.
 Sử dụng TCP là giao thức ở tầng vận chuyển.
 Port mặc định (Server): 80
Hình 11. Ví dụ về dữ liệu của HTTP Layer.
1.3.2. DNS (Domain Name System)
Là hệ thống cho phép thiết lập tương tác giữa địa chỉ IP và tên miền trên
Internet.
 Sử dụng UDP là giao thức ở tầng vận chuyển.
 Port mặc định (Client): 53
Báo cáo thực tập tốt nghiệp Chương I. Cấu trúc gói tin
Đoàn Ngọc Vương – D14CQAT01-N P a g e | 10
Hình 12. Ví dụ về dữ liệu của DNS Layer.
1.3.3. FPT (File Transfer Protocol)
FTP (viết tắt của File Transfer Protocol dịch ra là “Giao thức truyền tập
tin”) là giao thức truyền file giữa các máy tính.
 Dùng giao thức TCP ở tầng vận chuyển.
 FPT sử dụng 2 port mặc định:
- Port 20: Gửi dữ liệu.
- Port 21: Gửi lệnh (command).
1.3.4. POP (Post Office Protocol)
POP (viết tắt của từ Post Office Protocol) làmột giao thức tầng ứng dụng,
dùng để lấy thư điện tử từ server mail, thông qua kết nối TCP/IP.
 POP3 và IMAP4 (Internet Message Access Protocol) là 2 chuẩn giao
thức Internet thông dụng nhất dùng để lấy nhận email.
 Mặc đình, port POP3 là:
- Port 110 – port không mã hóa
- Port 995 – SSL/TLS port, cũng có thể được gọi là POP3S.
1.3.5. SMTP (Simple Mail Transfer Protocol)
Báo cáo thực tập tốt nghiệp Chương I. Cấu trúc gói tin
Đoàn Ngọc Vương – D14CQAT01-N P a g e | 11
SMTP (tiếng Anh: Simple Mail Transfer Protocol - giao thức truyền tải thư
tín đơn giản) là một chuẩn truyền tải thư điện tử qua mạng Internet.
SMTP dùng cổng 25 của giao thức TCP.
1.3.6. TELNET (Terminel Network)
TELNET (viết tắt của TErminaL NETwork) là một giao thức
mạng (network protocol) được dùng trên các kết nối với Internet hoặc các kết nối
tại mạng máy tính cục bộ LAN.
Telnet dùng cổng 23 của giao thức TCP.
1.3.7. SSH (Secure Shell)
SSH (tiếng Anh: Secure Shell) là một giao thức mạng dùng để thiết lập kết
nối mạng một cách bảo mật.
SSH dùng cổng 22 của giao thức TCP.
Báo cáo thực tập tốt nghiệp Chương II. Giám sát mạng
Đoàn Ngọc Vương – D14CQAT01-N P a g e | 12
CHƯƠNG II. GIÁM SÁT MẠNG
2.1. Giám sát mạng
Giám sát mạng là việc sử dụng một hệ thống phần cứng hoặc phần mềm để liên
tục theo dõi một mạng máy tính.
Từ các lưu lượng thu thập được, có thể nằm rõ về quá trình hoạt động của các
thành phần trong hệ thống mạng. Từ đó, có thể quản lý và điều khiển hệ thống
mạng tốt hơn.
Nếu đi theo hướng mục đích xấu, giám sát mạng (nghe lén) có thể cho kẻ tấn công
thu thập được những dữ liệu được truyền gửi trên mạng của mục tiêu.
Còn đi theo hướng chuyên viên an toàn thông tin, giám sát mạng cung cấp dữ liệu
và các dấu hiệu để có thể phát hiện, đề phòng các cuộc tấn công từ sớm (hoặc đang
diễn ra) để đưa ra biện pháp kịp thời.
Hoạt động này gọi là giám sát an toàn mạng.
2.2. Giám sát an toàn mạng (Networksecurity monitoring)
Giám sát an toàn mạng, bao gồm 3 bước:
 Thu thập dữ liệu.
 Phát hiện xâm nhập.
 Phân tích dữ liệu an ninh mạng.
Hình 13. Chu trình giám sát an toàn mạng.
Báo cáo thực tập tốt nghiệp Chương II. Giám sát mạng
Đoàn Ngọc Vương – D14CQAT01-N P a g e | 13
Bước 1: Thu thập dữ liệu
Chu trình NSM bắt đầu với bước quan trọng nhất là thu thập dữ liệu. Việc
thu thập dữ liệu được thực hiện với sự kết hợp của cả phần cứng và phần mềm
trong việc tạo, sắp xếp và lưu trữ dữ liệu cho việc phát hiện xâm nhập và phân tích
dữ liệu trong hệ thống NSM. Thu thập dữ liệu là phần quan trọng nhất của chu
trình NSM bởi vì các bước thực hiện ở đây sẽ định hình khả năng của một tổ chức
trong việc phát hiện xâm nhập và phân tích dữ liệu hiệu quả.
Có một số loại dữ liệu của NSM và tương ứng sẽ có một số phương pháp có thể thu
thập được các loại dữ liệu này. Các loại dữ liệu phổ biến nhất của NSM bao gồm
dữ liệu nội dung đầy đủ, dữ liệu phiên, dữ liệu thống kê, dữ liệu kiểu chuỗi trong
gói tin và dữ liệu cảnh báo. Tùy thuộc vào nhu cầu của tổ chức, kiến trúc mạng và
nguồn tài nguyên sẵn có, các kiểu dữ liệu này có thể được sử dụng chủ yếu để phát
hiện xâm nhập, phân tích, hoặc cho dùng cho cả hai.
Khởi đầu, thu thập dữ liệu có thể là một trong những phần cần nhiều lao động nhất
trong chu trình NSM. Để thu thập dữ liệu có hiệu quả đòi hỏi có một sự nỗ lực từ
lãnh đạo tổ chức, đội ngũ an ninh thông tin, các nhóm mạng và các nhóm quản trị
hệ thống.
Thu thập dữ liệu bao gồm các nhiệm vụ như sau:
 Xác định các vị trí có nhiều điểm yếu tồn tại trong tổ chức
 Xác định các nguy cơ ảnh hưởng đến mục tiêu tổ chức
 Xác định nguồn dữ liệu có liên quan
 Tinh chế nguồn dữ liệu thu thập được
 Cấu hình cổng SPAN để thu thập dữ liệu gói tin
 Xây dựng lưu trữ SAN cho lưu giữ nhật ký
 Cấu hình phần cứng và phần mềm thu thập dữ liệu
Bước 2: Phát hiện xâm nhập
Phát hiện xâm nhập là quá trình mà qua đó dữ liệu thu thập được kiểm tra và
cảnh báo sẽ được tạo ra dựa trên các sự kiện quan sát được và dữ liệu thu thập
không được như mong đợi.
Điều này thường được thực hiện thông qua một số hình thức chữ ký, sự bất thường,
hoặc phát hiện dựa trên thống kê. Kết quả là tạo ra các dữ liệu cảnh báo.
Báo cáo thực tập tốt nghiệp Chương II. Giám sát mạng
Đoàn Ngọc Vương – D14CQAT01-N P a g e | 14
Phát hiện xâm nhập thường là một chức năng của phần mềm với một số gói phần
mềm phổ biến như Snort IDS và Bro IDS của một hệ thống phát hiện xâm nhập
mạng (NIDS), và OSSEC, AIDE hoặc McAfee HIPS của một hệ thống phát hiện
xâm nhập máy chủ (HIDS). Một số ứng dụng như Quản lý sự kiện và thông tin an
ninh (Security Information and Event Management - SIEM) sẽ sử dụng cả dữ liệu
dựa trên mạng và dữ liệu dựa trên máy chủ để phát hiện xâm nhập dựa trên các sự
kiện liên quan.
Bước 3: Phân tích dữ liệu
Phân tích là giai đoạn cuối cùng của chu trình NSM, và được thực hiện khi
một người diễn giải và xem xét dữ liệu cảnh báo. Điều này thường sẽ liên quan đến
việc xem xét thu thập dữ liệu bổ sung từ các nguồn dữ liệu khác. Phân tích dữ liệu
có thể được thực hiện với các nhiệm vụ sau:
 Phân tích gói tin
 Phân tích mạng
 Phân tích máy chủ
 Phân tích phần mềm độc hại
Phân tích dữ liệu là phần tốn thời gian nhất trong chu trình NSM. Tại thời điểm này
một sự kiện có thể được chính thức nâng lên thành sự cố, và có thể bắt đầu với các
biện pháp ứng phó.
Chu trình NSM kết thúc bằng các bài học kinh nghiệm trong việc phát hiện xâm
nhập và phân tích dữ liệu cho bất kỳ sự bất thường nào và tiếp tục hình thành các
chiến lược thu thập dữ liệu cho tổ chức.
2.3. Các loại dữ liệucần thiết cho giám sát an toàn mạng
Dữ liệubắt gói tinđầy đủ (dữ liệuFPC)
Cung cấp thông tin đầy đủ về tất cả các gói dữ liệu được truyền giữa hai
điểm đầu cuối. Các loại dữ liệu FPC phổ biến nhất là theo định dạng dữ liệu PCAP.
Loại dữ liệu này được sử dụng nhiều nhất và được đánh giá cao về giá trị do tính
chất đầy đủ của nó, và rất phù hợp trong ngữ cảnh phân tích. Các loại dữ liệu khác,
như dữ liệu thống kê hay dữ liệu chuỗi trong gói tin, thường bắt nguồn từ dữ liệu
FPC.
Dữ liệuphiên
Là bản tóm tắt các thông tin giữa hai thiết bị mạng, là một trong những hình
thức linh hoạt và hữu ích nhất của dữ liệu NSM. Tuy dữ liệu phiên không cung cấp
mức độ chi tiết như dữ liệu FPC, nhưng với kích thước nhỏ nó sẽ được lưu lại
Báo cáo thực tập tốt nghiệp Chương II. Giám sát mạng
Đoàn Ngọc Vương – D14CQAT01-N P a g e | 15
trong khoảng thời gian dài hơn nhiều, và điều này là vô cùng quý giá khi thực hiện
phân tích lại quá khứ.
Dữ liệuthống kê
Là dữ liệu tổ chức, phân tích, giải thích và biểu diễn các loại dữ liệu khác.
Dữ liệu thống kê có thể bao gồm nhiều hình thức khác nhau.
Dữ liệukiểu chuỗi trong gói tin(PSTR)
Được lấy từ dữ liệu FPC, và tồn tại như một dạng dữ liệu trung gian giữa dữ
liệu FPC và dữ liệu phiên. Định dạng dữ liệu này bao gồm các chuỗi văn bản rõ từ
tiêu đề (header) của các giao thức (ví dụ, dữ liệu trong phần tiêu đề của HTTP).
Kết quả là có được dạng dữ liệu chi tiết gần giống với dữ liệu FPC và duy trì một
kích thước dễ quản lý hơn và cho phép tăng lượng dữ liệu lưu trữ.
Dữ liệu nhật ký. Dữ liệu nhật ký là các tệp tin nhật ký thô được tạo ra từ các thiết
bị, hệ thống hoặc ứng dụng, bao gồm nhật ký web-proxy, nhật ký tường lửa định
tuyến, nhật ký chứng thực VPN, nhật ký bảo mật Windows và dữ liệu SYSLOG.
Loại dữ liệu này thay đổi kích thước và tính hữu dụng của nó tùy thuộc vào nguồn
gốc.
Dữ liệucảnh báo.
Khi công cụ phát hiện ra bất kỳ một bất thường nào trong dữ liệu mà nó
kiểm tra, thì nó sẽ tạo ra một loại dữ liệu gọi là dữ liệu cảnh báo. Dữ liệu nà thường
chứa mô tả của các cảnh báo, và một con trỏ chỉ đến dữ liệu bất thường. Nói chung,
kích thước của dữ liệu cảnh báo thường rất nhỏ, có khi chỉ là con trỏ chỉ đến dữ
liệu khác. Việc phân tích NSM thường dựa trên các thế hệ của dữ liệu cảnh báo.
Báo cáo thực tập tốt nghiệp Chương III. Xây dựng công cụ
Đoàn Ngọc Vương – D14CQAT01-N P a g e | 16
CHƯƠNG III. XÂY DỰNG CÔNG CỤ BẮT VÀ
PHÂN TÍCH GÓI TIN
3.1. Thư viện Pyshark
3.1.1. Pyshark
Là thư viện của python dùng cho tshark, cho phép python sử dụng các trình
phân tích của wireshark.
Pyshark cho phép phân tích từ một file capture có sẵn hoặc là bắt gói một cách trực
tiếp.
- Cài đặt:
pip install pyshark
Hoặc cài đặt từ git repository:
git clone https://github.com/KimiNewt/pyshark.git
cd pyshark/src
python setup.py install
- Cấu trúc của thư viện pyshark:
Hình 14. Cấu trúc thư viện pyshark.
Báo cáo thực tập tốt nghiệp Chương III. Xây dựng công cụ
Đoàn Ngọc Vương – D14CQAT01-N P a g e | 17
3.1.2. Pyshark – FileCapture, LiveCapture module
LiveCapture là module của pyshark cung cấp để thực hiện lắng nghe và bắt
gói tin từ một network interface trên máy cục bộ.
FileCapture cho phép load các gói tin từ file bắt gói đã được lưu trước đó.
- LiveCapture bắt gói như thế nào:
Khi người dùng sử dụng LiveCapture để bắt gói, như sau:
Phương thức sniff trong module LiveCapture:
Phương thức này gọi đến load_packets (dùng để đọc các packets từ source như
cap, interface… và thêm chúng vào trong list kết quả) trong module Capture mà
LiveCapture kế thừa.
Load_packets lấy dữ liệu từ phương thức packets_from_tshark nơi mà tại đây,
tiến trình tshark được tạo ra, đồng thời đọc các parameters mà ngừi dùng nhập vào.
Sau đó, kết quả sẽ được trả về, xử lý và hiển thị cho người dùng.
- Các parameters của cả hai module:
Interface (LiveCapture only): Tên của interface sẽ thực hiện nắng nghe gói tin,
nếu bỏ trống, sẽ lấy giá trị đầu tiên.
bpf_filter (LiveCapture only): Một BPF (tcpdump) lọc trước khi thực hiện đọc.
input_file (FileCapture only): Tên file PCAP hoặc PCAPNG sẽ được tạo ra để
lưu dữ liệu bắt được.
keep_packets: Không giữ lại packets sau khi đọc bằng next().
display_filter: Thực hiện cơ chế lọc (wireshark) trước khi đọc.
only_summaries: Chỉ lưu những thông tin sơ lược của packet.
decryption_key: Optional key used to encrypt and decrypt captured traffic.
Báo cáo thực tập tốt nghiệp Chương III. Xây dựng công cụ
Đoàn Ngọc Vương – D14CQAT01-N P a g e | 18
encryption_type: Standard of encryption used in captured traffic (must be either
‘WEP’, ‘WPA-PWD’, or ‘WPA-PWK’. Defaults to WPA-PWK).
3.2. Xây dựng công cụ bắt và phân tíchgói tindựa trên pyshark
3.2.1. Xây dựng giao diện
- Ngôn ngữ được chọn là HTML/ CSS / Javascript.
- Lý do: Công cụ bắt gói tin được chạy dưới nền web là một ý tưởng rất tốt. Cho
phép chúng ta có thể bắt và phân tích gói tin dù không ngồi trực tiếp trên máy
local.
Đồng thời, nó còn đóng vai trò như một phương tiện để tấn công. Bởi vì,
theo chúng ta biết một số các phần mềm bắt gói tin như Wireshark, TCPDump thì
yêu cầu quyền admin (root) để có thể thực hiện.
Nhưng với pyshark trên python, ta có thể bắt gói tin dù đang là user www-data.
Ngoài ra, ngôn ngữ HTML/CSS/Javascript dễ dàng tuỳ biến theo sở thích của cá
nhân người sở hữu nó.
Hình 15. Giao diện
3.2.2. Cấu trúc công cụ
- Ngôn ngữ: PHP, Python:
 PHP là ngôn ngữ server side, xử lý các request, các params người dùng
truyền vào dưới dạng HTTP.
 Python là ngôn ngữ để bắt gói và phân tích gói tin.
- Hoạt động:
Báo cáo thực tập tốt nghiệp Chương III. Xây dựng công cụ
Đoàn Ngọc Vương – D14CQAT01-N P a g e | 19
Hình 16. Sơ đồ hoạt động của công cụ.
- Danh sách chức năng:
Chức năng Gọi chức năng Yêu cầu dữ liệu Kết quả
Đăng nhập
(Có đăng
xuất)
- Khi đăng nhập
website lần đầu.
- Khi session hết hạn.
- Username:
Chỉ chấp nhận
admin.
- Password:
Mật khẩu của
admin là
th#uTap_dnv
Cho phép sử dụng
các chức năng
sau.
Bắt gói tin - Nhấn vào Bắt Gói
trên menu (phía bên
trái của website)
- Interface:
Interface mà bạn
muốn lắng nghe
dữ liệu.
- File save as:
Sau khi bắt gói, dữ
liệu sẽ được lưu
trong file này.
- Loại bắt gói:
+ Bắt theo thời
gian (Ngắt sau một
khoảng thời gian).
+ Bắt theo số gói
(Ngắt sau khi bắt
đủ số gói cung
cấp).
- Đơn vị:
+ Số giây khi bắt
theo thời gian.
- Hiển thị lên kết
quả bắt được dưới
dạng rút gọn.
- Xem chi tiết gói
tin bằng cách
nhấn vào gói
muốn xem.
- Lọc gói bằng
cách nhấn vào nút
filter (gói trên
cùng bên phải).
- Dữ liệu được
lưu dưới dạng file
pcap.
Báo cáo thực tập tốt nghiệp Chương III. Xây dựng công cụ
Đoàn Ngọc Vương – D14CQAT01-N P a g e | 20
+ Số gói khi bắt
theo số gói.
Bắt gói tin
theo giao thức
- Nhấn vào Bắt Gói
Tin Theo Giao Thức
trên thanh menu.
- Giống bắt gói tin.
- Thêm: Giao thức.
- Giống bắt gói
tin.
Upload file - Nhấn vào Mở File.
- Sau đó chọn Upload
file.
- File dữ liệu bắt
gói (có đuôi dạng
pcap cap pcapng).
Dạng dữ liệu khác
không được chấp
nhận.
File được tải lên
server để có thể
mở file.
Mở file - Nhấn vào Mở File.
- Sau đó chọn Mở file.
- File đã được
upload trên server.
- File đã được lưu
trước đó thông qua
chức năng Bắt gói.
- Hiển thị lên kết
quả bắt được dưới
dạng rút gọn.
- Xem chi tiết gói
tin bằng cách
nhấn vào gói
muốn xem.
- Lọc gói bằng
cách nhấn vào nút
filter (gói trên
cùng bên phải).
Thống kê - Nhấn vào Thống Kê
trên thanh menu.
- Nhấn vào xem thống
kê trên tiêu đề Packet
Data.
Cần thực hiện bắt
gói tin hoặc mở
file trước đó.
Hiển thị thông tin
thống kê về file
pcap.
Lọc - Nhấn vào nút Filter
trên bảng Capture
Data.
- Nhập vào các từ
bạn muốn filter
chính xác bên dưới
trùng với.
- Sẽ lọc dữ liệu và
hiển thị ra dữ liệu
trùng với input
người dùng nhập
vào.
Báo cáo thực tập tốt nghiệp Chương III. Xây dựng công cụ
Đoàn Ngọc Vương – D14CQAT01-N P a g e | 21
3.2.3. Class packet
Mỗi gói tin được xem là một đối tượng packet. Có cấu trúc như sau:
3.2.4. Chức năng bắt gói tin
- Code để tìm các interface trên máy local:
=> Hiển thị ra người dùng có thể chọn interface bắt gói.
- Code Python để xử lý phần bắt gói:
+ Nhận các dữ liệu từ người dùng thông qua sys.argv .
+ In ra các gói tin có trong dữ liệu thu được.
Báo cáo thực tập tốt nghiệp Chương III. Xây dựng công cụ
Đoàn Ngọc Vương – D14CQAT01-N P a g e | 22
- Sau khi xử lý các input của người thông qua $_GET, ta truyền chúng vào chương
trình python, xử lý biến kết quả, để tạo thành mảng các packet:
=> Sau đó hiển thị thông tin ra cho người dùng qua mảng $all_data.
*Lưu ý: Chức năng bắt gói thêm giao thức có sử dụng thêm param
display_filter=input_protocol trongcode Python.
3.2.5. Chức năng mở file
- Code python để mở file pcap (openfile.py):
- Sau khi xử lý các input của người dùng thông qua $_GET, ta truyền vào chương
trình openfile.py, nhận kết quả và xử lý:
=> Hiển thị dữ liệu của mảng $all_data ra màn hình người dùng.
2.6. Chức năng thống kê
- Code python để thông kê dữ liệu trong file (phantich.py):
Báo cáo thực tập tốt nghiệp Chương III. Xây dựng công cụ
Đoàn Ngọc Vương – D14CQAT01-N P a g e | 23
- Dùng PHP đọc kết quả của file cần thống kê, sau đó phân tích và in ra những dữ
liệu mong muốn.
3.3. Kết quả
3.3.1. Hiển thị dữ liệumô tả gói tin
Dữ liệu phiên mô tả những thuộc tính cơ bản nhất của 1 gói tin để người theo dõi
dễ giám sát. Nó bao các thông tin như địa chỉ nguồn, địa chỉ đích, port nguồn, port đích và
giao thức.
Từ đó, người theo dõi có thể đánh giá sơ bộ về quá trình hoạt động của mạng. Từ đó mới
tiếp cận đến những dữ liệu phức tạp (dữ liệu đầy đủ) vì những dữ liệu này cần phân tích
sâu và tốn nhiều thời gian hơn.
Báo cáo thực tập tốt nghiệp Chương III. Xây dựng công cụ
Đoàn Ngọc Vương – D14CQAT01-N P a g e | 24
3.3.2. Hiển thị dữ liệuchi tiết của gói tin
Đây là dữ liệu đầy đủ của gói tin.
3.3.3. Hiển thị dữ liệuthống kê
Thông tin thống kê về file
Thông tin thống kê về thời gian
Thông tin thống kê về các giao thức
Báo cáo thực tập tốt nghiệp Tài liệu tham khảo
Đoàn Ngọc Vương – D14CQAT01-N P a g e | 25
TÀI LIỆU THAM KHẢO
[1] Source pyshark library for python https://github.com/KimiNewt/pyshark
[2] Richard Bejtlich, The Practice of Network Security Monitoring, No Starch Press,
2013.
[3] Wireshark: https://www.wireshark.org/docs/
[4] Python: https://www.python.org/

More Related Content

What's hot

Hướng dẫn sử dụng phần mềm packet tracer
Hướng dẫn sử dụng phần mềm packet tracerHướng dẫn sử dụng phần mềm packet tracer
Hướng dẫn sử dụng phần mềm packet tracer
Bình Tân Phú
 
Kĩ thuật lọc ảnh và ứng dụng trong lọc nhiễu làm trơn
Kĩ thuật lọc ảnh và ứng dụng trong lọc nhiễu làm trơnKĩ thuật lọc ảnh và ứng dụng trong lọc nhiễu làm trơn
Kĩ thuật lọc ảnh và ứng dụng trong lọc nhiễu làm trơn
Nguyen Thieu
 
[123doc.vn] thiet ke mang lan cho truong hoc copy
[123doc.vn]   thiet ke mang lan cho truong hoc copy[123doc.vn]   thiet ke mang lan cho truong hoc copy
[123doc.vn] thiet ke mang lan cho truong hoc copy
nenohap
 
Xây Dựng Mạng LAN
Xây Dựng Mạng LANXây Dựng Mạng LAN
Xây Dựng Mạng LAN
Lại Thanh Tú
 
Báo Cáo Cuối Ký Thực Tập Tốt Nghiệp Xậy Dựng Web Bán Hàng Trực Tuyến bằng Ope...
Báo Cáo Cuối Ký Thực Tập Tốt Nghiệp Xậy Dựng Web Bán Hàng Trực Tuyến bằng Ope...Báo Cáo Cuối Ký Thực Tập Tốt Nghiệp Xậy Dựng Web Bán Hàng Trực Tuyến bằng Ope...
Báo Cáo Cuối Ký Thực Tập Tốt Nghiệp Xậy Dựng Web Bán Hàng Trực Tuyến bằng Ope...hoainhan1501
 
Đề tài: Phần mềm quản lý thông tin sinh viên, HOT, 9đ
Đề tài: Phần mềm quản lý thông tin sinh viên, HOT, 9đĐề tài: Phần mềm quản lý thông tin sinh viên, HOT, 9đ
Đề tài: Phần mềm quản lý thông tin sinh viên, HOT, 9đ
Dịch vụ viết bài trọn gói ZALO 0917193864
 
Phân tích thiết kế hệ thống của hàng bán điện thoại di động
Phân tích thiết kế hệ thống của hàng bán điện thoại di độngPhân tích thiết kế hệ thống của hàng bán điện thoại di động
Phân tích thiết kế hệ thống của hàng bán điện thoại di động
Nguyễn Danh Thanh
 
NoSql Database
NoSql DatabaseNoSql Database
NoSql Database
Nguyen Thieu
 
Đề tài: Tìm hiểu kỹ thuật giấu tin trên biên của ảnh nhị phân, HAY
Đề tài: Tìm hiểu kỹ thuật giấu tin trên biên của ảnh nhị phân, HAYĐề tài: Tìm hiểu kỹ thuật giấu tin trên biên của ảnh nhị phân, HAY
Đề tài: Tìm hiểu kỹ thuật giấu tin trên biên của ảnh nhị phân, HAY
Dịch vụ viết bài trọn gói ZALO: 0909232620
 
Đề tài: Phần mềm Quản Lý Siêu Thị Mini, HAY, 9đ
Đề tài: Phần mềm Quản Lý Siêu Thị Mini, HAY, 9đĐề tài: Phần mềm Quản Lý Siêu Thị Mini, HAY, 9đ
Đề tài: Phần mềm Quản Lý Siêu Thị Mini, HAY, 9đ
Dịch vụ viết bài trọn gói ZALO 0917193864
 
Đề tài: Xây dựng phần mềm quản lý nhà hàng ăn uống
Đề tài: Xây dựng phần mềm quản lý nhà hàng ăn uốngĐề tài: Xây dựng phần mềm quản lý nhà hàng ăn uống
Đề tài: Xây dựng phần mềm quản lý nhà hàng ăn uống
Dịch Vụ Viết Thuê Khóa Luận Zalo/Telegram 0917193864
 
Chuong 3- CSDL phân tán
Chuong 3- CSDL phân tánChuong 3- CSDL phân tán
Chuong 3- CSDL phân tánduysu
 
Lập trình ứng dụng web asp.net Trung Tâm Tin Học Khoa Học Tự Nhiên
Lập trình ứng dụng web asp.net Trung Tâm Tin Học Khoa Học Tự NhiênLập trình ứng dụng web asp.net Trung Tâm Tin Học Khoa Học Tự Nhiên
Lập trình ứng dụng web asp.net Trung Tâm Tin Học Khoa Học Tự Nhiên
MasterCode.vn
 
Báo cáo phân tích thiết kế mạng
Báo cáo phân tích thiết kế mạngBáo cáo phân tích thiết kế mạng
Báo cáo phân tích thiết kế mạng
jackjohn45
 
Đề tài: Tìm hiểu giải pháp an ninh mạng với firewall, HAY, 9đ
Đề tài: Tìm hiểu giải pháp an ninh mạng với firewall, HAY, 9đĐề tài: Tìm hiểu giải pháp an ninh mạng với firewall, HAY, 9đ
Đề tài: Tìm hiểu giải pháp an ninh mạng với firewall, HAY, 9đ
Dịch vụ viết bài trọn gói ZALO 0917193864
 
Pf sense firewall
Pf sense  firewallPf sense  firewall
Pf sense firewall
Quan Tâm
 
Thiết kế website bán điện thoại di động bằng PHP
Thiết kế website bán điện thoại di động bằng PHPThiết kế website bán điện thoại di động bằng PHP
Thiết kế website bán điện thoại di động bằng PHP
Nguyễn Danh Thanh
 
Đề tài: Bài toán và các giải thuật theo tiếp cận phân cấp, HOT
Đề tài: Bài toán và các giải thuật theo tiếp cận phân cấp, HOTĐề tài: Bài toán và các giải thuật theo tiếp cận phân cấp, HOT
Đề tài: Bài toán và các giải thuật theo tiếp cận phân cấp, HOT
Dịch vụ viết bài trọn gói ZALO 0917193864
 
Đề tài: Tìm hiểu hệ thống phát hiện xâm nhập IDS-SNORT, 9đ
Đề tài: Tìm hiểu hệ thống phát hiện xâm nhập IDS-SNORT, 9đĐề tài: Tìm hiểu hệ thống phát hiện xâm nhập IDS-SNORT, 9đ
Đề tài: Tìm hiểu hệ thống phát hiện xâm nhập IDS-SNORT, 9đ
Dịch vụ viết bài trọn gói ZALO: 0909232620
 
Luận văn: Khai phá dữ liệu; Phân cụm dữ liệu, HAY
Luận văn: Khai phá dữ liệu; Phân cụm dữ liệu, HAYLuận văn: Khai phá dữ liệu; Phân cụm dữ liệu, HAY
Luận văn: Khai phá dữ liệu; Phân cụm dữ liệu, HAY
Dịch vụ viết bài trọn gói ZALO: 0909232620
 

What's hot (20)

Hướng dẫn sử dụng phần mềm packet tracer
Hướng dẫn sử dụng phần mềm packet tracerHướng dẫn sử dụng phần mềm packet tracer
Hướng dẫn sử dụng phần mềm packet tracer
 
Kĩ thuật lọc ảnh và ứng dụng trong lọc nhiễu làm trơn
Kĩ thuật lọc ảnh và ứng dụng trong lọc nhiễu làm trơnKĩ thuật lọc ảnh và ứng dụng trong lọc nhiễu làm trơn
Kĩ thuật lọc ảnh và ứng dụng trong lọc nhiễu làm trơn
 
[123doc.vn] thiet ke mang lan cho truong hoc copy
[123doc.vn]   thiet ke mang lan cho truong hoc copy[123doc.vn]   thiet ke mang lan cho truong hoc copy
[123doc.vn] thiet ke mang lan cho truong hoc copy
 
Xây Dựng Mạng LAN
Xây Dựng Mạng LANXây Dựng Mạng LAN
Xây Dựng Mạng LAN
 
Báo Cáo Cuối Ký Thực Tập Tốt Nghiệp Xậy Dựng Web Bán Hàng Trực Tuyến bằng Ope...
Báo Cáo Cuối Ký Thực Tập Tốt Nghiệp Xậy Dựng Web Bán Hàng Trực Tuyến bằng Ope...Báo Cáo Cuối Ký Thực Tập Tốt Nghiệp Xậy Dựng Web Bán Hàng Trực Tuyến bằng Ope...
Báo Cáo Cuối Ký Thực Tập Tốt Nghiệp Xậy Dựng Web Bán Hàng Trực Tuyến bằng Ope...
 
Đề tài: Phần mềm quản lý thông tin sinh viên, HOT, 9đ
Đề tài: Phần mềm quản lý thông tin sinh viên, HOT, 9đĐề tài: Phần mềm quản lý thông tin sinh viên, HOT, 9đ
Đề tài: Phần mềm quản lý thông tin sinh viên, HOT, 9đ
 
Phân tích thiết kế hệ thống của hàng bán điện thoại di động
Phân tích thiết kế hệ thống của hàng bán điện thoại di độngPhân tích thiết kế hệ thống của hàng bán điện thoại di động
Phân tích thiết kế hệ thống của hàng bán điện thoại di động
 
NoSql Database
NoSql DatabaseNoSql Database
NoSql Database
 
Đề tài: Tìm hiểu kỹ thuật giấu tin trên biên của ảnh nhị phân, HAY
Đề tài: Tìm hiểu kỹ thuật giấu tin trên biên của ảnh nhị phân, HAYĐề tài: Tìm hiểu kỹ thuật giấu tin trên biên của ảnh nhị phân, HAY
Đề tài: Tìm hiểu kỹ thuật giấu tin trên biên của ảnh nhị phân, HAY
 
Đề tài: Phần mềm Quản Lý Siêu Thị Mini, HAY, 9đ
Đề tài: Phần mềm Quản Lý Siêu Thị Mini, HAY, 9đĐề tài: Phần mềm Quản Lý Siêu Thị Mini, HAY, 9đ
Đề tài: Phần mềm Quản Lý Siêu Thị Mini, HAY, 9đ
 
Đề tài: Xây dựng phần mềm quản lý nhà hàng ăn uống
Đề tài: Xây dựng phần mềm quản lý nhà hàng ăn uốngĐề tài: Xây dựng phần mềm quản lý nhà hàng ăn uống
Đề tài: Xây dựng phần mềm quản lý nhà hàng ăn uống
 
Chuong 3- CSDL phân tán
Chuong 3- CSDL phân tánChuong 3- CSDL phân tán
Chuong 3- CSDL phân tán
 
Lập trình ứng dụng web asp.net Trung Tâm Tin Học Khoa Học Tự Nhiên
Lập trình ứng dụng web asp.net Trung Tâm Tin Học Khoa Học Tự NhiênLập trình ứng dụng web asp.net Trung Tâm Tin Học Khoa Học Tự Nhiên
Lập trình ứng dụng web asp.net Trung Tâm Tin Học Khoa Học Tự Nhiên
 
Báo cáo phân tích thiết kế mạng
Báo cáo phân tích thiết kế mạngBáo cáo phân tích thiết kế mạng
Báo cáo phân tích thiết kế mạng
 
Đề tài: Tìm hiểu giải pháp an ninh mạng với firewall, HAY, 9đ
Đề tài: Tìm hiểu giải pháp an ninh mạng với firewall, HAY, 9đĐề tài: Tìm hiểu giải pháp an ninh mạng với firewall, HAY, 9đ
Đề tài: Tìm hiểu giải pháp an ninh mạng với firewall, HAY, 9đ
 
Pf sense firewall
Pf sense  firewallPf sense  firewall
Pf sense firewall
 
Thiết kế website bán điện thoại di động bằng PHP
Thiết kế website bán điện thoại di động bằng PHPThiết kế website bán điện thoại di động bằng PHP
Thiết kế website bán điện thoại di động bằng PHP
 
Đề tài: Bài toán và các giải thuật theo tiếp cận phân cấp, HOT
Đề tài: Bài toán và các giải thuật theo tiếp cận phân cấp, HOTĐề tài: Bài toán và các giải thuật theo tiếp cận phân cấp, HOT
Đề tài: Bài toán và các giải thuật theo tiếp cận phân cấp, HOT
 
Đề tài: Tìm hiểu hệ thống phát hiện xâm nhập IDS-SNORT, 9đ
Đề tài: Tìm hiểu hệ thống phát hiện xâm nhập IDS-SNORT, 9đĐề tài: Tìm hiểu hệ thống phát hiện xâm nhập IDS-SNORT, 9đ
Đề tài: Tìm hiểu hệ thống phát hiện xâm nhập IDS-SNORT, 9đ
 
Luận văn: Khai phá dữ liệu; Phân cụm dữ liệu, HAY
Luận văn: Khai phá dữ liệu; Phân cụm dữ liệu, HAYLuận văn: Khai phá dữ liệu; Phân cụm dữ liệu, HAY
Luận văn: Khai phá dữ liệu; Phân cụm dữ liệu, HAY
 

Similar to Beezo Share - Đồ Án Thực Tập Công Cụ Giám Sát Mạng Python

[Báo cáo] Bài tập lớn Cơ sở truyền số liệu
[Báo cáo] Bài tập lớn Cơ sở truyền số liệu[Báo cáo] Bài tập lớn Cơ sở truyền số liệu
[Báo cáo] Bài tập lớn Cơ sở truyền số liệu
The Nguyen Manh
 
thi tốt nghiệp môn chính trị
thi tốt nghiệp môn chính trịthi tốt nghiệp môn chính trị
thi tốt nghiệp môn chính trị
chauminhtricntt
 
Luận văn: Tìm hiểu kỹ thuật lập trình Network Service, HOT
Luận văn: Tìm hiểu kỹ thuật lập trình Network Service, HOTLuận văn: Tìm hiểu kỹ thuật lập trình Network Service, HOT
Luận văn: Tìm hiểu kỹ thuật lập trình Network Service, HOT
Dịch vụ viết bài trọn gói ZALO 0917193864
 
Hệ thống nhúng cho ứng dụng giải trí thời gian thực trên Android
Hệ thống nhúng cho ứng dụng giải trí thời gian thực trên AndroidHệ thống nhúng cho ứng dụng giải trí thời gian thực trên Android
Hệ thống nhúng cho ứng dụng giải trí thời gian thực trên Android
Dịch vụ viết bài trọn gói ZALO 0917193864
 
Bai giang thiet ke mang lan wan
Bai giang thiet ke mang lan wanBai giang thiet ke mang lan wan
Bai giang thiet ke mang lan wanisland2101
 
Chương 1 Khái niệm và ứng dụng của mạng máy tính - Giáo trình FPT
Chương 1 Khái niệm và ứng dụng của mạng máy tính - Giáo trình FPTChương 1 Khái niệm và ứng dụng của mạng máy tính - Giáo trình FPT
Chương 1 Khái niệm và ứng dụng của mạng máy tính - Giáo trình FPT
MasterCode.vn
 
715598135-Bai-Thuyết-Trinh-Cho-Cac-Nhom.pdf
715598135-Bai-Thuyết-Trinh-Cho-Cac-Nhom.pdf715598135-Bai-Thuyết-Trinh-Cho-Cac-Nhom.pdf
715598135-Bai-Thuyết-Trinh-Cho-Cac-Nhom.pdf
trandinhloi99
 
Luận Văn Đề Cương Công Nghệ Thông Tin Lập Trình Mạng.doc
Luận Văn  Đề Cương Công Nghệ Thông Tin Lập Trình Mạng.docLuận Văn  Đề Cương Công Nghệ Thông Tin Lập Trình Mạng.doc
Luận Văn Đề Cương Công Nghệ Thông Tin Lập Trình Mạng.doc
sividocz
 
Luu dinhthang kbdh
Luu dinhthang kbdhLuu dinhthang kbdh
Luu dinhthang kbdhthangld608
 
Bao cao da lap trinh manh
Bao cao da lap trinh manhBao cao da lap trinh manh
Bao cao da lap trinh manh
Bồ Công Anh
 
Đề tài: Xây dựng hệ thống kết nối Bus điều khiển đa kênh, 9đ
Đề tài: Xây dựng hệ thống kết nối Bus điều khiển đa kênh, 9đĐề tài: Xây dựng hệ thống kết nối Bus điều khiển đa kênh, 9đ
Đề tài: Xây dựng hệ thống kết nối Bus điều khiển đa kênh, 9đ
Dịch vụ viết bài trọn gói ZALO: 0909232620
 
MMT - Chuong 3 - Do Thanh Binh.pdf Design Web Design Web
MMT - Chuong 3 - Do Thanh Binh.pdf Design Web Design WebMMT - Chuong 3 - Do Thanh Binh.pdf Design Web Design Web
MMT - Chuong 3 - Do Thanh Binh.pdf Design Web Design Web
VHngCng5
 
2022-Chuong01.pdf
2022-Chuong01.pdf2022-Chuong01.pdf
2022-Chuong01.pdf
BicCng4
 
Tự học mcsa 2012 mạng căn bản phần 1
Tự học mcsa 2012 mạng căn bản phần 1Tự học mcsa 2012 mạng căn bản phần 1
Tự học mcsa 2012 mạng căn bản phần 1
laonap166
 
Tìm hiểu về giao thức mạng tcp ip
Tìm hiểu về giao thức mạng tcp ipTìm hiểu về giao thức mạng tcp ip
Tìm hiểu về giao thức mạng tcp ipleduyk11
 
Tìm Hiểu Kỹ Thuật Lập Trình Network Service Cho Window.doc
Tìm Hiểu Kỹ Thuật Lập Trình Network Service Cho Window.docTìm Hiểu Kỹ Thuật Lập Trình Network Service Cho Window.doc
Tìm Hiểu Kỹ Thuật Lập Trình Network Service Cho Window.doc
Dịch vụ viết đề tài trọn gói 0934.573.149
 
Ex 1 chapter03-appliation-layer-tony_chen - tieng viet
Ex 1 chapter03-appliation-layer-tony_chen - tieng vietEx 1 chapter03-appliation-layer-tony_chen - tieng viet
Ex 1 chapter03-appliation-layer-tony_chen - tieng vietĐô GiẢn
 
[123doc.vn] xay dung he thong mang cho doanh nhiep nho
[123doc.vn]   xay dung he thong mang cho doanh nhiep nho[123doc.vn]   xay dung he thong mang cho doanh nhiep nho
[123doc.vn] xay dung he thong mang cho doanh nhiep nhoNguyễn Quân
 
Tài liệu profibus
Tài liệu profibusTài liệu profibus
Tài liệu profibusVu Phong
 

Similar to Beezo Share - Đồ Án Thực Tập Công Cụ Giám Sát Mạng Python (20)

[Báo cáo] Bài tập lớn Cơ sở truyền số liệu
[Báo cáo] Bài tập lớn Cơ sở truyền số liệu[Báo cáo] Bài tập lớn Cơ sở truyền số liệu
[Báo cáo] Bài tập lớn Cơ sở truyền số liệu
 
thi tốt nghiệp môn chính trị
thi tốt nghiệp môn chính trịthi tốt nghiệp môn chính trị
thi tốt nghiệp môn chính trị
 
Luận văn: Tìm hiểu kỹ thuật lập trình Network Service, HOT
Luận văn: Tìm hiểu kỹ thuật lập trình Network Service, HOTLuận văn: Tìm hiểu kỹ thuật lập trình Network Service, HOT
Luận văn: Tìm hiểu kỹ thuật lập trình Network Service, HOT
 
Hệ thống nhúng cho ứng dụng giải trí thời gian thực trên Android
Hệ thống nhúng cho ứng dụng giải trí thời gian thực trên AndroidHệ thống nhúng cho ứng dụng giải trí thời gian thực trên Android
Hệ thống nhúng cho ứng dụng giải trí thời gian thực trên Android
 
Bai giang thiet ke mang lan wan
Bai giang thiet ke mang lan wanBai giang thiet ke mang lan wan
Bai giang thiet ke mang lan wan
 
Chương 1 Khái niệm và ứng dụng của mạng máy tính - Giáo trình FPT
Chương 1 Khái niệm và ứng dụng của mạng máy tính - Giáo trình FPTChương 1 Khái niệm và ứng dụng của mạng máy tính - Giáo trình FPT
Chương 1 Khái niệm và ứng dụng của mạng máy tính - Giáo trình FPT
 
715598135-Bai-Thuyết-Trinh-Cho-Cac-Nhom.pdf
715598135-Bai-Thuyết-Trinh-Cho-Cac-Nhom.pdf715598135-Bai-Thuyết-Trinh-Cho-Cac-Nhom.pdf
715598135-Bai-Thuyết-Trinh-Cho-Cac-Nhom.pdf
 
Luận Văn Đề Cương Công Nghệ Thông Tin Lập Trình Mạng.doc
Luận Văn  Đề Cương Công Nghệ Thông Tin Lập Trình Mạng.docLuận Văn  Đề Cương Công Nghệ Thông Tin Lập Trình Mạng.doc
Luận Văn Đề Cương Công Nghệ Thông Tin Lập Trình Mạng.doc
 
Luu dinhthang kbdh
Luu dinhthang kbdhLuu dinhthang kbdh
Luu dinhthang kbdh
 
Bao cao da lap trinh manh
Bao cao da lap trinh manhBao cao da lap trinh manh
Bao cao da lap trinh manh
 
Đề tài: Xây dựng hệ thống kết nối Bus điều khiển đa kênh, 9đ
Đề tài: Xây dựng hệ thống kết nối Bus điều khiển đa kênh, 9đĐề tài: Xây dựng hệ thống kết nối Bus điều khiển đa kênh, 9đ
Đề tài: Xây dựng hệ thống kết nối Bus điều khiển đa kênh, 9đ
 
MMT - Chuong 3 - Do Thanh Binh.pdf Design Web Design Web
MMT - Chuong 3 - Do Thanh Binh.pdf Design Web Design WebMMT - Chuong 3 - Do Thanh Binh.pdf Design Web Design Web
MMT - Chuong 3 - Do Thanh Binh.pdf Design Web Design Web
 
2022-Chuong01.pdf
2022-Chuong01.pdf2022-Chuong01.pdf
2022-Chuong01.pdf
 
Tự học mcsa 2012 mạng căn bản phần 1
Tự học mcsa 2012 mạng căn bản phần 1Tự học mcsa 2012 mạng căn bản phần 1
Tự học mcsa 2012 mạng căn bản phần 1
 
Tìm hiểu về giao thức mạng tcp ip
Tìm hiểu về giao thức mạng tcp ipTìm hiểu về giao thức mạng tcp ip
Tìm hiểu về giao thức mạng tcp ip
 
Tìm Hiểu Kỹ Thuật Lập Trình Network Service Cho Window.doc
Tìm Hiểu Kỹ Thuật Lập Trình Network Service Cho Window.docTìm Hiểu Kỹ Thuật Lập Trình Network Service Cho Window.doc
Tìm Hiểu Kỹ Thuật Lập Trình Network Service Cho Window.doc
 
Ex 1 chapter03-appliation-layer-tony_chen - tieng viet
Ex 1 chapter03-appliation-layer-tony_chen - tieng vietEx 1 chapter03-appliation-layer-tony_chen - tieng viet
Ex 1 chapter03-appliation-layer-tony_chen - tieng viet
 
Dsd02 sta
Dsd02 staDsd02 sta
Dsd02 sta
 
[123doc.vn] xay dung he thong mang cho doanh nhiep nho
[123doc.vn]   xay dung he thong mang cho doanh nhiep nho[123doc.vn]   xay dung he thong mang cho doanh nhiep nho
[123doc.vn] xay dung he thong mang cho doanh nhiep nho
 
Tài liệu profibus
Tài liệu profibusTài liệu profibus
Tài liệu profibus
 

Beezo Share - Đồ Án Thực Tập Công Cụ Giám Sát Mạng Python

  • 1. TẬP ĐOÀN BƯU CHÍNH VIỄN THÔNG VIỆT NAM HỌC VIỆN CÔNG NGHỆ BƯU CHÍNH VIỄN THÔNG HỒ CHÍ MINH -------------------------------------------- BÁO CÁO THỰC TẬP TỐT NGHIỆP ĐẠI HỌC Đề tài: “XÂY DỰNG CÔNG CỤ BẮT VÀ PHÂN TÍCH GÓI TIN PHỤC VỤ CHO CÔNG VIỆC THEO DÕI VÀ GIÁM SÁT MẠNG” Người hướng dẫn : Ts. Huỳnh Trọng Thưa Sinh viên thực hiện: Đoàn Ngọc Vương Mã số sinh viên : N14DCAT138 Lớp : D14CQAT01-N Khoá : 2014 Hệ: Đại Học Chính Qui HỒ CHÍ MINH 8/2018
  • 2. LỜI CẢM ƠN Để hoàn thành đề tài thực tập tốt nghiệp này trước hết em xin gửi đến quý thầy, cô giáo trong khoa Công nghệ thông tin2 của Học Viện Công Nghệ Bưu Chính Viễn Thông cơ sở Hồ Chí Minh lời cảm ơn chân thành. Đặc biệt, em xin gởi đến thầy Huỳnh Trọng Thưa trưởng bộ môn An Toàn Thông Tin, người đã tận tình hướng dẫn, giúp đỡ em hoàn thành đề tài thực tập tốt nghiệp này. Em xin chân thành cảm ơn Ban Lãnh Đạo của Trung Tâm An Ninh Mạng Viettel đã tạo điều kiện thuận lợi cho em được tìm hiểu thực tiễn trong suốt quá trình thực tập tại công ty. Cuối cùng em xin cảm ơn các anh, các bạn trong phòng an ninh hệ thống và ứng dụng đã giúp đỡ, chỉ bảo tận tình trong lúc làm việc. Vì kiến thức bản thân còn hạn chế, trong quá trình thực tập, hoàn thiện chuyên đề này em không tránh khỏi những sai sót, kính mong nhận được những ý kiến đóng góp từ thầy cô cũng như quý công ty. Trân trọng, ngày 6 tháng 8 năm 2018 Sinh viên thực hiện (ký và ghi rõ họ tên)
  • 3. Báo cáo thực tập tốt nghiệp Mục lục Đoàn Ngọc Vương – D14CQAT01-N P a g e | i MỤC LỤC MỤC LỤC i DANH MỤC HÌNH ẢNH ii LỜI MỞ ĐẦU iii CHƯƠNG I. CẤU TRÚC GÓI TIN 1 1.1. Mô hình TCP/IP 1 1.2. Cấu trúc của gói tin 3 1.2.1. Cấu trúc Frame 3 1.2.2. Cấu trúc Datagram 4 1.2.3. Cấu trúc TCP Segment 6 1.2.4. Cấu trúc UDP Datagram 8 1.3. Một số giao thức thường gặp 9 1.3.1. HTTP (HyberText Transfer Protocol) 9 1.3.2. DNS (Domain Name System) 9 1.3.3. FPT (File Transfer Protocol) 10 1.3.4. POP (Post Office Protocol) 10 1.3.5. SMTP (Simple Mail Transfer Protocol) 10 1.3.6. TELNET (Terminel Network) 11 1.3.7. SSH (Secure Shell) 11 CHƯƠNG II. GIÁM SÁT MẠNG 12 2.1. Giám sát mạng 12 2.2. Giám sát an toàn mạng (Network security monitoring) 12 2.3. Các loại dữ liệu cần thiết cho giám sát an toàn mạng 14 CHƯƠNG III. XÂY DỰNG CÔNG CỤ BẮT VÀ PHÂN TÍCH GÓI TIN 16 3.1. Thư viện Pyshark 16 3.1.1. Pyshark 16 3.1.2. Pyshark – FileCapture, LiveCapture module 17 3.2. Xây dựng công cụ bắt và phân tích gói tin dựa trên pyshark 18 3.2.1. Xây dựng giao diện 18 3.2.2. Cấu trúc công cụ 18 3.2.3. Class packet 21
  • 4. Báo cáo thực tập tốt nghiệp Mục lục Đoàn Ngọc Vương – D14CQAT01-N P a g e | ii 3.2.4. Chức năng bắt gói tin 21 3.2.5. Chức năng mở file 22 2.6. Chức năng thống kê 22 3.3. Kết quả 23 3.3.1. Hiển thị dữ liệu mô tả gói tin 23 3.3.2. Hiển thị dữ liệu chi tiết của gói tin 24 3.3.3. Hiển thị dữ liệu thống kê 24 TÀI LIỆU THAM KHẢO 25 DANH MỤC HÌNH ẢNH Hình 1. Mô hình TCP/IP và các PDU tương ứng. 1 Hình 2. Quá trình đóng gói dữ liệu trong TCP/IP. 2 Hình 3. Dữ liệu của header Frame (Text). 3 Hình 4. Thành phần của Data Frame. 3 Hình 5. Dữ liệu trong Datagram. 4 Hình 6. Thành phần cấu trúc của một Datagram. 5 Hình 7. Dữ liệu trong TCP Segment. 7 Hình 8. Cấu trúc của TCP Segment. 7 Hình 9. Dữ liệu trong UDP Datagram. 8 Hình 10. Cấu trúc của một UDP Datagram. 9 Hình 11. Ví dụ về dữ liệu của HTTP Layer. 9 Hình 12. Ví dụ về dữ liệu của DNS Layer. 10 Hình 13. Chu trình giám sát an toàn mạng. 12 Hình 15. Giao diện. 18
  • 5. Báo cáo thực tập tốt nghiệp Lời mở đầu Đoàn Ngọc Vương – D14CQAT01-N P a g e | iii LỜI MỞ ĐẦU Trong vai trò là người quản trị hệ thống hoặc là chuyên gia an toàn thông tin thì công tác giám sát mạng luôn là một viết thiết yếu. Giám sát mạng cho chúng ta biết được lưu thông đang được sử dụng trên mạng, từ đó phân tích xác định được những thông tin đầy đủ và cần thiết cho công việc xây dựng hoặc phân tích hệ thống mạng. Để phục vụ cho quá trình giám sát mạng, chúng ta có thể dùng phần cứng hoặc phần mềm để thực hiện. Tuy đã có nhiều phần mềm ứng dụng cung cấp phục vụ cho công việc nay như Wireshark, TCPdump... Nhưng để hiểu rõ hơn về quá trình xây dựng và vận hành của hệ thống giám sát mạng cũng như có thể tuỳ biến công cụ phù hợp hơn với nhu cầu của bản thân. Đồng thời nhận thấy điểm mạnh của bản thân, đã có kinh nghiệm trong việc sử dụng ngôn ngữ lập trình Python cùng các thư viện của nó. Nên em quyết định sẽ vận dụng những kiến thức đã tích luỹ ở trường và quá trình thực tập để đi tìm hiểu và xây dựng đề tài: “Xây dựng công cụ bắt và phân tích gói tinphục vụ cho công việc theo dõi và giám sát mạng bằng ngôn ngữ Python”. - Lý thuyết  Tìm hiểu và sử dụng ngôn ngữ lập trình Python.  Tìm hiểu về cấu trúc tập tin pcap và cấu trúc các gói tin lưu thông trên mạng.  Tìm hiểu về các thông tin hữu ích phục vụ cho công việc theo dõi và giám sát mạng. - Thực hành Xây dựng công cụ bắt và phân tích tập tin pcap, hiển thị các thông tin hữu ích phục vụ cho công tác giám sát mạng.
  • 6. Báo cáo thực tập tốt nghiệp Chương I. Cấu trúc gói tin Đoàn Ngọc Vương – D14CQAT01-N P a g e | 1 CHƯƠNG I. CẤU TRÚC GÓI TIN 1.1. Mô hình TCP/IP Mô hình TCP/IP là mô hình có trước so với mô hình OSI, mục đích mô hình OSI để tham chiếu làm rõ ràng cách thức trao đổi thông tin giữa các máy tính với nhau, hay nói cách khác là mô hình OSI mang tính chất dùng cho học tập nghiên cứu nhiều hơn là đưa vào triển khai thực tế. Các bạn gặp rất trường hợp dùng mô hình OSI, ngay trên mạng máy tính của bạn cũng đang dùng TCP/IPv4 hoặc TCP/IPv6. Mô hình TCP/IP còn được gọi với tên khác là: mô hình DoD (mô hình của bộ quốc phòng Mỹ). Hình 1. Mô hình TCP/IP và các PDU tương ứng.  Network Access Layer (tầng truy cập). Có thể coi tầng truy cập là một tầng riêng biệt hoặc cũng có thể tách thành 2 tầng vật lý và tầng liên kết dữ liệu như trong mô hình OSI, tầng truy cập được sử dụng để truyền gói tin từ tầng mạng đến các host trong mạng. Thành phần tầng truy cập bao gồm cả các thiết bị vật lý (hub, switch, cáp mạng, card mạng HBA-Host Bus Adapter và các đặc tả mức thấp như tín hiệu điện.  Internet Layer (tầng mạng) Nhiệm vụ của tầng mạng trên mô hình TCP/IP là giải quyết vấn đề dẫn các gói tin đi qua các mạng để đến đúng đích mong muốn.  Transport Layer (tầng vận chuyển)
  • 7. Báo cáo thực tập tốt nghiệp Chương I. Cấu trúc gói tin Đoàn Ngọc Vương – D14CQAT01-N P a g e | 2 Cũng giống với tầng vận chuyển của mô hình OSI, tầng vận chuyển làm nhiệm vụ phân nhỏ các gói tin có kích thước lớn khi gửi và tập hợp lại khi nhận, đảm bảo tính toàn vẹn cho dữ liệu (không lỗi, không mất, không lặp, đúng thứ tự).  Application Layer (tầng ứng dụng) là nơi các chương trình mạng như Web Browser, Mail User Agent làm việc để liên lạc giữa các node mạng. Do mô hình TCP/IP không có tầng nào nằm giữa tầng ứng dụng và tầng vận chuyển, nên tầng ứng dụng của mô hình TCP/IP bao gồm cả các giao thức hoạt động như tầng trình diễn và phiên trong mô hình OSI. Việc này thường do người lập trình viên thực hiện. Hình 2. Quá trình đóng gói dữ liệu trong TCP/IP. - Phương thức hoạt động của bộ giao thức TCP/IP: Khi truyền dữ liệu, quá trình tiến hành từ tầng trên xuống tầng dưới, qua mỗi tầng dữ liệu được thêm vào thông tin điều khiển gọi là Header.
  • 8. Báo cáo thực tập tốt nghiệp Chương I. Cấu trúc gói tin Đoàn Ngọc Vương – D14CQAT01-N P a g e | 3 Khi nhận dữ liệu thì quá trình xảy ra ngược lại. dữ liệu được truyền từ tầng dưới lên và qua mỗi tầng thì phần header tương ứng sẽ được lấy đi và khi đến tầng trên cùng thì dữ liệu không còn phần header nữa. Dữ liệu người dùng tại tầng ứng dụng sẽ được gắn Application Header và chuyển giao xuống tầng vận chuyển. Tại đây, nếu dữ liệu quá lớn, nó sẽ được chia thành nhiều phần và thêm header TCP hoặc UDP để chuyển giao xuống phần dưới. Được gọi là Segment nếu dùng giao thức TCP và Datagram nếu dùng giao thức UDP. Sau đó, nó được chuyển xuống tầng mạng, được gắn thêm IP heađer. Được gọi là Datagram. Xuống tầng truy cập sẽ là Frame. 1.2. Cấu trúc của gói tin 1.2.1. Cấu trúc Frame Frame là thuật ngữ để chỉ PDU ở tầng truy cập (Access Layer). Hình 3. Dữ liệu của header Frame (Text). Hình 4. Thành phần của Data Frame. Preamble Preamble chỉ ra sự bắt đầu của một khung truyền. Nó gồm 1 dãy 01 xen kẽ nhau để báo hiệu cho trạm nhận là có khung đang tới. Đồng thời là phương tiện đồng bộ hoá những phần khung nhận của lớp vật lý với luồng bits vào.
  • 9. Báo cáo thực tập tốt nghiệp Chương I. Cấu trúc gói tin Đoàn Ngọc Vương – D14CQAT01-N P a g e | 4 SFD (Start Frame Delemiter) SFD là chuỗi 8bit (10101011) theo sau Preamble và chỉ ra sự bắt đầu của chuỗi thông tin với hai bit cuối là 11. Sau byte này sẽ là địa chỉ. DestinationAddress: Bao gồm 6 byte chứa địa chỉ MAC của máy đích. Source Address: Bao gồm 6 byte chứa địa chỉ MAC của máy gửi. Length: Chỉ ra số byte trong PDU. Data – trường dữ liệu(802.2 frame) Gồm tuần tự n bytes dữ liệu (46bytes~1500bytes). Nếu không đủ,sẽ tự động đệm thêm cho đủ 46 bytes. CRC (Frame Check Sequence): Gồm 32bits mã kiểm tra lỗi theo mã CRC-32. 1.2.2. Cấu trúc Datagram Datagram dùng để chỉ PDU ở tầng mạng (Internet Layer) trong mô hình TCP/IP. Hình 5. Dữ liệu trong Datagram.
  • 10. Báo cáo thực tập tốt nghiệp Chương I. Cấu trúc gói tin Đoàn Ngọc Vương – D14CQAT01-N P a g e | 5 Hình 6. Thành phần cấu trúc của một Datagram. VERS (Version) – 4 bits: Định nghĩa phiên bản hiện thời của IP trên mạng. IHL (Internet Header Length) – 4 bits Chiều dài của đầu IP. Không phải tất cả các trường trong phần đầu đều được sử dụng. Trường đo bằng đơn vị từ 32 bit. Đầu IP ngắn nhất là 20 bytes. Nó cũng có thể dài hơn phụ thuộc trường option. Service Type – 8 bits Cho biết các thông tin về loại dịch vụ và mức ưu tiên của gói IP. Total length – 16 bits: Đây là chiều dài của datagram đo bằng byte Identification - 16 bits Cùng với các tham số khác như (Source Address và Destination Address) tham số này dùng để định danh duy nhất cho một datagram trong khoảng thời gian nó vẫn còn trên liên mạng. + Flags (3 bits): Liên quan đến sự phân đoạn (Fragment) của datagram: Bit 0: Reserved chưa sử dụng luôn lấy giá trị 0 Bit 1: DF = 1: Gói tin bị phân đoạn, có nhiều hơn 1 đoạn
  • 11. Báo cáo thực tập tốt nghiệp Chương I. Cấu trúc gói tin Đoàn Ngọc Vương – D14CQAT01-N P a g e | 6 DF = 0: Gói tin ko bị phân đoạn. Bit 2: MF = 0: Đây là đoạn cuối cùng MF = 1: Đây chưa phải là đoạn cuối cùng, còn đoạn khác phía sau nữa Fragment Offset - 13 bits Chỉ vị trí của đoạn (fragment) ở trong datagram, tính theo đơn vị 64 bits, có nghĩa là mỗi đoạn (trừ đoạn cuối cùng) phải chứa một vùng dữ liệu có độ dài là bội của 64 bits. Nó được dùng để ghép các mảnh Datagram lai với nhau Time to Live (TTL) – 8 bits Giá trị này được đặt lúc bắt đầu gửi gói tin. Và nó sẽ giảm dần khi đi qua 1 router. gói tin sẽ bị hủy nếu giá trị này = 0 khi chưa đến đích. Việc làm này nhằm giải quyết vấn đề gói tin bị lặp vô hạn trên mạng. Protocol - 8 bits: Chỉ ra giao thức lớp trên, chẳng hạn như TCP hay UDP. Header Checksum Mã kiểm soát lỗi sử dụng phương pháp CRC (Cyclic Redundancy Check) dùng để đảm bảo thông tin về gói dữ liệu được truyền đi một cách chính xác (mặc dù dữ liệu có thể bị lỗi). Nếu như việc kiểm tra này thất bại, gói dữ liệu sẽ bị huỷ bỏ tại nơi xác định được lỗi. Cần chú ý là IP không cung cấp một phương tiện truyền tin cậy bởi nó không cung cấp cho ta một cơ chế để xác nhận dữ liệu truyền tại điểm nhận hoặc tại những điểm trung gian. Giao thức IP không có cơ chế Error Control cho dữ liệu truyền đi, không có cơ chế kiểm soát luồng dữ liệu (flow control). Source Address - 32 bits: Địa chỉ của trạm nguồn. DestinationAddress - 32 bits: Địa chỉ của trạm đích. Option (có độ dài thay đổi) Sử dụng trong một số trường hợp, nhưng thực tế chúng rất ít dùng. Option bao gồm bảo mật, chức năng định tuyến đặc biệt 1.2.3. Cấu trúc TCP Segment TCP là giao thức điều khiển truyền vận. Là bộ giao thức cốt lỗi trong mô hình TCP/IP. Là giao thức truyền vận đáng tin cậy (không mất gói, đúng thứ tự). Thuật ngữ TCP segment dùng để chỉ Protocol Data Unit (PDU) ở tầng vận chuyển (Transport Layer) nếu kết nối dùng giao thức TCP.
  • 12. Báo cáo thực tập tốt nghiệp Chương I. Cấu trúc gói tin Đoàn Ngọc Vương – D14CQAT01-N P a g e | 7 Hình 7. Dữ liệu trong TCP Segment. Hình 8. Cấu trúc của TCP Segment. Source Port – 16 bits: Cổng (Port) gửi. DestinationPort – 16 bits: Cổng nhận. Sequence number – 32 bits Có hai vai trò:
  • 13. Báo cáo thực tập tốt nghiệp Chương I. Cấu trúc gói tin Đoàn Ngọc Vương – D14CQAT01-N P a g e | 8 Nếu cờ SYN được bật (1), thì đây là số thứ tự ban đầu (init sequence number). Số thứ tự của byte dữ liệu tiếp theo bằng với số xác nhận vừa nhận được, và bằng với số thứ tự trước đó cộng thêm 1. Nếu cờ SYN tắt (0), thì đây là số thứ tự tích luỹ cyả byte dữ liệu đầu tiê của segment này cho đến phiên hiện tại. Ackowlegement Number (ACK number) – 32 bits Cờ ACK được bật thì giá trị này là số thứ tự tiếp theo mà bên nhận mong đợi. Các ACK đầu tiên dùng để xác nhận số thứ tự ban đầu của bên vừa gửi, không chứa dữ liệu. HLEN– 4 bits Quy định độ dài của header. (Tối thiểu là 160bits -> Tối đa là 480 bits) Flags – 9 bits (Hay Control bits)  URG: Cờ cho trường Urgent pointer.  ACK: Cờ cho trường Ackowledgement  PSH: Hàm Push.  RST: Thiết lập lại đường truyền.  SYN: Đồng bộ lại số thứ tự  FIN: Không gửi thêm số liệu, cờ kết thúc. Window size – 16 bits: Kích thước của cửa sổ nhận. Checksum – 16 bits: Kiểm tra lỗi của header và data. Padding – 16 bits. Nếu cờ URG bật thì trường này chính là số từ 16 bits mà số thứ tự gói tin Sequence number cần dịch trái. 1.2.4. Cấu trúc UDP Datagram UDP (User Datagram Protocol) làmột trong những giao thức cốt lõi của giao thức TCP/IP. Dùng UDP, chương trình trên mạng máy tính có thể gửi những dữ liệu ngắn được gọi là datagram tới máy khác. UDP là giao thức truyền gửi không tin cậy. Thuật ngữ UDP Datagram dùng để chỉ Protocol Data Unit (PDU) ở tầng vận chuyển (Transport Layer) nếu kết nối dùng giao thức UDP. Hình 9. Dữ liệu trong UDP Datagram.
  • 14. Báo cáo thực tập tốt nghiệp Chương I. Cấu trúc gói tin Đoàn Ngọc Vương – D14CQAT01-N P a g e | 9 Hình 10. Cấu trúc của một UDP Datagram. Cấu trúc của UDP Datagram ngắn hơn rất nhiều TCP Datagram là do thuộc tính của mỗi bên. UDP không cần kiểm soát lỗi, chỉ cần “có thể” gửi dữ liệu đến đích. 1.3. Một số giao thức thường gặp 1.3.1. HTTP (HyberText Transfer Protocol) Là giao thức truyền siêu văn bản, nằm ở tầng ứng dụng, được sử dụng để gửi nội dung giữa web server và web client.  Sử dụng TCP là giao thức ở tầng vận chuyển.  Port mặc định (Server): 80 Hình 11. Ví dụ về dữ liệu của HTTP Layer. 1.3.2. DNS (Domain Name System) Là hệ thống cho phép thiết lập tương tác giữa địa chỉ IP và tên miền trên Internet.  Sử dụng UDP là giao thức ở tầng vận chuyển.  Port mặc định (Client): 53
  • 15. Báo cáo thực tập tốt nghiệp Chương I. Cấu trúc gói tin Đoàn Ngọc Vương – D14CQAT01-N P a g e | 10 Hình 12. Ví dụ về dữ liệu của DNS Layer. 1.3.3. FPT (File Transfer Protocol) FTP (viết tắt của File Transfer Protocol dịch ra là “Giao thức truyền tập tin”) là giao thức truyền file giữa các máy tính.  Dùng giao thức TCP ở tầng vận chuyển.  FPT sử dụng 2 port mặc định: - Port 20: Gửi dữ liệu. - Port 21: Gửi lệnh (command). 1.3.4. POP (Post Office Protocol) POP (viết tắt của từ Post Office Protocol) làmột giao thức tầng ứng dụng, dùng để lấy thư điện tử từ server mail, thông qua kết nối TCP/IP.  POP3 và IMAP4 (Internet Message Access Protocol) là 2 chuẩn giao thức Internet thông dụng nhất dùng để lấy nhận email.  Mặc đình, port POP3 là: - Port 110 – port không mã hóa - Port 995 – SSL/TLS port, cũng có thể được gọi là POP3S. 1.3.5. SMTP (Simple Mail Transfer Protocol)
  • 16. Báo cáo thực tập tốt nghiệp Chương I. Cấu trúc gói tin Đoàn Ngọc Vương – D14CQAT01-N P a g e | 11 SMTP (tiếng Anh: Simple Mail Transfer Protocol - giao thức truyền tải thư tín đơn giản) là một chuẩn truyền tải thư điện tử qua mạng Internet. SMTP dùng cổng 25 của giao thức TCP. 1.3.6. TELNET (Terminel Network) TELNET (viết tắt của TErminaL NETwork) là một giao thức mạng (network protocol) được dùng trên các kết nối với Internet hoặc các kết nối tại mạng máy tính cục bộ LAN. Telnet dùng cổng 23 của giao thức TCP. 1.3.7. SSH (Secure Shell) SSH (tiếng Anh: Secure Shell) là một giao thức mạng dùng để thiết lập kết nối mạng một cách bảo mật. SSH dùng cổng 22 của giao thức TCP.
  • 17. Báo cáo thực tập tốt nghiệp Chương II. Giám sát mạng Đoàn Ngọc Vương – D14CQAT01-N P a g e | 12 CHƯƠNG II. GIÁM SÁT MẠNG 2.1. Giám sát mạng Giám sát mạng là việc sử dụng một hệ thống phần cứng hoặc phần mềm để liên tục theo dõi một mạng máy tính. Từ các lưu lượng thu thập được, có thể nằm rõ về quá trình hoạt động của các thành phần trong hệ thống mạng. Từ đó, có thể quản lý và điều khiển hệ thống mạng tốt hơn. Nếu đi theo hướng mục đích xấu, giám sát mạng (nghe lén) có thể cho kẻ tấn công thu thập được những dữ liệu được truyền gửi trên mạng của mục tiêu. Còn đi theo hướng chuyên viên an toàn thông tin, giám sát mạng cung cấp dữ liệu và các dấu hiệu để có thể phát hiện, đề phòng các cuộc tấn công từ sớm (hoặc đang diễn ra) để đưa ra biện pháp kịp thời. Hoạt động này gọi là giám sát an toàn mạng. 2.2. Giám sát an toàn mạng (Networksecurity monitoring) Giám sát an toàn mạng, bao gồm 3 bước:  Thu thập dữ liệu.  Phát hiện xâm nhập.  Phân tích dữ liệu an ninh mạng. Hình 13. Chu trình giám sát an toàn mạng.
  • 18. Báo cáo thực tập tốt nghiệp Chương II. Giám sát mạng Đoàn Ngọc Vương – D14CQAT01-N P a g e | 13 Bước 1: Thu thập dữ liệu Chu trình NSM bắt đầu với bước quan trọng nhất là thu thập dữ liệu. Việc thu thập dữ liệu được thực hiện với sự kết hợp của cả phần cứng và phần mềm trong việc tạo, sắp xếp và lưu trữ dữ liệu cho việc phát hiện xâm nhập và phân tích dữ liệu trong hệ thống NSM. Thu thập dữ liệu là phần quan trọng nhất của chu trình NSM bởi vì các bước thực hiện ở đây sẽ định hình khả năng của một tổ chức trong việc phát hiện xâm nhập và phân tích dữ liệu hiệu quả. Có một số loại dữ liệu của NSM và tương ứng sẽ có một số phương pháp có thể thu thập được các loại dữ liệu này. Các loại dữ liệu phổ biến nhất của NSM bao gồm dữ liệu nội dung đầy đủ, dữ liệu phiên, dữ liệu thống kê, dữ liệu kiểu chuỗi trong gói tin và dữ liệu cảnh báo. Tùy thuộc vào nhu cầu của tổ chức, kiến trúc mạng và nguồn tài nguyên sẵn có, các kiểu dữ liệu này có thể được sử dụng chủ yếu để phát hiện xâm nhập, phân tích, hoặc cho dùng cho cả hai. Khởi đầu, thu thập dữ liệu có thể là một trong những phần cần nhiều lao động nhất trong chu trình NSM. Để thu thập dữ liệu có hiệu quả đòi hỏi có một sự nỗ lực từ lãnh đạo tổ chức, đội ngũ an ninh thông tin, các nhóm mạng và các nhóm quản trị hệ thống. Thu thập dữ liệu bao gồm các nhiệm vụ như sau:  Xác định các vị trí có nhiều điểm yếu tồn tại trong tổ chức  Xác định các nguy cơ ảnh hưởng đến mục tiêu tổ chức  Xác định nguồn dữ liệu có liên quan  Tinh chế nguồn dữ liệu thu thập được  Cấu hình cổng SPAN để thu thập dữ liệu gói tin  Xây dựng lưu trữ SAN cho lưu giữ nhật ký  Cấu hình phần cứng và phần mềm thu thập dữ liệu Bước 2: Phát hiện xâm nhập Phát hiện xâm nhập là quá trình mà qua đó dữ liệu thu thập được kiểm tra và cảnh báo sẽ được tạo ra dựa trên các sự kiện quan sát được và dữ liệu thu thập không được như mong đợi. Điều này thường được thực hiện thông qua một số hình thức chữ ký, sự bất thường, hoặc phát hiện dựa trên thống kê. Kết quả là tạo ra các dữ liệu cảnh báo.
  • 19. Báo cáo thực tập tốt nghiệp Chương II. Giám sát mạng Đoàn Ngọc Vương – D14CQAT01-N P a g e | 14 Phát hiện xâm nhập thường là một chức năng của phần mềm với một số gói phần mềm phổ biến như Snort IDS và Bro IDS của một hệ thống phát hiện xâm nhập mạng (NIDS), và OSSEC, AIDE hoặc McAfee HIPS của một hệ thống phát hiện xâm nhập máy chủ (HIDS). Một số ứng dụng như Quản lý sự kiện và thông tin an ninh (Security Information and Event Management - SIEM) sẽ sử dụng cả dữ liệu dựa trên mạng và dữ liệu dựa trên máy chủ để phát hiện xâm nhập dựa trên các sự kiện liên quan. Bước 3: Phân tích dữ liệu Phân tích là giai đoạn cuối cùng của chu trình NSM, và được thực hiện khi một người diễn giải và xem xét dữ liệu cảnh báo. Điều này thường sẽ liên quan đến việc xem xét thu thập dữ liệu bổ sung từ các nguồn dữ liệu khác. Phân tích dữ liệu có thể được thực hiện với các nhiệm vụ sau:  Phân tích gói tin  Phân tích mạng  Phân tích máy chủ  Phân tích phần mềm độc hại Phân tích dữ liệu là phần tốn thời gian nhất trong chu trình NSM. Tại thời điểm này một sự kiện có thể được chính thức nâng lên thành sự cố, và có thể bắt đầu với các biện pháp ứng phó. Chu trình NSM kết thúc bằng các bài học kinh nghiệm trong việc phát hiện xâm nhập và phân tích dữ liệu cho bất kỳ sự bất thường nào và tiếp tục hình thành các chiến lược thu thập dữ liệu cho tổ chức. 2.3. Các loại dữ liệucần thiết cho giám sát an toàn mạng Dữ liệubắt gói tinđầy đủ (dữ liệuFPC) Cung cấp thông tin đầy đủ về tất cả các gói dữ liệu được truyền giữa hai điểm đầu cuối. Các loại dữ liệu FPC phổ biến nhất là theo định dạng dữ liệu PCAP. Loại dữ liệu này được sử dụng nhiều nhất và được đánh giá cao về giá trị do tính chất đầy đủ của nó, và rất phù hợp trong ngữ cảnh phân tích. Các loại dữ liệu khác, như dữ liệu thống kê hay dữ liệu chuỗi trong gói tin, thường bắt nguồn từ dữ liệu FPC. Dữ liệuphiên Là bản tóm tắt các thông tin giữa hai thiết bị mạng, là một trong những hình thức linh hoạt và hữu ích nhất của dữ liệu NSM. Tuy dữ liệu phiên không cung cấp mức độ chi tiết như dữ liệu FPC, nhưng với kích thước nhỏ nó sẽ được lưu lại
  • 20. Báo cáo thực tập tốt nghiệp Chương II. Giám sát mạng Đoàn Ngọc Vương – D14CQAT01-N P a g e | 15 trong khoảng thời gian dài hơn nhiều, và điều này là vô cùng quý giá khi thực hiện phân tích lại quá khứ. Dữ liệuthống kê Là dữ liệu tổ chức, phân tích, giải thích và biểu diễn các loại dữ liệu khác. Dữ liệu thống kê có thể bao gồm nhiều hình thức khác nhau. Dữ liệukiểu chuỗi trong gói tin(PSTR) Được lấy từ dữ liệu FPC, và tồn tại như một dạng dữ liệu trung gian giữa dữ liệu FPC và dữ liệu phiên. Định dạng dữ liệu này bao gồm các chuỗi văn bản rõ từ tiêu đề (header) của các giao thức (ví dụ, dữ liệu trong phần tiêu đề của HTTP). Kết quả là có được dạng dữ liệu chi tiết gần giống với dữ liệu FPC và duy trì một kích thước dễ quản lý hơn và cho phép tăng lượng dữ liệu lưu trữ. Dữ liệu nhật ký. Dữ liệu nhật ký là các tệp tin nhật ký thô được tạo ra từ các thiết bị, hệ thống hoặc ứng dụng, bao gồm nhật ký web-proxy, nhật ký tường lửa định tuyến, nhật ký chứng thực VPN, nhật ký bảo mật Windows và dữ liệu SYSLOG. Loại dữ liệu này thay đổi kích thước và tính hữu dụng của nó tùy thuộc vào nguồn gốc. Dữ liệucảnh báo. Khi công cụ phát hiện ra bất kỳ một bất thường nào trong dữ liệu mà nó kiểm tra, thì nó sẽ tạo ra một loại dữ liệu gọi là dữ liệu cảnh báo. Dữ liệu nà thường chứa mô tả của các cảnh báo, và một con trỏ chỉ đến dữ liệu bất thường. Nói chung, kích thước của dữ liệu cảnh báo thường rất nhỏ, có khi chỉ là con trỏ chỉ đến dữ liệu khác. Việc phân tích NSM thường dựa trên các thế hệ của dữ liệu cảnh báo.
  • 21. Báo cáo thực tập tốt nghiệp Chương III. Xây dựng công cụ Đoàn Ngọc Vương – D14CQAT01-N P a g e | 16 CHƯƠNG III. XÂY DỰNG CÔNG CỤ BẮT VÀ PHÂN TÍCH GÓI TIN 3.1. Thư viện Pyshark 3.1.1. Pyshark Là thư viện của python dùng cho tshark, cho phép python sử dụng các trình phân tích của wireshark. Pyshark cho phép phân tích từ một file capture có sẵn hoặc là bắt gói một cách trực tiếp. - Cài đặt: pip install pyshark Hoặc cài đặt từ git repository: git clone https://github.com/KimiNewt/pyshark.git cd pyshark/src python setup.py install - Cấu trúc của thư viện pyshark: Hình 14. Cấu trúc thư viện pyshark.
  • 22. Báo cáo thực tập tốt nghiệp Chương III. Xây dựng công cụ Đoàn Ngọc Vương – D14CQAT01-N P a g e | 17 3.1.2. Pyshark – FileCapture, LiveCapture module LiveCapture là module của pyshark cung cấp để thực hiện lắng nghe và bắt gói tin từ một network interface trên máy cục bộ. FileCapture cho phép load các gói tin từ file bắt gói đã được lưu trước đó. - LiveCapture bắt gói như thế nào: Khi người dùng sử dụng LiveCapture để bắt gói, như sau: Phương thức sniff trong module LiveCapture: Phương thức này gọi đến load_packets (dùng để đọc các packets từ source như cap, interface… và thêm chúng vào trong list kết quả) trong module Capture mà LiveCapture kế thừa. Load_packets lấy dữ liệu từ phương thức packets_from_tshark nơi mà tại đây, tiến trình tshark được tạo ra, đồng thời đọc các parameters mà ngừi dùng nhập vào. Sau đó, kết quả sẽ được trả về, xử lý và hiển thị cho người dùng. - Các parameters của cả hai module: Interface (LiveCapture only): Tên của interface sẽ thực hiện nắng nghe gói tin, nếu bỏ trống, sẽ lấy giá trị đầu tiên. bpf_filter (LiveCapture only): Một BPF (tcpdump) lọc trước khi thực hiện đọc. input_file (FileCapture only): Tên file PCAP hoặc PCAPNG sẽ được tạo ra để lưu dữ liệu bắt được. keep_packets: Không giữ lại packets sau khi đọc bằng next(). display_filter: Thực hiện cơ chế lọc (wireshark) trước khi đọc. only_summaries: Chỉ lưu những thông tin sơ lược của packet. decryption_key: Optional key used to encrypt and decrypt captured traffic.
  • 23. Báo cáo thực tập tốt nghiệp Chương III. Xây dựng công cụ Đoàn Ngọc Vương – D14CQAT01-N P a g e | 18 encryption_type: Standard of encryption used in captured traffic (must be either ‘WEP’, ‘WPA-PWD’, or ‘WPA-PWK’. Defaults to WPA-PWK). 3.2. Xây dựng công cụ bắt và phân tíchgói tindựa trên pyshark 3.2.1. Xây dựng giao diện - Ngôn ngữ được chọn là HTML/ CSS / Javascript. - Lý do: Công cụ bắt gói tin được chạy dưới nền web là một ý tưởng rất tốt. Cho phép chúng ta có thể bắt và phân tích gói tin dù không ngồi trực tiếp trên máy local. Đồng thời, nó còn đóng vai trò như một phương tiện để tấn công. Bởi vì, theo chúng ta biết một số các phần mềm bắt gói tin như Wireshark, TCPDump thì yêu cầu quyền admin (root) để có thể thực hiện. Nhưng với pyshark trên python, ta có thể bắt gói tin dù đang là user www-data. Ngoài ra, ngôn ngữ HTML/CSS/Javascript dễ dàng tuỳ biến theo sở thích của cá nhân người sở hữu nó. Hình 15. Giao diện 3.2.2. Cấu trúc công cụ - Ngôn ngữ: PHP, Python:  PHP là ngôn ngữ server side, xử lý các request, các params người dùng truyền vào dưới dạng HTTP.  Python là ngôn ngữ để bắt gói và phân tích gói tin. - Hoạt động:
  • 24. Báo cáo thực tập tốt nghiệp Chương III. Xây dựng công cụ Đoàn Ngọc Vương – D14CQAT01-N P a g e | 19 Hình 16. Sơ đồ hoạt động của công cụ. - Danh sách chức năng: Chức năng Gọi chức năng Yêu cầu dữ liệu Kết quả Đăng nhập (Có đăng xuất) - Khi đăng nhập website lần đầu. - Khi session hết hạn. - Username: Chỉ chấp nhận admin. - Password: Mật khẩu của admin là th#uTap_dnv Cho phép sử dụng các chức năng sau. Bắt gói tin - Nhấn vào Bắt Gói trên menu (phía bên trái của website) - Interface: Interface mà bạn muốn lắng nghe dữ liệu. - File save as: Sau khi bắt gói, dữ liệu sẽ được lưu trong file này. - Loại bắt gói: + Bắt theo thời gian (Ngắt sau một khoảng thời gian). + Bắt theo số gói (Ngắt sau khi bắt đủ số gói cung cấp). - Đơn vị: + Số giây khi bắt theo thời gian. - Hiển thị lên kết quả bắt được dưới dạng rút gọn. - Xem chi tiết gói tin bằng cách nhấn vào gói muốn xem. - Lọc gói bằng cách nhấn vào nút filter (gói trên cùng bên phải). - Dữ liệu được lưu dưới dạng file pcap.
  • 25. Báo cáo thực tập tốt nghiệp Chương III. Xây dựng công cụ Đoàn Ngọc Vương – D14CQAT01-N P a g e | 20 + Số gói khi bắt theo số gói. Bắt gói tin theo giao thức - Nhấn vào Bắt Gói Tin Theo Giao Thức trên thanh menu. - Giống bắt gói tin. - Thêm: Giao thức. - Giống bắt gói tin. Upload file - Nhấn vào Mở File. - Sau đó chọn Upload file. - File dữ liệu bắt gói (có đuôi dạng pcap cap pcapng). Dạng dữ liệu khác không được chấp nhận. File được tải lên server để có thể mở file. Mở file - Nhấn vào Mở File. - Sau đó chọn Mở file. - File đã được upload trên server. - File đã được lưu trước đó thông qua chức năng Bắt gói. - Hiển thị lên kết quả bắt được dưới dạng rút gọn. - Xem chi tiết gói tin bằng cách nhấn vào gói muốn xem. - Lọc gói bằng cách nhấn vào nút filter (gói trên cùng bên phải). Thống kê - Nhấn vào Thống Kê trên thanh menu. - Nhấn vào xem thống kê trên tiêu đề Packet Data. Cần thực hiện bắt gói tin hoặc mở file trước đó. Hiển thị thông tin thống kê về file pcap. Lọc - Nhấn vào nút Filter trên bảng Capture Data. - Nhập vào các từ bạn muốn filter chính xác bên dưới trùng với. - Sẽ lọc dữ liệu và hiển thị ra dữ liệu trùng với input người dùng nhập vào.
  • 26. Báo cáo thực tập tốt nghiệp Chương III. Xây dựng công cụ Đoàn Ngọc Vương – D14CQAT01-N P a g e | 21 3.2.3. Class packet Mỗi gói tin được xem là một đối tượng packet. Có cấu trúc như sau: 3.2.4. Chức năng bắt gói tin - Code để tìm các interface trên máy local: => Hiển thị ra người dùng có thể chọn interface bắt gói. - Code Python để xử lý phần bắt gói: + Nhận các dữ liệu từ người dùng thông qua sys.argv . + In ra các gói tin có trong dữ liệu thu được.
  • 27. Báo cáo thực tập tốt nghiệp Chương III. Xây dựng công cụ Đoàn Ngọc Vương – D14CQAT01-N P a g e | 22 - Sau khi xử lý các input của người thông qua $_GET, ta truyền chúng vào chương trình python, xử lý biến kết quả, để tạo thành mảng các packet: => Sau đó hiển thị thông tin ra cho người dùng qua mảng $all_data. *Lưu ý: Chức năng bắt gói thêm giao thức có sử dụng thêm param display_filter=input_protocol trongcode Python. 3.2.5. Chức năng mở file - Code python để mở file pcap (openfile.py): - Sau khi xử lý các input của người dùng thông qua $_GET, ta truyền vào chương trình openfile.py, nhận kết quả và xử lý: => Hiển thị dữ liệu của mảng $all_data ra màn hình người dùng. 2.6. Chức năng thống kê - Code python để thông kê dữ liệu trong file (phantich.py):
  • 28. Báo cáo thực tập tốt nghiệp Chương III. Xây dựng công cụ Đoàn Ngọc Vương – D14CQAT01-N P a g e | 23 - Dùng PHP đọc kết quả của file cần thống kê, sau đó phân tích và in ra những dữ liệu mong muốn. 3.3. Kết quả 3.3.1. Hiển thị dữ liệumô tả gói tin Dữ liệu phiên mô tả những thuộc tính cơ bản nhất của 1 gói tin để người theo dõi dễ giám sát. Nó bao các thông tin như địa chỉ nguồn, địa chỉ đích, port nguồn, port đích và giao thức. Từ đó, người theo dõi có thể đánh giá sơ bộ về quá trình hoạt động của mạng. Từ đó mới tiếp cận đến những dữ liệu phức tạp (dữ liệu đầy đủ) vì những dữ liệu này cần phân tích sâu và tốn nhiều thời gian hơn.
  • 29. Báo cáo thực tập tốt nghiệp Chương III. Xây dựng công cụ Đoàn Ngọc Vương – D14CQAT01-N P a g e | 24 3.3.2. Hiển thị dữ liệuchi tiết của gói tin Đây là dữ liệu đầy đủ của gói tin. 3.3.3. Hiển thị dữ liệuthống kê Thông tin thống kê về file Thông tin thống kê về thời gian Thông tin thống kê về các giao thức
  • 30. Báo cáo thực tập tốt nghiệp Tài liệu tham khảo Đoàn Ngọc Vương – D14CQAT01-N P a g e | 25 TÀI LIỆU THAM KHẢO [1] Source pyshark library for python https://github.com/KimiNewt/pyshark [2] Richard Bejtlich, The Practice of Network Security Monitoring, No Starch Press, 2013. [3] Wireshark: https://www.wireshark.org/docs/ [4] Python: https://www.python.org/