Cải thiện hiệu năng giải thuật rred chống tấn công từ chối dịch vụ tốc độ thấp
- 100 trang
- file .pdf
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ
KIỀU MINH VIỆT
CẢI THIỆN HIỆU NĂNG GIẢI THUẬT RRED
CHỐNG TẤN CÔNG TỪ CHỐI DỊCH VỤ
TỐC ĐỘ THẤP
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
Hà Nội – 2014
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ
KIỀU MINH VIỆT
CẢI THIỆN HIỆU NĂNG GIẢI THUẬT RRED
CHỐNG TẤN CÔNG TỪ CHỐI DỊCH VỤ
TỐC ĐỘ THẤP
Ngành: Công nghệ thông tin
Chuyên ngành: Truyền dữ liệu và mạng máy tính
Mã số: 60 48 15
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
NGƢỜI HƢỚNG DẪN KHOA HỌC: TS. Nguyễn Đại Thọ
Hà Nội - 2014
1
LỜI CAM ĐOAN
Tôi xin cam đoan luận văn này do tôi thực hiện, không sao chép của ai. Các
số liệu, kết quả, giải pháp đƣa ra trong luận văn là trung thực và cho đến nay tôi
chƣa công bố chúng trong bất kỳ tài liệu nào. Các thông tin trích dẫn trong luận
văn đều đã đƣợc chỉ rõ nguồn gốc.
Tác giả
Kiều Minh Việt
2
LỜI CẢM ƠN
Em xin chân thành cảm ơn thầy giáo TS. Nguyễn Đại Thọ đã tận tình giúp đỡ,
quan tâm sâu sát, với tinh thần thầy trò trong sáng và tin tƣởng để em hoàn thành luận
văn cao học này. Em cũng rất vui vẻ cảm ơn các thầy cô giáo trong khoa Công nghệ
thông tin và tất cả các cán bộ, nhân viên Trƣờng Đại học Công nghệ, Đại học quốc gia
Hà Nội đã truyền thụ cho em những kiến thức chuyên ngành bổ ích, quý báu và tạo ra
một môi trƣờng học tập trung thực, lành mạnh. Tôi xin gửi những tình cảm thân thiết
đến bạn bè học cùng khoá cao học K17 ngành Công nghệ thông tin, đặc biệt là lớp
Truyền dữ liệu và mạng máy tính. Tôi cũng xin cảm ơn tất cả bạn bè, đồng nghiệp và
mọi ngƣời trong gia đình đã khuyến khích, động viên, giúp đỡ, tạo điều kiện cho tôi có
nhiều thời gian để hoàn thành luận văn này.
Hà Nội, tháng 6 năm 2014
Kiều Minh Việt
3
MỤC LỤC
LỜI CAM ĐOAN ........................................................................................................... 1
LỜI CẢM ƠN ................................................................................................................. 2
MỤC LỤC ...................................................................................................................... 3
DANH MỤC CÁC BẢNG ............................................................................................. 5
DANH MỤC CÁC HÌNH VẼ ........................................................................................ 6
LỜI MỞ ĐẦU ................................................................................................................ 8
Chƣơng 1: TỔNG QUAN VỀ TẤN CÔNG TỪ CHỐI DỊCH VỤ PHÂN TÁN ........ 10
1.1 Thiết lập mạng tấn công...................................................................................... 10
1.1.1 Tìm kiếm các máy có lỗ hổng ...................................................................... 10
1.1.2 Xâm nhập vào máy có lỗ hổng..................................................................... 10
1.1.3 Phƣơng thức phát tán mã độc hại ................................................................. 11
1.2 Điều khiển mạng tấn công .................................................................................. 12
1.2.1 Câu lệnh trực tiếp ......................................................................................... 13
1.2.2 Câu lệnh gián tiếp ........................................................................................ 14
1.2.3 Cập nhật chƣơng trình tấn công ................................................................... 16
1.2.4 Các chƣơng trình tấn công cục bộ................................................................ 17
1.3 Các phƣơng pháp thực hiện tấn công DoS ......................................................... 18
1.3.1 Khai thác một lỗ hổng .................................................................................. 18
1.3.2 Tấn công một giao thức................................................................................ 18
1.3.3 Tấn công các hàm chức năng ....................................................................... 20
1.3.4 Tấn công một ứng dụng ............................................................................... 20
1.3.5 Tấn công một tài nguyên .............................................................................. 21
1.3.6 Phát tràn thuần tuý ....................................................................................... 22
Chƣơng 2: TẤN CÔNG TỪ CHỐI DỊCH VỤ TỐC ĐỘ THẤP ................................. 23
2.1 Khái niệm chung ................................................................................................. 23
2.1.1 Các tên gọi của tấn công LDoS .................................................................... 23
2.1.2 Các đặc điểm của LDoS ............................................................................... 24
2.1.3 Cơ chế Timeout của giao thức TCP ............................................................. 24
2.1.4 Tấn công từ chối dịch vụ tốc độ thấp nhằm vào giao thức TCP .................. 27
2.2 Các cơ chế phòng chống chung .......................................................................... 28
2.2.1 Cơ chế hỗ trợ router ..................................................................................... 28
2.2.2 Cơ chế hỗ trợ thiết bị đầu cuối ..................................................................... 28
2.3 Giải thuật RRED ................................................................................................. 29
2.4 Các biến thể của giải thuật RRED ...................................................................... 33
2.4.1 Thuật toán của tác giả Phạm Văn Hợi ......................................................... 33
2.4.2 Thuật toán của tác giả Nguyễn Quang Quý ................................................. 33
Chƣơng 3: PHÂN TÍCH GIẢI THUẬT RRED ........................................................... 35
3.1 Cấu hình mô phỏng ............................................................................................. 35
3.2 Phân tích chƣơng trình mô phỏng ....................................................................... 36
4
3.3 Các kết quả mô phỏng ........................................................................................ 41
3.3.1 Biến thiên Ta ................................................................................................ 41
3.3.2 Biến thiên Tb ................................................................................................ 43
3.3.3 Biến thiên Rb ............................................................................................... 44
3.3.4 Biến thiên T* khi kích thƣớc bộ nhớ nhỏ (N = 23) ..................................... 45
3.3.5 Biến thiên T* khi kích thƣớc bộ nhớ lớn hơn (N = 60) ............................... 50
3.3.6 Đánh giá chung ............................................................................................ 55
Chƣơng 4: ĐỀ XUẤT CẢI TIẾN ................................................................................. 56
4.1 Cải tiến thứ nhất .................................................................................................. 56
4.1.1 Ý tƣởng ........................................................................................................ 56
4.1.2 Mô tả giải thuật ............................................................................................ 56
4.1.3 Đánh giá hiệu năng khi kích thƣớc bộ nhớ nhỏ (N = 23) ............................ 58
4.2 Cải tiến thứ hai .................................................................................................... 64
4.2.1 Ý tƣởng ........................................................................................................ 64
4.2.2 Mô tả giải thuật ............................................................................................ 68
4.2.3 Đánh giá hiệu năng khi kích thƣớc bộ nhớ lớn hơn (N = 31) ...................... 69
KẾT LUẬN VÀ HƢỚNG NGHIÊN CỨU TIẾP THEO............................................. 78
TÀI LIỆU THAM KHẢO ............................................................................................ 79
PHỤ LỤC ..................................................................................................................... 81
A. Mã nguồn thuật toán của tác giả Phạm Văn Hợi ................................................. 81
B. Mã nguồn thuật toán của tác giả Nguyễn Quang Quý ......................................... 86
C. Mã nguồn thuật toán LF-RED (T* updated) ........................................................ 91
5
DANH MỤC CÁC BẢNG
Bảng 3.1: Tƣơng ứng địa chỉ của các node .................................................................. 36
Bảng 3.2: Ánh xạ các dòng gói tin vào bộ nhớ ............................................................ 36
Bảng 3.3: Các dòng gói tin dùng chung bộ nhớ ........................................................... 39
Bảng 4.1: Kết quả tại Ta = 0.5 (s); Tb = 200 (ms); Rb = 0.25 (Mbps) ........................ 59
Bảng 4.2: Kết quả tại Ta = 1 (s); Tb = 200 (ms); Rb = 0.25 (Mbps) ........................... 59
Bảng 4.3: Kết quả tại Tb = 160 (ms); Ta = 1 (s); Rb = 0.25 (Mbps) ........................... 61
Bảng 4.4: Kết quả tại Tb = 360 (ms); Ta = 1 (s); Rb = 0.25 (Mbps) ........................... 61
Bảng 4.5: Kết quả tại Rb = 0.35 (Mbps); Ta = 1 (s); Tb = 200 (ms) ........................... 63
Bảng 4.6: Kết quả tại Rb = 0.475 (Mbps); Ta = 1 (s); Tb = 200 (ms) ......................... 63
Bảng 4.7: Ánh xạ các dòng gói tin vào bộ nhớ với hash_bins_=31 ............................. 64
Bảng 4.8: Các dòng gói tin dùng chung bộ nhớ với hash_bins_=31 ........................... 66
Bảng 4.9: Kết quả tại Ta = 0.5 (s); Tb = 200 (ms); Rb = 0.25 (Mbps) ........................ 71
Bảng 4.10: Kết quả tại Ta = 1.0 (s); Tb = 200 (ms); Rb = 0.25 (Mbps) ...................... 71
Bảng 4.11: Kết quả tại Ta = 1 (s); Tb = 160 (ms); Rb = 0.25 (Mbps) ......................... 74
Bảng 4.12: Kết quả tại Ta = 1 (s); Tb = 360 (ms); Rb = 0.25 (Mbps) ......................... 74
Bảng 4.13: Kết quả tại Ta = 1 (s); Tb = 200 (ms); Rb = 0.35 (Mbps) ......................... 77
Bảng 4.14: Kết quả tại Ta = 1 (s); Tb = 200 (ms); Rb = 0.475 (Mbps) ....................... 77
6
DANH MỤC CÁC HÌNH VẼ
Hình 1.1: Phát tán mã độc với mô hình kho chứa trung tâm ........................................ 11
Hình 1.2: Mô hình phát tán mã độc dây xích ............................................................... 12
Hình 1.3: Phƣơng thức phát tán mã độc tự trị .............................................................. 12
Hình 1.4: Kiến trúc của một tấn công DDoS ............................................................... 13
Hình 1.5: Tấn công DDoS thông qua máy Stepping Stone .......................................... 14
Hình 1.6: Mạng tấn công DDoS dựa trên IRC ............................................................. 16
Hình 1.7: Bắt tay ba bƣớc để mở một kết nối TCP ...................................................... 19
Hình 2.1: Chuột chù ..................................................................................................... 23
Hình 2.2: Tính toán giá trị RTT hiện thời .................................................................... 26
Hình 2.3: Tấn công LDoS ............................................................................................ 28
Hình 2.4: Kiến trúc của LF-RED ................................................................................. 30
Hình 2.5: Một bộ lọc Bloom......................................................................................... 32
Hình 3.1: Sơ đồ mạng trong các mô phỏng .................................................................. 35
Hình 3.2: Kết quả khi Ta = [0.2, …, 2] (s); Tb = 200 (ms); Rb = 0.25 (Mbps) với thuật
toán LF-RED và thực hiện mô phỏng với NS-2 ........................................................... 42
Hình 3.3: Kết quả khi Ta = 1 (s); Tb = [0, 40, …, 600] (ms); Rb = 0.25 (Mbps) với
thuật toán LF-RED và thực hiện mô phỏng với NS-2.................................................. 43
Hình 3.4: Kết quả khi Ta = 1 (s); Tb = 200 (ms); Rb = [0.1, 0.125, …, 0.5] (Mbps) với
thuật toán LF-RED và thực hiện mô phỏng với NS-2.................................................. 44
Hình 3.5: Số lƣợng gói tin tấn công đi qua router R0 trong 1 (s) khi Ta = 1 (s); Tb =
200 (ms); Rb = 0.25 (Mbps); T* thay đổi với thuật toán LF-RED .............................. 45
Hình 3.6: Số lƣợng gói tin TCP đi qua router R0 trong 1 (s) khi Ta = 1 (s); Tb = 200
(ms); Rb = 0.25 (Mbps); T* thay đổi với thuật toán LF-RED ..................................... 46
Hình 3.7: Số lƣợng gói tin tấn công đi qua router R0 trong 1 (s) khi Ta = 1 (s); Tb =
200 (ms); Rb = 0.5 (Mbps); T* thay đổi với thuật toán LF-RED ................................ 47
Hình 3.8: Số lƣợng gói tin TCP đi qua router R0 trong 1 (s) khi Ta = 1 (s); Tb = 200
(ms); Rb = 0.5 (Mbps); T* thay đổi với thuật toán LF-RED ....................................... 48
Hình 3.9: Số lƣợng gói tin tấn công đi qua router R0 trong 1 (s) khi Ta = 1 (s); Tb =
200 (ms); Rb = 0.1 (Mbps); T* thay đổi với thuật toán LF-RED ................................ 49
Hình 3.10: Số lƣợng gói tin TCP đi qua router R0 trong 1 (s) khi Ta = 1 (s); Tb = 200
(ms); Rb = 0.1 (Mbps); T* thay đổi với thuật toán LF-RED ....................................... 50
Hình 3.11: Số lƣợng gói tin tấn công đi qua router R0 trong 1 (s) khi Ta = 1 (s); Tb =
200 (ms); Rb = 0.25 (Mbps); T* thay đổi với thuật toán LF-RED .............................. 51
Hình 3.12: Số lƣợng gói tin TCP đi qua router R0 trong 1 (s) khi Ta = 1 (s); Tb = 200
(ms); Rb = 0.25 (Mbps); T* thay đổi với thuật toán LF-RED ..................................... 51
Hình 3.13: Số lƣợng gói tin tấn công đi qua router R0 trong 1 (s) khi Ta = 1 (s); Tb =
200 (ms); Rb = 0.5 (Mbps); T* thay đổi với thuật toán LF-RED ................................ 52
Hình 3.14: Số lƣợng gói tin TCP đi qua router R0 trong 1 (s) khi Ta = 1 (s); Tb = 200
(ms); Rb = 0.5 (Mbps); T* thay đổi với thuật toán LF-RED ....................................... 53
7
Hình 3.15: Số lƣợng gói tin tấn công đi qua router R0 trong 1 (s) khi Ta = 1 (s); Tb =
200 (ms); Rb = 0.1 (Mbps); T* thay đổi với thuật toán LF-RED ................................ 54
Hình 3.16: Số lƣợng gói tin TCP đi qua router R0 trong 1 (s) khi Ta = 1 (s); Tb = 200
(ms); Rb = 0.1 (Mbps); T* thay đổi với thuật toán LF-RED ....................................... 55
Hình 4.1: Kết quả khi Ta = [0.2, …, 2] (s); Tb = 200 (ms); Rb = 0.25 (Mbps) ........... 58
Hình 4.2: Kết quả khi Ta = 1 (s); Tb = [0, 40, …, 600] (ms); Rb = 0.25 (Mbps) ........ 60
Hình 4.3: Kết quả khi Ta = 1 (s); Tb = 200 (ms); Rb = [0.1, 0.125, …, 0.5] (Mbps) .. 62
Hình 4.4: Kết quả khi Ta = [0.2, …, 2] (s); Tb = 200 (ms); Rb = 0.25 (Mbps) ........... 69
Hình 4.5: Kết quả khi Ta = [0.2, …, 2] (s); Tb = 200 (ms); Rb = 0.25 (Mbps) (phóng
to) .................................................................................................................................. 70
Hình 4.6: Kết quả khi Ta = 1 (s); Tb = [0, 40, …, 600] (ms); Rb = 0.25 (Mbps) ........ 72
Hình 4.7: Kết quả khi Ta = 1 (s); Tb = [0, 40, …, 600] (ms); Rb = 0.25 (Mbps) (phóng
to) .................................................................................................................................. 73
Hình 4.8: Kết quả khi Ta = 1 (s); Tb = 200 (ms); Rb = [0.1, 0.125, …, 0.5] (Mbps) .. 75
Hình 4.9: Kết quả khi Ta = 1 (s); Tb = 200 (ms); Rb = [0.1, 0.125, …, 0.5] (Mbps)
(phóng to) ..................................................................................................................... 76
8
LỜI MỞ ĐẦU
Hiện nay tấn công từ chối dịch vụ (DoS – Denial of Service) là một vấn đề nhận
đƣợc nhiều sự quan tâm của mọi ngƣời và tiếp tục là một mối đe doạ lớn đối với sự tin
cậy của mạng Internet. Một nghiên cứu vào năm 2001 [14] cho thấy mỗi tuần có
khoảng 4000 cuộc tấn công từ chối dịch vụ phân tán (DDoS – Distributed DoS) xảy ra.
Các tấn công DDoS này nhằm vào các mục tiêu khác nhau từ các công ty lớn nhƣ là
Amazon và Hotmail đến các nhà cung cấp dịch vụ Internet nhỏ. Các tấn công DDoS
không chỉ ảnh hƣởng đến các hệ thống mục tiêu của cuộc tấn công mà còn ảnh hƣởng
tới ngƣời sử dụng các dịch vụ mà hệ thống mục tiêu cung cấp. Vào tháng 1 năm 2001,
một tấn công vào Microsoft đã ngăn chặn khoảng 98% lƣợng khách hàng sử dụng các
dịch vụ mà các máy chủ của Microsoft cung cấp. Vào tháng 10 năm 2002 xảy ra một
cuộc tấn công vào 13 máy chủ tên miền gốc (DNS – Domain Name System). Dịch vụ
tên miền DNS là dịch vụ cốt lõi đảm bảo sự hoạt động bình thƣờng cho các trình duyệt
Web cũng nhƣ rất nhiều các ứng dụng khác và 13 máy chủ tên miền này lƣu trữ dữ
liệu quan trọng của toàn bộ mạng Internet. Cuộc tấn công này đã làm cho 9 máy chủ
tên miền hầu nhƣ không trả lời đƣợc các truy vấn tên miền [13, ch.3].
Năm 2003, một loại tấn công từ chối dịch vụ mới xuất hiện có tên gọi là tấn
công từ chối dịch vụ tốc độ thấp LDoS (Low rate DoS), đã đƣợc 2 tác giả là
Aleksandar Kuzmanovic và Edward W. Knightly đề cập lần đầu tiên trong bài báo
[10]. Không giống nhƣ tấn công DoS thông thƣờng, tấn công LDoS gửi gói tin với tốc
độ cao trong những khoảng thời gian ngắn cách đều nhau, vì vậy LDoS có tốc độ gửi
gói tin trung bình thấp. LDoS khai thác cơ chế timeout của giao thức TCP nhằm hạn
chế thông lƣợng tổng cộng của các kết nối TCP, mặc dù LDoS có tốc độ gửi gói tin
trung bình thấp nhƣng nó vẫn đạt đƣợc hiệu quả tấn công nhƣ tấn công DoS thông
thƣờng làm cho thông lƣợng tổng cộng của các kết nối TCP bị giảm mạnh.
Luận văn của tôi trình bày một phƣơng pháp chống lại tấn công LDoS có hiệu
quả cao, đó là giải thuật RRED [3] hay LF-RED (Low-rate Filter RED), một thuật toán
quản lý hàng đợi động (AQM – Active Queue Management) cài đặt cho các thiết bị
định tuyến chẳng hạn nhƣ router, nó dựa trên thuật toán RED [6] đã có và kết hợp
thêm với một thuật toán phát hiện và lọc lƣu lƣợng tấn công mới. Ý tƣởng cơ bản của
thuật toán RRED là phát hiện và loại bỏ các gói tin tấn công trƣớc khi chúng đƣợc đƣa
đến và đƣợc xử lý bởi thuật toán RED. Trên cơ sở đó luận văn đƣa ra một số giải pháp
nhằm tăng hiệu năng của thuật toán, so sánh hiệu năng của thuật toán mới với thuật
toán cũ và các biến thể của RRED.
Luận văn của tôi gồm các chƣơng chính nhƣ sau:
Chương 1: Tổng quan về tấn công từ chối dịch vụ phân tán
Chƣơng này trình bày tổng quan về DDoS, các cách thức khác nhau mà kẻ tấn công
thực hiện một tấn công DDoS.
Chương 2: Tấn công từ chối dịch vụ tốc độ thấp
9
Chƣơng này trình bày tấn công LDoS và đề xuất cơ chế hỗ trợ router để chống lại loại
tấn công này.
Chương 3: Phân tích giải thuật RRED
Chƣơng này trình bày sơ đồ mạng đƣợc dùng trong các mô phỏng, phân tích chƣơng
trình mô phỏng thuật toán RRED, các kết quả mô phỏng thu đƣợc.
Chương 4: Đề xuất cải tiến
Chƣơng này trình bày 2 giải pháp nhằm cải thiện hiệu năng của thuật toán RRED, so
sánh hiệu năng của thuật toán mới với thuật toán RRED gốc và các biến thể của
RRED.
10
Chƣơng 1: TỔNG QUAN VỀ TẤN CÔNG TỪ CHỐI DỊCH VỤ
PHÂN TÁN
Một tấn công từ chối dịch vụ phân tán (DDoS – Distributed Denial of Service)
[7, 13] cần phải đƣợc chuẩn bị kỹ càng bởi kẻ tấn công. Ở bƣớc thứ nhất, kẻ tấn công
sẽ điều khiển các máy trạm khác bằng cách tìm kiếm các máy trạm có lỗ hổng dễ bị
tấn công, sau đó xâm nhập vào các máy này và cài đặt mã tấn công. Bƣớc tiếp theo là
thiết lập các kênh giao tiếp với các máy này, bởi vậy các máy này có thể đƣợc chỉ đạo
và phối hợp trong cuộc tấn công. Kẻ tấn công có thể thực hiện việc này bằng cách áp
dụng mô hình máy kiểm soát/máy tấn công hoặc với một bộ điều khiển và điều khiển
các kênh giao tiếp thông qua mạng IRC [8]. Một khi mạng tấn công DDoS đƣợc xây
dựng, nó có thể đƣợc sử dụng để tấn công nhiều lần đến các máy nạn nhân khác nhau.
1.1 Thiết lập mạng tấn công
Phụ thuộc vào mỗi kiểu tấn công DoS, kẻ tấn công cần phải tìm ra và thiết lập
một mạng với số lƣợng các máy đủ lớn. Công việc này có thể đƣợc thực hiện một cách
thủ công, bán tự động hoặc tự động hoàn toàn. Đối với Trinoo và Shaft là hai công cụ
DDoS đƣợc nhiều ngƣời biết đến, chỉ có việc cài đặt là tự động trong khi việc phát
hiện và khai thác các máy có lỗ hổng đƣợc thực hiện một cách thủ công [13, ch.4].
Cho đến nay những kẻ tấn công thƣờng sử dụng các tệp tin kịch bản để tự động hoá tất
cả các khâu đó.
1.1.1 Tìm kiếm các máy có lỗ hổng
Quá trình tìm kiếm các máy có lỗ hổng gọi là “quét”. Kẻ tấn công gửi một vài
gói tin đến máy nạn nhân để kiểm tra xem máy nạn nhân có đang hoạt động và có lỗ
hổng hay không, nếu có, kẻ tấn công sẽ cố gắng xâm nhập vào máy nạn nhân [13,
ch.4].
1.1.2 Xâm nhập vào máy có lỗ hổng
Kẻ tấn công cần phải khai thác các lỗ hổng của các máy mà anh ta định cài
chƣơng trình tấn công vào nhằm mục đích chiếm lấy quyền truy cập vào máy. Phần
lớn các lỗ hổng có thể cho phép kẻ tấn công truy cập vào hệ thống với quyền của
ngƣời quản trị (administrator), và anh ta có thể thêm, xoá, sửa các tập tin hoặc cấu
hình của hệ thống. Để cho việc truy cập vào hệ thống các lần sau đƣợc dễ dàng, kẻ tấn
công thƣờng cài đặt và khởi động một chƣơng trình “lắng nghe” các kết nối ở một
cổng nhất định, chƣơng trình này gọi là “cửa sau”. Truy cập thông qua cửa sau có khi
đƣợc bảo vệ bởi mật khẩu mạnh, trong các trƣờng hợp khác lại đƣợc mở rộng và đáp
ứng bất kỳ yêu cầu kết nối nào.
Mặc dù các lỗ hổng đã đƣợc phát hiện thƣờng đƣợc sửa chữa và làm cho an
toàn hơn bằng các bản vá, kẻ tấn công vẫn sẽ cố gắng khai thác và tìm ra các lỗ hổng
an ninh khác mà máy nạn nhân có thể có. Mật khẩu yếu là một lỗ hổng không thể giải
quyết đƣợc bằng các bản vá. Một số chƣơng trình khai thác lỗ hổng có một danh sách
các mật khẩu yếu hoặc thông dụng, chúng cố gắng áp dụng các mật khẩu này để xâm
nhập vào máy nạn nhân sử dụng phƣơng pháp thử lần lƣợt từng mật khẩu hoặc sử
11
dụng phƣơng pháp Brute-Force. Nó có thể mất nhiều thời gian nhƣng trong một số
trƣờng hợp, các mật khẩu này đƣợc chấp nhận và kẻ tấn công sẽ giành đƣợc quyền
truy cập máy nạn nhân một cách hợp pháp. Ngƣời dùng thƣờng nghĩ rằng không đặt
mật khẩu cho tài khoản Administrator là hợp lý, hoặc mật khẩu là “password” hoặc
một từ đơn giản nào khác là đủ để bảo vệ tài khoản. Họ đã nhầm.
1.1.3 Phƣơng thức phát tán mã độc hại
Kẻ tấn công cần phải quyết định một phƣơng thức phát tán cho việc cài đặt mã
độc của anh ta. Một mô hình phát tán mã độc đơn giản đó là mô hình kho chứa trung
tâm: kẻ tấn công đặt mã độc vào một kho chứa tệp (chẳng hạn một máy chủ FTP) hoặc
là một website và mỗi máy nạn nhân tải mã độc từ kho chứa này. Với mô hình kho
chứa trung tâm này ngƣời bị hại có thể dễ dàng xác định đƣợc kho chứa trung tâm và
loại bỏ nó. Kẻ tấn công cài đặt chƣơng trình Trinoo và Shaft sử dụng mô hình trung
tâm này trong thời kỳ đầu của DoS. Sâu máy tính “W32/Leaves” năm 2001 và sâu
“W32 / SoBig” năm 2003 sử dụng một loạt các sites có thể cấu hình đƣợc làm kho
chứa với mô hình này [13, ch.4].
Hình 1.1: Phát tán mã độc với mô hình kho chứa trung tâm
Kỹ thuật này thực hiện một câu lệnh để truyền một bộ công cụ tấn công từ một vị trí
trung tâm đến máy nạn nhân và đƣợc gọi là sự phát tán mã độc trung tâm. Các tệp tin
kịch bản sau đó sẽ điều khiển quá trình cài đặt tự động các công cụ và khởi tạo một
vòng tấn công mới. Kỹ thuật truyền tệp tin thƣờng sử dụng là giao thức HTTP, FTP và
RPC. Sâu “1i0n” cũng sử dụng mô hình phát tán mã độc trung tâm này [7, tr.10].
Một mô hình khác là mô hình chuỗi dây xích, trong đó kẻ tấn công mang theo
công cụ tấn công từ một máy bị hại khởi đầu tới các máy bị hại ngay sau đó.
12
Hình 1.2: Mô hình phát tán mã độc dây xích
Kỹ thuật này thực hiện một câu lệnh để truyền một bộ công cụ tấn công từ máy đang
tấn công đến máy nạn nhân. Để thực hiện đƣợc điều này, các công cụ tấn công trên
máy tấn công bao gồm một vài phƣơng thức để chấp nhận kết nối từ máy nạn nhân và
truyền một tệp tin đến máy nạn nhân. Ƣu điểm của mô hình này là nó có thể tồn tại tốt
hơn so với mô hình phát tán mã độc trung tâm vì không có một vị trí trung tâm, tất cả
các vị trí trong mô hình dây xích đều có thể truyền tệp tin đƣợc, nếu một vị trí bị phát
hiện không ảnh hƣởng nhiều đến hoạt động của phƣơng thức tấn công này. Sâu
“ramen” sử dụng phƣơng thức phát tán mã độc dây xích này [7, tr.11].
Hình 1.3: Phương thức phát tán mã độc tự trị
Phƣơng thức phát tán mã độc tự trị kết hợp quá trình phát tán và quá trình khai
thác lỗ hổng trong một quá trình. Sự khác nhau của phƣơng thức này và phƣơng thức
phát tán mã độc dây xích là quá trình khai thác bao gồm mã độc sẽ đƣợc phát tán đến
site mới, hơn là thực hiện một thao tác copy mã độc đó sau khi khai thác lỗ hổng và
xâm nhập đƣợc vào máy nạn nhân. Các sâu máy tính có trƣờng payload chứa một công
cụ DDoS và cài đặt nó vào mỗi máy bị nhiễm. Các sâu máy tính hiện nay kết hợp mã
lệnh khai thác và mã lệnh tấn công và đƣợc mã hoá yếu sử dụng các thanh ghi dịch trả
về tuyến tính. Việc mã hoá này đƣợc sử dụng để tránh sự phát hiện một tập các mã
lệnh khai thác đã biết (chẳng hạn một dãy các câu lệnh NOOP) bởi các chƣơng trình
diệt virus máy tính hoặc các phần mềm tƣờng lửa cá nhân. Một khi các mã này xâm
nhập vào máy nạn nhân, nó sẽ tự giải mã và tiếp tục quá trình phát tán.
1.2 Điều khiển mạng tấn công
Khi mạng tấn công có số lƣợng máy đủ lớn, kẻ tấn công sẽ giao tiếp với các
máy này để chỉ đạo chúng tấn công máy nạn nhân. Mục đích của việc giao tiếp này là
13
kẻ tấn công thiết lập lệnh bắt đầu/kết thúc của một cuộc tấn công cụ thể và có thể thu
thập các thông tin thống kê liên quan đến hoạt động của máy tấn công.
1.2.1 Câu lệnh trực tiếp
Một vài công cụ DDoS nhƣ Trinoo xây dựng một mạng bao gồm một vài máy
kiểm soát (handler) và các máy tấn công (agents hay zombies). Kẻ tấn công điều khiển
mạng này bằng cách gửi đi các lệnh đến các máy kiểm soát, các máy này sau đó lại
trung chuyển các lệnh đến các máy tấn công. Các lệnh có thể bao gồm văn bản thƣờng,
văn bản mã hoá, giá trị số. Việc phân tích các lệnh này và lƣu lƣợng điều khiển giữa
các máy kiểm soát và các máy tấn công có thể mang lại hiểu biết sâu sắc về công cụ
tấn công mà không cần phải truy cập vào tệp tin thực thi của mã độc hay mã nguồn của
nó.
Hình 1.4: Kiến trúc của một tấn công DDoS
14
Hình 1.5: Tấn công DDoS thông qua máy Stepping Stone
Nhằm cản trở việc truy vết máy tấn công, kẻ tấn công có thể truy cập vào một số máy
trung gian (gọi là stepping stone) trƣớc khi truy cập vào các máy kiểm soát nhƣ mô tả
ở hình 1.5.
Nhằm mục đích cho các máy kiểm soát và máy tấn công hoạt động (trong các
công cụ nhƣ Trinoo, Stacheldraht, Shaft), các máy kiểm soát phải học đƣợc địa chỉ của
các máy tấn công và nhớ các địa chỉ này ngay cả khi chƣơng trình hoặc máy tính khởi
động lại. Các công cụ DDoS lúc đầu lƣu trữ địa chỉ IP của một máy kiểm soát và các
máy tấn công phải thông báo cho máy kiểm soát này trong quá trình xây dựng mạng
tấn công. Thông thƣờng danh sách các máy tấn công đƣợc lƣu trong một tệp tin mà
máy kiểm soát duy trì để lƣu giữ thông tin trạng thái của mạng tấn công. Trong một
vài trƣờng hợp, không có sự xác thực một máy tính có phải là máy kiểm soát hay
không (thực tế một máy tính bất kỳ có thể gửi lệnh tới một vài máy tấn công và chúng
vẫn sẽ trả lời). Việc phân tích ở trên về các công cụ Trinoo, TFN, Stacheldraht, Shaft
và Mstream tất cả đều cho thấy các cách khác nhau trong đó các máy kiểm soát và các
máy tấn công có thể bị phát hiện và bị điều khiển. Kẻ tấn công có thể điều khiển mạng
DDoS của kẻ tấn công khác nếu sự truy cập không đƣợc bảo vệ. Nếu kẻ tấn công bắt
đƣợc thông báo bằng văn bản thƣờng gửi đến một máy tấn công khác thì có thể điều
khiển máy tấn công đó bằng cách thay đổi các trƣờng thông báo cần thiết và gửi cho
máy tấn công đó. Hoặc ngƣời dùng có thể gửi đi một câu lệnh để ngừng cuộc tấn công.
Một vài công cụ DDoS sử dụng kiến trúc máy kiểm soát/máy tấn công có thể bảo vệ
việc truy cập từ xa đến các máy kiểm soát bằng cách sử dụng mật khẩu, và một vài
công cụ bảo vệ việc giao tiếp giữa các máy kiểm soát với các máy tấn công bằng mật
khẩu hoặc bằng mã hóa sử dụng bí mật chung. Các máy kiểm soát trên cùng mã hoá
danh sách các máy tấn công (sử dụng bộ mã hoá RC4 và Blowfish) để tránh phơi bày
định danh của các máy tấn công khi các máy kiểm soát này bị xâm nhập bởi những
ngƣời khác. Bằng cách thực hiện lại các câu lệnh có thể làm cho danh sách các máy
tấn công bị phơi bày, hoặc tệp tin có thể bị giải mã sử dụng khoá nhận đƣợc từ phân
tích pháp lý. Một số công cụ khác nhƣ là Stacheldraht cho phép mã hoá kênh truyền
lệnh giữa kẻ tấn công và các máy kiểm soát nhƣng không mã hoá với các kênh truyền
lệnh giữa các máy kiểm soát và các máy tấn công. Theo thời gian, các máy kiểm soát
có thể bị dò vết ra và bị loại bỏ.
1.2.2 Câu lệnh gián tiếp
Kẻ tấn công có thể gặp một số hạn chế khi giao tiếp trực tiếp. Bởi vì các máy
kiểm soát cần phải lƣu trữ định danh của các máy tấn công, và một máy tấn công cũng
cần phải lƣu trữ định danh của máy kiểm soát đó. Một khi một máy tấn công bị phát
hiện và bị điều khiển, toàn bộ mạng DDoS có thể bị xác định. Hơn nữa, mô hình giao
tiếp trực tiếp có thể tạo ra các sự kiện bất thƣờng có thể dễ dàng bị phát hiện bởi các
15
bộ giám sát mạng. Kỹ thuật giao tiếp trực tiếp là máy kiểm soát và máy tấn công đều
phải luôn luôn sẵn sàng “nghe” ở một cổng nhất định, vì vậy nếu một máy tính đƣợc
xác định là đang khởi tạo một kết nối đến một máy khác bằng một cổng lạ thì máy tính
đó đã bị nhiễm mã độc. Bằng việc kiểm tra các gói tin đi và đến của giao tiếp này,
ngƣời quản trị có thể phát hiện địa chỉ của máy tính đang kết nối với máy của mình.
Ngay cả khi không có kết nối nào trên máy này thì bằng việc giám sát các cổng đang
mở trên máy có thể phát hiện tiến trình kiểm soát hoặc tiến trình tấn công.
Một hạn chế nữa đối với mô hình máy kiểm soát/máy tấn công đó là số lƣợng
các bộ mô tả file (tệp) cần thiết cho một kết nối TCP giữa một máy kiểm soát và một
máy tấn công, điều này dẫn đến giới hạn số lƣợng máy tấn công trong mạng DDoS.
Nhiều phiên bản của hệ điều hành Unix hạn chế số lƣợng các bộ mô tả file mở cho
mỗi tiến trình làm việc, cũng nhƣ là đối với nhân của hệ điều hành. Ngay cả khi các
giới hạn này đƣợc tăng lên, một số công cụ DDoS không cho phép thêm một máy tấn
công khi đã đạt đƣợc 1024 máy, đó là giới hạn số bộ mô tả file mở đồng thời thƣờng
thấy ở rất nhiều hệ điều hành.
Bởi vì rất nhiều tác giả của các công cụ DDoS phát triển các công cụ này để tấn
công trên IRC (Internet Relay Chat) [8], họ cũng đã từng lập trình các chƣơng trình
bot với các mục đích khác nhau (chẳng hạn nhƣ bot IRC), vì thế họ bắt đầu mở rộng
mã chƣơng trình bot IRC đã có để thực hiện các chức năng DDoS. Một ví dụ đó là bot
“Kaiten” đƣợc lập trình cho các hệ thống Unix, một ví dụ khác là bot “Power” lập
trình cho các hệ điều hành Windows [13, ch.4]. Thay vì chạy một chƣơng trình riêng
biệt lắng nghe các kết nối đến trên một cổng đƣợc chỉ định bởi kẻ tấn công, cả các tiến
trình tấn công DDoS (các bot) và kẻ tấn công đều kết nối đến một máy chủ IRC nhƣ là
các máy trạm IRC thông thƣờng. Bởi vì hầu hết các site đều cho phép IRC nhƣ là một
kênh giao tiếp cho ngƣời dùng, giao tiếp DDoS thông qua IRC không tạo ra các sự
kiện bất thƣờng nào. Vai trò của tiến trình kiểm soát đƣợc thực hiện bằng một kênh
trên máy chủ IRC, thƣờng đƣợc bảo vệ bởi một mật khẩu. Thông thƣờng có một kênh
mặc định đƣợc chỉ ra trong mã nguồn của chƣơng trình bot, khi chƣơng trình bot bắt
đầu chạy trên máy tấn công nó sẽ kết nối để tìm kiếm kênh điều khiển hiện thời, sau
đó chƣơng trình bot sẽ “nhảy” tới kênh điều khiển này. Nhảy kênh, ngay cả việc nhảy
kênh qua các mạng IRC khác nhau, đƣợc thực hiện theo cách này. Một khi đã ở trong
kênh điều khiển hiện thời, các chƣơng trình bot sẵn sàng để trả lời các lệnh của kẻ tấn
công nhƣ là quét các máy có lỗ hổng để tuyển lựa vào mạng DDoS, tấn công DDoS
một máy nào đó, cập nhật chƣơng trình bot, tắt chƣơng trình bot, v.v..
Việc giao tiếp thông qua IRC có nhiều ƣu điểm. Các máy chủ IRC đã có sẵn và
đƣợc duy trì bởi những tổ chức khác nhau. Kênh giao tiếp tấn công DDoS không dễ bị
phát hiện trong số hàng ngàn kênh chat (mặc dù có thể là một điều bất thƣờng khi mà
một kênh đột ngột có 10.000 “người” tham gia trong vòng một vài phút). Ngay cả khi
bị phát hiện, kênh tấn công chỉ có thể bị loại bỏ thông qua sự hợp tác của ngƣời quản
trị máy chủ đó. Sự hợp tác này có thể là khó khăn trong trƣờng hợp các máy chủ ở
16
nƣớc ngoài. Do bản chất phân tán của IRC, tất cả các máy trạm không phải truy cập
vào cùng một máy chủ để nhận đƣợc kênh kiểm soát mà chỉ phải truy cập vào một
máy chủ trong cùng mạng IRC hoặc trong cùng một khối liên mạng. Hầu hết các công
cụ tấn công DDoS sau Trinity đều thực hiện kỹ thuật giao tiếp này.
Để làm cho việc giao tiếp dựa trên IRC trở nên khó phát hiện, kẻ tấn công
thƣờng sau khi cài chƣơng trình bot vào một máy và kết nối máy đó với các máy chủ
IRC lừa đảo, thông thƣờng sử dụng các cổng không chuẩn (thay vì cổng 6667/tcp mà
các máy chủ IRC thƣờng sử dụng). Một kỹ thuật khác đƣợc thực hiện dễ dàng với
Phatbot là kết nối một vài máy tấn công vào một máy chủ TCP uỷ nhiệm trên các cổng
không chuẩn, máy chủ này kết nối đến các máy chủ IRC thật trên cổng chuẩn. Cả hai
cách trên đều là dạng khác của kỹ thuật “stepping stone” dễ dàng chiến thắng những
nỗ lực của ngƣời có trách nhiệm liên quan trong việc xác định và loại bỏ mạng tấn
công DDoS.
Hình 1.6: Mạng tấn công DDoS dựa trên IRC
1.2.3 Cập nhật chƣơng trình tấn công
Kẻ tấn công cần phải cập nhật mã nguồn cho các công cụ tấn công của hắn. Kẻ
tấn công DDoS thƣờng mong muốn một kỹ thuật cập nhật phần mềm tƣơng tự với
chức năng cập nhật phần mềm có trên nhiều hệ điều hành phổ biến hiện nay, và tất
nhiên là không cần sự điều khiển quá trình cập nhật của ngƣời chủ sở hữu máy. Sử
dụng kỹ thuật tƣơng tự nhƣ là kỹ thuật tuyển lựa máy vào mạng tấn công để cập nhật
17
(thực hiện quét các máy đã cài mã lệnh tấn công và cài mã tấn công mới) là một việc
làm ồn ào và không phải lúc nào cũng hiệu quả, bởi vì một vài công cụ tấn công vá lỗ
hổng mà nó đã sử dụng để xâm nhập vào máy tính của ngƣời khác để không ai giành
đƣợc quyền điều khiển máy tính đó. Khi đó kẻ tấn công không thể đột nhập vào máy
tính này theo cách nhƣ trƣớc. Nhiều công cụ tấn công và chƣơng trình bot đã tồn tại
phân phối bản cập nhật bằng cách gửi một câu lệnh đến các máy tấn công yêu cầu mỗi
máy tấn công tải về một phiên bản mã nguồn mới hơn từ một nguồn nào đó, chẳng hạn
một máy chủ Web.
Với việc sử dụng mạng điểm-điểm tăng lên, những kẻ tấn công đã tập trung vào
sử dụng kỹ thuật điểm-điểm cho các hoạt động phá hoại. Sâu “Slapper” của Linux là
một ví dụ sử dụng kỹ thuật điểm-điểm mà nó đƣợc công bố là có thể hoạt động với
hàng triệu máy tính. Gần đây hơn, “Phatbot” đã công nhận giao tiếp điểm-điểm sử
dụng giao thức “WASTE”, liên kết với các máy ngang hàng khác bằng cách sử dụng
các máy chủ bộ nhớ tạm Gnutella. Sử dụng kỹ thuật này kẻ tấn công có thể sắp xếp
các máy tấn công vào mạng điểm-điểm để phổ biến phiên bản mã nguồn mới hoặc để
điều khiển ngay cả việc tấn công. Sự mềm dẻo và đáng tin cậy của giao tiếp điểm-
điểm có thể làm cho mạng tấn công DDoS nguy hiểm hơn và khó triệt phá hơn.
1.2.4 Các chƣơng trình tấn công cục bộ
Có một lớp tấn công DDoS chúng khai thác các máy tính có lỗ hổng mà không
cần thiết yêu cầu cài đặt bất kỳ phần mềm độc hại nào vào các máy tính đó nhƣng thay
vào đó cho phép kẻ tấn công điều khiển các máy này để làm cho chúng tạo ra các lƣu
lƣợng tấn công. Kẻ tấn công tập hợp một danh sách các máy tính có lỗ hổng, và vào
thời điểm của cuộc tấn công kẻ tấn công có các chƣơng trình tƣơng tác với danh sách
các máy này bằng cách gửi đi các câu lệnh khai thác để khởi tạo lƣu lƣợng tấn công.
Lƣu lƣợng tấn công đƣợc tạo ra là lƣu lƣợng thông thƣờng vì do các chƣơng trình
thông thƣờng có sẵn trên các máy này tạo ra. Chẳng hạn kẻ tấn công có thể lạm dụng
các lỗ hổng của một máy chủ Web làm cho nó chạy chƣơng trình PING.EXE.
Sự khác nhau giữa “chương trình cục bộ” và các loại tấn công DDoS khác rất
tinh vi. Thay vì một lỗ hổng (có thể chạy đƣợc từ xa) đƣợc sử dụng để cài đặt phần
mềm độc hại, lỗ hổng này lại đƣợc sử dụng để chạy phần mềm thông thƣờng đã có sẵn
trên các máy tính có lỗ hổng này.
Mặc dù tấn công đƣợc tạo bởi các chƣơng trình cục bộ, chẳng hạn lỗ hổng của
máy chủ Web đƣợc sử dụng để chạy chƣơng trình PING.EXE, có vẻ giống với tấn
công phản xạ theo một khía cạnh nào đó nhƣng thực sự chúng là hai loại tấn công khác
nhau. Trong hầu hết các tấn công phản xạ, kẻ tấn công lạm dụng một dịch vụ thông
thƣờng, tạo ra các yêu cầu thông thƣờng với địa chỉ nguồn bị giả mạo. Trong tấn công
bằng các chƣơng trình cục bộ, dịch vụ bị lạm dụng có lỗ hổng có thể khai thác đƣợc từ
xa, nó cho phép kẻ tấn công khởi tạo lƣu lƣợng tấn công. Việc vá các lỗ hổng này sẽ
ngăn chặn đƣợc việc lạm dụng các chƣơng trình cục bộ này, trong khi việc phòng thủ
chống lại tấn công phản xạ phức tạp hơn nhiều.
18
Các chƣơng trình cục bộ không bị phát hiện bởi các công cụ quét cổng từ xa
(chẳng hạn nhƣ RID hoặc Zombie Zapper), chúng cũng không bị phát hiện bởi việc
chạy các bộ quét hệ thống tệp nhƣ find_ddos của NIPC hoặc các phần mềm diệt virus.
Điều này là do không có phần mềm độc hại nào, không có cổng lạ nào mở, chỉ là các
lỗ hổng có thể khai thác đƣợc từ xa. Các máy có lỗ hổng có thể đƣợc xác định bởi việc
giám sát lƣu lƣợng mạng, tìm kiếm lƣu lƣợng tấn công DDoS. Chúng cũng bị phát
hiện bằng việc quét các lỗ hổng một cách thông thƣờng với các chƣơng trình chẳng
hạn nhƣ Nessus.
Một ví dụ của tấn công với chƣơng trình cục bộ phát tràn gói tin ICMP Echo
Request bằng lệnh ping tới địa chỉ www.whitehouse.gov vào ngày 4 tháng 5 năm 2001
[13, ch.4]. Cuộc tấn công này lạm dụng lỗ hổng của máy chủ Microsoft IIS để chạy
lệnh ping và bắt đầu phát tràn. Nó đƣợc thông báo rằng hàng trăm máy tính đã phát
tràn cùng lúc. Các máy tính này đƣợc xác định là chạy hệ điều hành Windows 2000 và
NT, và một vài ngƣời quản trị đã thấy rằng lệnh PING.EXE đã chạy trên máy của họ
nhắm vào địa chỉ IP của tên miền www.whitehouse.gov. Bởi vì ping là một ứng dụng
thông thƣờng, các phần mềm diệt virus không giúp gì đƣợc trong việc phát hiện và vô
hiệu hoá cuộc tấn công này.
1.3 Các phƣơng pháp thực hiện tấn công DoS
1.3.1 Khai thác một lỗ hổng
Tấn công bằng cách khai thác lỗ hổng là cách gửi các gói tin để tìm kiếm lỗ
hổng đến máy đích. Một ví dụ là cách xử lý không chuẩn các gói tin đã bị phân mảnh
của Win 95, Win NT và một số nhân Linux. Một cách tổng quát, khi 1 gói tin quá lớn
đối với 1 mạng, nó sẽ đƣợc cắt thành 2 hay nhiều gói nhỏ hơn và các gói này đƣợc
đánh số theo thứ tự. Số thứ tự này chỉ ra vị trí của gói tin đó trong gói tin ban đầu. Ở
máy đích các gói tin nhỏ này sẽ đƣợc hợp nhất lại để tạo thành gói tin ban đầu dựa trên
số thứ tự của chúng. Các lỗ hổng trên máy đích làm cho hệ thống mất cân bằng khi
nhận đƣợc các gói tin nhỏ này sai thứ tự và làm cho hệ thống bị treo, bị sụp hoặc bị
khởi động lại. Các lỗ hổng loại này có thể đƣợc khám phá bằng cách gửi các gói tin
UDP với số thứ tự lặp lại tới máy nạn nhân. Khi một lỗ hổng đƣợc vá, các tấn công
kiểu này không còn hiệu quả nữa.
1.3.2 Tấn công một giao thức
Một ví dụ tấn công giao thức đó là tấn công phát tràn các gói tin SYN trong
giao thức TCP.
Một phiên TCP bắt đầu với việc đàm phán các tham số phiên giữa một máy
trạm và một máy chủ. Máy trạm gửi một gói tin TCP SYN đến máy chủ, yêu cầu một
dịch vụ nào đó. Trong tiêu đề của gói tin SYN, máy trạm cung cấp một số tuần tự khởi
đầu, số này là đơn nhất đối với mỗi kết nối dùng để đếm dữ liệu gửi cho máy chủ, giúp
cho máy chủ có thể nhận ra và xử lý dữ liệu bị mất, sai thứ tự hoặc trùng lặp (trong
Hình 1.7 số tuần tự khởi đầu của máy trạm là x). Khi nhận đƣợc gói tin SYN, máy chủ
cấp phát một vùng nhớ gọi là khối điều khiển truyền (TCB – Transmission Control
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ
KIỀU MINH VIỆT
CẢI THIỆN HIỆU NĂNG GIẢI THUẬT RRED
CHỐNG TẤN CÔNG TỪ CHỐI DỊCH VỤ
TỐC ĐỘ THẤP
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
Hà Nội – 2014
ĐẠI HỌC QUỐC GIA HÀ NỘI
TRƢỜNG ĐẠI HỌC CÔNG NGHỆ
KIỀU MINH VIỆT
CẢI THIỆN HIỆU NĂNG GIẢI THUẬT RRED
CHỐNG TẤN CÔNG TỪ CHỐI DỊCH VỤ
TỐC ĐỘ THẤP
Ngành: Công nghệ thông tin
Chuyên ngành: Truyền dữ liệu và mạng máy tính
Mã số: 60 48 15
LUẬN VĂN THẠC SĨ CÔNG NGHỆ THÔNG TIN
NGƢỜI HƢỚNG DẪN KHOA HỌC: TS. Nguyễn Đại Thọ
Hà Nội - 2014
1
LỜI CAM ĐOAN
Tôi xin cam đoan luận văn này do tôi thực hiện, không sao chép của ai. Các
số liệu, kết quả, giải pháp đƣa ra trong luận văn là trung thực và cho đến nay tôi
chƣa công bố chúng trong bất kỳ tài liệu nào. Các thông tin trích dẫn trong luận
văn đều đã đƣợc chỉ rõ nguồn gốc.
Tác giả
Kiều Minh Việt
2
LỜI CẢM ƠN
Em xin chân thành cảm ơn thầy giáo TS. Nguyễn Đại Thọ đã tận tình giúp đỡ,
quan tâm sâu sát, với tinh thần thầy trò trong sáng và tin tƣởng để em hoàn thành luận
văn cao học này. Em cũng rất vui vẻ cảm ơn các thầy cô giáo trong khoa Công nghệ
thông tin và tất cả các cán bộ, nhân viên Trƣờng Đại học Công nghệ, Đại học quốc gia
Hà Nội đã truyền thụ cho em những kiến thức chuyên ngành bổ ích, quý báu và tạo ra
một môi trƣờng học tập trung thực, lành mạnh. Tôi xin gửi những tình cảm thân thiết
đến bạn bè học cùng khoá cao học K17 ngành Công nghệ thông tin, đặc biệt là lớp
Truyền dữ liệu và mạng máy tính. Tôi cũng xin cảm ơn tất cả bạn bè, đồng nghiệp và
mọi ngƣời trong gia đình đã khuyến khích, động viên, giúp đỡ, tạo điều kiện cho tôi có
nhiều thời gian để hoàn thành luận văn này.
Hà Nội, tháng 6 năm 2014
Kiều Minh Việt
3
MỤC LỤC
LỜI CAM ĐOAN ........................................................................................................... 1
LỜI CẢM ƠN ................................................................................................................. 2
MỤC LỤC ...................................................................................................................... 3
DANH MỤC CÁC BẢNG ............................................................................................. 5
DANH MỤC CÁC HÌNH VẼ ........................................................................................ 6
LỜI MỞ ĐẦU ................................................................................................................ 8
Chƣơng 1: TỔNG QUAN VỀ TẤN CÔNG TỪ CHỐI DỊCH VỤ PHÂN TÁN ........ 10
1.1 Thiết lập mạng tấn công...................................................................................... 10
1.1.1 Tìm kiếm các máy có lỗ hổng ...................................................................... 10
1.1.2 Xâm nhập vào máy có lỗ hổng..................................................................... 10
1.1.3 Phƣơng thức phát tán mã độc hại ................................................................. 11
1.2 Điều khiển mạng tấn công .................................................................................. 12
1.2.1 Câu lệnh trực tiếp ......................................................................................... 13
1.2.2 Câu lệnh gián tiếp ........................................................................................ 14
1.2.3 Cập nhật chƣơng trình tấn công ................................................................... 16
1.2.4 Các chƣơng trình tấn công cục bộ................................................................ 17
1.3 Các phƣơng pháp thực hiện tấn công DoS ......................................................... 18
1.3.1 Khai thác một lỗ hổng .................................................................................. 18
1.3.2 Tấn công một giao thức................................................................................ 18
1.3.3 Tấn công các hàm chức năng ....................................................................... 20
1.3.4 Tấn công một ứng dụng ............................................................................... 20
1.3.5 Tấn công một tài nguyên .............................................................................. 21
1.3.6 Phát tràn thuần tuý ....................................................................................... 22
Chƣơng 2: TẤN CÔNG TỪ CHỐI DỊCH VỤ TỐC ĐỘ THẤP ................................. 23
2.1 Khái niệm chung ................................................................................................. 23
2.1.1 Các tên gọi của tấn công LDoS .................................................................... 23
2.1.2 Các đặc điểm của LDoS ............................................................................... 24
2.1.3 Cơ chế Timeout của giao thức TCP ............................................................. 24
2.1.4 Tấn công từ chối dịch vụ tốc độ thấp nhằm vào giao thức TCP .................. 27
2.2 Các cơ chế phòng chống chung .......................................................................... 28
2.2.1 Cơ chế hỗ trợ router ..................................................................................... 28
2.2.2 Cơ chế hỗ trợ thiết bị đầu cuối ..................................................................... 28
2.3 Giải thuật RRED ................................................................................................. 29
2.4 Các biến thể của giải thuật RRED ...................................................................... 33
2.4.1 Thuật toán của tác giả Phạm Văn Hợi ......................................................... 33
2.4.2 Thuật toán của tác giả Nguyễn Quang Quý ................................................. 33
Chƣơng 3: PHÂN TÍCH GIẢI THUẬT RRED ........................................................... 35
3.1 Cấu hình mô phỏng ............................................................................................. 35
3.2 Phân tích chƣơng trình mô phỏng ....................................................................... 36
4
3.3 Các kết quả mô phỏng ........................................................................................ 41
3.3.1 Biến thiên Ta ................................................................................................ 41
3.3.2 Biến thiên Tb ................................................................................................ 43
3.3.3 Biến thiên Rb ............................................................................................... 44
3.3.4 Biến thiên T* khi kích thƣớc bộ nhớ nhỏ (N = 23) ..................................... 45
3.3.5 Biến thiên T* khi kích thƣớc bộ nhớ lớn hơn (N = 60) ............................... 50
3.3.6 Đánh giá chung ............................................................................................ 55
Chƣơng 4: ĐỀ XUẤT CẢI TIẾN ................................................................................. 56
4.1 Cải tiến thứ nhất .................................................................................................. 56
4.1.1 Ý tƣởng ........................................................................................................ 56
4.1.2 Mô tả giải thuật ............................................................................................ 56
4.1.3 Đánh giá hiệu năng khi kích thƣớc bộ nhớ nhỏ (N = 23) ............................ 58
4.2 Cải tiến thứ hai .................................................................................................... 64
4.2.1 Ý tƣởng ........................................................................................................ 64
4.2.2 Mô tả giải thuật ............................................................................................ 68
4.2.3 Đánh giá hiệu năng khi kích thƣớc bộ nhớ lớn hơn (N = 31) ...................... 69
KẾT LUẬN VÀ HƢỚNG NGHIÊN CỨU TIẾP THEO............................................. 78
TÀI LIỆU THAM KHẢO ............................................................................................ 79
PHỤ LỤC ..................................................................................................................... 81
A. Mã nguồn thuật toán của tác giả Phạm Văn Hợi ................................................. 81
B. Mã nguồn thuật toán của tác giả Nguyễn Quang Quý ......................................... 86
C. Mã nguồn thuật toán LF-RED (T* updated) ........................................................ 91
5
DANH MỤC CÁC BẢNG
Bảng 3.1: Tƣơng ứng địa chỉ của các node .................................................................. 36
Bảng 3.2: Ánh xạ các dòng gói tin vào bộ nhớ ............................................................ 36
Bảng 3.3: Các dòng gói tin dùng chung bộ nhớ ........................................................... 39
Bảng 4.1: Kết quả tại Ta = 0.5 (s); Tb = 200 (ms); Rb = 0.25 (Mbps) ........................ 59
Bảng 4.2: Kết quả tại Ta = 1 (s); Tb = 200 (ms); Rb = 0.25 (Mbps) ........................... 59
Bảng 4.3: Kết quả tại Tb = 160 (ms); Ta = 1 (s); Rb = 0.25 (Mbps) ........................... 61
Bảng 4.4: Kết quả tại Tb = 360 (ms); Ta = 1 (s); Rb = 0.25 (Mbps) ........................... 61
Bảng 4.5: Kết quả tại Rb = 0.35 (Mbps); Ta = 1 (s); Tb = 200 (ms) ........................... 63
Bảng 4.6: Kết quả tại Rb = 0.475 (Mbps); Ta = 1 (s); Tb = 200 (ms) ......................... 63
Bảng 4.7: Ánh xạ các dòng gói tin vào bộ nhớ với hash_bins_=31 ............................. 64
Bảng 4.8: Các dòng gói tin dùng chung bộ nhớ với hash_bins_=31 ........................... 66
Bảng 4.9: Kết quả tại Ta = 0.5 (s); Tb = 200 (ms); Rb = 0.25 (Mbps) ........................ 71
Bảng 4.10: Kết quả tại Ta = 1.0 (s); Tb = 200 (ms); Rb = 0.25 (Mbps) ...................... 71
Bảng 4.11: Kết quả tại Ta = 1 (s); Tb = 160 (ms); Rb = 0.25 (Mbps) ......................... 74
Bảng 4.12: Kết quả tại Ta = 1 (s); Tb = 360 (ms); Rb = 0.25 (Mbps) ......................... 74
Bảng 4.13: Kết quả tại Ta = 1 (s); Tb = 200 (ms); Rb = 0.35 (Mbps) ......................... 77
Bảng 4.14: Kết quả tại Ta = 1 (s); Tb = 200 (ms); Rb = 0.475 (Mbps) ....................... 77
6
DANH MỤC CÁC HÌNH VẼ
Hình 1.1: Phát tán mã độc với mô hình kho chứa trung tâm ........................................ 11
Hình 1.2: Mô hình phát tán mã độc dây xích ............................................................... 12
Hình 1.3: Phƣơng thức phát tán mã độc tự trị .............................................................. 12
Hình 1.4: Kiến trúc của một tấn công DDoS ............................................................... 13
Hình 1.5: Tấn công DDoS thông qua máy Stepping Stone .......................................... 14
Hình 1.6: Mạng tấn công DDoS dựa trên IRC ............................................................. 16
Hình 1.7: Bắt tay ba bƣớc để mở một kết nối TCP ...................................................... 19
Hình 2.1: Chuột chù ..................................................................................................... 23
Hình 2.2: Tính toán giá trị RTT hiện thời .................................................................... 26
Hình 2.3: Tấn công LDoS ............................................................................................ 28
Hình 2.4: Kiến trúc của LF-RED ................................................................................. 30
Hình 2.5: Một bộ lọc Bloom......................................................................................... 32
Hình 3.1: Sơ đồ mạng trong các mô phỏng .................................................................. 35
Hình 3.2: Kết quả khi Ta = [0.2, …, 2] (s); Tb = 200 (ms); Rb = 0.25 (Mbps) với thuật
toán LF-RED và thực hiện mô phỏng với NS-2 ........................................................... 42
Hình 3.3: Kết quả khi Ta = 1 (s); Tb = [0, 40, …, 600] (ms); Rb = 0.25 (Mbps) với
thuật toán LF-RED và thực hiện mô phỏng với NS-2.................................................. 43
Hình 3.4: Kết quả khi Ta = 1 (s); Tb = 200 (ms); Rb = [0.1, 0.125, …, 0.5] (Mbps) với
thuật toán LF-RED và thực hiện mô phỏng với NS-2.................................................. 44
Hình 3.5: Số lƣợng gói tin tấn công đi qua router R0 trong 1 (s) khi Ta = 1 (s); Tb =
200 (ms); Rb = 0.25 (Mbps); T* thay đổi với thuật toán LF-RED .............................. 45
Hình 3.6: Số lƣợng gói tin TCP đi qua router R0 trong 1 (s) khi Ta = 1 (s); Tb = 200
(ms); Rb = 0.25 (Mbps); T* thay đổi với thuật toán LF-RED ..................................... 46
Hình 3.7: Số lƣợng gói tin tấn công đi qua router R0 trong 1 (s) khi Ta = 1 (s); Tb =
200 (ms); Rb = 0.5 (Mbps); T* thay đổi với thuật toán LF-RED ................................ 47
Hình 3.8: Số lƣợng gói tin TCP đi qua router R0 trong 1 (s) khi Ta = 1 (s); Tb = 200
(ms); Rb = 0.5 (Mbps); T* thay đổi với thuật toán LF-RED ....................................... 48
Hình 3.9: Số lƣợng gói tin tấn công đi qua router R0 trong 1 (s) khi Ta = 1 (s); Tb =
200 (ms); Rb = 0.1 (Mbps); T* thay đổi với thuật toán LF-RED ................................ 49
Hình 3.10: Số lƣợng gói tin TCP đi qua router R0 trong 1 (s) khi Ta = 1 (s); Tb = 200
(ms); Rb = 0.1 (Mbps); T* thay đổi với thuật toán LF-RED ....................................... 50
Hình 3.11: Số lƣợng gói tin tấn công đi qua router R0 trong 1 (s) khi Ta = 1 (s); Tb =
200 (ms); Rb = 0.25 (Mbps); T* thay đổi với thuật toán LF-RED .............................. 51
Hình 3.12: Số lƣợng gói tin TCP đi qua router R0 trong 1 (s) khi Ta = 1 (s); Tb = 200
(ms); Rb = 0.25 (Mbps); T* thay đổi với thuật toán LF-RED ..................................... 51
Hình 3.13: Số lƣợng gói tin tấn công đi qua router R0 trong 1 (s) khi Ta = 1 (s); Tb =
200 (ms); Rb = 0.5 (Mbps); T* thay đổi với thuật toán LF-RED ................................ 52
Hình 3.14: Số lƣợng gói tin TCP đi qua router R0 trong 1 (s) khi Ta = 1 (s); Tb = 200
(ms); Rb = 0.5 (Mbps); T* thay đổi với thuật toán LF-RED ....................................... 53
7
Hình 3.15: Số lƣợng gói tin tấn công đi qua router R0 trong 1 (s) khi Ta = 1 (s); Tb =
200 (ms); Rb = 0.1 (Mbps); T* thay đổi với thuật toán LF-RED ................................ 54
Hình 3.16: Số lƣợng gói tin TCP đi qua router R0 trong 1 (s) khi Ta = 1 (s); Tb = 200
(ms); Rb = 0.1 (Mbps); T* thay đổi với thuật toán LF-RED ....................................... 55
Hình 4.1: Kết quả khi Ta = [0.2, …, 2] (s); Tb = 200 (ms); Rb = 0.25 (Mbps) ........... 58
Hình 4.2: Kết quả khi Ta = 1 (s); Tb = [0, 40, …, 600] (ms); Rb = 0.25 (Mbps) ........ 60
Hình 4.3: Kết quả khi Ta = 1 (s); Tb = 200 (ms); Rb = [0.1, 0.125, …, 0.5] (Mbps) .. 62
Hình 4.4: Kết quả khi Ta = [0.2, …, 2] (s); Tb = 200 (ms); Rb = 0.25 (Mbps) ........... 69
Hình 4.5: Kết quả khi Ta = [0.2, …, 2] (s); Tb = 200 (ms); Rb = 0.25 (Mbps) (phóng
to) .................................................................................................................................. 70
Hình 4.6: Kết quả khi Ta = 1 (s); Tb = [0, 40, …, 600] (ms); Rb = 0.25 (Mbps) ........ 72
Hình 4.7: Kết quả khi Ta = 1 (s); Tb = [0, 40, …, 600] (ms); Rb = 0.25 (Mbps) (phóng
to) .................................................................................................................................. 73
Hình 4.8: Kết quả khi Ta = 1 (s); Tb = 200 (ms); Rb = [0.1, 0.125, …, 0.5] (Mbps) .. 75
Hình 4.9: Kết quả khi Ta = 1 (s); Tb = 200 (ms); Rb = [0.1, 0.125, …, 0.5] (Mbps)
(phóng to) ..................................................................................................................... 76
8
LỜI MỞ ĐẦU
Hiện nay tấn công từ chối dịch vụ (DoS – Denial of Service) là một vấn đề nhận
đƣợc nhiều sự quan tâm của mọi ngƣời và tiếp tục là một mối đe doạ lớn đối với sự tin
cậy của mạng Internet. Một nghiên cứu vào năm 2001 [14] cho thấy mỗi tuần có
khoảng 4000 cuộc tấn công từ chối dịch vụ phân tán (DDoS – Distributed DoS) xảy ra.
Các tấn công DDoS này nhằm vào các mục tiêu khác nhau từ các công ty lớn nhƣ là
Amazon và Hotmail đến các nhà cung cấp dịch vụ Internet nhỏ. Các tấn công DDoS
không chỉ ảnh hƣởng đến các hệ thống mục tiêu của cuộc tấn công mà còn ảnh hƣởng
tới ngƣời sử dụng các dịch vụ mà hệ thống mục tiêu cung cấp. Vào tháng 1 năm 2001,
một tấn công vào Microsoft đã ngăn chặn khoảng 98% lƣợng khách hàng sử dụng các
dịch vụ mà các máy chủ của Microsoft cung cấp. Vào tháng 10 năm 2002 xảy ra một
cuộc tấn công vào 13 máy chủ tên miền gốc (DNS – Domain Name System). Dịch vụ
tên miền DNS là dịch vụ cốt lõi đảm bảo sự hoạt động bình thƣờng cho các trình duyệt
Web cũng nhƣ rất nhiều các ứng dụng khác và 13 máy chủ tên miền này lƣu trữ dữ
liệu quan trọng của toàn bộ mạng Internet. Cuộc tấn công này đã làm cho 9 máy chủ
tên miền hầu nhƣ không trả lời đƣợc các truy vấn tên miền [13, ch.3].
Năm 2003, một loại tấn công từ chối dịch vụ mới xuất hiện có tên gọi là tấn
công từ chối dịch vụ tốc độ thấp LDoS (Low rate DoS), đã đƣợc 2 tác giả là
Aleksandar Kuzmanovic và Edward W. Knightly đề cập lần đầu tiên trong bài báo
[10]. Không giống nhƣ tấn công DoS thông thƣờng, tấn công LDoS gửi gói tin với tốc
độ cao trong những khoảng thời gian ngắn cách đều nhau, vì vậy LDoS có tốc độ gửi
gói tin trung bình thấp. LDoS khai thác cơ chế timeout của giao thức TCP nhằm hạn
chế thông lƣợng tổng cộng của các kết nối TCP, mặc dù LDoS có tốc độ gửi gói tin
trung bình thấp nhƣng nó vẫn đạt đƣợc hiệu quả tấn công nhƣ tấn công DoS thông
thƣờng làm cho thông lƣợng tổng cộng của các kết nối TCP bị giảm mạnh.
Luận văn của tôi trình bày một phƣơng pháp chống lại tấn công LDoS có hiệu
quả cao, đó là giải thuật RRED [3] hay LF-RED (Low-rate Filter RED), một thuật toán
quản lý hàng đợi động (AQM – Active Queue Management) cài đặt cho các thiết bị
định tuyến chẳng hạn nhƣ router, nó dựa trên thuật toán RED [6] đã có và kết hợp
thêm với một thuật toán phát hiện và lọc lƣu lƣợng tấn công mới. Ý tƣởng cơ bản của
thuật toán RRED là phát hiện và loại bỏ các gói tin tấn công trƣớc khi chúng đƣợc đƣa
đến và đƣợc xử lý bởi thuật toán RED. Trên cơ sở đó luận văn đƣa ra một số giải pháp
nhằm tăng hiệu năng của thuật toán, so sánh hiệu năng của thuật toán mới với thuật
toán cũ và các biến thể của RRED.
Luận văn của tôi gồm các chƣơng chính nhƣ sau:
Chương 1: Tổng quan về tấn công từ chối dịch vụ phân tán
Chƣơng này trình bày tổng quan về DDoS, các cách thức khác nhau mà kẻ tấn công
thực hiện một tấn công DDoS.
Chương 2: Tấn công từ chối dịch vụ tốc độ thấp
9
Chƣơng này trình bày tấn công LDoS và đề xuất cơ chế hỗ trợ router để chống lại loại
tấn công này.
Chương 3: Phân tích giải thuật RRED
Chƣơng này trình bày sơ đồ mạng đƣợc dùng trong các mô phỏng, phân tích chƣơng
trình mô phỏng thuật toán RRED, các kết quả mô phỏng thu đƣợc.
Chương 4: Đề xuất cải tiến
Chƣơng này trình bày 2 giải pháp nhằm cải thiện hiệu năng của thuật toán RRED, so
sánh hiệu năng của thuật toán mới với thuật toán RRED gốc và các biến thể của
RRED.
10
Chƣơng 1: TỔNG QUAN VỀ TẤN CÔNG TỪ CHỐI DỊCH VỤ
PHÂN TÁN
Một tấn công từ chối dịch vụ phân tán (DDoS – Distributed Denial of Service)
[7, 13] cần phải đƣợc chuẩn bị kỹ càng bởi kẻ tấn công. Ở bƣớc thứ nhất, kẻ tấn công
sẽ điều khiển các máy trạm khác bằng cách tìm kiếm các máy trạm có lỗ hổng dễ bị
tấn công, sau đó xâm nhập vào các máy này và cài đặt mã tấn công. Bƣớc tiếp theo là
thiết lập các kênh giao tiếp với các máy này, bởi vậy các máy này có thể đƣợc chỉ đạo
và phối hợp trong cuộc tấn công. Kẻ tấn công có thể thực hiện việc này bằng cách áp
dụng mô hình máy kiểm soát/máy tấn công hoặc với một bộ điều khiển và điều khiển
các kênh giao tiếp thông qua mạng IRC [8]. Một khi mạng tấn công DDoS đƣợc xây
dựng, nó có thể đƣợc sử dụng để tấn công nhiều lần đến các máy nạn nhân khác nhau.
1.1 Thiết lập mạng tấn công
Phụ thuộc vào mỗi kiểu tấn công DoS, kẻ tấn công cần phải tìm ra và thiết lập
một mạng với số lƣợng các máy đủ lớn. Công việc này có thể đƣợc thực hiện một cách
thủ công, bán tự động hoặc tự động hoàn toàn. Đối với Trinoo và Shaft là hai công cụ
DDoS đƣợc nhiều ngƣời biết đến, chỉ có việc cài đặt là tự động trong khi việc phát
hiện và khai thác các máy có lỗ hổng đƣợc thực hiện một cách thủ công [13, ch.4].
Cho đến nay những kẻ tấn công thƣờng sử dụng các tệp tin kịch bản để tự động hoá tất
cả các khâu đó.
1.1.1 Tìm kiếm các máy có lỗ hổng
Quá trình tìm kiếm các máy có lỗ hổng gọi là “quét”. Kẻ tấn công gửi một vài
gói tin đến máy nạn nhân để kiểm tra xem máy nạn nhân có đang hoạt động và có lỗ
hổng hay không, nếu có, kẻ tấn công sẽ cố gắng xâm nhập vào máy nạn nhân [13,
ch.4].
1.1.2 Xâm nhập vào máy có lỗ hổng
Kẻ tấn công cần phải khai thác các lỗ hổng của các máy mà anh ta định cài
chƣơng trình tấn công vào nhằm mục đích chiếm lấy quyền truy cập vào máy. Phần
lớn các lỗ hổng có thể cho phép kẻ tấn công truy cập vào hệ thống với quyền của
ngƣời quản trị (administrator), và anh ta có thể thêm, xoá, sửa các tập tin hoặc cấu
hình của hệ thống. Để cho việc truy cập vào hệ thống các lần sau đƣợc dễ dàng, kẻ tấn
công thƣờng cài đặt và khởi động một chƣơng trình “lắng nghe” các kết nối ở một
cổng nhất định, chƣơng trình này gọi là “cửa sau”. Truy cập thông qua cửa sau có khi
đƣợc bảo vệ bởi mật khẩu mạnh, trong các trƣờng hợp khác lại đƣợc mở rộng và đáp
ứng bất kỳ yêu cầu kết nối nào.
Mặc dù các lỗ hổng đã đƣợc phát hiện thƣờng đƣợc sửa chữa và làm cho an
toàn hơn bằng các bản vá, kẻ tấn công vẫn sẽ cố gắng khai thác và tìm ra các lỗ hổng
an ninh khác mà máy nạn nhân có thể có. Mật khẩu yếu là một lỗ hổng không thể giải
quyết đƣợc bằng các bản vá. Một số chƣơng trình khai thác lỗ hổng có một danh sách
các mật khẩu yếu hoặc thông dụng, chúng cố gắng áp dụng các mật khẩu này để xâm
nhập vào máy nạn nhân sử dụng phƣơng pháp thử lần lƣợt từng mật khẩu hoặc sử
11
dụng phƣơng pháp Brute-Force. Nó có thể mất nhiều thời gian nhƣng trong một số
trƣờng hợp, các mật khẩu này đƣợc chấp nhận và kẻ tấn công sẽ giành đƣợc quyền
truy cập máy nạn nhân một cách hợp pháp. Ngƣời dùng thƣờng nghĩ rằng không đặt
mật khẩu cho tài khoản Administrator là hợp lý, hoặc mật khẩu là “password” hoặc
một từ đơn giản nào khác là đủ để bảo vệ tài khoản. Họ đã nhầm.
1.1.3 Phƣơng thức phát tán mã độc hại
Kẻ tấn công cần phải quyết định một phƣơng thức phát tán cho việc cài đặt mã
độc của anh ta. Một mô hình phát tán mã độc đơn giản đó là mô hình kho chứa trung
tâm: kẻ tấn công đặt mã độc vào một kho chứa tệp (chẳng hạn một máy chủ FTP) hoặc
là một website và mỗi máy nạn nhân tải mã độc từ kho chứa này. Với mô hình kho
chứa trung tâm này ngƣời bị hại có thể dễ dàng xác định đƣợc kho chứa trung tâm và
loại bỏ nó. Kẻ tấn công cài đặt chƣơng trình Trinoo và Shaft sử dụng mô hình trung
tâm này trong thời kỳ đầu của DoS. Sâu máy tính “W32/Leaves” năm 2001 và sâu
“W32 / SoBig” năm 2003 sử dụng một loạt các sites có thể cấu hình đƣợc làm kho
chứa với mô hình này [13, ch.4].
Hình 1.1: Phát tán mã độc với mô hình kho chứa trung tâm
Kỹ thuật này thực hiện một câu lệnh để truyền một bộ công cụ tấn công từ một vị trí
trung tâm đến máy nạn nhân và đƣợc gọi là sự phát tán mã độc trung tâm. Các tệp tin
kịch bản sau đó sẽ điều khiển quá trình cài đặt tự động các công cụ và khởi tạo một
vòng tấn công mới. Kỹ thuật truyền tệp tin thƣờng sử dụng là giao thức HTTP, FTP và
RPC. Sâu “1i0n” cũng sử dụng mô hình phát tán mã độc trung tâm này [7, tr.10].
Một mô hình khác là mô hình chuỗi dây xích, trong đó kẻ tấn công mang theo
công cụ tấn công từ một máy bị hại khởi đầu tới các máy bị hại ngay sau đó.
12
Hình 1.2: Mô hình phát tán mã độc dây xích
Kỹ thuật này thực hiện một câu lệnh để truyền một bộ công cụ tấn công từ máy đang
tấn công đến máy nạn nhân. Để thực hiện đƣợc điều này, các công cụ tấn công trên
máy tấn công bao gồm một vài phƣơng thức để chấp nhận kết nối từ máy nạn nhân và
truyền một tệp tin đến máy nạn nhân. Ƣu điểm của mô hình này là nó có thể tồn tại tốt
hơn so với mô hình phát tán mã độc trung tâm vì không có một vị trí trung tâm, tất cả
các vị trí trong mô hình dây xích đều có thể truyền tệp tin đƣợc, nếu một vị trí bị phát
hiện không ảnh hƣởng nhiều đến hoạt động của phƣơng thức tấn công này. Sâu
“ramen” sử dụng phƣơng thức phát tán mã độc dây xích này [7, tr.11].
Hình 1.3: Phương thức phát tán mã độc tự trị
Phƣơng thức phát tán mã độc tự trị kết hợp quá trình phát tán và quá trình khai
thác lỗ hổng trong một quá trình. Sự khác nhau của phƣơng thức này và phƣơng thức
phát tán mã độc dây xích là quá trình khai thác bao gồm mã độc sẽ đƣợc phát tán đến
site mới, hơn là thực hiện một thao tác copy mã độc đó sau khi khai thác lỗ hổng và
xâm nhập đƣợc vào máy nạn nhân. Các sâu máy tính có trƣờng payload chứa một công
cụ DDoS và cài đặt nó vào mỗi máy bị nhiễm. Các sâu máy tính hiện nay kết hợp mã
lệnh khai thác và mã lệnh tấn công và đƣợc mã hoá yếu sử dụng các thanh ghi dịch trả
về tuyến tính. Việc mã hoá này đƣợc sử dụng để tránh sự phát hiện một tập các mã
lệnh khai thác đã biết (chẳng hạn một dãy các câu lệnh NOOP) bởi các chƣơng trình
diệt virus máy tính hoặc các phần mềm tƣờng lửa cá nhân. Một khi các mã này xâm
nhập vào máy nạn nhân, nó sẽ tự giải mã và tiếp tục quá trình phát tán.
1.2 Điều khiển mạng tấn công
Khi mạng tấn công có số lƣợng máy đủ lớn, kẻ tấn công sẽ giao tiếp với các
máy này để chỉ đạo chúng tấn công máy nạn nhân. Mục đích của việc giao tiếp này là
13
kẻ tấn công thiết lập lệnh bắt đầu/kết thúc của một cuộc tấn công cụ thể và có thể thu
thập các thông tin thống kê liên quan đến hoạt động của máy tấn công.
1.2.1 Câu lệnh trực tiếp
Một vài công cụ DDoS nhƣ Trinoo xây dựng một mạng bao gồm một vài máy
kiểm soát (handler) và các máy tấn công (agents hay zombies). Kẻ tấn công điều khiển
mạng này bằng cách gửi đi các lệnh đến các máy kiểm soát, các máy này sau đó lại
trung chuyển các lệnh đến các máy tấn công. Các lệnh có thể bao gồm văn bản thƣờng,
văn bản mã hoá, giá trị số. Việc phân tích các lệnh này và lƣu lƣợng điều khiển giữa
các máy kiểm soát và các máy tấn công có thể mang lại hiểu biết sâu sắc về công cụ
tấn công mà không cần phải truy cập vào tệp tin thực thi của mã độc hay mã nguồn của
nó.
Hình 1.4: Kiến trúc của một tấn công DDoS
14
Hình 1.5: Tấn công DDoS thông qua máy Stepping Stone
Nhằm cản trở việc truy vết máy tấn công, kẻ tấn công có thể truy cập vào một số máy
trung gian (gọi là stepping stone) trƣớc khi truy cập vào các máy kiểm soát nhƣ mô tả
ở hình 1.5.
Nhằm mục đích cho các máy kiểm soát và máy tấn công hoạt động (trong các
công cụ nhƣ Trinoo, Stacheldraht, Shaft), các máy kiểm soát phải học đƣợc địa chỉ của
các máy tấn công và nhớ các địa chỉ này ngay cả khi chƣơng trình hoặc máy tính khởi
động lại. Các công cụ DDoS lúc đầu lƣu trữ địa chỉ IP của một máy kiểm soát và các
máy tấn công phải thông báo cho máy kiểm soát này trong quá trình xây dựng mạng
tấn công. Thông thƣờng danh sách các máy tấn công đƣợc lƣu trong một tệp tin mà
máy kiểm soát duy trì để lƣu giữ thông tin trạng thái của mạng tấn công. Trong một
vài trƣờng hợp, không có sự xác thực một máy tính có phải là máy kiểm soát hay
không (thực tế một máy tính bất kỳ có thể gửi lệnh tới một vài máy tấn công và chúng
vẫn sẽ trả lời). Việc phân tích ở trên về các công cụ Trinoo, TFN, Stacheldraht, Shaft
và Mstream tất cả đều cho thấy các cách khác nhau trong đó các máy kiểm soát và các
máy tấn công có thể bị phát hiện và bị điều khiển. Kẻ tấn công có thể điều khiển mạng
DDoS của kẻ tấn công khác nếu sự truy cập không đƣợc bảo vệ. Nếu kẻ tấn công bắt
đƣợc thông báo bằng văn bản thƣờng gửi đến một máy tấn công khác thì có thể điều
khiển máy tấn công đó bằng cách thay đổi các trƣờng thông báo cần thiết và gửi cho
máy tấn công đó. Hoặc ngƣời dùng có thể gửi đi một câu lệnh để ngừng cuộc tấn công.
Một vài công cụ DDoS sử dụng kiến trúc máy kiểm soát/máy tấn công có thể bảo vệ
việc truy cập từ xa đến các máy kiểm soát bằng cách sử dụng mật khẩu, và một vài
công cụ bảo vệ việc giao tiếp giữa các máy kiểm soát với các máy tấn công bằng mật
khẩu hoặc bằng mã hóa sử dụng bí mật chung. Các máy kiểm soát trên cùng mã hoá
danh sách các máy tấn công (sử dụng bộ mã hoá RC4 và Blowfish) để tránh phơi bày
định danh của các máy tấn công khi các máy kiểm soát này bị xâm nhập bởi những
ngƣời khác. Bằng cách thực hiện lại các câu lệnh có thể làm cho danh sách các máy
tấn công bị phơi bày, hoặc tệp tin có thể bị giải mã sử dụng khoá nhận đƣợc từ phân
tích pháp lý. Một số công cụ khác nhƣ là Stacheldraht cho phép mã hoá kênh truyền
lệnh giữa kẻ tấn công và các máy kiểm soát nhƣng không mã hoá với các kênh truyền
lệnh giữa các máy kiểm soát và các máy tấn công. Theo thời gian, các máy kiểm soát
có thể bị dò vết ra và bị loại bỏ.
1.2.2 Câu lệnh gián tiếp
Kẻ tấn công có thể gặp một số hạn chế khi giao tiếp trực tiếp. Bởi vì các máy
kiểm soát cần phải lƣu trữ định danh của các máy tấn công, và một máy tấn công cũng
cần phải lƣu trữ định danh của máy kiểm soát đó. Một khi một máy tấn công bị phát
hiện và bị điều khiển, toàn bộ mạng DDoS có thể bị xác định. Hơn nữa, mô hình giao
tiếp trực tiếp có thể tạo ra các sự kiện bất thƣờng có thể dễ dàng bị phát hiện bởi các
15
bộ giám sát mạng. Kỹ thuật giao tiếp trực tiếp là máy kiểm soát và máy tấn công đều
phải luôn luôn sẵn sàng “nghe” ở một cổng nhất định, vì vậy nếu một máy tính đƣợc
xác định là đang khởi tạo một kết nối đến một máy khác bằng một cổng lạ thì máy tính
đó đã bị nhiễm mã độc. Bằng việc kiểm tra các gói tin đi và đến của giao tiếp này,
ngƣời quản trị có thể phát hiện địa chỉ của máy tính đang kết nối với máy của mình.
Ngay cả khi không có kết nối nào trên máy này thì bằng việc giám sát các cổng đang
mở trên máy có thể phát hiện tiến trình kiểm soát hoặc tiến trình tấn công.
Một hạn chế nữa đối với mô hình máy kiểm soát/máy tấn công đó là số lƣợng
các bộ mô tả file (tệp) cần thiết cho một kết nối TCP giữa một máy kiểm soát và một
máy tấn công, điều này dẫn đến giới hạn số lƣợng máy tấn công trong mạng DDoS.
Nhiều phiên bản của hệ điều hành Unix hạn chế số lƣợng các bộ mô tả file mở cho
mỗi tiến trình làm việc, cũng nhƣ là đối với nhân của hệ điều hành. Ngay cả khi các
giới hạn này đƣợc tăng lên, một số công cụ DDoS không cho phép thêm một máy tấn
công khi đã đạt đƣợc 1024 máy, đó là giới hạn số bộ mô tả file mở đồng thời thƣờng
thấy ở rất nhiều hệ điều hành.
Bởi vì rất nhiều tác giả của các công cụ DDoS phát triển các công cụ này để tấn
công trên IRC (Internet Relay Chat) [8], họ cũng đã từng lập trình các chƣơng trình
bot với các mục đích khác nhau (chẳng hạn nhƣ bot IRC), vì thế họ bắt đầu mở rộng
mã chƣơng trình bot IRC đã có để thực hiện các chức năng DDoS. Một ví dụ đó là bot
“Kaiten” đƣợc lập trình cho các hệ thống Unix, một ví dụ khác là bot “Power” lập
trình cho các hệ điều hành Windows [13, ch.4]. Thay vì chạy một chƣơng trình riêng
biệt lắng nghe các kết nối đến trên một cổng đƣợc chỉ định bởi kẻ tấn công, cả các tiến
trình tấn công DDoS (các bot) và kẻ tấn công đều kết nối đến một máy chủ IRC nhƣ là
các máy trạm IRC thông thƣờng. Bởi vì hầu hết các site đều cho phép IRC nhƣ là một
kênh giao tiếp cho ngƣời dùng, giao tiếp DDoS thông qua IRC không tạo ra các sự
kiện bất thƣờng nào. Vai trò của tiến trình kiểm soát đƣợc thực hiện bằng một kênh
trên máy chủ IRC, thƣờng đƣợc bảo vệ bởi một mật khẩu. Thông thƣờng có một kênh
mặc định đƣợc chỉ ra trong mã nguồn của chƣơng trình bot, khi chƣơng trình bot bắt
đầu chạy trên máy tấn công nó sẽ kết nối để tìm kiếm kênh điều khiển hiện thời, sau
đó chƣơng trình bot sẽ “nhảy” tới kênh điều khiển này. Nhảy kênh, ngay cả việc nhảy
kênh qua các mạng IRC khác nhau, đƣợc thực hiện theo cách này. Một khi đã ở trong
kênh điều khiển hiện thời, các chƣơng trình bot sẵn sàng để trả lời các lệnh của kẻ tấn
công nhƣ là quét các máy có lỗ hổng để tuyển lựa vào mạng DDoS, tấn công DDoS
một máy nào đó, cập nhật chƣơng trình bot, tắt chƣơng trình bot, v.v..
Việc giao tiếp thông qua IRC có nhiều ƣu điểm. Các máy chủ IRC đã có sẵn và
đƣợc duy trì bởi những tổ chức khác nhau. Kênh giao tiếp tấn công DDoS không dễ bị
phát hiện trong số hàng ngàn kênh chat (mặc dù có thể là một điều bất thƣờng khi mà
một kênh đột ngột có 10.000 “người” tham gia trong vòng một vài phút). Ngay cả khi
bị phát hiện, kênh tấn công chỉ có thể bị loại bỏ thông qua sự hợp tác của ngƣời quản
trị máy chủ đó. Sự hợp tác này có thể là khó khăn trong trƣờng hợp các máy chủ ở
16
nƣớc ngoài. Do bản chất phân tán của IRC, tất cả các máy trạm không phải truy cập
vào cùng một máy chủ để nhận đƣợc kênh kiểm soát mà chỉ phải truy cập vào một
máy chủ trong cùng mạng IRC hoặc trong cùng một khối liên mạng. Hầu hết các công
cụ tấn công DDoS sau Trinity đều thực hiện kỹ thuật giao tiếp này.
Để làm cho việc giao tiếp dựa trên IRC trở nên khó phát hiện, kẻ tấn công
thƣờng sau khi cài chƣơng trình bot vào một máy và kết nối máy đó với các máy chủ
IRC lừa đảo, thông thƣờng sử dụng các cổng không chuẩn (thay vì cổng 6667/tcp mà
các máy chủ IRC thƣờng sử dụng). Một kỹ thuật khác đƣợc thực hiện dễ dàng với
Phatbot là kết nối một vài máy tấn công vào một máy chủ TCP uỷ nhiệm trên các cổng
không chuẩn, máy chủ này kết nối đến các máy chủ IRC thật trên cổng chuẩn. Cả hai
cách trên đều là dạng khác của kỹ thuật “stepping stone” dễ dàng chiến thắng những
nỗ lực của ngƣời có trách nhiệm liên quan trong việc xác định và loại bỏ mạng tấn
công DDoS.
Hình 1.6: Mạng tấn công DDoS dựa trên IRC
1.2.3 Cập nhật chƣơng trình tấn công
Kẻ tấn công cần phải cập nhật mã nguồn cho các công cụ tấn công của hắn. Kẻ
tấn công DDoS thƣờng mong muốn một kỹ thuật cập nhật phần mềm tƣơng tự với
chức năng cập nhật phần mềm có trên nhiều hệ điều hành phổ biến hiện nay, và tất
nhiên là không cần sự điều khiển quá trình cập nhật của ngƣời chủ sở hữu máy. Sử
dụng kỹ thuật tƣơng tự nhƣ là kỹ thuật tuyển lựa máy vào mạng tấn công để cập nhật
17
(thực hiện quét các máy đã cài mã lệnh tấn công và cài mã tấn công mới) là một việc
làm ồn ào và không phải lúc nào cũng hiệu quả, bởi vì một vài công cụ tấn công vá lỗ
hổng mà nó đã sử dụng để xâm nhập vào máy tính của ngƣời khác để không ai giành
đƣợc quyền điều khiển máy tính đó. Khi đó kẻ tấn công không thể đột nhập vào máy
tính này theo cách nhƣ trƣớc. Nhiều công cụ tấn công và chƣơng trình bot đã tồn tại
phân phối bản cập nhật bằng cách gửi một câu lệnh đến các máy tấn công yêu cầu mỗi
máy tấn công tải về một phiên bản mã nguồn mới hơn từ một nguồn nào đó, chẳng hạn
một máy chủ Web.
Với việc sử dụng mạng điểm-điểm tăng lên, những kẻ tấn công đã tập trung vào
sử dụng kỹ thuật điểm-điểm cho các hoạt động phá hoại. Sâu “Slapper” của Linux là
một ví dụ sử dụng kỹ thuật điểm-điểm mà nó đƣợc công bố là có thể hoạt động với
hàng triệu máy tính. Gần đây hơn, “Phatbot” đã công nhận giao tiếp điểm-điểm sử
dụng giao thức “WASTE”, liên kết với các máy ngang hàng khác bằng cách sử dụng
các máy chủ bộ nhớ tạm Gnutella. Sử dụng kỹ thuật này kẻ tấn công có thể sắp xếp
các máy tấn công vào mạng điểm-điểm để phổ biến phiên bản mã nguồn mới hoặc để
điều khiển ngay cả việc tấn công. Sự mềm dẻo và đáng tin cậy của giao tiếp điểm-
điểm có thể làm cho mạng tấn công DDoS nguy hiểm hơn và khó triệt phá hơn.
1.2.4 Các chƣơng trình tấn công cục bộ
Có một lớp tấn công DDoS chúng khai thác các máy tính có lỗ hổng mà không
cần thiết yêu cầu cài đặt bất kỳ phần mềm độc hại nào vào các máy tính đó nhƣng thay
vào đó cho phép kẻ tấn công điều khiển các máy này để làm cho chúng tạo ra các lƣu
lƣợng tấn công. Kẻ tấn công tập hợp một danh sách các máy tính có lỗ hổng, và vào
thời điểm của cuộc tấn công kẻ tấn công có các chƣơng trình tƣơng tác với danh sách
các máy này bằng cách gửi đi các câu lệnh khai thác để khởi tạo lƣu lƣợng tấn công.
Lƣu lƣợng tấn công đƣợc tạo ra là lƣu lƣợng thông thƣờng vì do các chƣơng trình
thông thƣờng có sẵn trên các máy này tạo ra. Chẳng hạn kẻ tấn công có thể lạm dụng
các lỗ hổng của một máy chủ Web làm cho nó chạy chƣơng trình PING.EXE.
Sự khác nhau giữa “chương trình cục bộ” và các loại tấn công DDoS khác rất
tinh vi. Thay vì một lỗ hổng (có thể chạy đƣợc từ xa) đƣợc sử dụng để cài đặt phần
mềm độc hại, lỗ hổng này lại đƣợc sử dụng để chạy phần mềm thông thƣờng đã có sẵn
trên các máy tính có lỗ hổng này.
Mặc dù tấn công đƣợc tạo bởi các chƣơng trình cục bộ, chẳng hạn lỗ hổng của
máy chủ Web đƣợc sử dụng để chạy chƣơng trình PING.EXE, có vẻ giống với tấn
công phản xạ theo một khía cạnh nào đó nhƣng thực sự chúng là hai loại tấn công khác
nhau. Trong hầu hết các tấn công phản xạ, kẻ tấn công lạm dụng một dịch vụ thông
thƣờng, tạo ra các yêu cầu thông thƣờng với địa chỉ nguồn bị giả mạo. Trong tấn công
bằng các chƣơng trình cục bộ, dịch vụ bị lạm dụng có lỗ hổng có thể khai thác đƣợc từ
xa, nó cho phép kẻ tấn công khởi tạo lƣu lƣợng tấn công. Việc vá các lỗ hổng này sẽ
ngăn chặn đƣợc việc lạm dụng các chƣơng trình cục bộ này, trong khi việc phòng thủ
chống lại tấn công phản xạ phức tạp hơn nhiều.
18
Các chƣơng trình cục bộ không bị phát hiện bởi các công cụ quét cổng từ xa
(chẳng hạn nhƣ RID hoặc Zombie Zapper), chúng cũng không bị phát hiện bởi việc
chạy các bộ quét hệ thống tệp nhƣ find_ddos của NIPC hoặc các phần mềm diệt virus.
Điều này là do không có phần mềm độc hại nào, không có cổng lạ nào mở, chỉ là các
lỗ hổng có thể khai thác đƣợc từ xa. Các máy có lỗ hổng có thể đƣợc xác định bởi việc
giám sát lƣu lƣợng mạng, tìm kiếm lƣu lƣợng tấn công DDoS. Chúng cũng bị phát
hiện bằng việc quét các lỗ hổng một cách thông thƣờng với các chƣơng trình chẳng
hạn nhƣ Nessus.
Một ví dụ của tấn công với chƣơng trình cục bộ phát tràn gói tin ICMP Echo
Request bằng lệnh ping tới địa chỉ www.whitehouse.gov vào ngày 4 tháng 5 năm 2001
[13, ch.4]. Cuộc tấn công này lạm dụng lỗ hổng của máy chủ Microsoft IIS để chạy
lệnh ping và bắt đầu phát tràn. Nó đƣợc thông báo rằng hàng trăm máy tính đã phát
tràn cùng lúc. Các máy tính này đƣợc xác định là chạy hệ điều hành Windows 2000 và
NT, và một vài ngƣời quản trị đã thấy rằng lệnh PING.EXE đã chạy trên máy của họ
nhắm vào địa chỉ IP của tên miền www.whitehouse.gov. Bởi vì ping là một ứng dụng
thông thƣờng, các phần mềm diệt virus không giúp gì đƣợc trong việc phát hiện và vô
hiệu hoá cuộc tấn công này.
1.3 Các phƣơng pháp thực hiện tấn công DoS
1.3.1 Khai thác một lỗ hổng
Tấn công bằng cách khai thác lỗ hổng là cách gửi các gói tin để tìm kiếm lỗ
hổng đến máy đích. Một ví dụ là cách xử lý không chuẩn các gói tin đã bị phân mảnh
của Win 95, Win NT và một số nhân Linux. Một cách tổng quát, khi 1 gói tin quá lớn
đối với 1 mạng, nó sẽ đƣợc cắt thành 2 hay nhiều gói nhỏ hơn và các gói này đƣợc
đánh số theo thứ tự. Số thứ tự này chỉ ra vị trí của gói tin đó trong gói tin ban đầu. Ở
máy đích các gói tin nhỏ này sẽ đƣợc hợp nhất lại để tạo thành gói tin ban đầu dựa trên
số thứ tự của chúng. Các lỗ hổng trên máy đích làm cho hệ thống mất cân bằng khi
nhận đƣợc các gói tin nhỏ này sai thứ tự và làm cho hệ thống bị treo, bị sụp hoặc bị
khởi động lại. Các lỗ hổng loại này có thể đƣợc khám phá bằng cách gửi các gói tin
UDP với số thứ tự lặp lại tới máy nạn nhân. Khi một lỗ hổng đƣợc vá, các tấn công
kiểu này không còn hiệu quả nữa.
1.3.2 Tấn công một giao thức
Một ví dụ tấn công giao thức đó là tấn công phát tràn các gói tin SYN trong
giao thức TCP.
Một phiên TCP bắt đầu với việc đàm phán các tham số phiên giữa một máy
trạm và một máy chủ. Máy trạm gửi một gói tin TCP SYN đến máy chủ, yêu cầu một
dịch vụ nào đó. Trong tiêu đề của gói tin SYN, máy trạm cung cấp một số tuần tự khởi
đầu, số này là đơn nhất đối với mỗi kết nối dùng để đếm dữ liệu gửi cho máy chủ, giúp
cho máy chủ có thể nhận ra và xử lý dữ liệu bị mất, sai thứ tự hoặc trùng lặp (trong
Hình 1.7 số tuần tự khởi đầu của máy trạm là x). Khi nhận đƣợc gói tin SYN, máy chủ
cấp phát một vùng nhớ gọi là khối điều khiển truyền (TCB – Transmission Control