Tường Lửa Ứng Dụng Web
(Web Application Firewall)
1, Khái niệm về Web Application Firewall
- WAF là viết tắt của từ Web Application Firewall – Tường lửa cho ứng dụng web,
bảo vệ website khỏi các lỗi bảo mật, ngăn chặn các cuộc tấn công
Tường lửa ứng dụng Web (Web Application Firewall – WAF) được triển khai ở
đường biên mạng (Network Edge). Nó thực hiện việc kiểm tra lưu lượng truy cập
đến và đi khỏi các ứng dụng Web. WAF có thể lọc và giám sát lưu lượng truy cập
để bảo vệ chống lại các cuộc tấn công như SQL Injection, Cross Site Scripting
(XSS) hay Cross-site Request Forgery – CSRF (tấn công giả mạo yêu cầu Crosssite).
WAF hoạt động tại lớp 7 (tầng ứng dụng). Mặc dù WAF có thể bảo vệ chống lại
hàng loạt các cuộc tấn công ở lớp ứng dụng nhưng nó khơng thể tự hoạt động một
mình mà phải kết hợp với các cơng cụ bảo mật khác. Có vậy mới đảm bảo chống
lại các cuộc tấn công nhắm vào các lớp mạng khác hoặc các phần khác của môi
trường bảo mật.
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. 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.
1.1, mơ hình WAF
2, Phân biệt giữa WAF và Firewall
- Firewall – tường lửa là thuật ngữ chung cho Firmware (Firmware được dùng
để chỉ những chương trình máy tính cố định và điều khiển cấp thấp nhiều
thiết bị điện tử) lọc lưu lượng đến và đi trên mạng. Trong tường lửa lại có sự
phân chia thành các loại khác nhau về khả năng bảo vệ mà nó cung cấp. Bao
gồm kiểm tra trạng thái (Stateful Inspection), lọc gói tin (Packet Filtering),
máy chủ Proxy và tường lửa thế hệ tiếp theo (NGFW).
- WAF là một loại tường lửa khác, có thể được phân biệt bằng cách nó lọc các
gói dữ liệu. WAF kiểm tra tầng ứng dụng của mạng và có thể ngăn chặn
nhiều cuộc tấn cơng vơ hình hơn so với các loại tường lửa khác.
- Ví dụ, một cuộc tấn công SQL Injection sẽ không được phát hiện bởi tường
lửa thơng thường vì nó khơng kiểm tra Payload của yêu cầu ứng dụng, chẳng
hạn như truy vấn SQL.
Khác với tường lửa truyền thống có thể chặn lưu lượng truy cập từ các dải IP,
khu vực địa lý cụ thể,… WAF cho phép xác định các quy tắc loại bỏ các loại hành
vi ứng dụng có khả năng là độc hại.
3, Cách hoạt động Tường lửa ứng dụng Web
Tường lửa ứng dụng Web có thể triển khai dưới một số mơ hình khác nhau:
Thiết bị phần cứng hoặc thiết bị ảo
Phần mềm chạy trên cùng một máy chủ Web với ứng dụng Web
Dịch vụ dựa trên đám mây
1.2,Mơ hình hoạt động của WAF
Trong mỗi mơ hình triển khai này, WAF ln nằm trước ứng dụng Web,
chặn tất cả lưu lượng truy cập giữa ứng dụng và Internet.
WAF có thể hoạt động trong mơ hình Whitelist, cho phép lưu lượng ứng
dụng an tồn đã biết. Cịn trong mơ hình Blacklist sẽ chặn lưu lượng phù
hợp với các mẫu tấn công hoặc quy tắc bảo mật đã biết.
WAF chặn các yêu cầu HTTP/S, kiểm tra và chỉ cho phép thông qua nếu xác
nhận rằng chúng không độc hại. Theo cách tương tự, WAF kiểm tra phản hồi
của máy chủ để tìm các dạng tấn công ứng dụng Web đã biết, chẳng hạn như
chiếm quyền điều khiển phiên, tràn bộ đệm (Buffer Overflow), XSS, giao
tiếp lệnh và kiểm soát (Command & Control – C&C) hoặc từ chối dịch vụ
(DoS) .
Trong đó mơ hình phổ biến nhất là Reverse-proxy :
1. WAF đóng vai trị như một proxy ở vị trí trung gian giữa người dùng và
website. Thay vì người dùng gửi yêu cầu trực tiếp đến máy chủ web, WAF
sẽ đứng ra nhận các yêu cầu này, chuyển tiếp đến máy chủ web, nhận phản
hồi của máy chủ web, rồi chuyển tiếp lại cho người dùng.
2. Trong q trình đó, WAF sẽ phân tích để đánh giá một u cầu có được cho
là độc hại hay khơng để loại bỏ nó. Việc xem xét, phân tích thường dựa vào
các mẫu nhận diện ứng với từng loại tấn công vào các lỗ hổng khác nhau.
- Chất lượng dịch vụ WAF phụ thuộc chủ yếu vào bộ nhận diện và chất lượng máy
chủ proxy – quy định số lượng các trường hợp mà WAF có thể nhận diện và khả
năng ngăn chặn các hành vi độc hại quy mộ lớn. Trong trường hợp có kỹ thuật tấn
công hoặc lỗ hổng mới được phát hiện, mẫu nhận diện tương ứng sẽ nhanh chóng
được cập nhật cho WAF.
4, Các loại tường lửa ứng dụng Web
Có ba loại tường lửa ứng dụng Web chính là Appliance WAF, Hot-based WAF và
Cloud WAF.
4.1, Appliance WAF
- Appliance WAF thường dựa trên phần cứng. Nó được cài đặt cục bộ bằng
thiết bị chuyên dụng và nên được cài đặt gần phạm vi ứng dụng để giảm độ
trễ.
- Hầu hết các WAF phần cứng đều cho phép sao chép các quy tắc và cài đặt
giữa các thiết bị. Điều này nhằm hỗ trợ việc triển khai quy mô lớn trên các
mạng công ty. Nhược điểm của loại tường lửa này là nó địi khoản đầu tư lớn
cũng như chi phí bảo trì liên tục.
- Một giải pháp thay thế cho WAF dựa trên phần cứng đang được triển khai là
WAF dưới dạng thiết bị ảo, thường sử dụng cơng nghệ ảo hóa chức năng
mạng (NVF) hoặc trong đám mây công cộng, bằng cách triển khai Cloud
Machine Image (hình ảnh máy trong đám mây) được cấu hình trước. Điều
này làm giảm chi phí đầu tư tuy nhiên doanh nghiệp vẫn phải bỏ ra ngân
sách bảo trì.
4.2, Host-Based WAF
- Host-Based WAF có thể được tích hợp hồn tồn vào mã ứng dụng . Lợi ích
khi triển khai mơ hình này là chi phí thấp hơn nhiều và khả năng tùy biến
được cải thiện.
- Tuy nhiên, việc triển khai Host-Based WAF sẽ phức tạp hơn, yêu cầu các thư
viện (Libraries) cụ thể phải được cài đặt trên máy chủ ứng dụng và dựa vào
tài nguyên máy chủ để vận hành hiệu quả. WAF cũng trở thành một phần
phụ thuộc của ứng dụng Web cần được quản lý trong suốt vòng đời phát
triển.
4.3, Host-Based WAF
- Cloud WAF là lựa chọn hiệu quả về chi phí. Doanh nghiệp lựa chọn được
cung cung cấp giải pháp WAF mà không cần đầu tư trả trước cũng như triển
khai nhanh chóng. Các giải pháp đám mây WAF thường dựa trên đăng ký và
chỉ yêu cầu cấu hình DNS hoặc Proxy đơn giản để bắt đầu hoạt động.
1.3,Tường lửa ứng dụng web
- WAF dựa trên đám mây có quyền truy cập vào thơng tin tình báo về các mối
đe dọa cập nhật liên tục và cũng có thể cung cấp các dịch vụ được quản lý để
giúp bạn xác định các quy tắc bảo mật và phản ứng với các cuộc tấn công
khi chúng xảy ra.
- Thách thức khi sử dụng Cloud WAF là doanh nghiệp cần tin tưởng vào nhà
cung cấp để định tuyến tất cả lưu lượng truy cập ứng dụng Web của mình.
Nếu nhà cung cấp WAF gặp sự cố, trang Web của bạn cũng đi xuống. Nếu
hiệu suất kém, hiệu suất trang web của bạn sẽ bị ảnh hưởng. Đây là lý do tại
sao hầu hết các nhà cung cấp Cloud WAF mang đến giải pháp bảo vệ WAF,
CDN và DDoS tích hợp, đảm bảo thời gian hoạt động và độ trễ tối thiểu.
5, Tính năng của Web Application Firewall
Attack Signature Database: Đây là các mẫu có thể được sử dụng để xác định
lưu lượng truy cập độc hại. Chúng có thể bao gồm các IP độc hại đã biết, các
loại yêu cầu, phản hồi bất thường của máy chủ,… Trước đây, WAF chủ yếu
dựa vào cơ sở dữ liệu của các kiểu tấn công, nhưng kỹ thuật này dường như
không hiệu quả trước các cuộc tấn công mới và chưa được biết đến.
Phân tích AI/ML mẫu lưu lượng truy cập (Traffic Patterns): Tường lửa ứng
dụng Web hiện đại thực hiện phân tích hành vi lưu lượng truy cập bằng các
thuật tốn trí tuệ nhân tạo. Nó xác định vạch ranh giới cho các loại lưu lượng
truy cập cụ thể và nắm bắt các điều bất thường có thể dấu hiệu cho một cuộc
tấn cơng. Nhờ vậy doanh nghiệp có thể xác định các cuộc tấn công ngay cả
khi chúng không khớp với các mẫu độc hại đã biết.
Application Profiling: WAF phân tích cấu trúc ứng dụng Web. Bao gồm
URL, các yêu cầu điển hình, các giá trị và kiểu dữ liệu được phép. Điều này
có thể giúp xác định các yêu cầu bất thường/độc hại và chặn chúng.
Công cụ tùy chỉnh (Customization Engine): WAF cho phép người vận hành
xác định các quy tắc bảo mật cụ thể cho tổ chức hoặc ứng dụng Web và ngay
lập tức áp dụng chúng cho lưu lượng ứng dụng. Điều này rất quan trọng để
tùy chỉnh hành vi WAF và tránh chặn lưu lượng truy cập hợp pháp.
Công cụ tương quan (Correlation Engine): Phân tích lưu lượng truy cập đến
và phân loại nó bằng cách sử dụng Attack Signatures đã biết, phân tích
AI/ML, Application Profiling và các quy tắc tùy chỉnh để xác định xem nó
có nên bị chặn hay khơng.
Bảo vệ DDoS: Khi WAF phát hiện một cuộc tấn công DDoS (tấn cơng từ
chối dịch vụ), nó có thể chặn các yêu cầu và chuyển lưu lượng sang hệ thống
bảo vệ DDoS. Hệ thống này có thể mở rộng để chống lại các cuộc tấn công
quy mô lớn.
Mạng phân phối nội dung (Content Delivery Network – CDN): Vì WAF
được triển khai ở biên mạng, Cloud-based WAF có thể cung cấp CDN giúp
bộ nhớ Cache Web cải thiện thời gian tải trang. WAF/CDN triển khai trên
nhiều điểm khác nhau (PoP – Point of Presence), phân phối trên khắp thế
giới và Website được phục vụ cho người dùng thông qua PoP gần nhất.
6, Nhược điểm của tường lửa ứng dụng Web
WAF được triển khai ở phần biên và cố gắng lọc, chặn lưu lượng truy cập bị nghi
ngờ độc hại. Trước đây, việc lọc này được thực hiện bằng cách sử dụng các quy
tắc, hoặc do nhà cung cấp WAF cung cấp hoặc do tổ chức triển khai WAF tùy
chỉnh.
Vấn đề là với các WAF dựa trên quy tắc (rule-based WAFs) yêu cầu cao về bảo trì.
Các tổ chức phải xác định cẩn thận các quy tắc phù hợp với các mẫu ứng dụng cụ
thể của mình. Các quy tắc này có thể thay đổi theo thời gian khi các ứng dụng mới
được chấp nhận và khi các ứng dụng phát triển. Điều này cũng gây khó khăn hơn
trong việc giải quyết các vectơ mối đe dọa đang thay đổi – các cuộc tấn cơng mới
có thể u cầu các quy tắc mới.
Thách thức khác đến từ việc vận hành WAFs trong môi trường Microservices.
Trong một ứng dụng Microservices lớn, các phiên bản Microservices mới được
phát hành nhiều lần trong ngày. Việc triển khai WAF và cập nhật các bộ quy tắc
cho từng thành phần là không thực tế. Điều này cũng đồng nghĩa trong nhiều
trường hợp, Microservices sẽ vẫn không được bảo vệ bởi WAF.