Nguyên cứu và đưa ra giải pháp phòng chống tấn công dos
Gửi bởi: Phạm Thọ Thái Dương 9 tháng 10 2019 lúc 11:13:24 | Được cập nhật: 16 giờ trước (23:11:44) Kiểu file: PDF | Lượt xem: 431 | Lượt Download: 0 | File size: 0.890754 Mb
Nội dung tài liệu
Tải xuống
Link tài liệu:
Các tài liệu liên quan
Có thể bạn quan tâm
Thông tin tài liệu
Nghiên cứu và đưa ra giải pháp phòng chống tấn
công DoS, DDoS
NGHIÊN CỨU VÀ ĐƯA RA GIẢI PHÁP PHÒNG CHỐNG DOS, DDOS
1.Khái niệm và phân loại
1.1Khái niệm
Tấn công bằng từ chối dịch vụ DoS (Denial of Service) có thể mô tả như hành động
ngăn cản những người dùng hợp pháp khả năng truy cập và sử dụng vào một dịch vụ
nào đó.
Nó bao gồm: làm tràn ngập mạng, mất kết nối với dịch vụ… mà mục đích cuối cùng là
máy chủ (Server) không thể đáp ứng được các yêu cầu sử dụng dịch vụ từ các máy
trạm (Client).
1.2 Phân loại
Có 2 loại
Loại 1: Dựa theo đặc điểm của hệ thống bị tấn công: gây quá tải khiến hệ thống mất
khả năng phục vụ
•Tin tặc gửi rất nhiều yêu cầu dịch vụ, bắt chước như người dùng thực sự yêu cầu đối
với hệ thống
•Để giải quyết yêu cầu, hệ thống phải tốn tài nguyên (CPU, bộ nhớ, đường truyền,…).
Mà tài nguyên này thì là hữu hạn. Do đó hệ thống sẽ không còn tài nguyên để phục vụ
các yêu cầu sau
•Hình thức chủ yếu của kiểu này tấn công từ chối dịch vụ phân tán
Loại 2 : Làm cho hệ thống bị treo, tê liệt do tấn công vào đặc điểm của hệ thống hoặc
lỗi về an toàn thông tin
•Tin tặc lợi dụng kẽ hở an toàn thông tin của hệ thống để gửi các yêu cầu hoặc các gói
tin không hợp lệ (không đúng theo tiêu chuẩn) một cách cố ý, khiến cho hệ thống bị
tấn công khi nhận được yêu cầu hay gói tin này, xử lý không đúng hoặc không theo
trình tự đã được thiết kế, dẫn đến sự sụp đổ của chính hệ thống đó
•Điển hình là kiểu tấn công Ping of Death hoặc SYN Flood
2.Các cách thức tấn công
2.1 Tấn công thông qua kết nối
SYN Flood Attack
Được xem là một trong những kiểu tấn công DoS kinh điển nhất. Lợi dụng sơ hở của
thủ tục TCP khi “bắt tay ba chiều”, mỗi khi client (máy khách) muốn thực hiện kết nối
(connection) với server (máy chủ) thì nó thực hiện việc bắt tay ba lần (three – ways
handshake) thông qua các gói tin (packet).
Bước 1: Client (máy khách) sẽ gửi các gói tin (packet chứa SYN=1) đến máy chủ để
yêu cầu kết nối.
Bước 2: Khi nhận được gói tin này, server sẽ gửi lại gói tin SYN/ACK để thông báo cho
client biết là nó đã nhận được yêu cầu kết nối và chuẩn bị tài nguyên cho việc yêu cầu
này. Server sẽ giành một phần tài nguyên hệ thống như bộ nhớ đệm (cache) để nhận
và truyền dữ liệu. Ngoài ra, các thông tin khác của client như địa chỉ IP và cổng (port)
cũng được ghi nhận.
Bước 3: Cuối cùng, client hoàn tất việc bắt tay ba lần bằng cách hồi âm lại gói tin chứa
ACK cho server và tiến hành kết nối.
Do TCP là thủ tục tin cậy trong việc giao nhận (endtoend) nên trong lần bắt tay thứ
hai,server gửi các gói tin SYN/ACK trả lời lại client mà không nhận lại được hồi âm của
client để thực hiện kết nối thì nó vẫn bảo lưu nguồn tài nguyên chuẩn bị kết nối đó và
lập
lại việc gửi gói tin SYN/ACK cho client đến khi nào nhận được hồi đáp của máy client.
Điểm mấu chốt là ở đây là làm cho client không hồi đáp cho Server. Và có hàng nhiều,
nhiều client như thế trong khi server vẫn “ngây thơ” lặp lại việc gửi packet đó và giành
tài nguyên để chờ “người về” trong lúc tài nguyên của hệ thống là có giới hạn! Các
hacker tấn công sẽ tìm cách để đạt đến giới hạn đó.
Nếu quá trình đó kéo dài, server sẽ nhanh chóng trở nên quá tải, dẫn đến tình trạng
crash (treo) nên các yêu cầu hợp lệ sẽ bị từ chối không thể đáp ứng được. Có thể hình
dung quá trình này cũng giống hư khi máy tính cá nhân (PC) hay bị “treo” khi mở cùng
lúc quá nhiều chương trình cùng lúc vậy .
Thông thường, để giả địa chỉ IP gói tin, các hacker có thể dùng Raw Sockets (không
phải gói tin TCP hay UDP) để làm giả mạo hay ghi đè giả lên IP gốc của gói tin. Khi
một gói tin SYN với IP giả mạo được gửi đến server, nó cũng như bao gói tin khác, vẫn
hợp lệ đối với server và server sẽ cấp vùng tài nguyên cho đường truyền này, đồng
thời ghi nhận toàn bộ thông tin và gửi gói SYN/ACK ngược lại cho Client. Vì địa chỉ IP
của client là giả mạo nên sẽ không có client nào nhận được SYN/ACK packet này để
hồi đáp cho máy chủ. Sau một thời gian không nhận được gói tin ACK từ client, server
nghĩ rằng gói tin bị thất lạc nên lại tiếp tục gửi tiếp SYN/ACK, cứ như thế, các kết nối
(connections) tiếp tục mở.
Nếu như kẻ tấn công tiếp tục gửi nhiều gói tin SYN đến server thì cuối cùng server đã
không thể tiếp nhận thêm kết nối nào nữa, dù đó là các yêu cầu kết nối hợp lệ. Việc
không thể phục nữa cũng đồng nghĩa với việc máy chủ không tồn tại. Việc này cũng
đồng nghĩa với xảy ra nhiều tổn thất do ngưng trệ hoạt động, đặc biệt là trong các giao
dịch thương mại điện tử trực tuyến.
Đây không phải là kiểu tấn công bằng đường truyền cao, bởi vì chỉ cần một máy tính
nối internet qua ngã dialup đơn giản cũng có thể tấn công kiểu này (tất nhiên sẽ lâu
hơn chút).
2.2 Lợi dụng tài nguyên của nạn nhân để tấn công
Land Attack
•Tương tự như SYN flood
•Nhưng hacker sử dụng chính IP của mục tiêu cần tấn công để dùng làm địa chỉ IP
nguồn trong gói tin
•Đẩy mục tiêu vào một vòng lặp vô tận khi cố gắng thiết lập kết nối với chính nó
UDP flood
•Hacker gửi gói tin UDP echo với địa chỉ IP nguồn là cổng loopback của chính mục tiêu
cần tấn công hoặc của một máy tính trong cùng mạng
•Với mục tiêu sử dụng cổng UDP echo (port 7) để thiết lập việc gửi và nhận các gói tin
echo trên 2 máy tính (hoặc giữa mục tiêu với chính nó nếu mục tiêu có cấu hình cổng
loopback), khiến cho 2 máy tính này dần dần sử dụng hết băng thông của chúng, và
cản trở hoạt động chia sẻ tài nguyên mạng của các máy tính khác trong mạng
2.3 Sử dụng Băng Thông
DDoS (Distributed Denial of Service)
Xuất hiện vào mùa thu 1999, so với tấn công DoS cổ điển, sức mạnh của DDoS cao
hơn gấp nhiều lần. Hầu hết các cuộc tấn công DDoS nhằm vào việc chiếm dụng băng
thông (bandwidth) gây nghẽn mạch hệ thống dẫn đến hệ thống ngưng hoạt động. Để
thực hiện thì kẻ tấn công tìm cách chiếm dụng và điều khiển nhiều máy tính/mạng máy
tính trung gian (đóng vai trò zombie) từ nhiều nơi để đồng loạt gửi ào ạt các gói tin
(packet) với số lượng rất lớn nhằm chiếm dụng tài nguyên và làm tràn ngập đường
truyền của một mục tiêu xác định nào đó.
Theo cách này thì dù băng thông có bao nhiêu đi chăng nữa thì cũng không thể chịu
đựng được số lượng hàng triệu các gói tin đó nên hệ thống không thể hoạt động được
nữa và như thế dẫn đến việc các yêu cầu hợp lệ khác không thể nào được đáp ứng,
server sẽ bị “đá văng” khỏi internet.
Nói nôm na là nó giống như tình trạng kẹt xe vào giờ cao điểm vậy. Ví dụ rõ nhất là
sự “cộng hưởng” trong lần truy cập điểm thi đại học vừa qua khi có quá nhiều máy tính
yêu cầu truy cập cùng lúc làm dung lượng đường truyền hiện tại của máy chủ không
tài nào đáp ứng nổi.
Hiện nay, đã xuất hiện dạng virus/worm có khả năng thực hiện các cuộc tấn công
DDoS.Khi bị lây nhiễm vào các máy khác, chúng sẽ tự động gửi các yêu cầu phục vụ
đến một mục tiêu xác định nào đó vào thời điểm xác định để chiếm dụng băng thông
hoặc tài nguyên hệ thống máy chủ. Trường hợp của MyDoom là ví dụ tiêu biểu cho
kiểu này
2.4 Sử dụng tài nguyên khác
Smurf Attack
•Kiểu tấn công này cần một hệ thống rất quan trọng là mạng khuyếch đại
•Hacker dùng địa chỉ của máy tính cần tấn công để gửi gói tin ICMP echo cho toàn bộ
mạng (broadcast)
•Các máy tính trong mạng sẽ đồng loạt gửi gói tin ICMP reply cho máy tính mà hacker
muốn tấn công
•Kết quả là máy tính này sẽ không thể xử lý kịp thời một lượng lớn thông tin và dẫn tới
bị treo máy.
Tear Drop
•Trong mạng chuyển mạch gói, dữ liệu được chia thành nhiều gói tin nhỏ, mỗi gói tin
có một giá trị offset riêng và có thể truyền đi theo nhiều con đường khác nhau để tới
đích. Tại đích, nhờ vào giá trị offset của từng gói tin mà dữ liệu lại được kết hợp lại như
ban đầu
•Lợi dụng điều này, hacker có thể tạo ra nhiều gói tin có giá trị offset trùng lặp nhau gửi
đến mục tiêu muốn tấn công
•Kết quả là máy tính đích không thể sắp xếp được những gói tin này và dẫn tới bị treo
máy vì bị "vắt kiệt" khả năng xử lý
Phá hoại hoặc chỉnh sửa thông tin cấu hình
•Lợi dụng việc cấu hình thiếu an toàn như việc không xác thực thông tin trong việc
gửi/nhận bản tin cập nhật (update) của router... mà kẻ tấn công sẽ thay đổi trực tiếp
hoặc từ xa các thông tin quan trọng này
•khiến cho những người dùng hợp pháp không thể sử dụng dịch vụ.
Phá hoại hoặc chỉnh sửa phần cứng
•Lợi dụng quyền hạn của chính bản thân kẻ tấn công đối với các thiết bị trong hệ
thống mạng để tiếp cận phá hoại các thiết bị phần cứng như router, switch…
vNgoài ra còn có kiểu tấn công từ chối dịch vụ phản xạ nhiều vùng DRDoS
(Distributed Reflection Denial of Service)
Xuất hiện vào đầu năm 2002, là kiểu tấn công mới nhất, mạnh nhất trong họ DoS.
Nếu được thực hiện bởi kẻ tấn công có tay nghề thì nó có thể hạ gục bất cứ hệ thống
nào trên thế giới trong phút chốc.
Mục tiêu chính của DDDoS là chiếm đoạt toàn bộ băng thông của máy chủ, tức là làm
tắc nghẽn hoàn toàn đường kết nối từ máy chủ vào xương sống của Internet và tiêu
hao tài nguyên máy chủ. Trong suốt quá trình máy chủ bị tấn công bằng DrDoS, không
một máy khách nào có thể kết nối được vào máy chủ đó. Tất cả các dịch vụ chạy trên
nền TCP/IP như DNS, HTTP, FTP, POP3, ... đều bị vô hiệu hóa.
Về cơ bản, DRDoS là sự phối hợp giữa hai kiểu DoS và DDoS. Nó có kiểu tấn công
SYN với một máy tính đơn, vừa có sự kết hợp giữa nhiều máy tính để chiếm dụng