Blog

Web Application Firewall là gì?

03/12/2016 - 08:03

Những năm gần đây, xu hướng tấn công vào các website trở nên ngày càng phổ biến. Ngọn nguồn của vấn đề này chính là việc người dùng có thể kiểm soát được dữ liệu đầu vào của ứng dụng. Nếu ứng dụng web không kiểm soát được các dữ liệu đầu vào này, sẽ gây ra những xử lý bất thường trong ứng dụng và gây ra những lỗi không mong muốn, có thể kể đến như SQL injection, XSS, SSTI, SSRF... Với mục đích phát hiện, ngăn chặn và phòng ngừa những loại tấn công này, các firewall được tạo ra.

Các loại của Web App Firewall:

  • Appliance-based Web application firewalls
    Đây là một hình thức rất phổ biến của WAF. Nó là một thiết bị vật lý được đặt giữa ứng dụng web và người truy cập web. Một vài thiết bị firewall thuộc loại này như: Palo Alto, Imperva secure sphere, F5 BIG IP.. Lợi thế của loại firewall này là việc nó cung cấp khả năng kiểm soát rất cao cho việc phát hiện và ngăn chặn tấn công. Nhưng bất lợi của nó là việc giá thành cao và phải thay đổi cấu trúc của hạ tầng mạng khi phải đặt thêm thiết bị này. 
  • Cloud Based WAF's
    Đây là một hình thức đang trở nên khá phổ biến hiện nay. Có thể kể tới như: Cloud Flare, Sucuri... Firewall thuộc loại này hoạt động như một proxy giữa người dùng và ứng dụng web. Việc triển khai loại firewall này rất đơn giản, khi chỉ yêu cầu DNS server chỉ tới nhà cung cấp WAF cloud. Bất kì lưu lượng mạng được gửi đi từ Client sẽ đi qua Name Server của WAF. Ở đây, sẽ diễn ra quá trình phân tích lưu lượng mạng này, và quyết định block hoặc cho lưu lượng mạng này đi qua. Lợi thế của loại firewall này chính là việc không cần phải thay đổi trong cấu trúc hạ tầng mạng. Nhưng bất lợi của nó chính là việc phụ thuộc rất nhiều vào nhà cung cấp dịch vụ. Nếu Cloud của nhà cung cấp gặp vấn đề, thì ứng dụng web sẽ bị ảnh hưởng rất lớn.
  • Integrated WAF
    Loại firewall này được tích hợp sẵn trong các application server. ModSecurity là một ví dụ điển hình của loại firewall này. ModSecurity là một module của Apache server. Hay Ninja Firewall  hoạt động dựa trên việc cấu hình file .htaccess. Firewall thuộc loại này không yêu cầu bất kỳ một sự thay đổi nào trong cấu trúc hạ tầng mạng cũng như điều hướng tới một DNS server.
  • Approaches for Detection
    Các quy tắc (rulesets) và chữ ký (signatures) dựa trên tập hợp của "Regular expressions" được sử dụng cho việc tạo ra các "mẫu" phù hợp với mục đích nhất định. Regular expressions được định nghĩa là một tập hợp của các ký tự được sử dụng cho việc tạo ra các mẫu phù hợp. Rất nhiều các waf sử dụng regular expressions để phát hiện các dữ liệu đầu vào độc hại.  
    Bên cạnh đó, còn một phương pháp khác dựa trên việc "học" của các ứng dụng web cho việc phát hiện tấn công (Machine learning). WAF sẽ "học" để phân biệt các payload độc hại và payload không độc hại dựa trên logs ứng dụng, workflows...
     

WAF hoạt động thường dựa trên hai nguyên tắc sau:

  • Whitelisting
    Firewall hoạt động dựa trên nguyên tắc này có một danh sách của các dữ liệu đầu vào được cho phép, và sẽ block mọi dữ liệu không nằm trong danh sách này. Trên thực tế, firewall hoạt động dựa trên nguyên tắc này là rất ít. Vì rất khó để dự đoán được tất cả các dữ liệu đầu vào có thể có để viết một whitelist.
  • Blacklisting
    Firewall hoạt động dựa trên nguyên tắc này xác định một danh sách của dữ liệu đầu vào mà không được cho phép. Nếu dữ liệu đầu vào không nằm trong danh sách này, no sẽ được đi qua ứng dụng web. 

Cách thức hoạt động của WAF:

  • Passive
    Ở chế độ này, WAF sẽ hoạt động như một hệ thống phát hiện xâm phạm. Nó sẽ phát hiện và giám sát các tấn công. 
  • Reactive
    Ở chế độ này, WAF không chỉ phát hiện tấn công mà còn block tấn công. 

Tin liên quan