DDoS
– MỘT SỐ KỸ THUẬT TẤN CÔNG VÀ PHƯƠNG PHÁP PHÒNG CHỐNG
Tóm tắt: Các cuộc tấn công từ chối dịch vụ
(DoS acttacks) hoặc các cuộc tấn công từ chối dịch vụ phân tán (các cuộc tấn
công DDoS) là một nỗ lực nhằm làm cho người dùng không sử dụng các tài nguyên của
máy tính. Mặc dù các phương tiện để tiến
hành, động cơ, mục tiêu của các cuộc tấn công từ chối dịch vụ
có thể khác nhau, nhưng nói chung nó bao gồm sự phối hợp, nỗ lực ác ý của một hoặc nhiều người vào một
trang, hoặc mạng làm
gián đoạn hoặc làm chậm đáng kể việc
truy cập của người dùng, bởi sự
quá tải các tài nguyên hệ thống. Trong bài này, chúng tôi
sẽ trình bày tình hình DDoS trong giai đoạn hiện tại, phân loại các kỹ thuật tấn
công, một số kỹ thuật tấn công được sử dụng ngày nay và hậu quả của chúng.
Chúng tôi cũng cung cấp một số phương pháp phòng chống DDoS và kết quả đạt được
trong quá trình cài đặt trên Windows Server và CentOS. Nó xem xét và đưa ra các
khuyến nghị về bảo mật, an ninh thông tin và ngăn chặn sự xâm nhập bất hợp
pháp..
Giới thiệu
Tấn công từ chối dịch vụ (Denial of Service - DoS) là dạng tấn công nhằm ngăn chặn người dùng
hợp pháp truy nhập các tài nguyên mạng. Tấn công DoS đã xuất hiện từ khá sớm,
vào đầu những năm 80 của thế kỷ trước [1]. Tấn công từ chối dịch vụ phân tán (Distributed Denial of Service - DDoS) là
một dạng phát triển ở mức độ cao của tấn công DoS được phát hiện lần đầu tiên
vào năm 1999 [2]. Khác biệt cơ bản của tấn công DoS và DDoS là phạm vi tấn
công. Trong khi lưu lượng tấn công DoS thường phát sinh từ một hoặc một số ít
host nguồn, lưu lượng tấn công DDoS thường phát sinh từ rất nhiều host nằm rải
rác trên mạng Internet. Hiện nay, có hai phương pháp tấn công DDoS chủ yếu [1].
Trong phương pháp thứ nhất, kẻ tấn công gửi các gói tin được tạo theo dạng đặc
biệt gây lỗi trong giao thức truyền hoặc lỗi trong ứng dụng chạy trên máy nạn
nhân. Một dạng tấn công DDoS điển hình theo phương pháp này là tấn công khai
thác lỗ hổng an ninh của các giao thức hoặc dịch vụ trên máy nạn nhân. Phương
pháp tấn công DDoS thứ hai phổ biến hơn phương pháp thứ nhất, gồm hai dạng [1]:
(i) dạng tấn công DDoS gây ngắt quãng kết nối của người dùng đến máy chủ dịch vụ
bằng cách làm ngập lụt đường truyền mạng, cạn kiệt băng thông hoặc tài nguyên mạng,
và (ii) dạng tấn công DDoS gây ngắt quãng dịch vụ cung cấp cho người dùng bằng
cách làm cạn kiệt các tài nguyên của máy chủ dịch vụ, như thời gian xử lý của
CPU, bộ nhớ, băng thông đĩa, cơ sở dữ liệu. Dạng tấn công này bảo gồm các loại
tấn công gây ngập lụt ở mức ứng dụng.
Trung tâm Ứng cứu khẩn cấp máy tính Việt Nam (VNCERT) cho biết đã ghi nhận khoảng
7.700 cuộc tấn công vào các website trong nước ba tháng qua. VNCERT thống kê được
2.848 website bị tấn công thay đổi giao diện (deface), 3.783 trang web bị cài mã độc (malware) và 1.050 trang bị cài bẫy lừa đảo dạng phishing. Các
chuyên gia bảo mật cho biết đã xuất hiện những cuộc tấn công từ chối dịch vụ (DDoS) kiểu mới, chiếm băng thông lên tới
400 Gb tại Việt Nam và 1.000 Gb tại Mỹ và dự báo tình hình bảo mật năm 2017
sẽ còn nhiều diễn biến khó lường. Năm 2016 Trung tâm này đã ghi nhận tổng số 134.375
sự cố tấn công mạng của cả 3 loại hình Phishing (lừa đảo), Malware (mã độc)
và Deface (thay đổi giao diện). So với
năm 2015, số lượng vụ tấn công mạng năm 2016 nhiều gấp hơn 4,2 lần (năm 2015 là 31.585), trong đó, loại hình
tấn công Phishing là 10.057 sự cố (gấp
hơn 1,7 lần so với năm 2015), Malware là 46.664 sự cố (gấp gần 2,8 lần năm 2015) và Deface là 77.654 sự cố (gấp hơn 8,7 lần năm 2015).
Tổng quan DDoS
Các giai đoạn tấn công
Giai đoạn chuẩn
bị:
Chuẩn bị công cụ quan trọng của cuộc tấn công, công cụ này thông thường hoạt động
theo mô hình client-server. Hacker có thể viết phần mềm này hay down load một
cách dễ dàng, theo thống kê tạm thời có khoảng hơn 10 công cụ DDoS được cung cấp
miễn phí trên. Kế tiếp, dùng các kỹ thuật hack khác để nắm trọn quyền một số
host trên mạng. tiến hành cài đặt các software cần thiết trên các host này, việc
cấu hình và thử nghiệm toàn bộ attack-netword (bao gồm mạng lưới các máy đã bị lợi dụng cùng với các software đã được
thiết lập trên đó, máy của hacker hoặc một số máy khác đã được thiết lập như điểm
phát động tấn công) cũng sẽ được thực hiện trong giai đoạn này.
Giai đoạn xác định
mục tiêu và thời điểm: Sau khi xác định mục tiêu lấn cuối,
hacker sẽ có hoạt động điều chỉnh attack-netword chuyển hướng tấn công về phía
mục tiêu. Yếu tố thời điểm sẽ quyết định mức độ thiệt hại và tốc độ đáp ứng của
mục tiêu đối với cuộc tấn công.
Phát động tấn
công và xóa dấu vết: Đúng thời điểm đã định, hacker phát động
tấn công từ máy của mình, lệnh tấn công này có thể đi qua nhiều cấp mới đến máy
(hosts) thực sự tấn công. Toàn bộ
attack-network (có thể lên đến hàng ngàn
máy), sẽ vắt cạn năng lực của máy chủ mục tiêu liên tục, ngăn chặn không
cho nó hoạt động như thiết kế. Sau một khoảng thời gian tấn công thích hợp,
hacker tiến hành xóa mọi dấu vết có thể truy ngược đến mình, việc này đòi hỏi
trình độ khá cao và không tuyệt đối cần thiết.
Kiến
trúc
Nhìn
chung DDoS attack-network có hai mô hình chính là mô hình Agent – Handler và mô
hình IRC – Based.
Hình 2.1: Phân loại theo mô hình tấn công DDoS
Mô
hình Agent – Handler
Theo mô hình này, attack-network gồm 3 thành phần:
Agent, Client và Handler trong đó: (i) Client : là software cơ sở để hacker điều
khiển mọi hoạt động của attack-network. (ii) Handler : là một thành phần
software trung gian giữa Agent và Client. (iii)
Agent : là thành phần software thực hiện sự tấn công mục tiêu, nhận điều
khiển từ Client thông qua các Handler.
Attacker sẽ từ Client giao tiếp với Handler để xác định
số lượng Agent đang online, điều chỉnh thời điểm tấn công và cập nhật các
Agent. Tùy theo cách attacker cấu hình attack-network, các Agent sẽ chịu sự quản
lý của một hay nhiều Handler.
Thông thường Attacker sẽ đặt Handler software trên một
Router hay một server có lượng traffic lưu thông nhiều. Việc này nhằm làm cho
các giao tiếp giữa Client, handler và Agent khó bị phát hiện. Các giao tiếp này
thông thường xảy ra trên các protocol TCP, UDP hay ICMP. Chủ nhân thực sự của
các Agent thông thường không hề hay biết họ bị lợi dụng vào cuộc tấn công kiểu
DDoS, do họ không đủ kiến thức hoặc các chương trình Backdoor Agent chỉ sử dụng
rất ít tài nguyên hệ thống làm cho hầu như không thể thấy ảnh hưởng gì đến hiệu
năng của hệ thống.
Hình 2.2: Kiến trúc kiểu Agent – Handler
Mô
hình IRC – Based
Internet Relay Chat (IRC) là một hệ thống online
chat multiuser, IRC cho phép User tạo một kết nối đến multipoint đến nhiều user
khác và chat thời gian thực. Kiến trúc củ IRC network bao gồm nhiều IRC server
trên khắp internet, giao tiếp với nhau trên nhiều kênh (channel). IRC network
cho phép user tạo ba loại channel: (i) Public channel: Cho phép user của
channel đó thấy IRC name và nhận được message của mọi user khác trên cùng
channel. (ii) Private channel: được
thiết kế để giao tiếp với các đối tượng cho phép. Không cho phép các user không
cùng channel thấy IRC name và message trên channel. Tuy nhiên, nếu user ngoài
channel dùng một số lệnh channel locator thì có thể biết được sự tồn tại của
private channel đó. (iii) Secrect channel : tương tự private channel nhưng
không thể xác định bằng channel locator.
Hình 1.3: Kiến trúc kiểu IRC-Based
IRC – Based net work cũng tương tự như Agent –
Handler network nhưng mô hình này sử dụng các kênh giao tiếp IRC làm phương tiện
giao tiếp giữa Client và Agent (không sử
dụng Handler). Sử dụng mô hình này, attacker còn có thêm một số lợi thế
khác như: (i) Các giao tiếp dưới dạng chat message làm cho việc phát hiện chúng
là vô cùng khó khăn. (ii) IRC traffic có thể di chuyển trên mạng với số lượng lớn
mà không bị nghi ngờ. (iii) Không cần phải duy trì danh sách các Agent, hacker
chỉ cần logon vào IRC server là đã có thể nhận được report về trạng thái các
Agent do các channel gửi về. (iv) sau cùng IRC cũng là một môi trường file
sharing tạo điều kiện phát tán các Agent code lên nhiều máy khác.
Tấn công DDoS
Phân loại tấn công DDoS
Nhìn
chung, có rất nhiều biến thể của kỹ thuật tấn công DDoS nhưng nếu nhìn dưới góc
độ chuyên môn thì có thể chia các biến thề này thành hai loại dựa trên mụch
đích tấn công: Làm cạn kiệt băng thông và làm cạn kiệt tài nguyên hệ thống. Dưới
đây là sơ đồ mô tả sự phân loại các kiểu tấn công DDoS.
Hình 3.1 Phân loại tấn công DDoS
Tấn
công làm cạn kiệt băng thông
UDP
Flood Attack: do tính chất connectionless của UDP, hệ
thống nhận UDP message chỉ đơn giản nhận vào tất cả các packet mình cần phải xử
lý. Một lượng lớn các UDP packet được gởi đến hệ thống dịch vụ của mục tiêu sẽ
đẩy toàn bộ hệ thống đến ngưỡng tới hạn. Các UDP packet này có thể được gửi đến
nhiều port tùy ý hay chỉ duy nhất một port. Thông thường là sẽ gửi đến nhiều
port làm cho hệ thống mục tiêu phải căng
ra để xử lý phân hướng cho các packet này. Nếu port bị tấn công không sẵn
sàng thì hệ thống mục tiêu sẽ gửi ra một ICMP packet loại “destination port
unreachable”. Thông thường các Agent software sẽ dùng địa chỉ IP giả để che giấu
hành tung, cho nên các message trả về do không có port xử lý sẽ dẫn đến một địa
chỉ IP khác. UDP Flood Attack cũng có thể làm ảnh hưởng đến các kết nối xung
quanh mục tiêu do sự hội tụ của packet diễn ra rất mạnh.
ICMP
Flood Attack: được thiết kế nhằm mục đích quản lý mạng
cũng như định vị thiết bị mạng. Khi các Agent gửi một lượng lớn ICMP_ECHO_REPLY
đến hệ thống mục tiêu thì hệ thống này phải reply một lượng tương ứng packet để
trả lời, sẽ dẫn đến nghẽn đường truyền. Tương tự trường hợp trên, địa chỉ IP của
các Agent có thể bị thay thế bởi một địa chỉ giả mạo.
Amplification
Attack: nhắm đến việc sử dụng các chức năng hỗ
trợ địa chỉ IP broadcast của các router nhằm khuyếch đại và hồi chuyển cuộc tấn
công. Chức năng này cho phép bên gửi chỉ định một địa chỉ IP broadcast cho toàn
subnet bên nhận thay vì nhiều địa chỉ. Router sẽ có nhiệm vụ gửi đến tất cả địa
chỉ IP trong subnet đó packet broadcast mà nó nhận được. Attacker có thể gửi
broadcast message trực tiếp hay thông qua một số Agent nhằm làm gia tăng cường
độ của cuộc tấn công. Nếu attacker trực tiếp gửi message, thì có thể lợi dụng
các hệ thống bên trong broadcast network như một Agent.
Tấn
công làm cạn kiệt tài nguyên
TCP
SYS Attack: Transfer Control Protocol hỗ trợ truyền
nhận với độ tin cậy cao nên sử dụng phương thức bắt tay giữa bên gởi và bên nhận
trước khi truyền dữ liệu. Bước đầu tiên, bên gửi gởi một SYNREQUEST packet
(Synchronize). Bên nhận nếu nhận được SYN REQUEST sẽ trả lời bằng SYN/ACK REPLY
packet. Bước cuối cùng, bên gửi sẽ truyên packet cuối cùng ACK và bắt đầu truyền
dữ liệu.
Hình 3.2: Giao thức bắt tay 3 bước
Nếu bên server đã trả lời một yêu cầu SYN bằng một
SYN/ACK REPLY nhưng không nhận được ACK packet cuối cùng sau một khoảng thời
gian quy định thì nó sẽ resend lại SYN/ACK REPLY cho đến hết thời gian timeout.
Toàn bộ tài nguyên hệ thống “dự trữ” để xử lý phiên giao tiếp nếu nhận được ACK
packet cuối cùng sẽ bị “phong tỏa” cho đến hết thời gian timeout.
Hình 3.3: Gửi SYN giả mạo
Nắm được điểm yếu này, attacker gởi một SYN packet đến
nạn nhân (hình 3.3) với địa chỉ bên gửi
là giả mạo, kết quả là nạn nhân gởi SYN/ACK REPLY đến một địa chỉ khác và sẽ
không bao giờ nhận được ACK packet cuối cùng, cho đến hết thời gian timeout nạn
nhân mới nhận ra được điều này và giải phóng các tài nguyên hệ thống. Tuy
nhiên, nếu lượng SYN packet giả mạo đến với số lượng nhiều và dồn dập, hệ thống
của nạn nhân có thể bị hết tài nguyên.
Hình 3.4: Phân biệt sự khác nhau.
PUSH
= ACK Attack: Trong TCP giao thức, các packet được
chứa trong bộ nhớ đệm, khi bộ nhớ đệm đầy thì các packet này sẽ được chuyển đến
nơi cần thiết. Tuy nhiên, bên gởi có thể yêu cầu hệ thống unload bộ nhớ đệm trước
khi bộ nhớ đệm đầy bằng cách gởi một packet với PUSH và ACK mang giá trị là 1.
Những packet này làm cho hệ thống của nạn nhân unload tất cả dữ liệu trong bộ
nhớ đệm TCP ngay lập tức và gửi một ACK packet trở về khi thực hiện xong điều
này, nếu quá trình được diễn ra liên tục với nhiều Agent, hệ thống sẽ không thể
xử lý được lượng lớn packet gửi đến và sẽ bị treo. Malformed Packet Attack là
cách tấn công dùng các Agent để gởi các packet có cấu trúc không đúng chuẩn nhằm
làm cho hệ thống của nạn nhân bị treo. Có hai loại Malformed Packet Attack:
IP
Address Attack: dùng packet có địa chỉ gởi và nhận giống
nhau làm cho hệ điều hành của nạn nhân không xử lý nổi và bị treo.
IP
Packet Options Attack: ngẫu nhiên hóa vùng OPTION trong
IP packet và thiết lập tất cả các bit QoS lên 1, điều này làm cho hệ thống của
nạn nhân phải tốn thời gian phân tích, nếu sử dụng số lượng lớn Agent có thể
làm hệ thống nạn nhân hết khả năng xử lý.
No comments:
Post a Comment