- 1 Mã độc là gì? Phân loại, đặc tính và cách phòng tránh
- 2 DDos là gì? Dấu hiệu, xử lý và cách phòng chống hiệu quả
- 3 Phishing là gì? Nhận diện và phòng chống tấn công lừa đảo trực tuyến
- 4 DNS Sinkhole là gì? Ứng dụng và cách dùng kỹ thuật DNS Sinkhole
- 5 OAuth 2.0 là gì? Ủy quyền truy cập và đăng nhập bằng Google/Facebook
- 6 Trojan là gì? Những thông tin cơ bản về mã độc Trojan
- 7 Zero Trust Là Gì? Mô Hình Bảo Mật 'Không Tin Tưởng Ai'
- 8 VPN là gì? Mạng riêng ảo, WireGuard và OpenVPN
- 9 MFA Là Gì? So Sánh MFA vs 2FA và Các Phương Thức Xác Thực
- 10 Tường lửa là gì? Vai trò và chức năng trong bảo mật mạng
- 11 SQL Injection là gì? Tấn công cơ sở dữ liệu và cách phòng chống
- 12 Ransomware là gì? Mã độc mã hóa tống tiền và cách phòng chống
- 13 WAF Là Gì? Web Application Firewall Bảo Vệ Ứng Dụng Web
- 14 XSS là gì? Cross-Site Scripting và cách phòng chống hiệu quả
Cần giải pháp dữ liệu cho doanh nghiệp?
AlgoData đồng hành cùng doanh nghiệp về data engineering, phân tích & AI từ 2019.
WAF Là Gì? Tại Sao Cần Dùng?

WAF (Web Application Firewall) là thiết bị bảo mật hoạt động ở Layer 7 của mô hình OSI, giám sát và lọc HTTP/HTTPS traffic giữa internet và ứng dụng web.
Không như firewall truyền thống chỉ xem xét IP và port, WAF hiểu được ngữ nghĩa của HTTP request — phân tích URL, header, cookie, query string, và request body để phát hiện attack pattern.
Tại sao cần WAF?
Web application là mục tiêu tấn công số một. Theo báo cáo Verizon DBIR 2024, hơn 40% data breach liên quan đến web application. OWASP Top 10 — danh sách 10 lỗ hổng web phổ biến nhất — đều có thể được WAF phát hiện và ngăn chặn.
WAF vs Firewall vs IDS/IPS:
| Loại | Layer | Phân tích | Phát hiện |
|---|---|---|---|
| Network Firewall | L3/L4 | IP, Port, Protocol | IP block, port filter |
| IDS/IPS | L3–L7 | Packet pattern | Network intrusion |
| WAF | L7 | HTTP payload | SQLi, XSS, LFI, RCE |
Cơ Chế Phát Hiện Của WAF

1. Signature-based detection
So sánh request với database signature pattern đã biết. Nhanh, ít false positive, nhưng chỉ phát hiện known attack.
Request: GET /users?id=1' OR '1'='1
WAF rule: matches SQL injection pattern → BLOCK
2. Anomaly-based detection (Rule scoring)
Mỗi request được cho điểm bất thường. Vượt ngưỡng → block. Ít bị bypass hơn signature đơn thuần.
3. ML-based / Behavioral detection
Học baseline traffic bình thường, phát hiện deviation. Hiệu quả với zero-day và unknown attack, nhưng phức tạp hơn để tune.
OWASP Core Rule Set (CRS) là bộ rule chuẩn mở rộng nhất cho WAF, covering:
- SQL Injection (REQUEST-942)
- XSS (REQUEST-941)
- Local File Inclusion (REQUEST-930)
- Remote Code Execution (REQUEST-932)
- Scanner detection (REQUEST-913)
ModSecurity Và OWASP CRS Thực Tế

ModSecurity là WAF engine open-source được nhúng vào NGINX hoặc Apache. Kết hợp với OWASP CRS, đây là giải pháp WAF tự host phổ biến nhất.
Cài đặt ModSecurity với NGINX:
1# Cài modsecurity và nginx connector
2apt-get install libmodsecurity3 libmodsecurity-dev
3git clone --depth 1 https://github.com/SpiderLabs/ModSecurity-nginx
4# Build nginx với modsecurity module
Cấu hình NGINX:
1load_module modules/ngx_http_modsecurity_module.so;
2
3server {
4 listen 443 ssl;
5 modsecurity on;
6 modsecurity_rules_file /etc/nginx/modsec/main.conf;
7}
Ví dụ ModSecurity rule — phát hiện SQL injection:
SecRule ARGS "@detectSQLi" \
"id:942100,\
phase:2,\
block,\
capture,\
t:none,t:utf8toUnicode,t:urlDecodeUni,t:removeNulls,t:removeComments,t:compressWhitespace,\
msg:'SQL Injection Attack Detected via libinjection',\
logdata:'Matched Data: %{TX.0} found within %{MATCHED_VAR_NAME}: %{MATCHED_VAR}',\
tag:'application-multi',\
tag:'language-multi',\
tag:'platform-multi',\
tag:'attack-sqli',\
tag:'OWASP_CRS',\
tag:'capec/1000/152/248/66',\
tag:'PCI/6.5.2',\
ver:'OWASP_CRS/3.3.4',\
severity:'CRITICAL',\
setvar:'tx.sql_injection_score=+%{tx.critical_anomaly_score}',\
setvar:'tx.anomaly_score_pl1=+%{tx.critical_anomaly_score}'"
Mỗi rule có: id, phase (giai đoạn xử lý), block/detect, transform chain, message, tag, severity, và anomaly score action.
Các WAF Phổ Biến Trên Thị Trường
AWS WAF:
- Managed service, tích hợp với CloudFront, ALB, API Gateway
- Managed rule groups sẵn có (AWS Managed Rules, Bot Control, Fraud Control)
- Console hoặc Terraform để quản lý rule
1resource "aws_wafv2_web_acl" "example" {
2 name = "example-waf"
3 scope = "REGIONAL"
4
5 default_action { allow {} }
6
7 rule {
8 name = "AWSManagedRulesCommonRuleSet"
9 priority = 1
10 override_action { none {} }
11 statement {
12 managed_rule_group_statement {
13 name = "AWSManagedRulesCommonRuleSet"
14 vendor_name = "AWS"
15 }
16 }
17 visibility_config {
18 cloudwatch_metrics_enabled = true
19 metric_name = "CommonRuleSetMetric"
20 sampled_requests_enabled = true
21 }
22 }
23
24 visibility_config {
25 cloudwatch_metrics_enabled = true
26 metric_name = "ExampleWAF"
27 sampled_requests_enabled = true
28 }
29}
Cloudflare WAF: Managed + custom rule, dễ dùng, tích hợp CDN và DDoS protection.
ModSecurity (self-hosted): Open-source, full control, chi phí thấp nhưng cần tự maintain.
WAF Bypass Techniques (Giáo Dục)
Hiểu bypass techniques giúp bạn tune WAF tốt hơn và hiểu giới hạn của nó.
URL Encoding bypass:
# Payload gốc (bị block):
' OR '1'='1
# URL encoded (có thể bypass WAF không decode đúng):
%27%20OR%20%271%27%3D%271
Case variation:
1
2> [SQL Injection là gì? Cách WAF ngăn chặn](/sql-injection-la-gi/)
3
4
5# Original (blocked):
6SELECT * FROM users
7
8# Bypass attempt:
9SeLeCt * FrOm UsErS
WAF hiện đại chống bypass bằng cách: normalization trước khi match (lowercase, URL decode, HTML decode nhiều lần), dùng parser-based detection thay vì regex đơn giản, ML để phát hiện evasion pattern.
Lưu ý: Kiến thức bypass chỉ dùng để test WAF của chính bạn (penetration testing) hoặc hiểu để cấu hình WAF tốt hơn.
Chế Độ Triển Khai WAF
Inline (Blocking mode):
- WAF nằm trực tiếp trong luồng request
- Block bad request ngay lập tức
- Rủi ro: misconfiguration → block legitimate user
- Phù hợp khi đã tune rule kỹ
Monitor (Detection-only mode):
- WAF log nhưng không block
- Phù hợp khi mới triển khai, cần quan sát false positive
- Sau 2–4 tuần monitor, tune rule, rồi chuyển sang blocking
Best practice khi onboard WAF:
- Deploy ở monitor mode
- Chạy 2–4 tuần, review log hàng ngày
- Whitelist false positive (custom rule exclude)
- Enable blocking mode cho rule đã verify
- Tiếp tục monitor và tune định kỳ

