tấn công DDoS là lại tấn công phổ biến nhất trên thế giới và cũng vì dễ thực hiện nhất. Hôm nay chúng ta sẽ cùng tìm hiểu cách giảm thiểu tối đa, tạm giảm bớt rủi ro khi bị tấn công DDos.

Cách phòng chống tấn công DDoS cho website laravel

2020-11-19 2406 lượt xem

DoS hay DDoS là gì?

Một cuộc tấn công từ chối dịch vụ (tấn công DoS - viết tắt của Denial of Service) hay tấn công từ chối dịch vụ phân tán (tấn công DDoS - viết tắt của Distributed Denial of Service) là một nỗ lực làm cho những người dùng không thể sử dụng tài nguyên của một máy tính.

trích: wikipedia

Bằng các công cụ gây án như phim "Cô văn Nam" hung thủ tìm càng nhiều thiết bị cùng reqquest tới server cùng lúc gây nghẽn đường truyền => 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.

dos-vs-ddos-attack-1020x570.png (1020×570)

Tại sao website của bạn cần được bảo vệ trước DDoS?

số liệu thống kê như sau: 

 

Các cuộc tấn công DDoS thường có chủ đích nhắm vào các tổ chức, doanh nghiệp có quy mô, tầm ảnh hưởng lớn. Một trong số cuộc tấn công DDoS đáng chú ý trên thế giới có thể kể đến như: Cuộc tấn công DDoS đối với Amazon Web Service (AWS) vào tháng 2/2020.

Đây là cuộc tấn công DDoS mạnh mẽ nhất từ trước tới nay nhắm vào một khách hàng sử dụng nền tảng AWS.

Đã có ​​hàng triệu cuộc tấn công trên khắp thế giới. Và đặc biệt là sức mạnh của chúng cũng đang tăng lên đáng kể. Thậm chí các cuộc tấn công với lưu lượng 500 gigabyte mỗi giây (Gbps) ngày càng phổ biến.

chắc thằng chủ thớt không nói tao đâu😂😂😂

đừng hy vọng bạn sẽ rơi vào ô mất lượt nếu bạn không tìm hiểu cách quay sổ số 😂. thực tế có quá nhiều cuộc tấn công tương tự và giải pháp hạn chế thì ngay bên dưới mình sẽ trình bày. 

 

bắt đầu thôi😏

1. giảm thiểu việc tải các tài nguyên.

là 1 web developer bạn sẽ không thoát khỏi bootstrap. đọc đến đây bạn thông minh cũng hiểu cần dùng CDN rồi chứ gì. thay vì download về, bạn dùng CDN thì sẽ có lợi hơn. nhưng mà nói tóm lại tại sao dùng CDN? vì giảm càng nhiều các reqquest đến server thì càng đỡ bị tải quá nhiều => server không sập.

2.Rate Limit Requests

Rate Limit là một phương phát để ngăn chặn vệc tấn công DDoS(Distributed Denial of Service) bằng việc cố gắng gửi nhiều request cùng lúc.

Trong laravel cung cấp một middleware là throttle. Chẳng hạn nếu bạn gửi 1 request lên server qua API thì sẽ nhận được 1 response trong headers là:

Route::group(['prefix' => 'api', 'middleware' => 'throttle'], function () {
    Route::get('people', function () {
        return Person::all();
    });
});

 

Call api/people:

HTTP/1.1 200 OK
... other headers here ...
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 59

 

Nghĩa là request đã thành công và sẽ còn 59 request nữa trong 1 phút cho chúng ta call. Vậy nếu trong 1 phút ta call vượt 60 thì sao?

HTTP/1.1 429 Too Many Requests
... other headers here ...
Retry-After: 60
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 0

 

Không được vui cho lắm nhỉ? 429 — quá nhiều request. Nếu đợi sau 30 giây nữa mới call tiếp thì sẽ thế nào?

HTTP/1.1 429 Too Many Requests
... other headers here ...
Retry-After: 30
X-RateLimit-Limit: 60
X-RateLimit-Remaining: 0

 

Phản hồi tương tự, ngoại trừ bộ đếm thời gian Retry-After cho chúng ta biết thời gian chờ đợi đã giảm xuống 30 giây. Sau 30 bạn sẽ được thực hiện request như bình thường. Điều này giúp cho các hệ thống, apis không bị tấn công bằng việc gửi quá nhiều request nữa.

chú ý Trong file Kernel của laravel có cái này 'throttle:60,1', bạn copy đưa lên chỗ web 1 cái như hình nè 

khi đó cứ 1 phút bạn chỉ đc reqquest 10 lần, quá 10 lần sẽ hiện lỗi  429 | Too Many Requests muốn hiện thị đẹp đẹp tí thì vào thư mục error trong views laravel thêm file html lỗi 429.blade.php vào mà sửa.

thông qua cách này chúng ta chặn đc vài cái nhỏ nhỏ trong DDoS thôi 

  1. Chặn địa chỉ IP đáng ngờ
  2. Bảo mật tài khoản người dùng
  3. Bảo mật đăng nhập người dùng
  4. Bảo mật đăng ký người dùng
  5. Bảo mật cơ sở dữ liệu
  6. Bảo mật hệ thống tập tin
  7. Chức năng danh sách đen
  8. Chức năng tường lửa
  9. Chặn tấn công Login Brute Force
  10. Quét bảo mật toàn hệ thống
  11. Chống spam trong bình luận

thế còn 1 nùi cái còn lại thì sao? tại hạ xin trả lời là có trời mới biết vì DDoS rất rộng. Mình từng gặp 1 anh lớn tuổi nói là web anh ấy làm không bao giờ bị hack. tư tưởng sai lầm với DDoS, vì nãy giờ đang nói tới là 1 IP bạn ạ. nếu 1 IP gọi tới server thì chặn mẹ cái IP đó đi là xong nhưng đời không như là mơ bạn sẽ không chặn hết đc IP hoặc giang hồ chơi chiến thuật chạy máy ảo giả lập trình duyệt thay đổi IP và thay luôn Web proxy? chúc mừng chúng ta chỉ có thể hạn chế bằng Security & Firewall, hosting/server có chức năng chống DDoS, vân vân mà mây mây 

bài viết trong chủ đề