Tường lửa ứng dụng Web (WAF)

Một ví dụ triển khai WAF trong máy chủ web Windows

Trong những năm gần đây, xu hướng tấn công vào ứng dụng web đang ngày càng trở nên phổ biến. Các kỹ thuật tấn công được sử dụng chủ yếu là cross-site scripting, SQL injection, và nhiều các kỹ thuật khác… tất cả các kỹ thuật này đều nhắm vào lớp ứng dụng trong mô hình OSI. Các lỗ hổng trong ứng dụng web chủ yếu xảy ra do người lập trình không kiểm tra kỹ các tham số hay ký tự do người dùng nhập vào để tương tác với ứng dụng web. Để khắc phục các lỗi trên ứng dụng web, người lập trình cần hiểu và viết được các đoạn mã ở mức độ bảo mật nhất, tuy nhiên việc viết đoạn mã sao cho “bảo mật” nhất thường khó thực hiện, bởi các lẽ sau: Thứ nhất, các đơn vị lập trình thường không có hoặc thiếu đội ngũ chuyên trách về việc kiểm tra và sửa lỗi bảo mật mã nguồn ứng dụng. Thứ hai, đôi khi áp lực phải hoàn thành ứng dụng web trong thời gian nhanh khiến cho các ứng dụng web được đưa vào vận hành mà không qua các khâu kiểm thử. Thứ ba, việc dùng các công cụ kiểm tra lỗi web tự động đôi khi cũng không tìm ra hết các lỗi khi được thực hiện bằng tay. Do vậy, việc bảo mật một ứng dụng web đó là một quá trình phòng thủ theo chiều sâu bao gồm các khâu phát triển, vận hành, xây dựng cơ sở hạ tầng bảo vệ tốt và có một đội ngủ chuyên trách vấn đề bảo mật riêng cho web.

Tường lửa ứng dụng web (Web Application Firewall – WAF) là một giải pháp nhằm bảo vệ cho ứng dụng web tránh khỏi các lỗi bảo mật nói trên. WAF là một thiết bị phần cứng hoặc phần mềm được cài lên máy chủ có chức năng theo dõi các thông tin được truyền qua giao thức http/https giữa trình duyệt của người dùng và máy chủ web tại lớp 7. Một WAF có khả năng thực thi các chính sách bảo mật dựa trên các dấu hiệu tấn công, các giao thức tiêu chuẩn và các lưu lượng truy cập ứng dụng web bất thường. Đây là điều mà các tường lửa mạng khác không làm được.

Mô hình của một hệ thống Tường lửa ứng dụng Web (WAF)

Mô hình của một hệ thống Tường lửa ứng dụng Web (WAF)

Kiến trúc tường lửa ứng dụng web

Vị trí đặt WAF:

Các thiết bị WAF cứng thường được đặt sau tường lửa mạng và trước máy chủ ứng dụng web. Việc đặt WAF được thực hiện sao cho tất cả các lưu lượng đến ứng dụng web cần qua WAF trước. Tuy nhiên, đôi khi cũng có ngoại lệ khi WAF chỉ được dùng để giám sát cổng đang mở trên máy chủ web. Ngoài ra, các chương trình WAF còn được cài đặt trực tiếp lên máy chủ web và thực hiện các chức năng tương tự như các thiết bị WAF là giám sát các lưu lượng đến và ra khỏi ứng dụng web.

Một ví dụ triển khai WAF trong máy chủ web Windows

Một ví dụ triển khai WAF trong máy chủ web Windows

Mô hình bảo mật:

Một WAF hoạt động dựa theo 2 mô hình bảo mật: Positive và Negative. Mô hình Positive chỉ cho phép các lưu lượng hợp lệ được định nghĩa sẳn đi qua và chặn tất cả các lưu lượng còn lại. Mô hình Negative sẽ cho phép tất cả các lưu lượng vượt qua và chỉ chặn các lưu lượng được mà WAF cho là nguy hại. Đôi khi cũng có các WAF cung cấp cả 2 mô hình trên, tuy nhiên thông thường WAF chỉ cung cấp 1 trong 2 mô hình. Với mô hình Postitive thì đòi hỏi nhiều cấu hình và tùy chỉnh, còn mô hình Negative chủ yếu dựa vào khả năng học hỏi và phân tích hành vi của lưu lượng mạng.

Mô hình hoạt động:

WAF có thể hoạt động ở các mô hình riêng biệt, dưới đây là một số mô hình tham khảo:

  • Reverse Proxy: đây là chức năng được sử dụng phổ biến khi triển khai WAF. Trong mô hình này, WAF giám sát tất cả các lưu lượng đi đến ứng dụng web, sau đó thay vì cho các địa chỉ IP bên ngoài gửi yêu cầu trực tiếp đến máy chủ web thì WAF đứng ra làm trung gian để gửi các yêu cầu này đến máy chủ web thay cho trình duyệt gốc rồi gửi trả lại kết quả cho các địa chỉ IP kia. Mô hình này có nhược điểm là tạo ra độ trễ khi kết nối từ trình duyệt đến ứng dụng web.
  • Transparent Proxy: Ở mô hình này, WAF đứng giữa tường lửa mạng và máy chủ web và hoạt động tương tự ở mô hình Reverse Proxy nhưng không đứng ra làm trung gian kết nối như bên Reverse Proxy. Mô hình này không đòi hỏi phải thay đổi điều gì trong hạ tầng mạng nhưng có thể không cung cấp được một số dịch vụ như mô hình Reverse Proxy có thể.
  • Layer 2 Brigde: Ở mô hình này, WAF đứng giữa tường lủa mạng và máy chủ web, nhưng hoạt động giống như một thiết bị Switch ở lớp 2. Mô hình này giúp mạng hoạt động với hiệu năng cao và mạng thay đổi không đáng kể, tuy nhiên nó lại không thể cung cấp các dịch vụ cao cấp khác mà các mô hình WAF khác có thể.
  • Host/Server Based: Đây là các phần mềm được cài trực tiếp lên máy chủ web. Các loại Host based không cung cấp các tính năng tương tự như các loại WAF network base. Tuy nhiên mô hình này có thể khắc phục được vài điểm yếu mà các mô hình network base (các thiết bị WAF cứng) có. Tuy nhiên nó cũng làm tăng mức độ tải của máy chủ web.

Các sản phẩm và giải pháp

Các phiên bản WAF mã nguồn mở phổ biến:

  • ModSecurity (http://www.modsecurity.org): Đây là phần mềm nguồn mở có thể hoạt động như một module trong máy chủ Apache hoặc là một thành phần độc lập. ModSecurity sử dụng biểu thức chính quy trong việc bảo vệ máy chủ web từ các cuộc tấn công được xác định trước dựa theo các dấu hiệu hoặc các cuộc tấn công bất thường khác. Bên cạnh đó, ModSecurity cũng có khả năng lọc các siêu ký tự do người dùng chèn vào ứng dụng web. Toàn bộ quá trình cài đặt và cấu hình tham khảo thêm tại:http://www.modsecurity.org/documentation
  • URLScan (http://www.iis.net/download/urlscan): Đây là một sản phẩm của Microsoft dành riêng cho các máy chủ web IIS. URL scan không chỉ bảo vệ máy chủ IIS 6 khỏi các điểm yếu từ các phiên bản cũ hơn mà còn cung cấp thêm các biện pháp bảo vệ khác như lọc dữ liệu mã hóa trên URL hoặc lọc các siêu ký tự do người dùng chèn vào để chống lại các loại tấn công như XSS, SQL Injection,… Tham khảo cách cài đặt và sử dụng tại: http://www.iis.net/download/urlscan
  • WebKnight (http://www.aqtronix.com/?PageID=99): Đây cũng là 1 sản phẩm dành cho các máy chủ web IIS.

Ngoài ra còn các bản WAF thương mại sau:

  • Hyperguard (http://www.artofdefence.com/en/products/hyperguard.html)
  • WebDefend (http://www.breach.com/products/webdefend.html)
  • DotDefender (http://www.applicure.com/)
  • NetScaler application firewalls (http://www.citrix.com)
  • Eeye’s SecureIIS (http://www.eeye.com/Products/SecureIIS-Web-Server-Security.aspx)

Tùy theo điều kiện và nhu cầu sử dụng, có thể nghiên cứu để chọn giải pháp triển khai loại WAF thích hợp nhất để bảo vệ cho cổng thông tin điện tử.

Theo SecurityDaily.net

Comments

comments