Tải bản đầy đủ (.docx) (15 trang)

BÁO cáo CUỐI kì môn các kĩ thuật giám sát an toàn mạng

Bạn đang xem bản rút gọn của tài liệu. Xem và tải ngay bản đầy đủ của tài liệu tại đây (1.21 MB, 15 trang )

HỌC VIỆN CƠNG NGHỆ BƯU CHÍNH VIỄN THƠNG
KHOA CƠNG NGHỆ THƠNG TIN

BÁO CÁO CUỐI KÌ
Mơn: Các kĩ thuật giám sát an tồn mạng
Nhóm 33

Giảng viên hướng dẫn
Sinh viên thực hiện

Lớp
Khóa
Hệ

TIEU LUAN MOI download :


TPHCM Tháng 5, 2022

MỤC LỤC
I.

Iptables là gì?..........................................................................................................................

1.Iptables..................................................................................................................................

2.Thành phần của Iptables........................................................................................................
2.1

Table.........................................................................


2.2

Chains.......................................................................

2.3

Target........................................................................

II. Tấn cơng ddos tcp syn flood................................................................................................................

1.Qui trình bắt tay 3 bước của TCP..........................................................................................

2.Syn flood attack.....................................................................................................................
III.

Chống syn flood dos attack bằng module u32 iptables.........................................................

1.Kiểm tra gói tin có phải giao thức là TCP hay khơng...........................................................

2.Kiểm tra có phải gói SYN hay khơng...................................................................................

3.Kiểm tra gói tin có Payload hay khơng.................................................................................

4.Kết quả cuối cùng..................................................................................................................
IV.

Thực hiện demo.....................................................................................................................

1.Trước khi áp dụng rules iptable.............................................................................................


2.Tiến hành ngăn chặn bằng iptables.......................................................................................

DANH MỤC HÌNH ẢNH
Hình 1. Thứ tự xử lý các table và chain trong khi xử lý gói tin......................................................................4
Hình 2. Mơ tả một kết nối tcp bình thường.....................................................................................................6
Hình 3 Mơ tả tấn cơng syn flood.....................................................................................................................7
Hình 4 Mơ hình thực hiện................................................................................................................................7
Hình 5. IP Header của 1 gói tin.......................................................................................................................8
Hình 6 TCP Header của 1 gói tin.....................................................................................................................9
Hình 7 Rules drop dos attack......................................................................................................................... 10
Hình 8 Tiến hành tấn cơng syn fllod trên máy attack.................................................................................... 11
Hình 9 Gói tin trên máy nạn nhân được theo dõi trên wireshark.................................................................. 11
Hình 10 Thơng số CPU RAM trên máy nạn nhân khi bị tấn cơng...............................................................12
Hình 11 . Kiểm tra các gói tin có phải là TCP package khơng..................................................................... 12
Hình 12 . Kiểm tra các gói tịn có cờ SYN khơng.......................................................................................... 12
Hình 13 Kiểm tra payload của các gói tin................................................................................................ 13
Hình 14. Rules được tạo ra khi kết hợp các điều kiện trên........................................................................... 13

TIEU LUAN MOI download :


Hình 15 . Các gói tin theo dõi trên wireshark khi đã thiết lập rules chống dos attack.................................13

DOS TCP SYN FLOOD BẰNG HPING3, PHÁT HIỆN BẰNG
WIRESHARK VÀ NGĂN CHẶN BẰNG IPTABLES
I.

Iptables là gì?
1. Iptables
IPtables là ứng dụng tường lửa miễn phí trong Linux, cho phép thiết lập

các quy tắc riêng để kiểm sốt truy cập, tăng tính bảo mật
Vai trị và chức năng của Iptables:
 Iptables là một ứng dụng dùng để quản lý filtering gói tin và NAT
rules hoạt động trên console của linux rất nhỏ và tiện dụng. Được
cung cấp miễn phí nhằm nâng cao tính bảo mật trên hệ thống Linux.
 Iptables bao gồm 2 phần là netfilter nằm bên trong nhân Linux và
iptables nằm ở vùng ngoài nhân. Iptables chịu trách nhiệm giao tiếp
với người dùng và sau đó đẩy rules của người dùng vào cho netfilter
xử lý. netfilter thực hiện cơng việc lọc các gói tin ở mức IP. netfilter
làm việc trực tiếp ở trong nhân của Linux nhanh và không làm giảm
tốc độ của hệ thống.
 Iptables cung cấp các tính năng sau:
Có khả năng phân tích gói tin hiệu quả.
Filtering gói tin dựa vào MAC và một số cờ hiệu (flags) trong
TCP Header.
Cung cấp kỹ thuật NAT, chi tiết cho các tùy chọn để ghi nhận sự
kiện hệ thống.
Có khả năng ngăn chặn một số cơ chế tấn công theo kiểu DoS.
Cung cấp, xây dựng và quản lý các rule để xử lý các gói tin.
2. Thành phần của Iptables
Về căn bản, IPtables chỉ là bố cục và giao diện dòng lệnh để tương tác
với packet filtering của netfilter framework. Cơ chế packet filtering của
IPtables hoạt động gồm 3 thành phần là Tables, Chains và Targets

TIEU LUAN MOI download :


Hình 1. Thứ tự xử lý các table và chain trong khi xử lý gói tin

2.1


Table
 Table được IPtables được dùng để định nghĩa các rules (quy tắc) dành
cho các gói tin. Trong số đó, có các Table sau.
Filter Table:quyết định việc một gói tin có được đi đến đích dự kiến
hay từ chối yêu cầu của gói tin.
NAT Table: để dùng các rules về NAT(Network Address
Translation), NAT Table sẽ có trách nhiệm chỉnh sửa source(IP
nguồn) hoặc destination(IP đích) của gói tin khi thực hiện cơ chế
NAT.
 Mangle Table: cho phép chỉnh sửa header của gói tin, giá trị của các
trường TTL, MTU, Type of Service.
 Raw Table: có thể giúp bạn làm việc với các gói tin trước khi kernel
bắt đầu kiểm tra tình trạng & có thể loại một vài gói khỏi việc tracking
vì vấn đề hiệu năng của hệ thống.
 Security Table: một số kernel có thể hỗ trợ thêm Security Table, được
dùng bởi SELinux để thiết lập các chính sách bảo mật.
2.2 Chains
Chains được xây dựng với một vài lượng rõ ràng ứng với mỗi Table,
giúp lọc gói tin tại các điểm khác nhau.
 Chain PREROUTING hiện hữu trong Nat Table, Mangle Table &
Raw Table, các rules trong chain sẽ được thực thi ngay khi gói tin vào
đến bố cục và giao diện mạng (Network Interface).

TIEU LUAN MOI download :


Chain INPUT chỉ có ở Mangle Table & Nat Table với các rules được
thực thi ngay trước khi gói tin gặp tiến trình.
 Chain OUTPUT tồn tại ở Raw Table, Mangle Table và Filter Table, có

các rules được thực thi một khi gói tin được tiến trình tạo ra.
 Chain FORWARD hiện hữu ở Manle Table & Filter Table, có các
rules được thực thi cho các gói tin được định tuyến qua host hiện tại.
 Chain POSTROUTING chỉ tồn tại ở Manle Table & Nat Table với
các rules được thực thi khi gói tin rời bố cục và giao diện mạng.
2.3 Target
Target có thể sẽ được hiểu là hành động dành cho các gói tin khi gói tin
thỏa mãn các rules đặt ra.
 ACCEPT: Chấp thuận và cho phép gói tin đi vào hệ thống.
 DROP: Loại gói tin, khơng có gói tin giải đáp.
 REJECT: Loại gói tin những có trả lời table gói tin khác. Ví dụ: trả lời
table 1 gói tin “connection reset” đối với gói TCP hoặc “destination
host unreachable” đối với gói UDP & ICMP.
 LOG: Chấp thuận gói tin mặc dù vậy có ghi lại log.
II. Tấn cơng ddos tcp syn flood
2. Qui trình bắt tay 3 bước của TCP
Bước 1: Máy client gửi 1 packet tin SYN đến Server để yêu cầu kết nối
Bước 2: Sau khi tiếp nhận packet SYN, Server phản hồi lại Client bằng
một packet SYN/ACK để xác nhận
Bước 3: Client nhận được packet tin SYN/ACK thì sẽ trả lời Server bằng
packet tin ACK, từ đây kết nối đã được thiết lập và sẵn sàng trao đổi dữ
liệu.


TIEU LUAN MOI download :


Hình 2. Mơ tả một kết nối tcp bình thường

2.


Syn flood attack
Tấn công kiểu SYN flood là một trong những loại tấn cơng cổ nhất cịn
tồn tại đến hiện tại, dù tác hại của nó khơng đơn giản. Điểm căn bản để
ngăn chặn kiểu tấn công này là:
Bước 1: Kẻ tấn công sẽ gửi một khối lượng lớn các packet tin SYN
đến máy nạn nhân được nhắm là mục tiêu và thường là các địa chỉ IP
giả mạo.
Bước 2: Sau đó, máy nạn nhân sẽ phản hồi lại từng yêu cầu kết nối, để
lại 1 cổng mở sẵn sàng tiếp nhận và phản hồi.
Bước 3: Trong khi máy nạn nhân chờ nhận packet ACK (packet mà
không bao giờ đến), kẻ tấn công tiếp tục gửi thêm các packet SYN
mới. Sự xuất hiện các packet SYN này khiến máy nạn nhân tạm thời
duy trì kết nối cổng mở trong một thời gian nhất định cho đến khi
timeout. Cứ như vậy Attacker sẽ mở rất nhiều kết nối làm cho Victim
hết bộ nhớ và treo.

TIEU LUAN MOI download :


Hình 3 Mơ tả tấn cơng syn flood
BI.

Chống syn flood dos attack bằng module u32 iptables
Mơ hình thực hiện

Hình 4 Mơ hình thực hiện

Máy nạn nhân: 192.168.3.128
Viết rules chống ddos sử dụng module u32 của iptables

1. Giới thiệu về iptables u32 module.
Chức năng:
u32 là module iptables cho phép chúng ta có thể lấy ra byte/bit
nào ở bất kỳ vị trí nào trong gói tin để tính tốn và kiểm tra giá
trị. Sở dĩ có tên là u32 vì mỗi lần lấy data, u32 sẽ lấy 4 byte,
tương đương 32bit. Cú pháp của u32 như sau:
Start&Mask=Value|RangeValue
Điều này có nghĩa:

TIEU LUAN MOI download :


Lấy 4 byte dữ liệu từ vị trí “Start”, thực hiện phép toán
“AND” với một bit “Mask” (một dãy bit) và so sánh giá
trị của kết quả vừa tính tốn có bằng với “Value” hoặc
nằm trong “RangeValue” hay khơng.
Nếu bằng thì rule match, ngược lại rule được xem
là khơng match.
Nếu vị trí “Start” nằm cuối hoặc gần cuối gói tin khiến
cho việc lấy 4 byte tiếp theo vượt ra khỏi phạm vi gói tin
thì mặc định kết quả sẽ là False.
Các toán tử hỗ trợ:
&: phép toán AND hai dãy bit với nhau
>> : Shift Left (dịch bit sang trái)
@ : jump (Nhảy đến vị trí của kết quả vừa tính tốn nằm phía
trước dấu @)
&& : Combining tests - AND nhiều điều kiện test lại với nhau
2.

Kiểm tra gói tin có phải giao thức là TCP hay khơng

Để kiểm tra gói tin có phải là TCP hay khơng, ta cần kiểm tra trường
Protocol trong IP Header (byte thứ 9). Nếu giá trị của trường này bằng
6 thì là TCP:

TIEU LUAN MOI download :


Hình 5. IP Header của 1 gói tin

3.

Start Value: 9 -3 = 6
Mask: 0xFF
Value: 6
Biểu thức cuối cùng: 6&0xFF=6
sKiểm tra có phải gói SYN hay khơng
Để kiểm tra xem có phải là gói SYN hay khơng, cần kiểm tra cờ SYN
trong TCP mang giá trị 0 (cờ SYN không bật) hay 1 (cờ SYN được bật)

TIEU LUAN MOI download :


Hình 6 TCP Header của 1 gói tin

Cờ SYN trong byte thứ 13 của TCP header. Muốn lấy được byte này,
việc đầu tiên ta cần làm là nhảy qua khỏi chiều dài của IP Header và
đến byte đầu tiên của TCP Header, tiếp theo chọn byte thứ 10 (13-3=10)
từ vị trí vừa nhảy tới. Thực hiện việc này bằng cách sử dụng toán tử
“@“


Trong byte 13, cờ SYN nằm ở bit thứ 2 từ phải sang, do đó dịch sang
phải 1 bit để đưa bit của cờ SYN vào đúng bị trí right most:

Zero out tất cả những giá trị ta khơng qua tâm, chính là 31 bit nằm
phía trước. Sử dụng Mask:

Kiểm tra xem giá trị có bằng 1 hay không (cờ SYN đang được
bật) Với :

TIEU LUAN MOI download :


4.

5.

0>>22&0x3C@ : Tính chiều dài của IP Header và nhảy đến vị trí byte
vừa tính tốn
10>>1&0x1=0x1 : Lấy byte số 10-13, dịch qua phải 1 bit để đưa cờ
SYN vào vị trí Right Most, loại bỏ 31 bit phía trước và kiểm tra giá trị
cuối cùng có bằng 1 hay khơng
Kiểm tra gói tin có Payload hay khơng
Để kiểm tra gói tin có Payload hay khơng, ta cần “nhảy” qua khỏi IP
Header, TCP Header và đến byte đầu tiên của phần Data, kiểm tra xem
có mang giá trị hay khơng
Biểu thức: 0>>22&0x3C@12>>26&0x3C@0>>24=0:255
Trong đó:
0>>22&0x3C@: Tính tốn chiều dài của IP Header, nhảy đến vị trí của
byte vừa tính tốn (chính là vị trí bắt đầu của TCP Header)
12>>26&0x3C@: Tính tốn chiểu dài của TCP Header và nhảy đến vị

trí của byte vừa tính tốn (chính là vị trí bắt đầu của Data)
0>>24=0:255: Từ vị trí đầu tiên của Data, lấy 4 byte bắt đầu từ vị trí số
0, dịch qua phải 24 bit để đưa byte đầu tiên vào vị trí right most, kiểm
tra giá trị của byte này có nằm trong khoảng từ 0:255 hay không.
Kết quả cuối cùng
Kết hợp các điều kiện lại sử dụng toán tử “&&“, ta có rule như sau:

Hình 7 Rules drop dos attack

IV.

Thực hiện demo
1. Trước khi áp dụng rules iptable
Trên máy tấn công. Thực hiện câu lệnh tấn công syn flood bằng hping 3

TIEU LUAN MOI download :


Hình 8 Tiến hành tấn cơng syn fllod trên máy attack

Trên máy nạn nhân , mở wireshark ta thấy hàng loạt gói tin tcp được gửi tới

Hình 9 Gói tin trên máy nạn nhân được theo dõi trên wireshark

Ta thấy , ram và cpu của máy nạn nhân tăng đáng kể , khiến máy bị đơ treo

TIEU LUAN MOI download :


Hình 10 Thơng số CPU RAM trên máy nạn nhân khi bị tấn công

2.

Tiến hành ngăn chặn bằng iptables
Hệ thống log hiển thị các gói tin là TCP package

Hình 11 . Kiểm tra các gói tin có phải là TCP package khơng

Tiếp theo kiểm tra các gói tin có cờ SYN không

TIEU LUAN MOI download :


Hình 12 Kiểm tra các gói tịn có cờ SYN khơng

Tiếp theo kiểm tra payload của các gói tin

Hình 13 Kiểm tra payload của các gói tin

Rules để drop các package thỏa các điều hiện trên

Hình 14 Rules được tạo ra khi kết hợp các điều kiện trên

TIEU LUAN MOI download :


Mở wireshark để theo dõi gói tin

Hình 15 . Các gói tin theo dõi trên wireshark khi đã thiết lập rules chống dos attack

Như ta thấy , khơng có gói tin SYN-ACK nào được máy nạn nhân trả về


TIEU LUAN MOI download :



×