Ping of Death (PoD) là một kiểu tấn công từ chối dịch vụ mà trong đó kẻ tấn công cố gắng phá hủy, gây mất ổn định, hoặc đóng băng máy tính hoặc dịch vụ mục
Bùi Trung Thành – CB120730 – KTTT22012B Trang 23
tiêu bằng việc gửi các gói tin dị dạng hoặc quá kích thƣớc sử dụng lệnh ping đơn giản.
Thông thƣờng tấn công PoD khai thác các điểm yếu mang tính kế thừa, mà có thể đã đƣợc vá trong các hệ thống mục tiêu. Tuy nhiên, trong các hệ thống chƣa đƣợc vá, kiểu tấn công này vẫn phù hợp và nguy hiểm. Gần đây, một kiểu tấn công PoD mới đã trở nên phổ biến. Kiểu tấn công này, thƣờng đƣợc biết đến là Ping Flood, hệ thống mục tiêu bị tấn công với các gói tin ICMP đƣợc gửi rất nhanh qua cơ chế ping mà không đợi phản hồi.
Kích thƣớc của một gói tin IPv4 với định dạng chính xác bao gồm IP Header là 65535 byte, bao gồm kích thƣớc tải tổng cộng là 84 byte. Rất nhiều hệ thống máy tính đơn giản trong lịch sử không thể xử lý các gói tin lớn và bị phá hủy nếu nhận đƣợc chúng. Lỗi này dễ dàng đƣợc sử dụng để tấn công trong thời kỳ đầu triển khai TCP/IP trên diện rộng của các hệ điều hành bao gồm Windows, Mac, Unix, Linux, cũng nhƣ các thiết bị mạng là máy tin và router.
Hình 6: Cơ chế tấn công Ping of Death.
Với một gói tin ping với kích thƣớc lớn hơn 65535 byte vi pham giao thức IP, những kẻ tấn công sẽ gửi các gói tin dị dạng thông qua việc phân mảnh. Khi hệ thống mục tiêu cố gắng ghép nối các mảnh và lấy đƣợc một gói tin quá kích thƣớc, tràn bộ nhớ xuất hiện và dẫn tới các lỗi hệ thống nghiêm trọng bao gồm việc bị phá hủy.
Tấn công PoD đặc biệt hiệu quả do nhận dạng của kẻ tấn công có thể dễ dàng giả mạo. Xa hơn, một kẻ tấn công PoD không cần kiến thức chi tiết về hệ thống mục tiêu ngoại trừ địa chỉ IP. Điều này là đáng chú ý đối với cách tấn công này,
Bùi Trung Thành – CB120730 – KTTT22012B Trang 24
mặc dù vẫn có thể tìm ra cách tốt nhất để tấn công bằng PoD. PoD hiện nay có thể tấn công bằng bất kỳ những gì đƣợc gửi trong một cấu trúc IP – ICMP echo, TCP, UDP và IPX.
Để ngăn chặn tấn công PoD và các biến thể của nó, rất nhiều site khóa các bản tin ICMP Ping tại firewall. Tuy nhiên phƣơng pháp này không khả thi trong thời gian dài.
Đầu tiên, tấn công các gói tin không hợp lệ có thể đƣợc thực hiện trực tiếp tại bất kỳ cổng lắng nghe nào, chẳng hạn nhƣ cổng FTP, và bạn có thể không muốn khóa tất cả chúng vì lý do hoạt động.
Xa hơn, với việc khóa các bản tin Ping, bạn đã ngăn chặn việc sử dụng ping hợp lệ nhƣ ping kiểm tra kết nối.
Phƣơng pháp thông minh hơn là khóa có chọn lựa các gói tin ping phân mảnh, cho phép các lƣu lƣợng ping thật có thể truyền qua mà không bị cản trở. 1.3.3.3. SYN Attack
TCP SYN Flood là một kiểu tấn công DdoS, trong đó tấn công nhằm vào một phần của phƣơng thức bắt tay 3 bƣớc TCP để tiêu thụ các tài nguyên trên máy chủ mục tiêu và làm cho chúng không thể đáp ứng.
Chủ yếu trong tấn công SYN Flood, kẻ tấn công gửi các yêu cầu kết nối TCP nhanh hơn so với khả năng xử lý của hệ thống mục tiêu, dẫn đến mạng bị bão hòa.
Khi một Client và máy chủ thiết lập một kết nối TCP thông thƣờng, việc trao đổi diễn ra nhƣ sau:
Bùi Trung Thành – CB120730 – KTTT22012B Trang 25
Hình 7: Cơ chế bắt tay 3 bƣớc TCP.
1. Client yêu cầu kết nối bằng việc gửi bản tin SYN tới máy chủ. 2. Máy chủ xác nhận bằng việc gửi bản tin SYN-ACK trở lại Client. 3. Client phản hồi với bản tin ACK, và kết nối đƣợc thiết lập.
Trong tấn công SYN Flood, kẻ tấn công gửi liên tục các gói tin SYN tới mọi cổng trên máy chủ mục tiêu, thông thƣờng sử dụng một địa chỉ IP giả mạo. Máy chủ, không biết về cuộc tấn công, nhận các yêu cầu là hợp pháp để thiết lập kết nối. Máy chủ phản hồi tới mỗi cố gắng kết nối (từ mỗi cổng mở) với một gói tin SYN- ACK.
Những Client giả mạo này không gửi ACK kỳ vọng lại cho máy chủ, hoặc nếu địa chỉ IP bị giả mạo thì các bản tin SYN-ACK không bao giờ đƣợc nhận đúng. Theo cách đó, máy chủ chịu cuộc tấn công sẽ đợi xác nhận ACK trả về cho các bản tin SYN-ACK gửi đi trong một khoảng thời gian. Trong thời gian này, máy chủ không thể đóng kết nối, do đó kết nối vẫn đƣợc giữ mở. Trƣớc khi kết nối có thể timeout, một gói tin SYN khác sẽ đến. Điều này dẫn tới sự gia tăng nhanh chóng của kết nối ―half-open‖ (kết nối đang chờ ACK). Kiểu tấn công này cũng đƣợc gọi là tấn công ―half-open‖. Sau cùng, bảng kết nối trên máy chủ bị tràn đầy, dịch vụ từ các Client hợp lệ sẽ bị từ chối, và máy chủ thậm chí có thể gặp sự cố hoặc phá hủy. Trong các hệ điều hành hiện đại, việc quản lý tài nguyên đã đƣợc trang bị tốt hơn, điều này làm cho chúng khó khăn hơn để tràn bảng kết nối, tuy nhiên các máy chủ vẫn có nguy cơ bị tấn công SYN Flood.
Bùi Trung Thành – CB120730 – KTTT22012B Trang 26
Sau đây là một số kỹ thuật giúp hạn chế tấn công SYN Flood, bao gồm:
Micro block: ngƣời quản trị có thể cấp phát một bản ghi micro ( ít hơn 16 byte) trong bộ nhớ máy chủ cho mỗi yêu cầu SYN đến cho đến khi hoàn thành kết nối.
SYN cookie: sử dụng mật mã băm, máy chủ gửi phản hồi SYN-ACK của mình với một số thứ tự, đƣợc xây dựng từ địa chỉ IP của Client, số cổng, và các thông tin nhận dạng có thể. Khi Client phản hồi, số thứ tự này đƣợc bao gồm trong bản tin ACK. Máy chủ kiểm tra ACK và chỉ cấp phát bộ nhớ cho kết nối đúng.
RST cookie: đối với yêu cầu đầu tiên từ Client, máy chủ chủ động gửi một SYN-ACK không hợp lệ. Điều này dẫn tới kết quả là Client phải tạo ra một gói tin RST để thông báo cho máy chủ là có lỗi. Nếu gói tin RST đƣợc nhận, máy chủ biết rằng yêu cầu là hợp lệ, ghi nhớ Client và chấp nhận các kết nối từ Client này.
Stack tweaking: ngƣời quản trị có thể tinh chỉnh các ―stack‖ TCP để hạn chế ảnh hƣởng của SYN Flood. Điều này có thể là giảm thời gian timeout cho đến khi một ―stack‖ bộ nhớ trống để cung cấp tới một kết nối, hoặc lựa chọn rớt các kết nối đến.
Chắc chắn, tất cả các phƣơng thức đề cập ở trên sẽ giúp mạng mục tiêu có khả năng tin cậy để xử lý lƣợng lớn tấn công DdoS, với lƣu lƣợng dữ liệu hàng chục Gigabit (thậm chí hàng trăm) trên giây.
1.3.3.4. Teardrop Attack
Một tấn công Teardrop là một tấn công từ chối dịch vụ đƣợc tiến hành bằng cách ghép mã các phân mảnh TCP/IP. Tấn công này là do các gói tin phân mảnh bị chồng lấn lẫn nhau tại nơi nhận; nơi nhận cố gắng tái xây dựng lại các gói tin phân mảnh trong suốt quá trình nhƣng không đƣợc. Với tải hàng Giga đƣợc gửi tới hệ thống mục tiêu sẽ gây ra phá hủy hệ thống.
Tấn công Teardrop khai thác việc ghép nối của các gói tin IP phân mảnh. Trong IP Header, một trong các trƣờng là trƣờng độ lệch phân mảnh, chĩ rõ vị trí
Bùi Trung Thành – CB120730 – KTTT22012B Trang 27
bắt đầu, độ lệch, hoặc các dữ liệu bao gồm trong bản tin phân mảnh có liên quan tới dữ liệu của gói tin chƣa phân mảnh.
Hình 8: Định dạng Header gói tin IP.
Khi tổng độ lệch của offset và kích thƣớc của một gói tin phân mảnh khác với gói tin phân mảnh kế tiếp, dẫn đến các gói tin bị chồng lấn, và máy chủ phải cố gắng phục hồi lại các gói tin có thể bị phá hủy.
Kiểu tấn công này rất phổ biến trên các phiên bản Windows cũ, tuy nhiên tấn công Teardrop có thể thực hiện trên hệ thống chạy Windows 7 hoặc Vista mà cho phép SMB. Nguy cơ này trên hai hệ điều hành đƣợc chú ý vào năm 2009, nhƣng hệ điều hành Windows 2000 và XP lại không có nguy cơ kiểu này, do tấn công này chỉ khai thác cổng 139 và 445 trên firewall của hệ thống cho phép SMB. Nếu ngƣời dùng không có bản vá để bảo vệ chống lại tấn công DoS này thì có thể vô hiệu SMBv2 và khóa cổng 139 và 445, theo nhƣ lời khuyên từ Microsoft.
1.3.3.5. Smurf Attack
Tấn công Smurf là một kiểu tấn công từ chối dịch vụ khai thác địa chỉ IP Broadcast. Kẻ tấn công sử dụng một chƣơng trình gọi là Smurf để gây ra cuộc tấn công vào mạng khiến nó không thể hoạt động. Các khai thác của Smurf đã đƣợc biết đến là lợi dụng đặc tính của IP và ICMP. ICMP đƣợc sử dụng bởi các nốt mạng
Bùi Trung Thành – CB120730 – KTTT22012B Trang 28
và ngƣời quản trị để trao đổi thông tin về trạng thái của mạng. ICMP có thể đƣợc sử dụng để ping đến các nốt khác để biết chúng đang hoạt động hay không. Một nốt đang hoạt động trả về một bản tin echo trong phản hồi của bản tin ping.
Chƣơng trình Smurf xây dựng một gói tin mạng mà xuất hiện bắt nguồn từ một địa chỉ IP giả mạo là địa chỉ Broadcast và hƣớng đến địa chỉ của nạn nhân. Khi Router nhận đƣợc bản tin Ping chứa địa chỉ Broadcast thì sẽ gửi tới tất cả các thiết bị trong mạng. Các thiết bị sẽ phản hồi echo của bản tin ping tới địa chỉ của nạn nhân. Các bản tin ping và bản tin echo đủ nhiều có thể làm tràn mạng, khiến cho nó không thể sử dụng cho các lƣu lƣợng thật.
Attacker Router Device
Device Device Device Device Victim To: 1.1.1.255 From: 9.9.9.9 To: 1.1.1.2 From: 9.9.9.9 To: 1.1.1.3 From: 9.9.9.9 To: 1.1.1.4 From: 9.9.9.9 To: 1.1.1.5 From: 9.9.9.9 To: 1.1.1.6 From: 9.9.9.9 To: 9.9.9.9 From: 1.1.1.6 To: 9.9.9.9 From: 1.1.1.5 To: 9.9.9.9 From: 1.1.1.4 To: 9.9.9.9 From: 1.1.1.3 To: 9.9.9.9 From: 1.1.1.2
Hình 9: Cơ chế tấn công Smurf.
Một phƣơng pháp để hạn chế Smurf là vô hiệu hóa các địa chỉ IP Broadcast tại mỗi router trên mạng vì nó rất hiếm khi đƣợc sử dụng.
1.4. Phòng chống tấn công từ chối dịch vụ
Tấn công từ chối dịch vụ là một tấn công rất nguy hiểm, có thể gây tổn hại rất lớn cho hệ thống. Tuy nhiên tấn công này có thể đƣợc hạn chế rất nhiều nếu chúng ta áp dụng đầy đủ các biện pháp phòng chống. Các biện pháp phòng chống tấn công từ chối dịch vụ bao gồm:
Bùi Trung Thành – CB120730 – KTTT22012B Trang 29
Xây dựng và bảo vệ hệ thống.
Đảm bảo các yếu tố con ngƣời.
1.4.1. Cơ chế phòng thủ
Hình 10: Phân loại các dạng phòng thủ tấn công từ chối dịch vụ [2].
Các cơ chế phòng thủ rất đa dạng, tuy nhiên có thể đƣợc chi làm 4 dạng chính sau theo tác dụng: ngăn chặn, phát hiện, phản ứng, chịu đựng. Ngăn chặn
thực hiện việc chấm dứt các tấn công từ chối dịch vụ có thể hoặc ngăn chặn dựa trên bất kỳ dấu hiệu phá hủy nào. Phát hiện có thể đƣợc chia thành phát hiện tấn công và nhận dạng nguồn tấn công. Phát hiện tấn công giám sát và phân tích các sự kiện trong hệ thống để tìm ra các nguy hiểm có thể dẫn tới từ chối dịch vụ. Nhận dạng nguồn tấn công nhằm định vị nguồn tấn công bất kể việc trƣờng địa chỉ nguồn của yêu cầu nguy hiểm đã bị làm sai lệch thông tin. Phản ứng thƣờng đƣợc khởi tạo sau khi phát hiện một tấn công nhằm để loại bỏ hoặc tối thiểu hóa tác động của tấn công tới nạn nhân. Chịu đựng nhằm để tối thiểu hóa hủy hoại gây ra bới tấn công từ chối dịch vụ mà không thể phân biệt các hoạt động nguy hiểm. Cơ chế này chỉ đơn thuần cần biết hoạt động của hệ thống dƣới cuộc tấn công để khởi tạo các cơ chế chịu đựng.
Bốn cơ chế chính đƣợc chia tiếp thành các kiểu khác nhau nhƣ sau theo sự tƣơng đồng về giải pháp nhƣ sau:
Bùi Trung Thành – CB120730 – KTTT22012B Trang 30
Ngăn chặn: lọc các gói tin giả mạo, tự chứng nhận địa chỉ, bảo mật thông qua lớp phủ.
Phát hiện: dựa trên dấu hiệu, dựa trên bất thƣờng, nhận dạng nguồn tấn công.
Phản ứng: lọc và giới hạn tốc độ, năng lực.
Chịu đựng: chính sách nghẽn, chịu đựng lỗi, tính toán tài nguyên.
Các tấn công từ chối dịch vụ có thể đƣợc phòng thủ tại các điểm khác nhau trên mạng, do đó cơ chế phòng thủ có thể đƣợc chia theo vị trí triển khai: gần nạn nhân, giữa mạng, gần nguồn tấn công và nhiều vị trí.
Hình 11: Mô hình mạng.
1.4.2. Xây dựng và bảo vệ hệ thống
Một số biện pháp cần thực hiện trong việc xây dựng và bảo vệ hệ thống chống lại các cuộc tấn công từ chối dịch vụ gồm:
Thiết lập hệ thống có bảo mật và firewall,
Thiết lập các chính sách quản lý,
Giám sát các thông tin truy xuất đến hệ thống,
Bùi Trung Thành – CB120730 – KTTT22012B Trang 31
Xây dựng hệ thống thông tin qua nhiều bƣớc theo dõi, và kiểm định chặt chẽ từ phần cứng và phần mềm.
1.4.3. Yếu tố con người
Ngoài các yếu tố kỹ thuật, yếu tố con ngƣời cũng là một vấn đề phải chú ý để đảm bảo phòng thủ trƣớc các cuộc tấn công từ chối dịch vụ
Hình thành đội ngũ an toàn thông tin chịu trách nhiệm xử lí các tình huống nguy hại phát sinh,
Đào tạo ý thức của các nhân viên có tƣơng tác với hệ thống, nhằm phòng tránh các cuộc tấn công từ bên trong.
1.5. Một số tấn công từ chối dịch vụ điển hình
Trong quá khứ đã từng xảy ra các vụ tấn công DoS đặc biệt nghiêm trọng với các website thƣơng mại hàng đầu thế giới, có tính bảo mật rất cao nhƣ Amazon, Yahoo, eBay, Microsoft… gây thiệt hại hàng triệu USD. Theo tờ The New York Times, tổ chức Spamhaus là một tổ chức chịu trách nhiệm duy trì danh sách đen (black list) các máy chủ đang gửi thƣ spam trên toàn cầu, nhƣng vào tháng 7/2013 cũng phải chịu cuộc tấn công từ chối dịch vụ dƣới hình thức DDoS với lƣu lƣợng lớn nhất lịch sử Internet. Có thời điểm, lƣu lƣợng đạt đỉnh khoảng 300 Gbps (tƣơng ứng 37 GB/s). Qua điều tra, xác minh, cơ quan chủ quản đã xác định hệ thống máy chủ DNS của Spamhaus đã hứng chịu một lƣợng khổng lồ các đợt tấn công từ những mạng máy tính ma (botnets) từ các tổ chức tin tặc châu Âu. Trong khi đó, tại Việt Nam, tổng lƣu lƣợng Internet của nƣớc ta chỉ khoảng 361 Gbps. Nhƣ vậy, trong trƣờng hợp, hệ thống mạng máy tính của Việt Nam bị tấn công với lƣu lƣợng giống nhƣ máy chủ DNS của Spamhaus phải hứng chịu, thì mạng lƣới Internet của Việt Nam sẽ nhanh chóng bị cô lập với Internet của thế giới. Tại Việt Nam, theo thống kê của Bkav cho thấy, trung bình mỗi tuần có 1 – 2 cuộc tấn công từ chối dịch vụ vào các website phổ biến, trong đó tập trung vào các website thƣơng mại điện tử, website công nghệ, báo điện tử có nhiều ngƣời truy cập. Từ năm 2010 đến nay, hầu nhƣ năm nào cũng chứng kiến các cuộc tấn công vào nhiều tờ báo điện tử
Bùi Trung Thành – CB120730 – KTTT22012B Trang 32
phổ biến nhƣ Vietnamnet, Tuoitre, Dantri, Kênh14… dẫn đến tắc nghẽn đƣờng truyền, việc truy cập của ngƣời dùng hợp pháp bị gián đoạn. Đặc biệt, theo ghi nhận của Bkav, cuộc tấn công vào Vietnamnet năm 2011 với cƣờng độ 1,5 triệu kết nối tại cùng một thời điểm là cuộc tấn công lớn nhất. Trong hai năm 2012-2013, Trung