Tìm hiểu về tấn công DDoS
Bài đăng này đã không được cập nhật trong 8 năm
Ngày 21/10/2016 vừa rồi, Internet một nửa nước Mỹ đã bị mất khi các hacker tung ra một cuộc tấn công từ chối dịch vụ (DDoS) quy mô lớn, nhằm vào các máy chủ của Dyn, một nhà cung cấp DNS chủ yếu. Hiện vẫn chưa rõ người thực hiện của các cuộc tấn công này là ai, nhưng sự việc xảy ra cho thấy các trang web lớn có thể bị xóa sổ dễ dàng như thế nào bởi các hacker.
Thật khủng khiêps khi biết rằng các trang web lớn như Twitter, Spotify, Reddit, WIRED và PayPal mất truy cập chỉ trong chốc lát (thậm chí có thể bị đánh sập). Cho đến hôm nay vẫn chưa biết được phương pháp mà các hacker đã sử dụng - ngoại trừ chi tiết rằng đây là một cuộc tấn công DDoS- nhưng việc hiểu được DNS là gì, và cách thức tấn công DDoS là rất quan trọng với người sử dụng.
1 - Giới thiệu về DoS
-
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 .
-
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.
- Lịch sử của các cuộc tấn công DDoS
Các cuộc tấn công DDoS bắt đầu từ những năm 90 của thế kỉ 20, đầu tiên chúng hoàn toàn chỉ đơn giản là những cuộc 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 thực hiện bằng các phương pháp đơn giản như 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, đó là 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 đ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).
Kể từ đó các cuộc tấn công DDoS thường xuyên xảy ra.
- Mục đích và hậu quả của các cuộc tấn công DDoS
-
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 cập vào.
-
Khi tấn công DoS xảy ra người dùng có cảm giác khi truy cập vào dịch vụ đó như bị:
-
Disable Network - Tắt mạng
-
Disable Organization - Tổ chức không hoạt động
-
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à…
- Làm thế nào để biết một cuộc tấn công đang xảy ra
Không phải tất cả các gián đoạn dịch vụ đều là tấn công DDoS. Có thể đó là vấn đề kĩ thuật với mạng lưới hoặc vấn đề người quản lý hệ thống thực hiện bảo trì. Tuy nhiên có một số dấu hiệu sau đây để ta có thể nhận biết là một cuộc tấn công DDoS:
- Mạng của bạn hay hệ thống bị chậm một cách bất thường.
- Một trang cụ thể nào đó của website không truy cập được
- Không thể truy cập vào trang website nào
- Gia tăng bất thường lượng thư rác mà bạn nhận được trong tài khoản từ hệ thống.
- Các hình thức tấn công DDoS cơ bản
- Smurf
- Buffer Overflow Attack
- Teardrop
- SYN Attack
5.1. Smurf
-
Smurf : là một loại tấn công DoS điển hình. Máy của attacker sẽ gởi rất nhiều lệnh ping đến một số lượng lớn máy tính trong một thời gian ngắn, trong đó địa chỉ IP nguồn của gói ICMP echo sẽ được thay thế bởi địa chỉ IP của nạn nhân, Các máy tính này sẽ trả lại các gói ICMP reply đến máy nạn nhân.
-
Kết quả đích tấn công sẽ phải chịu nhận một đợt Reply gói ICMP cực lớn và làm cho mạng bị rớt hoặc bị chậm lại, không có khả năng đáp ứng các dịch vụ khác.
5.2. Buffer Overflow Attack
-
Buffer Overflow xảy ra tại bất kỳ thời điểm nào có chương trình ghi lượng thông tin lớn hơn dung lượng của bộ nhớ đệm trong bộ nhớ.
-
Kẻ tấn công có thể ghi đè lên dữ liệu và điều khiển chạy các chương trình và đánh cắp quyền điều khiển của một số chương trình nhằm thực thi các đoạn mã nguy hiểm.
-
Quá trình gửi một bức thư điện tử mà file đính kèm dài quá 256 ký tự có thể sẽ xảy ra quá trình tràn bộ nhớ đệm.
5.3. Teardrop
-
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ý.
5.4. SYN Attack
-
Kẻ tấn công gửi các yêu cầu (request ảo) TCP SYN tới máy chủ bị tấn công. Để xử lý lượng gói tin SYN này hệ thống cần tốn một lượng bộ nhớ cho kết nối.
-
Khi có rất nhiều gói SYN ảo tới máy chủ và chiếm hết các yêu cầu xử lý của máy chủ.
Một người dùng bình thường kết nối tới máy chủ ban đầu thực hiện Request TCP SYN và lúc này máy chủ không còn khả năng đáp lại - kết nối không được thực hiện.
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 (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.
-
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 .
- Làm thế nào để tránh các vấn đề xảy ra
Thật không may là khó có cách để ngăn chặn triệt để các cuộc tấn công DoS hay DDoS, và hệ thống của bạn/ công ty bạn có thể là nạn nhân của các cuộc tấn công như thế này. Và hiện tại chúng ta chỉ có thể thực hiện những biện pháp làm giảm thiểu thiệt hại của các cuộc tấn công này bằng cách:
- Cài đặt và duy trì một phần mềm diệt virus
- Cài đặt một Firewall (tường lửa) và cấu hình nó để hạn chế các lưu lượng truy cập vào và đi từ máy tính của bạn.
- Thực hiện các thực hành bảo mật để phân tán cho địa chỉ Email của bạn. Áp dụng các bộ lọc thu điện tử có thể giúp bạn quản lý tốt hơn các lưu lượng truy cập không mong muốn đến địa chỉ email của bạn.
Hi vọng với bài viết này, các bạn đã phần nào hiểu được một số cách thức tấn công bằng DoS hay DDoS, từ đó có thể áp dụng các biện pháp phòng tránh và khắc phục cho mình.
Nguồn tham khảo:
http://www.mystown.com/2015/11/cac-ki-thuat-tan-cong-ddos-drdos-va_23.html
http://securitydaily.net/nhung-hieu-biet-ve-tan-cong-tu-choi-dich-vu-ddos/
All rights reserved