III Quá trình phân tích các giao thức là gì (Protocol Analysis) ?
Là quá trình chụp các lưu lượng dữ liệu và xem xét cấu trúc bên
trong khi chúng được truyền qua đường truyền. Về căn bản dữ liệu khi
truyền trên đường truyền sẽ được chia nhỏ thành nhiều gói và được chúng
sẽ được ráp lại ở cuối đường truyền trước khi đến tay người nhận. Chẳng
hạn như khi bạn lấy xuống một tài liệu có độ lớn khoảng 45,000 bytes, nó
sẽ được phân thành 30 gói với độ lớn của mỗi gói là 1,500 bytes để
chuyển đến cho bạn.
Lấy ví dụ một gói dữ liệu được chụp bởi các chương trình Sniffer.
Nó có độ lớn là 1517 bytes, nhưng tôi chỉ hiển thị 512 bytes ở đây:
000 00 00 BA 5E BA 11 00 A0 C9 B0 5E BD 08 00 45 00 ...^......^...E.
010 05 DC 1D E4 40 00 7F 06 C2 6D 0A 00 00 02 0A 00 ....@....m......
020 01 C9 00 50 07 75 05 D0 00 C0 04 AE 7D F5 50 10 ...P.u......}.P.
030 70 79 8F 27 00 00 48 54 54 50 2F 31 2E 31 20 32 py.'..HTTP/1.1.2
040 30 30 20 4F 4B 0D 0A 56 69 61 3A 20 31 2E 30 20 00.OK..Via:.1.0.
050 53 54 52 49 44 45 52 0D 0A 50 72 6F 78 79 2D 43 STRIDER..Proxy-C
060 6F 6E 6E 65 63 74 69 6F 6E 3A 20 4B 65 65 70 2D onnection:.Keep-
070 41 6C 69 76 65 0D 0A 43 6F 6E 74 65 6E 74 2D 4C Alive..Content-L
080 65 6E 67 74 68 3A 20 32 39 36 37 34 0D 0A 43 6F ength:.29674..Co
090 6E 74 65 6E 74 2D 54 79 70 65 3A 20 74 65 78 74 ntent-Type:.text
0A0 2F 68 74 6D 6C 0D 0A 53 65 72 76 65 72 3A 20 4D /html..Server:.M
0B0 69 63 72 6F 73 6F 66 74 2D 49 49 53 2F 34 2E 30 icrosoft-IIS/4.0
0C0 0D 0A 44 61 74 65 3A 20 53 75 6E 2C 20 32 35 20 ..Date:.Sun,.25.
0D0 4A 75 6C 20 31 39 39 39 20 32 31 3A 34 35 3A 35 Jul.1999.21:45:5
0E0 31 20 47 4D 54 0D 0A 41 63 63 65 70 74 2D 52 61 1.GMT..Accept-Ra
0F0 6E 67 65 73 3A 20 62 79 74 65 73 0D 0A 4C 61 73 nges:.bytes..Las
100 74 2D 4D 6F 64 69 66 69 65 64 3A 20 4D 6F 6E 2C t-Modified:.Mon,
110 20 31 39 20 4A 75 6C 20 31 39 39 39 20 30 37 3A .19.Jul.1999.07:
120 33 39 3A 32 36 20 47 4D 54 0D 0A 45 54 61 67 3A 39:26.GMT..ETag:
130 20 22 30 38 62 37 38 64 33 62 39 64 31 62 65 31 ."08b78d3b9d1be1
140 3A 61 34 61 22 0D 0A 0D 0A 3C 74 69 74 6C 65 3E :a4a"....<title>
150 53 6E 69 66 66 69 6E 67 20 28 6E 65 74 77 6F 72 Sniffing.(networ
160 6B 20 77 69 72 65 74 61 70 2C 20 73 6E 69 66 66 k.wiretap,.sniff
170 65 72 29 20 46 41 51 3C 2F 74 69 74 6C 65 3E 0D er).FAQ</title>.
180 0A 0D 0A 3C 68 31 3E 53 6E 69 66 66 69 6E 67 20 ...<h1>Sniffing.
190 28 6E 65 74 77 6F 72 6B 20 77 69 72 65 74 61 70 (network.wiretap
1A0 2C 20 73 6E 69 66 66 65 72 29 20 46 41 51 3C 2F ,.sniffer).FAQ</
1B0 68 31 3E 0D 0A 0D 0A 54 68 69 73 20 64 6F 63 75 h1>....This.docu
1C0 6D 65 6E 74 20 61 6E 73 77 65 72 73 20 71 75 65 ment.answers.que
1D0 73 74 69 6F 6E 73 20 61 62 6F 75 74 20 74 61 70 stions.about.tap
1E0 70 69 6E 67 20 69 6E 74 6F 20 0D 0A 63 6F 6D 70 ping.into...comp
1F0 75 74 65 72 20 6E 65 74 77 6F 72 6B 73 20 61 6E uter.networks.an
…..
Trên đây là một “hexdump” chuẩn của một gói dữ liệu, trước khi
chúng được giải mã (Decode). Hexdump gồm có 3 cột thông tin: cột thông
tin nhận dạng theo dòng, dữ liệu ở dạng hexadecimal và cuối cùng là dữ
liệu ở dạng ASCII.
Gói tin này gồm có 14 bytes cho Ethernet Header, 20 bytes cho IP
Header, 20 bytes cho TCP Header, HTTP Header chấm dứt sau hàng “(0D 0A
0D 0A)” và tiếp đó là dữ liệu truyền thông.
Lý do mà một gói tin sử dụng cả Hex và ASCII, có trường hợp thì các
dữ liệu hiển thị ở dạng Hex thì dễ đọc hơn và ngược lại ASCII cũng
tương tự.
Quá trình phân tích giao thức sẽ tiến hành chộp Hexdump và cố gắng hiển thị chúng một cách dễ hiểu:
ETHER: Destination address : 0000BA5EBA11
ETHER: Source address : 00A0C9B05EBD
ETHER: Frame Length : 1514 (0x05EA)
ETHER: Ethernet Type : 0x0800 (IP)
IP: Version = 4 (0x4)
IP: Header Length = 20 (0x14)
IP: Service Type = 0 (0x0)
IP: Precedence = Routine
IP: ...0.... = Normal Delay
IP: ....0... = Normal Throughput
IP: .....0.. = Normal Reliability
IP: Total Length = 1500 (0x5DC)
IP: Identification = 7652 (0x1DE4)
IP: Flags Summary = 2 (0x2)
IP: .......0 = Last fragment in datagram
IP: ......1. = Cannot fragment datagram
IP: Fragment Offset = 0 (0x0) bytes
IP: Time to Live = 127 (0x7F)
IP: Protocol = TCP - Transmission Control
IP: Checksum = 0xC26D
IP: Source Address = 10.0.0.2
IP: Destination Address = 10.0.1.201
TCP: Source Port = Hypertext Transfer Protocol
TCP: Destination Port = 0x0775
TCP: Sequence Number = 97517760 (0x5D000C0)
TCP: Acknowledgement Number = 78544373 (0x4AE7DF5)
TCP: Data Offset = 20 (0x14)
TCP: Reserved = 0 (0x0000)
TCP: Flags = 0x10 : .A....
TCP: ..0..... = No urgent data
TCP: ...1.... = Acknowledgement field significant
TCP: ....0... = No Push function
TCP: .....0.. = No Reset
TCP: ......0. = No Synchronize
TCP: .......0 = No Fin
TCP: Window = 28793 (0x7079)
TCP: Checksum = 0x8F27
TCP: Urgent Pointer = 0 (0x0)
HTTP: Response (to client using port 1909)
HTTP: Protocol Version = HTTP/1.1
HTTP: Status Code = OK
HTTP: Reason = OK
....
Quá trình phân tích giao thức thật sự không đơn giản, nó đòi hỏi
người sử dụng phải có một hiểu biết nền căn bản về các giao thức mạng.
Các thông tin được Hexdump và giải mã là những thông tin khá hữu ích cho
các nhà quản trị, cũng như là những thông tin khá có giá trị cho những
kẻ tấn công.
3.1 Hexadecimal là gì ?
Như chúng ta đã biết trong thế giới PC, tất cả mọi dữ liệu đều được
hiểu và ghi lại dưới dạng những con số theo hệ nhị phân, thập
phân…Hexadecimal đơn giản là một hế số được sử dụng để ghi lại dữ liệu
(hệ 16), là hệ được sử
dụng để ghi lại các dữ liệu trên các hệ thống mạng. Hệ thập phân
(Decimal) có nghĩa là các dữ liệu được sử dụng các ký tự trong hệ thập
phân này:
0 1 2 3 4 5 6 7 8 9
Hệ 16 (Hexdecimal) tương tự như hệ thập phân nhưng chúng mở rộng ra một chút:
0 1 2 3 4 5 6 7 8 9 A B C D E F
Cách hiển thị dữ liệu của hệ 16:
0000 = 0 0001 = 1 0010 = 2 0011 = 3
0100 = 4 0101 = 5 0110 = 6 0111 = 7
1000 = 8 1001 = 9 1010 = A 1011 = B
1100 = C 1101 = D 1110 = E 1111 = F
Lưu ý: Các chữ số trong hệ 16 thường được đi kèm với một ký tự đặc
biệt. Lấy ví dụ như số 12, nó thường được hiểu như sau: 0x12, x12, $12
3.2 ASCII là gì ?
Đơn giản chỉ là một bảng mã chuẩn quy định cho việc hiển thị dữ liệu trên máy tính.
3.3 Mô hình 7 lớp mạng OSI
Về mặt cơ bản, Internet là một hệ thống mạng máy tính lớn được dùng
để kết nối các máy tính ở khắp nơi trên thế giới với nhau và bao gồm
nhiều giao thức (Protocol). Các giao thức này được sắp xếp một cách hợp
lý trong một mô hình mạng OSI (Open Systems Interconnect Refence Model)
hay còn gọi là mô hình mạng 7 lớp:
Tầng 1 - Physcial: Thực hiện truyền thông tin ở cấp độ vật lý
giữa các máy tính với nhau. Bao gồm các giao thức: Ethernet, Wireless,
Serial Direct Cable Connection, Point to Point Protocol (PPP).
Tầng 2 - Data Link: Định nghĩa các quy luật để nhận và gửi thông
tin từ máy ày đến máy khác. Bao gồm các giao thức: Ethernet, Wrieless,
Serial Direct Cable Connection, Point to Point Protocol (PPP).
Tầng 3 - Network: Định hướng đường đI cho dữ liệu giữa các hệ
thống lớn trên mạng để đảm bảo dữ liệu đến đúng đích. Bao gồm các giao
thức: IP (Internet Protocol), ICMP (Internet Control Message Protocol),
ARP
(Address Resolution Protocol), RARP (Reverse Address Resolution Protocol).
Tầng 4 - Transport: Vận chuyển, kiểm tra, khắc phục và truyền lại
dữ liệu. Bao gồm các giao thức: TCP (Tranmission Control Protocol), UDP
(User Datagram Protocol).
Tầng 5 - Session: Giám sát truyền thông tin giữa các hệ thống bao
gồm: bảo mật (Security), nhật ký - ghi nhớ (Logging) và các chức năng
giám sát quản trị (IDS, Admin). Bao gồm các giao thức: TCP (Tranmission
Control Protocol), UDP (User Datagram Protocol).
Tầng 6 - Presentation: Điều khiển định dạng thông tin để hiển thị
hay in ra và mã hoá dữ liệu. Bao gồm các giao thức ứng dụng: Telnet,
FTP (File Transfer Protocol), HTTP (Hyper Text Transfer Protocol), SMTP
(Simple Mail Transfer Protocol), DNS (Domain Name Service)...
Không có nhận xét nào:
Đăng nhận xét