Web Security: Các mô hình kiến trúc website

Trong bài viết trước tôi đã trình bày về các lớp trong một ứng dụng web. Hôm nay tôi sẽ tiếp tục với bài viết về “Các mô hình kiến trúc website”. Mô hinh của một ứng dụng web được phân theo các lớp của hệ thống. Việc hiểu rõ các lớp trong một ứng dụng web giúp người phát triển dễ dàng phòng thủ hệ thống cũng như khi xâm nhập, đánh giá hệ thống.

Mô hình kiến trúc website 1 lớp

Mh1

Trong mô hình 1 lớp, các máy chủ phục vụ web, ứng dụng web, máy chủ cơ sở dữ liệu đều được thiết lập trên cùng một tài nguyên máy chủ như hình vẽ.

Ưu điểm: Dễ dàng cài đặt và không tốn nhiều tài nguyên.

Nhược điểm: Khi một lớp bị tin tặc tấn công và chiếm quyền kiểm soát có thể dẫn đến các lớp khác cũng bị ảnh hưởng theo. Tuy nhiên, sẽ gặp nhiều khó khăn trong quá trình vận hành và triển khai các biệp pháp bảo vệ cho ứng dụng.

Mô hình kiến trúc website 2 lớp

mh2

Khác với mô hình 1 lớp, trong mô hình 2 lớp này các máy chủ phục vụ web, ứng dụng web được thiết lập trên cùng một máy chủ, còn máy chủ cơ sở dữ liệu được thiết lập trên một máy chủ khác như hình vẽ.

Ưu điểm: Không tốn quá nhiều tài nguyên nhưng vẫn đảm bảo được một phần nào đó quá trình vận hành và bảo mật.

Nhược điểm: Máy chủ phục vụ web và ứng dụng web vẫn còn đặt chung trên một máy chủ nên khi máy chủ phục vụ web bị tin tặc tấn công và chiếm quyền kiểm soát, mã nguồn ứng dụng web bị lộ, điều này có thể dẫn đến máy chủ cở sở dữ liệu cũng có thể bị kiểm soát.

Mô hình kiến trúc website 3 lớp

mh3

Trong mô hình 3 lớp này, các máy chủ phục vụ web, ứng dụng web và máy chủ cơ sở dữ liệu đều được thiết lập trên mỗi máy chủ độc lập như hình vẽ.

Ưu điểm: Dễ dàng vận hành hệ thống và chủ động phòng, chống các nguy cơ tấn công từ tin tặc.

Nhược điểm: Tốn kém nhiều tài nguyên và quá trình cài đặt.

Mô hình kiến trúc website N lớp

mh4

Trong mô hình N lớp, mỗi máy chủ phục vụ web, ứng dụng web và máy chủ cơ sở dữ liệu đều được thiết lập trên mỗi cụm máy chủ độc lập như hình vẽ. Đối với nhưng hệ thống cung cấp dịch vụ lớn, đòi hỏi phải có nhiều tài nguyên mới đủ phục vụ người dùng thì mô hình này là giải pháp tốt.

Ưu điểm: Cung cấp dịch vụ rộng lớn với nhiều người sử dụng.

Nhược điểm: Tài nguyên nhiều, chi phí cài đặt và vận hành cao.

Ý nghĩa của việc phân lớp mô hình website

Qua việc phân tích các mô hình trên cho thấy, nếu giữa các lớp không có sự tách biệt rõ ràng thì khi một lớp bị tin tặc tấn công và chiếm quyền kiểm soát có thể dẫn đến các lớp khác cũng bị ảnh hưởng theo.

Ví dụ trường hợp tất cả ứng dụng web, cơ sở dữ liệu đều được đặt trên máy chủ phục vụ web thì khi tin tặc tấn công vào máy chủ phục vụ web có thể dẫn đến mã nguồn và cơ sở dữ liệu của ứng dụng đó bị xâm phạm. Do vậy, khi triển khai thực tiễn nên thiết kế tách biệt độc lập theo mô hình 3 lớp để tránh tình trạng một lớp bị tấn công và chiếm quyền kiểm soát dẫn đến các lớp khác bị ảnh hưởng.

Việc phân loại độc lập 3 lớp như trên sẽ tạo điều kiện thuận lợi cho việc vận hành, bảo trì hệ thống cũng như dễ dàng áp dụng các biện pháp bảo vệ đối với mỗi lớp riêng biệt.