Ứng dụng web rất dễ bị tổn thương do các cuộc tấn công từ chối dịch vụ (DoS). Tấn công từ chối dịch vụ vào ứng dụng web được định nghĩa là các tấn công làm tê liệt ứng dụng, làm cho các truy cập hợp lệ không thể được tiến hành.
Đa số máy chủ web chỉ có thể xử lý hỗ trợ một số lượng nhất định người sử dụng trong điều kiện bình thường. Một hacker có thể tạo ra nhiều truy cập đồng thời từ một máy để tấn công ứng dụng. Sử dụng load balancing sẽ gây khó khăn cho các cuộc tấn công kiểu này, tuy nhiên không thể ngăn ngừa hoàn toàn nếu có quá nhiều truy cập cùng lúc.
Một dạng khác của tấn công DoS ứng dụng web dựa trên các lỗi trong chức năng của ứng dụng. Ví dụ một ứng dụng sử dụng cơ chế tài khoản trong một tiếng hoặc hơn nếu nhận được quá ba lần mật khẩu sai. Hacker có thể lợi dụng điểm yếu này, gửi đến quá ba lần sai mật khẩu của một tài khoản hợp lệ, hậu quả là người dùng của tài khoản này không thể truy cập được trong một tiếng hoặc hơn.
Trong một cuộc tấn công từ chối dịch vụ điển hình vào ứng dụng web, hackers sẽ tìm cách chiếm gần hết nguồn tài nguyên hệ thống trên máy chủ hoặc ứng dụng, hậu quả là người sử dụng hợp lệ không thể truy cập vào ứng dụng. tài nguyên hệ thống bao gồm: băng thông, số lượng truy cập đồng thời cơ sở dữ liệu, dung lượng trống ổ cứng, CPU, dung lượng bộ nhớ RAM, threads, và các nguồn tài nguyên khác liên quan đến ứng dụng.
Hình 1.25. Tấn công từ chối dịch vụ
Hình 1.25 mô tả một cuộc tấn công từ chối dịch vụ ứng dụng web điển hình. Trong tấn công này, hacker lợi dụng vào điểm yếu của ứng dụng cho phép truy cập đến cơ sở dữ liệu (CSDL) từ bất kỳ kết nối nào, ngay cả những truy cập không được xác thực. Giả định là ứng dụng chỉ có thể xử lý tối đa 1000 truy cập cùng lúc đến CSDL, hacker sẽ gửi đến ứng dụng hơn 1000 kết nối đồng thời, tạo ra hơn 1000 truy cập đến CSDL, hậu quả là ứng dụng bị tê liệt, không thể đáp ứng các truy cập hợp lệ từ người sử dụng.