Triển khai Tường lửa Ứng dụng Web (WAF) trong Node.js Express

Tram Ho

1. Giới thiệu

1.1. Tổng quan về Tường lửa Ứng dụng Web (WAF)

Tường lửa ứng dụng web (WAF) là một giải pháp bảo mật giúp bảo vệ các ứng dụng web khỏi nhiều kiểu tấn công khác nhau, chẳng hạn như SQL injection, cross-site scripting (XSS) và bao gồm tệp từ xa (RFI). WAF phân tích và lọc lưu lượng truy cập HTTP/HTTPS đến, xác định và chặn các yêu cầu độc hại trước khi chúng đến được ứng dụng web.

1.2. Tầm quan trọng của WAF trong Node.js Express

Node.js Express là một khung ứng dụng web phổ biến để xây dựng các ứng dụng web nhanh, có thể mở rộng và linh hoạt. Do được sử dụng rộng rãi nên việc bảo mật các ứng dụng Express là rất quan trọng. Việc triển khai WAF trong Express có thể tăng cường đáng kể tính bảo mật cho các ứng dụng web của bạn, bảo vệ chúng khỏi các mối đe dọa mạng khác nhau.

2. Các thành phần tường lửa ứng dụng web

2.1. Bộ quy tắc

Bộ quy tắc là tập hợp các quy tắc mà WAF sử dụng để phân tích và lọc lưu lượng truy cập đến. Các quy tắc này có thể dựa trên Bộ quy tắc cốt lõi của Dự án bảo mật ứng dụng web mở (OWASP) (CRS), quy tắc tùy chỉnh hoặc kết hợp cả hai.

2.2. chính sách

Chính sách là các cấu hình xác định cách WAF xử lý các yêu cầu đến. Chúng bao gồm các cài đặt như lựa chọn bộ quy tắc, lọc yêu cầu và hành động được thực hiện khi quy tắc được kích hoạt.

2.3. Chế độ WAF

WAF có thể hoạt động ở hai chế độ:

  • Chế độ giám sát: WAF phân tích và ghi lại lưu lượng truy cập mà không chặn bất kỳ yêu cầu nào. Chế độ này rất hữu ích để kiểm tra và tinh chỉnh các quy tắc.
  • Chế độ chặn: WAF chủ động chặn các yêu cầu phù hợp với các quy tắc được xác định trong chính sách.

3. Thiết lập Ứng dụng Node.js Express

Trước khi triển khai WAF, hãy thiết lập một ứng dụng Node.js Express cơ bản.

3.1. Cài đặt phụ thuộc

Tạo một thư mục mới cho dự án của bạn và chạy lệnh sau để khởi tạo một dự án Node.js mới:

Cài đặt Express và các phụ thuộc cần thiết khác:

3.2. Tạo một ứng dụng nhanh cơ bản

Tạo một tệp mới có tên app.js trong thư mục dự án của bạn và thêm đoạn mã sau:

4. Triển khai WAF trong Node.js Express

Chúng tôi sẽ triển khai WAF trong ứng dụng Node.js Express của mình bằng gói express-waf, đây là một phần mềm trung gian dễ sử dụng.

4.1. Cài đặt gói express-waf

Chạy lệnh sau để cài đặt gói express-waf:

4.2. Cấu hình phần mềm trung gian express-waf

Thêm đoạn mã sau vào tệp app.js của bạn để định cấu hình phần mềm trung gian express-waf:

Trong đoạn mã trên, chúng tôi:

  1. Nhập gói express-waf .
  2. Khởi tạo phần mềm trung gian express-waf với cấu hình mong muốn. Chúng tôi đặt chế độ thành ‘chặn’, bật bộ quy tắc OWASP và thêm quy tắc tùy chỉnh để chặn các yêu cầu có tiêu đề Tác nhân người dùng chứa “BadBot”.
  3. Thêm waf.middleware vào ứng dụng Express của chúng tôi.

4.3. Thử nghiệm WAF

Bây giờ chúng tôi đã triển khai WAF trong ứng dụng Express của mình, hãy kiểm tra nó bằng cách gửi yêu cầu có tiêu đề Tác nhân người dùng bị chặn:

  1. Bắt đầu ứng dụng Express của bạn:

Sử dụng một công cụ như curl để gửi yêu cầu với tiêu đề Tác nhân người dùng bị chặn:

Bạn sẽ nhận được phản hồi cho biết rằng yêu cầu của bạn đã bị chặn:

5. Tinh chỉnh cấu hình WAF

5.1. Chuyển sang Chế độ Giám sát

Để chuyển WAF sang chế độ giám sát, hãy cập nhật cấu hình chế độ trong quá trình khởi tạo express-waf:

Ở chế độ giám sát, WAF sẽ ghi nhật ký các yêu cầu bị chặn thay vì chủ động chặn chúng. Điều này hữu ích để thử nghiệm và tinh chỉnh các bộ quy tắc của bạn.

5.2. Tùy chỉnh phản hồi bị chặn

Bạn có thể tùy chỉnh phản hồi được gửi tới máy khách khi yêu cầu bị chặn bằng cách cập nhật cấu hình blockResponse trong quá trình khởi tạo express-waf:

Trong ví dụ trên, chúng tôi đặt trạng thái phản hồi thành 403 và cập nhật thông báo thành ‘Truy cập bị cấm bởi Tường lửa ứng dụng web’.

Phần kết luận

Trong bài viết này, chúng ta đã thảo luận về tầm quan trọng của việc triển khai Tường lửa ứng dụng web (WAF) trong ứng dụng Node.js Express để tăng cường bảo mật. Chúng tôi đã tìm hiểu về các thành phần của WAF, chẳng hạn như bộ quy tắc, chính sách và chế độ. Sau đó, chúng tôi đã trình bày cách triển khai WAF trong ứng dụng Express bằng cách sử dụng phần mềm trung gian express-waf cũng như cách định cấu hình và tinh chỉnh cài đặt WAF.

Bằng cách kết hợp WAF vào các ứng dụng Node.js Express của bạn, bạn có thể cải thiện đáng kể tính bảo mật của chúng và bảo vệ chúng khỏi nhiều mối đe dọa trên mạng.

Và cuối cùng

Như mọi khi, tôi hy vọng bạn thích bài viết này và có một cái gì đó mới. Xin cảm ơn và hẹn gặp lại các bạn trong những bài viết tiếp theo!

Nếu các bạn thích bài viết này thì hãy cho mình 1 like và subscribe để ủng hộ mình nhé. Cảm ơn.

Giới thiệu

Chia sẻ bài viết ngay

Nguồn bài viết : Viblo