Để có thể truyền thông tin đi được
trước hết dữ liệu được chia nhỏ thành các gói dữ liệu nhỏ, qua mỗi công đoạn
như thêm các thông tin điều khiển, kiểm tra lỗi, kết hợp các giao thức, mã hóa
dữ liệu, chuyển đổi dữ liệu thành tín hiệu, … nó tương ững với mỗi layer trong
mô hình OSI hoặc mô hình TCP/ IP. Quá trình đó được gọi là đóng gói dữ liệu để
bắt đầu quá trình truyền dữ liệu.
Mô hình OSI vs IP/TCP |
Để truyền được dữ liệu tới đúng địa
chỉ thì cần phải có các bộ định tuyến Route, dữ liệu được chuyển thành các
Frame (khung) phù hợp với các công nghệ truyền dẫn. Khi đi tới đích, lại thực
hiện ngược lại quá trình đóng gói dữ liệu trên để nhận được thông tin gọi là
quá trình mở gói dữ liệu.
Và qua mỗi một Layer trong mô hình
OSI, TCP/ IP đều có những yếu điểm nhỏ, mà những Hacker đã lợi dụng nó để thực
hiện những vụ tấn công.
1. Layer
Application.
Layer này cung cấp cho người dùng
cái nhìn trực quan hay chính là giao diện người dùng cuối. Các giao thức trong
layer này như: Telnet, FTP, HTTP, SMTP,…
Ở tầng này, hacker thường lợi dụng lỗ
hổng trong các giao thức như chèn thêm thông tin vào các câu lệnh POST, GET, …
trong HTTP; hay QUIT, SENT, … trong SMTP;…
2. Layer
Transport.
Tại đây dữ liệu được chia nhỏ và gắn
thêm phần TCP header gồm các thông tin điều khiển và gọi là TCP Segment.
0
|
4
|
10
|
16
|
24
|
31
|
||||
Source Port
|
Destination Port
|
||||||||
Sequence Number
|
|||||||||
Acknowledgement Number
|
|||||||||
Hlen
|
Reserved
|
Code bits
|
Window
|
||||||
Checksum
|
Urgent Pointer
|
||||||||
Options (If any)
|
Padding
|
||||||||
Data
|
|||||||||
a. Nhiệm vụ của layer.
- Thêm các thông tin port nguồn port
đích vào các trường Source Port và Destination Port.
- Sequence
Number dùng để đánh dấu các Segment trong quá trình chia nhỏ dữ liệu để
có thể ghép lại chúng khi bên nhận nhận được.
- Acknowledgement
Number: Điều khiển truyền thông giữa gửi và nhận, tại đây thực hiện quá
trình thiết lập kết nối, báo nhận dữ liệu, truyền lại dữ liệu nếu bị mất.
- Hlen –
Header Length: Do TCP Header có độ dài thay đổi, trường HLen sẽ chỉ ra độ
dài cụ thể của phần header này.
- Reserved:
Phần để dành đặt 0. Trước là 6bit. Giờ thêm 2 cờ CWR
( Congestion Window Reduced) và ECE (
Congestion Notification). Mỗi cờ 1 bit.
- Code
bits: Chứa thông tin điều khiển giữa hai bên. Gồm 6 cờ: URG, ACK, PSH, RST, SYN, FIN.
+ Cờ URG - Urgent Pointer: Được dùng để chứa dữ liệu khẩn
cấp, khi cờ này được đặt thì Urgent Pointer sẽ chỉ ra nơi bắt đầu của dữ liệu
không khẩn cấp, dữ liệu khẩn cấp luôn nằm ở đầu phần dữ liệu
+ Cờ ACK - Acknowledgement: Được đặt mỗi khi trường Acknowledgement là hợp
lệ
+ Cờ PSH - Push: Báo hiệu cho bên nhận rằng bên gửi sử
dụng thao tác Push. Tức là bên gửi không chờ nhận được đủ các byte để lấp đầy đủ
segment, trong buffer gửi có bao nhiêu byte dữ liệu cũng được bên gửi đóng gói
vào segment rồi gửi đi.
+ Cờ RST - Reset: Thông báo bên nhận đã bị rối có thể
do nhận gói segment khác vì vậy nó muốn hủy bỏ kết nối, và khởi tạo lại kết nối.
+ Cờ SYN: Được đặt thông báo là segment đầu tiên trong
một kết nối TCP.
+ Cờ FIN: Được đặt thông báo kết thúc dữ liệu.
- Window:
Kích thước cửa sổ trượt, sử dụng để điều
khiển luồng.
- Checksum:
Tính toán và kiểm tra sự toàn vẹn của Header và dữ liệu.
b. Một số kiểu tấn công trên Layer này:
Denial of Service (DOS: Từ chối dịch vụ).
- Lợi dụng các thông tin trong code
bits để thực hiện các hành vi của mình.
+ URG: Khi được set thì nó sẽ chứa dữ liệu khẩn cấp,
và được xử lý luôn, gói tin không phải vào hàng đợi. Hacker sẽ gửi nhiều gói
tin có URG được set dẫn tới hệ thống bị trì trệ cho các kết nối trong hàng đợi.
+ RST: Hacker dựa vào đặc điểm của nó, gửi nhiều gói
tin có cờ RST được set dẫn tới tạo nhiều kết nối mới.
+ SYN: Hacker dựa vào đặc điểm của nó, tạo nhiều gói
tin mới có chứa SYN được set sẽ dẫn tới nhiều kết nối trong hàng đợi.
Port Scanning: Quét cổng dịch vụ.
- Sử dụng các gói tin có SYN được
set với mục đích khai thác port đang mở để tấn công qua nó.
3. Layer
Network.
Tại đây Segment được đóng thành các
packet – thêm thông tin header.
0
|
8
|
16
|
24
|
32
|
||||
Ver
|
IHL
|
Type of Service
|
Packet Length
|
|||||
Identification
|
Flag
|
Fragment Offset
|
||||||
Time to Live
|
Protocol
|
Header Checksum
|
||||||
Source Address
|
||||||||
Destination Address
|
||||||||
Option
|
Padding
|
|||||||
Data
|
||||||||
a. Nhiệm vụ của Layer.
- Routing: Tìm đường đi cho Packet từ
IP nguồn tới IP đích.
- Quản lý các kích thước các Packet
khi truyền qua các phương tiện truyền dẫn khác nhau; Kích thước này là Maximum
Transmission Unit – MTU.
- Ver:
Phiên bản IP.
- IHL:
Kích thước của gói tin header.
- Type
of Service: Độ ưu tiên mỗi gói tin. Ví dụ như là gói thoại hay gói dữ liệu
text.
- Packet
Length: Cho biết kích thước toàn bộ của gói tin cả phần header với data.
- Identification:
Giúp xác định các phần của các gói tin được chia ra.
- Flag
& Fragment Offset: Giúp bên nhận có thể ghép được gói tin khi bị
chia ra.
- Time
to Live: Thời gian sống của 1 gói tin.
- Protocol:
Giao thức của thêm vào: ICMP, TCP, UDP
- Header
Checksum: Kiểm tra lỗi của packet header.
- Source
Address: Địa chỉ nguồn.
- Destination
Address: Địa chỉ đích.
b. Một số kiểu tấn công.
Dựa vào lỗ hổng của một vài trường
trong header packet, hacker có thể lợi dụng một số kiểu tấn công nhằm vào nó:
Denial of Service (DOS: Từ chối dịch vụ)
- IP Spoofing (giả mạo địa chỉ IP):
Lợi dụng quá trình bắt tay ba bước, các thông tin ACK, khởi tạo SYN, giả mạo IP
nguồn, và hệ thống xác nhận gửi trả các thông tin ACK nhưng không thành công.
Gây tốn tài nguyên, chờ đợi,…
- Ping of Death: Giá trị lớn nhất
cho phép gói tin ICMP trong lệnh ping là 65 535byte. Lợi dụng lỗ hổng, hacker
hoàn toàn có thể khởi tạo lệnh ping có giá trị lớn hơn giá trị cho phép, gây ra
sự ngưng trệ trên hệ thống.
0 nhận xét:
Post a Comment