ĐẠ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
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
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
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
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
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 =
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,
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.
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
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
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
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
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à
SYN-ACK, thông báo với máy trạm rằng yêu cầu dịch vụ của máy trạm sẽ đƣợc xử lý,
báo nhận số tuần tự của máy trạm và gửi thông tin về số tuần tự khởi đầu của máy chủ
(trong Hình 1.7 số tuần tự khởi đầu của máy chủ là y). Khi nhận đƣợc gói tin SYN-
ACK từ máy chủ, máy trạm cấp phát một vùng nhớ TCB, gửi trả lời đến máy chủ bằng
một gói tin ACK báo nhận số tuần tự của máy chủ, hoàn thành việc mở một kết nối.
Việc trao đổi gói tin để mở một kết nối TCP giữa máy trạm và máy chủ nhƣ
trên gọi là bắt tay ba bƣớc. Hình 1.7: Bắt tay ba bước để mở một kết nối TCP
Khả năng lạm dụng nằm ở sự cấp phát tài nguyên sớm của máy chủ. Khi máy
chủ cấp phát TCB và trả lời máy trạm với một gói tin SYN-ACK, kết nối đƣợc coi là
nửa mở. Tài nguyên đã đƣợc máy chủ cấp phát (TCB) sẽ bị treo cho đến khi máy chủ
nhận đƣợc gói tin ACK hoặc gói tin RST từ máy trạm (yêu cầu đóng kết nối) hoặc hết
một khoảng thời gian timeout của tài nguyên đó, máy chủ sau đó sẽ đóng kết nối và
giải phóng bộ nhớ đệm đã cấp phát. Trong suốt quá trình tấn công phát tràn gói tin
TCP SYN, kẻ tấn công tạo ra nhiều kết nối nửa mở bằng cách giả mạo địa chỉ IP
nguồn. Các yêu cầu này nhanh chóng làm cạn kiệt bộ nhớ TCB của máy chủ và máy
chủ sẽ không tiếp nhận đƣợc thêm các kết nối khác.
Để giữ cho không gian bộ nhớ đệm bị chiếm trong khoảng thời gian mong
muốn, kẻ tấn công phải tạo ra một dòng đều đặn các gói tin SYN gửi đến máy nạn
nhân để giành lại các tài nguyên vừa mới đƣợc giải phóng do hết thời gian timeout
hoặc sự hoàn thành của các kết nối TCP thông thƣờng.
20
Tấn công phát tràn các gói tin TCP SYN là một dạng tấn công nguy hiểm, trong
đó máy chủ nhận đƣợc một số lƣợng lớn các gói tin SYN và không phân biệt đƣợc gói
tin SYN nào là bình thƣờng, gói nào là gói tấn công.
Để thực hiện thành công tấn công phát tràn các gói tin TCP SYN, kẻ tấn công
thƣờng, tồn tại một số xác định số lƣợng các yêu cầu lớn nhất trên một giây mà máy
chủ web có thể phục vụ đƣợc. Giả sử một máy chủ web có thể xử lý 1000 yêu cầu trên
1 giây để tải về các tập tin tạo nên trang chủ của một công ty, khi đó nhiều nhất là
1000 yêu cầu của khách hàng có thể đƣợc xử lý đồng thời. Giả sử tải bình thƣờng của
máy chủ web là 100 yêu cầu trên 1 giây (tức là bằng 1 phần 10 khả năng xử lý).
21
Nếu một kẻ tấn công có thể điều khiển 10.000 máy tính và có thể bắt buộc mỗi
máy tạo ra một yêu cầu trong mỗi khoảng thời gian 10 giây, nhƣ vậy tính trung bình là
1000 yêu cầu trên 1 giây, và cộng thêm với lƣu lƣợng yêu cầu thông thƣờng thành
110% khả năng xử lý của máy chủ, làm cho một phần lớn các yêu cầu thông thƣờng
không đƣợc xử lý.
1.3.5 Tấn công một tài nguyên
Kẻ tấn công có thể nhằm vào một tài nguyên cụ thể chẳng hạn CPU hoặc khả
năng chuyển mạch của router. Vào tháng 1 năm 2001, Microsoft bị ngừng hoạt động
và có thông báo là do lỗi cấu hình mạng. Sự ngừng hoạt động này phá huỷ một số
lƣợng lớn tài sản của Microsoft. Khi các thông tin của cuộc tấn công lộ ra cho thấy
rằng tất cả các máy chủ DNS của Microsoft đều đã nằm trên một phân đoạn mạng,
đƣợc phục vụ bởi cùng một router. Kẻ tấn công khi đó nhằm vào cơ sở hạ tầng tìm
đƣờng ngay trƣớc các máy chủ này và làm cho các dịch vụ trực tuyến của Microsoft bị
mất.
Microsoft sau đó nhanh chóng phân tán các máy chủ tên miền và cung cấp thêm
các đƣờng mạng dẫn đến các máy chủ để làm khó hơn cho ai đó muốn làm cho tất cả
các máy chủ này không hoạt động nữa. Loại bỏ các đƣờng tắc nghẽn cổ chai và tăng
băng thông có thể giải quyết loại tấn công tài nguyên này nhƣng khi đó kẻ tấn công có
thể trở lại với một cuộc tấn công mạnh hơn. Đối với những công ty có ít tài nguyên
hơn Microsoft thì việc cung cấp thêm đƣờng mạng và phân tán địa lý các dịch vụ là
một lựa chọn liên quan đến tài chính không thể thực hiện đƣợc.
Các tài nguyên hạ tầng mạng là những mục tiêu hấp dẫn bởi vì tấn công vào các
tài nguyên hạ tầng mạng gây ảnh hƣởng đến các phân đoạn mạng lớn của ngƣời dùng
Trong một số trƣờng hợp lƣu lƣợng tấn công có thể dễ dàng bị xác định và loại
bỏ (chẳng hạn lƣu lƣợng các gói tin UDP cỡ lớn gửi đến các cổng chƣa đƣợc sử dụng,
các gói tin với giá trị giao thức IP là 255). Trong một số trƣờng hợp khác rất khó để
xác định các trƣờng tiêu đề của gói tin để lọc ra các gói tin của lƣu lƣợng tấn công
(chẳng hạn các gói tin DNS trả về của các yêu cầu DNS bình thƣờng của các máy trạm
trong mạng nạn nhân, hoặc một phát tràn có tính chất phân tán diện rộng các gói tin
yêu cầu HTTP thông thƣờng). Nếu điều này xảy ra, việc lọc các gói tin sẽ đơn giản
bảo vệ tài nguyên của cả nạn nhân và nhà cung cấp dịch vụ Internet, nhƣng lƣu lƣợng
thuê bao của nạn nhân sẽ bị kéo về không, nhƣ vậy đạt đƣợc hiệu quả của cuộc tấn
công DoS.
cửa sổ tắc nghẽn mạng của bên gửi sẽ bị giảm xuống bằng 1, đồng nghĩa với việc tiến
trình TCP gửi lúc này chỉ đƣợc gửi 1 gói tin đi. Kết quả là làm cho thông lƣợng của
các kết nối TCP giảm một cách nghiêm trọng.
c) Tấn công DoS tốc độ thấp