Kiến thức căn bản khi thực hiện tấn công sử dụng các lỗ hổng trong TCP/IP

Để 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 và IP/TCP
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 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