Tìm hiểu tấn công từ chối dịch vụ(DOS và DDOS) và các chính sách an ninh FW chống tấn công này
Trang 1HỌC VIỆN KỸ THUẬT MẬT MÃ
KHOA CÔNG NGHỆ THÔNG TIN
ĐỀ TÀI FIREWALL
Tìm hiểu tấn công từ chối dịch vụ(DOS và DDOS) và các chính sách an ninh FW chống tấn công này
Phạm Bá Trọng Lê Thanh Tuấn Lê Thị Yến Nga
Vũ Bảo Toàn Phan Thị Thúy An
Trần Ngọc Sơn Trần Văn Quyền
Trang 2MỤC LỤC
ĐỀ TÀI FIREWALL 1
CHƯƠNG 1: TỔNG QUAN VỀ TỪ CHỐI DỊCH VỤ VÀ CÁCH PHÒNG CHỐNG 3
1 Tổng quan về tấn công từ chối dịch vụ: 3
KẾT QUẢ THU ĐƯỢC VÀ PHƯƠNG HƯỚNG PHÁT TRIỂN 29
TÀI LIỆU THAM KHẢO 30
DANH MỤC HÌNH ẢNH
Hình 1: Một mô hình Dos cơ bản Hình2: 1 mô hình DDOS
Hình 3: SYN attack
Trang 3Hình 4: Mô hình tấn công khuếch đại Hình 5: Mô hình tấn công DdoS Hình 7: Mô hình agent handler Hình 6: Sơ đồ mạng tấn công DDOS
Hình 8: Mô hình tấn công dạng IRC-Based Hình 9: Smurf Attack (DRDoS)
CHƯƠNG 1: TỔNG QUAN VỀ TỪ CHỐI DỊCH VỤ VÀ CÁCH PHÒNG CHỐNG
1 Tổng quan về tấn công từ chối dịch vụ:
1.1 Khái Niệm về tấn công từ chối dịch vụ:
- Tấn công DoS là một kiểu tấn công mà một người làm cho một hệ thống không thể sử dụng, hoặc làm cho hệ thống đó chậm đi một cách đáng kể với người dùng bình thường, bằng cách làm quá tải tài nguyên của hệ thống
Trang 4- Nếu kẻ tấn công không có khả năng thâm nhập được vào hệ thống, thì chúng cố gắng tìm cách làm cho hệ thống đó sụp đổ và không có khả năng phục vụ người dùng bình thường đó là tấn công Denial of Service (DoS).
Mặc dù tấn công DoS không có khả năng truy cập vào dữ liệu thực của hệ thống nhưng nó có thể làm gián đoạn các dịch vụ mà hệ thống đó cung cấp Như định nghĩa trên DoS khi tấn công vào một hệ thống sẽ khai thác những cái yếu nhất của hệ thống để tấn công, những mục đích của tấn công DoS
- Các tấn công DoS bắt đầu vào khoảng đầu những năm 90 Đầu tiên, chúng hoàn toàn “nguyên thủy”, bao gồm chỉ một kẻ tấn công khai thác băng thông tối đa từ nạn nhân, ngăn những người khác được phục vụ Điều này được thực hiện chủ yếu bằng cách dùng các phương pháp đơn giản như ping floods, SYN floods và UDP floods Sau đó, các cuộc tấn công trở nên phức tạp hơn, bằng cách giả làm nạn nhân, gửi vài thông điệp và để các máy khác làm ngập máy nạn nhân với các thông điệp trả lời (Smurf attack, IP spoofing…).
- Các tấn công này phải được đồng bộ hoá một cách thủ công bởi nhiều kẻ tấn công để tạo ra một sự phá huỷ có hiệu quả Sự dịch chuyển đến việc tự động hoá sự đồng bộ, kết hợp này và tạo ra một tấn công song song lớn trở nên phổ biến từ 1997, với sự ra đời của công cụ tấn công DDoS đầu tiên được công bố rộng rãi, Trinoo Nó dựa trên tấn công UDP flood và các giao tiếp master-slave (khiến các máy trung gian tham gia vào trong cuộc tấn công bằng cách đặt lên chúng các chương trình được
Trang 5điều khiển từ xa) Trong những năm tiếp theo, vài công cụ nữa được phổ biến – TFN (tribe flood network), TFN2K, vaf Stacheldraht.
- Tuy nhiên, chỉ từ cuối năm 1999 mới có những báo cáo về những tấn công như vậy, và đề tài này được công chúng biết đến chỉ sau khi một cuộc tấn công lớn vào các site công cộng tháng 2/2000 Trong thời gian 3 ngày, các site Yahoo.com, amazon.com, buy.com, cnn.com và eBay.com đã đặt dưới sự tấn công (ví dụ như Yahoo bị ping với tốc độ 1 GB/s) Từ
8 năm 2003, Microsoft đã chịu đợt tấn công DoS cực mạnh và làm gián đoạn websites trong vòng 2 giờ; Vào lúc 15:09 giờ GMT ngày 27 tháng 3 năm 2003: toàn bộ phiên bản tiếng anh của website Al-Jazeera bị tấn công làm gián đoạn trong nhiều giờ
1.1.3 Mục đích của tấn công DoS và hiểm họa
- Cố gắng chiếm băng thông mạng và làm hệ thống mạng bị ngập (flood), khi đó hệ thống mạng sẽ không có khả năng đáp ứng những dịch vụ khác cho người dùng bình thường.
- Cố gắng làm ngắt kết nối giữa hai máy, và ngăn chặn quá trình truy cập vào dịch vụ.
- Cố gắng ngăn chặn những người dùng cụ thể vào một dịch vụ nào đó - Cố gắng ngăn chặn các dịch vụ không cho người khác có khả năng truy
Trang 6+ Financial Loss – Tài chính bị mất
Như chúng ta biết ở bên trên tấn công DoS xảy ra khi kẻ tấn công sử dụng hết tài nguyên của hệ thống và hệ thống không thể đáp ứng cho người dùng bình thường được vậy các tài nguyên chúng thường sử dụng để tấn công là gì:
- Tạo ra sự khan hiếm, những giới hạn và không đổi mới tài nguyên
- Băng thông của hệ thống mạng (Network Bandwidth), bộ nhớ, ổ đĩa, và CPU Time hay cấu trúc dữ liệu đều là mục tiêu của tấn công DoS.
- Tấn công vào hệ thống khác phục vụ cho mạng máy tính như: hệ thống điều hoà, hệ thống điện, hệt hống làm mát và nhiều tài nguyên khác của doanh nghiệp Bạn thử tưởng tượng khi nguồn điện vào máy chủ web bị ngắt thì người dùng có thể truy cập vào máy chủ đó không.
- Phá hoại hoặc thay đổi các thông tin cấu hình.
- Phá hoại tầng vật lý hoặc các thiết bị mạng như nguồn điện, điều hoà…
1.2Phân loại:
DoS (Denial of Service) là hình thức tấn công từ chối dịch vụ, có nhiều cách để thực hiện tấn công kiểu này (VD : SYN Flooding, ), thực chất là Hacker tận dụng lỗ hổng bảo mật nào đó để yêu cầu Server làm việc "giời ơi" nào đó, mục đính là không để Server có khả năng đáp ứng yêu cầu dịch vụ của các Client khác, như vậy gọi là "từ chối dịch vụ" của các Client khác Thường thì kẻ tấn công là từ một máy.
Trang 7Hình 1: Một mô hình Dos
1.2.2 Qua các máy trung gian (DDOS: tấn công từ chối dịch vụ phân tán):
Trang 8DDoS (Distributed Denial of Service) là một dạng DoS nhưng kẻ tấ công sử dụng nhiều máy để thực hiện.
Hình2: 1 mô hình DDOS
Trang 9Sự khác nhau là : DoS là tấn công từ một nguồn còn DDoS là từ nhiều nguồn khác nhau nên phương pháp chống lại cũng khác đôi chút VD : nếu phát hiện dấu hiệu của DoS thì chỉ cần tìm và ngắt các hoạt động hoặc kết nối liên quan đến nguồn phát (chỉ 1), còn DDoS thì rất nhiều nguồn tấn công nên không làm như vậy được Một điểm quan trọng là nếu bị tấn công DDoS thì không thể chống đỡ.
2 Các cơ chế tấn công từ chối dịch vụ:
Là phương thức xuất hiện đầu tiên, giản đơn nhất trong kiểu tấn công từ chối dịch vụ.Các kiểu tấn công thuộc phương thức này rất đa dạng:
2.1.1 Tấn công chiếm dụng tài nguyên (Resource Depletion):
Bằng cách lạm dụng quá trình giao tiếp của giao thức mạng hoặc những gói tin dị thường, attacker sẽ chiếm dụng nguồn tài nguyên hệ thống như CPU, RAM,… khiến cho người dùng chia sẽ không truy xuất được hệ thống do hệ thống không đủ khả năng xử lý
Đượ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 – wayshandshake) 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.
Trang 10- 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.
Hình 3: SYN attack
Do TCP là thủ tục tin cậy trong việc giao nhận (end-to-end) 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
Trang 11việ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
Một kiểu tấn công DoS nữa cũng rất hay được dùng vì tính đơn giản của nó và vì có rất nhiều công cụ sẵn có hỗ trợ đắc lực cho kẻ tấn công là Flood Attack, chủ yếu thông qua các website
Về nguyên tắc, các website đặt trên máy chủ khi chạy sẽ tiêu lượng tài nguyên máy chủ nhất định, nhất là lượng bộ nhớ (RAM) và bộ vi xử lý (CPU) Dựa vào việc tiêu hao đó, những kẻ tấn công đơn giản là dùng các phần mềm như smurf chẳng hạn để liên tục yêu cầu máy chủ phục vụ trang web đó để chiếm dụng tài nguyên Cách tấn công này tuy không làm máy chủ ngừng cung cấp dịch vụ hoàn toàn nhưng sẽ làm cho tốc độ phục vụ của toàn bộ hệ thống giảm mạnh, người dùng sẽ cảm nhận rõ ràng việc phải chờ lâu hơn để trang web hiện ra trên màn hình Nếu thực hiện tấn công ồ ạt và có sự phối hợp nhịp nhàng, phương thức tấn công này hoàn toàn có thể làm tê liệt máy chủ trong một thời gian dài.
2.1.1.c Tấn công bằng gói dị hình:
Tấn công dạng này attacker sẽ yêu cầu zombie gửi những gói IP có hình thức không đúng đến máy victim Có 2 loại tấn công theo phương pháp này Thứ nhất, những gói này có địa chỉ nguồn và địa chỉ đích
giống nhau Nó làm cho hệ điều hành bị đảo lộn và sụp đổ (Land
Attack) Thứ 2 là thiết lập tất cả các trường chất lượng dịch vụ trong gói
Trang 12IP bằng 1 để hệ thống nạn nhân phải tốn nhiều thời gian để phân tích
gói (Teardrop Attack) Nếu như agent gửi nhiều gói IP theo phương
pháp tấn công này, hệ thống victim phải xử lý nhiều, kết quả là nó shut down
2.1.2 Tấn công chiếm dụng băng thông (Bandwidth Depletion): Có 2 loại tấn công chính:
- Thứ nhất là làm ngập bằng cách gửi liên tục các gói tin có kích thước lớn đến hệ thống nạn nhân, làm nghẽn băng thông nạn nhân
- Thứ hai là sử dụng mạng khuếch đại, attacker hay zombie gửi thông tin đến một địa chỉ broadcast (phát quảng bá), tất cả hệ thống trong mạng con victim trong phạm vi bởi địa chỉ broadcast sẽ gửi lại hệ thống nạn nhân một thông điệp phản hồi cho máy victim chấp nhận trao đổi dữ liệu Phương pháp này khuếch đại dòng lưu lượng làm cho hệ thống nạn nhân giảm băng thông đáng kể.
2.1.2.a Tấn công ngập lụt (Flood attack):
Trong một cuộc tấn công làm lụt DDoS, các zombie sẽ gửi một số
lượng lớn các gói tin đến máy victim làm khả năng thực thi, chậm máy hay tràn ngập băng thông mạng Điều này khiến cho người dùng hệ thống hợp pháp bị cản trở truy cập vào hệ thống victim.
n c ôn g n g ậ p lụt b ằ ng UD P:
-UDP (User Datagram Protocol – giao thức dữ liệu người dùng) là
Trang 13một giao thức hướng không kết nối Có nghĩa là khi những gói tin truyền bằng giao thức này, không có một cơ chế bắt tay nào giữa bên gửi và bên nhận, và hệ thống bên nhận khi nhận được gói tin sẽ phải xử lý nó Khi gửi một số lượng lớn các gói tin UDP đến hệ thống nạn nhân có thể gây ra tràn ngập mạng, làm suy yếu mạng.
-Khi tấn công DDoS dạng UDP, những gói tin UDP được gửi qua những port ngẫu nhiên hoặc được chỉ định một port nào đó Thường thì công việc thực hiện là những port ngẫu nhiên để nó bao quát toàn diện hơn Kết quả là victim sẽ phải xử lý những gói đi vào nó để cố gắng xác định xem có ứng dụng nào yêu cầu không Nếu hệ thống victim không có ứng dụng nào nằm trên port đích, hệ thống victim sẽ gửi gửi một gói ICMP đến nơi gửi với thông điệp là “destination port unreachable”.
-Thông thường, công cụ tấn công DDoS sẽ giả địa chỉ IP nguồn của gói dữ liệu Vì thế nó làm ẩn danh hệ thống máy nạn nhân phụ, do đó các gói trả về từ máy victim sẽ không đến được zombie, mà nó đến một máy tính khác nào đó.
Đôi khi tấn công ngập lụt UDP cũng có thể làm đầy băng thông của những kết nối xung quanh hệ thống victim (phụ thuộc vào kiến trúc mạng và tốc độ đường truyền) Vì thế có thể những hệ thống kết nối gần hệ thống victim gặp vấn đề trong kết nối của họ.
n c ôn g n g ậ p lụt b ằ ng I CMP:
-Những gói tin ICMP (Internet Control Message Protocol – giao thức
Trang 14thông điệp vận chuyển Internet) được thiết kế cho tính năng quản lý chẳng hạn như xác định thiết bị mạng và xác định số hop (hop là thuật ngữ nói lên gói tin sẽ đi qua một thiết bị định tuyến chẳng hạn như qua một router thì router gọi là hop) hay thời gian di chuyển từ nguồn đến đích Ví dụ, gói tin ICMP_ECHO_REPLY (ping) cho phép người dùng gởi yêu cầu đến hệ thống đích và nhận đáp ứng với thời gian đã đi đến đích
-Tấn công DDoS làm ngập ICMP xuất hiện khi zombie gởi số lượng lớn các gói tin ICMP_ECHO_REPLY đến hệ thống nạn nhân Dấu hiệu của những gói tin này là phản hồi (reply) Cũng giống như tấn công làm ngập UDP, địa chỉ IP nguồn bị giả mạo.
-Một cuộc tấn công khuếch đại DDoS nhắm vào việc sử dụng tính chất của địa chỉ IP broadcast được tìm thấy trong hầu hết các router để khuếch đại và phản xạ sự tấn công (xem hình 1.10) Tính năng này cho phép một hệ thống bên gửi phát một địa chỉ IP broadcast đến nơi nhận Bộ định tuyến nơi nhận sẽ chuyển các gói tin đến tất cả địa chỉ IP nằm trong dãy địa chỉ broadcast.
-Đối với loại tấn công DDoS này, attacker có thể gởi trực tiếp thông điệp broadcast, hoặc attacker sử dụng những agent để gởi thông điệp broadcast nhằm tăng thêm dòng lưu lượng Nếu attacker gửi một cách trực tiếp, loại tấn công này sẽ dùng những hệ thống nằm trong dãy địa chỉ broadcast làm zombie mà không cần phải thâm nhập chúng hay cài đặt phần mềm zombie Có 2 loại tấn công được biết đến đó là : Smurf và Fraggle.
Trang 15Hình 4: Mô hình tấn công khuếch đại
• Tấn công Smurf:
Attacker gửi những gói tin đến mạng khuếch đại (hệ thống hỗ trợ định vị broadcast) với địa chỉ IP giả mạo là địa chỉ của máy victim Những gói tin tấn công có dạng ICMP ECHO REQUEST, Những gói tin này (dạng “ping”) yêu cầu bên nhận phản hồi lại với gói tin ICMP ECHO REPLY Bộ khuếch đại gửi những gói ICMP ECHO REQUEST đến tất cả hệ thống nằm trong dãy địa chỉ broadcast, mỗi một hệ thống trên sẽ đáp ứng ICMP ECHO REPLY đến địa chỉ máy victim.
Trang 16• Tấn công Fraggle
Fraggle tấn công tương tự như Smurf , nó cũng gửi các gói tin đến mạng khuếch đại Nhưng khác nhau ở chỗ, Fraggle sử dụng gói UDP ECHO thay vì ICMP ECHO như Smurf Có một sự biến đổi trong tấn công Fraggle đó là những gói UDP ECHO được gửi đến cổng có hỗ trợ dạng “tự động sinh ra ký tự” (character generator) tại những máy nằm trong dãy địa chỉ broadcast (thường là cổng 19 trong những hệ thống Unix), cùng lúc đó địa chỉ đã bị giả mạo là dịch vụ hồi đáp (echo service, port 7 trên Unix) của máy victim để nó tạo ra một vòng lặp vô hạn Mỗi một hệ thống trên sẽ sinh ra một ký tự gửi đến dịch vụ hồi đáp trong máy victim, victim sẽ trả về một gói hồi đáp đến character generator, và cứ tiếp tục lặp lại như vậy Loại tấn công này thậm chí cón nguy hiểm hơn Smurf.
Tấn công DDoS là một biến thể của DoS, với sự tham gia của nhiều máy tính, hàng trăm thậm chí hàng ngàn, các máy tính này chịu sự giám sát của attacker Nói về kỹ thuật tấn công thì nó giống hoàn toàn DoS, nhưng một điểm khác biệt đó là quy mô tổ chức rất lớn, có sự phân tần (classes) rõ ràng Và đồng loạt tấn công khi nhận được lệnh cũng như kết thúc.
Có thể tóm gọn mô hình tấn công như sau :