BAN CƠ YẾU CHÍNH PHỦ
HỌC VIỆN KỸ THUẬT MẬT MÃ
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
CHUYÊN ĐỀ AN TỒN THƠNG TIN
NGHIÊN CỨU CƠNG NGHỆ WAF VÀ TRIỂN KHAI
BẢO VỆ HỆ THỐNG WEBSITE
Ngành: An tồn thơng tin
Mã số: 7.48.02.02
Sinh viên thực hiện:
Võ Trà My – Lớp AT16E; Mã SV: AT160535
Người hướng dẫn:
TS. Phạm Duy Trung
Khoa An toàn thông tin – Học viện Kỹ thuật mật mã
Hà Nội, 2022
1
BAN CƠ YẾU CHÍNH PHỦ
HỌC VIỆN KỸ THUẬT MẬT MÃ
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
CHUYÊN ĐỀ AN TỒN HỆ THỐNG THƠNG TIN
NGHIÊN CỨU CƠNG NGHỆ WAF VÀ TRIỂN KHAI
BẢO VỆ HỆ THỐNG WEBSITE
Ngành: An toàn thông tin
Mã số: 7.48.02.02
Sinh viên thực hiện:
Võ Trà My
Lớp AT16E
Người hướng dẫn:
TS. Phạm Duy Trung
Khoa An tồn thơng tin – Học viện Kỹ thuật mật mã
Hà Nội, 2022
2
MỤC LỤC
Danh mục hình ảnh............................................................................................iii
Lời cảm ơn..........................................................................................................iv
Lời nói đầu...........................................................................................................v
Chương 1: Tổng quan về WAF..........................................................................1
1.1. Giới thiệu chung về WAF........................................................................1
1.1.1. Khái niệm WAF.................................................................................1
1.1.2. Phân loại WAF...................................................................................1
1.1.3. So sánh WAF với NetworkFirewall và IDS/IPS.............................3
1.1.4. Hoạt động của tường lửa ứng dụng web.........................................4
1.1.5. Lợi ích và tầm quan trọng của WAF...............................................5
1.2. Kiến trúc WAF.........................................................................................6
1.2.1. Vị trí đặt WAF...................................................................................6
1.2.2. Mơ hình bảo mật................................................................................7
1.2.3. Mơ hình hoạt động............................................................................7
1.3. Các phiên bản WAF mã nguồn mở phổ biến.........................................8
1.3.1. ModSecurity.......................................................................................8
1.3.2. WebKnight.........................................................................................8
1.3.3. Shadow Daemon................................................................................9
1.3.4. NAXSI.................................................................................................9
1.3.5. F5 Advance.........................................................................................9
1.4. Kết luận Chương 1.................................................................................10
Chương 2: Giới thiệu về ModSecurity WAF...................................................10
2.1. Tổng quan về ModSecurity...................................................................10
2.2. Chức năng của ModSecurity.................................................................11
2.3. Cấu trúc rule trong ModSecurity.........................................................12
2.3.1. VARIABLE......................................................................................13
2.3.2. OPERATOR....................................................................................14
i
2.3.3. ACTIONS.........................................................................................15
2.4. Quá trình xử lý trong ModSecurity......................................................16
2.5. Kết luận Chương 2.................................................................................18
Chương 3: Triển khai WAF với ModSecurity.................................................19
3.1. Mơ hình thực nghiệm.............................................................................19
3.2. Các bước thực hiện.................................................................................19
3.2.1. Cài đặt ModSecurity.......................................................................19
3.2.2. Cấu hình ModSecurity....................................................................20
3.2.3. Cài đặt DVWA:...............................................................................24
3.2.4. Triển khai ModSecurity trên DVWA............................................27
3.3. Kết luận chương 3..................................................................................31
Kết luận..............................................................................................................32
Tài liệu tham khảo:...........................................................................................33
Phụ lục................................................................................................................34
ii
DANH MỤC HÌNH ẢNH
Hình 1.1: Định nghĩa WAF.......................................................................................
Hình 1.2: So sánh WAF và Firewall, IDS/IPS......................................................3
Hình 1.3: Mơ hình của một hệ thống tường lửa ứng dụng Web (WAF)...................
Hình 1.4: Hoạt động của WAF..................................................................................
Hình 1.5: Vị trí đặt WAF.......................................................................................7
Hình 2.1: Operation(1)............................................................................................15
Hình 2.2: Operation (2)...........................................................................................15
Hình 2.3: Quy trình xử lí của ModSecurity.............................................................17
Hình 3.1: Mơ hình thực nghiệm..............................................................................19
Hình 3.2: Cài đặt ModSecurity................................................................................20
Hình 3.3: nano /etc/ModSecurity/ModSecurity.conf..............................................21
Hình 3.4: nano /etc/apache2/mod-available/security2.conf....................................22
Hình 3.5: nano /etc/apache2/sites-enabled/000-default.conf...................................23
Hình 3.6: Clone DVWA Github..............................................................................24
Hình 3.7: Download DVWA thành cơng................................................................24
Hình 3.8: Cấu hình DVWA.....................................................................................25
Hình 3.9: http://127.0.0.1/DVWA/setup.php..........................................................26
Hình 3.10: http://127.0.0.1/DVWA/login.php.........................................................26
Hình 3.11: Giao diện DVWA khi đăng nhập thành công........................................27
Hình 3.12: Giao diện SQL injection ban đầu..........................................................27
Hình 3.13: Tấn công SQL thành công.....................................................................28
Hình 3.14: Trang web sau khi bật ModSecurity(SQL)...........................................28
Hình 3.15: Log ghi lại sau khi thực hiện tấn công SQL..........................................29
Hình 3.16: Giao diện trang thực hiện tấn công XSS...............................................29
Hình 3.17: Tấn công XSS thành công.....................................................................30
Hình 3.18: Trang web sau khi bật ModSecurity (XSS)...........................................30
Hình 3.19: Log ghi lại sau khi thực hiện tấn công XSS..........................................31
iii
LỜI CẢM ƠN
Trước hết, em xin gửi lời cảm ơn chân thành nhất đến tồn bộ q thầy cơ
Học viện Kỹ thuật Mật mã, q thầy cơ khoa An tồn thơng tin, chun ngành
An tồn hệ thống thơng tin đã dạy dỗ, truyền đạt những kiến thức quý báu cho
em trong suốt bốn năm học tập và rèn luyện tại trường. Em xin gửi lời cảm ơn
sâu sắc đến giáo viên hướng dẫn - Thầy Phạm Duy Trung, người đã nhiệt tình
hướng dẫn em thực hiện đề tài chuyên ngành An tồn hệ thống thơng tin này.
Do thời gian và trình độ cịn hạn chế, bài báo cáo khơng thể tránh khỏi
những thiếu sót. Kính mong các thầy cơ chỉ bảo và đóng góp ý kiến để bài báo
cáo của em được hoàn thiện hơn. Em xin chân thành cảm ơn!
SINH VIÊN THỰC HIỆN
Võ Trà My
iv
LỜI NÓI ĐẦU
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 kỹ thuật khác… tất cả các kỹ thuật
này đều nhằm vào tầng ứ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 mã sao cho “bảo mật” nhất thường khó thực
hiện, bởi các lẽ sau: Thức 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ức hai, đơi khi áp lực phải hồn thành ứng dụng web trong thời gian nhanh
khiến cho các ứng dựng ểb được đưa vào vận hành mà không qua các khâu kiểm
thử.Thức 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 q 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.
Đề tài được thực hiện nhằm mục đích tìm hiểu về nghiên cứu công nghệ
WAF và triển khai bảo vệ hệ thống website với WAF mã nguồn mở cụ thể là
ModSecurity. Mục tiêu đặt ra khi thực hiện đồ án là:
1. Hệ thống kiến thức về hệ mật WAF;
2. Nghiên cứu về ModSecurity ứng dụng WAF để triển khai bảo vệ website;
3. Triển khai cài đặt ModSecurity trên Apache Kali Linux và kịch bản tấn
công SQL injection, tấn công XSS trên DVWA.
v
Sau thời gian thực hiện đề tài, các mục tiêu về cơ bản đã đạt được. Tuy nhiên
bảo mật website khỏi các tấn công là một lĩnh vực rất phức tạp, thời gian thực
hiện nghiên cứu chuyên đề tương đối ngắn nên chắc chắn khơng tránh khỏi thiếu
sót. Rất mong được sự góp ý của các thầy cơ, cũng như các bạn sinh viên để đề
tài này được hoàn thiện hơn.
SINH VIÊN THỰC HIỆN
Võ Trà My
vi
CHƯƠNG 1: TỔNG QUAN VỀ WAF
1.1. Giới thiệu chung về WAF
1.1.1. Khái niệm WAF
WAF là viết tắt của Web Application Firewall – tường lửa ứng dụng web,
công cụ giúp bảo vệ các ứng dụng web bằng cách lọc và theo dõi lưu lượng trao
đổi giữa web server và mạng Internet. Một WAF hoạt động thông qua một tập
hợp các quy tắc thường được gọi là chính sách. Các chính sách này nhằm mục
đích bảo vệ chống lại các lỗ hổng trong ứng dụng bằng cách lọc ra lưu lượng
truy cập độc hại.
Bằng cách triển khai WAF trước ứng dụng web, một lá chắn được đặt
giữa ứng dụng web và Internet. Mặc dù máy chủ proxy bảo vệ danh tính của
máy khách bằng cách sử dụng trung gian, nhưng WAF là một loại proxy ngược,
bảo vệ máy chủ khỏi bị lộ bằng cách cho phép máy khách đi qua WAF trước khi
đến máy chủ.
Hình 1.1: Định nghĩa WAF
1.1.2. Phân loại WAF
a. Phân loại mơ hình tường lửa có thể định cấu hình dựa trên loại hoạt
động bảo mật mà bạn yêu cầu:
Blocklist
Cấu hình WAF này bảo vệ các trang web và ứng dụng dựa trên web khỏi
bị khai thác bằng cách lọc truyền dữ liệu thông qua danh sách đặt trước các mối
1
đe dọa đã biết được gọi là Blocklist. Bạn có thể tạo Blocklist tự động và thủ
công.
Khi tường lửa nhận ra rằng một số gói dữ liệu phù hợp với các mối đe dọa
được ghi trong blocklist, nó sẽ ngay lập tức ngăn chặn mục nhập của chúng.
Blocklist cũng có thể tiết lộ các mối đe dọa được ngụy trang dưới dạng
yêu cầu thực trong lưu lượng mạng và chặn hiệu quả tất cả các mối đe dọa đã
biết, chẳng hạn như các cuộc tấn cơng DDoS.
Thiếu sót chính của nó là nó khơng hiệu quả trước các mối đe dọa mới
gây ra cho các tổ chức, chẳng hạn như các cuộc tấn công zero-day.
Allowlist
Tường lửa WAF giám sát việc truyền dữ liệu thơng qua cấu hình bảo mật
này và được lập trình để chỉ cho phép lưu lượng mạng được phê duyệt trước.
Việc bật Allowlist cho trang web và ứng dụng web của bạn có thể gặp sự
cố vì danh sách này thường chặn các yêu cầu an toàn không gây hại cho hệ
thống.
Điều này là do, theo thiết kế, Allowlist chặn tất cả lưu lượng truy cập
mạng vào ứng dụng web trong khi chỉ cho phép những người được phê duyệt
trước trong danh sách cho phép.
Hybird
Loại tường lửa này sử dụng kết hợp cả Allowlist và Blocklist để tạo cấu
hình kết hợp cả hai loại.
b. Phân loại theo mơ hình triển khai, có ba cách chính mà WAF được xây
dựng sử dụng trực tuyến với cách sử dụng ở mỗi trường hợp khác nhau:
Network-Based (Nền tảng mạng lưới):
Network-Based được cài đặt cục bộ trên mạng. Đặc điểm của dạng này đó
là việc cần bảo trì và khơng gian lưu trữ. Mục đích chính là giảm thiểu độ trễ.
Đây là một WAF dựa trên phần cứng.
Cloud-Based (Nền tảng đám mây):
Cloud-Based được chạy trên đám mây, quá trình cài đặt dễ dàng mà thông
thường chỉ cần yêu cầu thay đổi DNS. Cài đặt dễ dàng, mang lại nhiều lợi ích đi
kèm với sự tiện lợi không cần lưu trữ hay bảo trì tại chỗ. Đây là giải pháp WAF
rẻ nhất.
2
Thông thường, phương pháp này là một dịch vụ đăng ký với các doanh
nghiệp về cơ bản chuyển giao bảo mật WAF của họ cho một công ty khác để
hợp lý hóa quy trình và tháo gỡ mọi khó khăn tiềm ẩn.
Host-Based (Nền tảng máy chủ):
Loại WAF thứ ba mà các công ty thường sử dụng là Host-Based với khả
năng cung cấp mức độ tùy chỉnh cao hơn. Tuy nhiên, phương pháp này cần chạy
trên các máy chủ cục bộ, yêu cầu bảo trì tại chỗ. Đây là một WAF tốn kém.
Do đó, Cloud-Based là giải pháp được khách hàng chú ý tới vì tính đơn
giản, tiện lợi của đám mây đem lại sự giải phóng khỏi phí lưu trữ và bảo trì.
1.1.3. So sánh WAF với NetworkFirewall và IDS/IPS
IPS là một sản phẩm bảo mật được tập trung rộng rãi hơn. Nó thường dựa
trên chữ ký và chính sách – có nghĩa là nó có thể kiểm tra các lỗ hổng nổi tiếng
và các vectơ tấn công dựa trên cơ sở dữ liệu chữ ký và các chính sách đã thiết
lập. IPS thiết lập một tiêu chuẩn dựa trên cơ sở dữ liệu và chính sách, sau đó gửi
cảnh báo khi có bất kỳ lưu lượng truy cập nào khác với tiêu chuẩn. Chữ ký và
chính sách phát triển theo thời gian khi các lỗ hổng mới được biết đến. Nói
chung, IPS bảo vệ lưu lượng trên nhiều loại giao thức như DNS, SMTP,
TELNET, RDP, SSH và FTP. IPS thường vận hành và bảo vệ tầng 3 và tầng 4
(Tầng mạng và tầng phiên).
Tường lửa truyền thống như Network Firewall, hệ thống phát hiện kẻ xâm
nhập (IDS) & Hệ thống ngăn chặn xâm nhập (IPS) rất tốt trong việc cung cấp
bảo mật cấp độ mạng và bảo mật lưu lượng mạng cấp độ mạng. Nhưng chúng
khơng có khả năng ngăn chặn các lỗ hổng hệ thống ứng dụng website OWASP
(Dự án bảo mật ứng dụng web mở) như SQL injection, chiếm quyền điều khiển
phiên, XSS, v.v… Nói một cách đơn giản, chúng không thể bảo vệ các cuộc tấn
công tầng ứng dụng (tầng 7).
Tường lửa ứng dụng web (WAF) bảo vệ tầng ứng dụng và được thiết kế
đặc biệt để phân tích từng yêu cầu HTTP/S ở tầng ứng dụng. Nó thường nhận
biết người dùng, phiên và ứng dụng, nhận thức được các ứng dụng web đằng sau
nó và những dịch vụ mà chúng cung cấp. Do đó, bạn có thể coi WAF là trung
gian giữa người dùng và chính ứng dụng, phân tích tất cả thơng tin liên lạc trước
khi chúng đến ứng dụng hoặc người dùng. WAF truyền thống đảm bảo chỉ có
thể thực hiện các hành động được phép (dựa trên chính sách bảo mật). Đối với
3
nhiều tổ chức, WAF là tuyến phòng thủ đầu tiên, đáng tin cậy cho các ứng dụng,
đặc biệt là để bảo vệ khỏi Top 10 OWASP – danh sách cơ bản về các lỗ hổng
ứng dụng được thấy nhiều nhất (xem thêm ở Phụ lục).
Hình 1.2: So sánh WAF và Firewall, IDS/IPS
1.1.4. Hoạt động của tường lửa ứng dụng web
Hình 1.3: Mơ hình của một hệ thống tường lửa ứng dụng Web (WAF)
WAF được triển khai trước các ứng dụng web và phân tích lưu lượng
HTTP – kiểm tra cả request GET và POST nhằm phát hiện và chặn bất kỳ thứ gì
4
độc hại. Không giống như tường lửa (Firewall) thông thường chỉ đóng vai trị
như một cổng an tồn giữa các server, WAF là một biện pháp bảo mật ứng dụng
được đặt giữa Web Client và Web Server.
Các cuộc tấn công độc hại đến máy tính thường được tự động hóa. Những
loại tấn cơng này rất khó phát hiện vì chúng thường được thiết kế để bắt chước
giống lưu lượng truy cập của con người và không bị phát hiện.
WAF thực hiện kiểm tra chi tiết mọi request và response đối với tất cả các
dạng lưu lượng truy cập web phổ biến. Việc kiểm tra này giúp WAF xác định và
chặn các mối đe dọa, ngăn chúng xâm nhập vào server.
Hình 1.4: Hoạt động của WAF
1.1.5. Lợi ích và tầm quan trọng của WAF
WAF có lợi thế hơn tường lửa truyền thống vì nó cung cấp khả năng hiển
thị tốt hơn đối với dữ liệu ứng dụng nhạy cảm được giao tiếp bằng cách sử dụng
lớp ứng dụng HTTP. Nó có thể ngăn chặn các cuộc tấn công lớp ứng dụng
thường vượt qua tường lửa mạng truyền thống, bao gồm những điều sau:
- Các cuộc tấn công cross-site scripting (XSS) cho phép kẻ tấn công đưa và
thực thi các đoạn mã độc hại trong trình duyệt của người dùng khác.
- Các cuộc tấn cơng đưa vào ngơn ngữ truy vấn có cấu trúc (SQL) có thể
ảnh hưởng đến bất kỳ ứng dụng nào sử dụng cơ sở dữ liệu SQL và cho phép kẻ
tấn cơng truy cập và có khả năng thay đổi dữ liệu nhạy cảm.
- Hack phiên web cho phép kẻ tấn công chiếm đoạt ID phiên và giả dạng
người dùng được ủy quyền. ID phiên thường được lưu trữ trong cookie hoặc
Uniform Resource Locator (URL).
5
- Các cuộc tấn công từ chối dịch vụ (DDoS) phân tán áp đảo một mạng
bằng cách làm ngập nó với lưu lượng truy cập cho đến khi nó khơng thể phục vụ
người dùng. Cả tường lửa mạng và WAF đều có thể xử lý kiểu tấn cơng này
nhưng tiếp cận nó từ các lớp khác nhau.
Một ưu điểm khác của WAF là nó có thể bảo vệ các ứng dụng dựa trên
web mà khơng nhất thiết phải có quyền truy cập vào mã nguồn của ứng dụng.
Trong khi WAF dựa trên máy chủ có thể được tích hợp vào mã ứng dụng, WAF
được lưu trữ trên đám mây có khả năng bảo vệ ứng dụng mà khơng cần có
quyền truy cập. Ngoài ra, WAF đám mây rất dễ triển khai và quản lý, đồng thời
cung cấp các giải pháp vá lỗi ảo nhanh chóng cho phép người dùng tùy chỉnh
nhanh các cài đặt của họ để thích ứng với các mối đe dọa mới được phát hiện.
WAF quan trọng đối với số lượng ngày càng tăng các doanh nghiệp cung
cấp sản phẩm qua internet – bao gồm các ngân hàng trực tuyến, nhà cung cấp
nền tảng truyền thông xã hội và nhà phát triển ứng dụng di động – vì nó giúp
ngăn chặn rị rỉ dữ liệu. Nhiều dữ liệu nhạy cảm, chẳng hạn như dữ liệu thẻ tín
dụng và hồ sơ khách hàng, được lưu trữ trong cơ sở dữ liệu back-end có thể truy
cập được thơng qua các ứng dụng web. Những kẻ tấn công thường nhắm mục
tiêu vào các ứng dụng này để giành quyền truy cập vào dữ liệu liên quan.
Ví dụ: các ngân hàng có thể sử dụng WAF để giúp họ đáp ứng Tiêu chuẩn
bảo mật dữ liệu ngành thẻ thanh toán (PCI DSS), là một bộ chính sách để đảm
bảo rằng dữ liệu của chủ thẻ (CHD) được bảo vệ. Cài đặt tường lửa là một trong
12 yêu cầu tuân thủ PCI DSS. Việc tuân thủ này áp dụng cho bất kỳ doanh
nghiệp nào xử lý CHD. Vì nhiều cơng ty mới hơn sử dụng các ứng dụng di động
và Internet vạn vật (IoT) ngày càng phát triển, ngày càng có nhiều giao dịch diễn
ra ở lớp ứng dụng bằng cách sử dụng web. Vì lý do này, WAF là một phần quan
trọng trong mơ hình bảo mật của một doanh nghiệp hiện đại.
1.2. Kiến trúc WAF
1.2.1. 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
6
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 để giám sát lưu lượng đến và
ra khỏi ứng dụng web.
Hình 1.5: Vị trí đặt WAF
1.2.2. 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.
1.2.3. 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 ngồi gửi 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
7
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.
1.3. Các phiên bản WAF mã nguồn mở phổ biến
1.3.1. ModSecurity
ModSecurity là một module mở rộng cho các web server như Apache,
Nginx, IIS và hoạt động như một firewall tại lớp ứng dụng web. Mod Security
đứng trước Web Server, làm nhiệm vụ như một firewall để kiểm soát truy cập
vào ra Web Server. Các thơng tin đi từ bên ngồi vào bên trong ra sẽ được kiểm
soát chặt chẽ để tránh những thơng tin có thể gây hại cho Web Server hay là việc
rị rỉ các thơng tin đặc biệt từ Web Server đến Client.
Mục đích của ModSecurity là tăng cường bảo mật cho các ứng dụng web,
bảo vệ chúng khỏi các loại tấn công đã biết và chưa biết. Modsec sẽ giúp hạn
chế các vấn đề:
- Cross-site scripting
- Trojan
- Information leakage
- SQL injection
- Common web attacks
- Malicious activity
8
1.3.2. WebKnight
Là 1 sản phẩm dành cho các máy chủ web IIS sử dụng bộ lọc ISAPI bảo
vệ máy chủ web của bạn bằng cách chặn các yêu cầu xấu. Nó giúp ngăn chặn 1
số vấn đề sau:
- Buffer overflow
- Directory transversal
- Character encoding
- SQL injection
- Blocking bad robots
- Hotlinking
- Brute force
- And much more…
1.3.3. Shadow Daemon
Là một tập hợp các công cụ để phát hiện, ghi lại và ngăn chặn các cuộc
tấn cơng vào các ứng dụng web. Nó hỗ trợ ngơn ngữ PHP, Perl và Python. Nó
có thể phát hiện 1 số vấn đề sau:
- SQL injection
- XML injection
- Code injection
- Command injection
- XSS
- Backdoor access
- Local/remote file inclusion
1.3.4. NAXSI
Là viết tắt của Nginx Anti XSS and SQL injection. NAXSI là một module
web application firewall (WAF), opensource với hiệu năng cao của Nginx.
NAXSI hoạt động chủ yếu dựa vào việc phân tích tìm kiếm các ký tự đặc biệt
hay không mong muốn trong các HTTP GET và POST request.
1.3.5. F5 Advance
Cách tính năng WAF F5 Advanced như:
9
- Bảo vệ ứng dụng nâng cao:kết hợp máy học thơng minh để tìm ra các mối
đe dọa tinh vi.
- Chống tấn công Botnet: Bảo vệ ứng dụng khỏi các cuộc tấn công tự động
bởi bot và các công cụ độc hại khác.
- Chống bot SDK cho các ứng dụng trên di động: Bảo vệ các ứng dụng
dành cho thiết bị di động thông qua danh sách cho phép, phân tích hành vi, xác
thực cookie an tồn và tăng cường ứng dụng nâng cao.
- Mã hóa dữ liệu trong trình duyệt.
- Chống tấn cơng DDoS có chủ đích: Phân tích hành vi và máy học thông
minh nhằm cung cấp khả năng phát hiện và giảm thiểu DDoS Layer 7 với độ
chính xác cao.
- Bảo mật giao thức API: Triển khai các công cụ bảo mật API REST/
JSON, XML và GWT.
1.4. Kết luận Chương 1
WAF (Web Application Firewall) chính là một phương pháp tối ưu và
hữu hiệu nhất để bảo vệ tránh các tủi ro về bảo mật và đảm bảo an toàn đối với
người quản trị và người dùng.
Tường lửa bảo vệ ứng dụng Web (WAF) cho phép ngăn chặn và giảm
thiểu các cuộc tấn công lỗ hổng ở lớp ứng dụng như: SQL injection, cross-site
scripting, botnet, DDoS attacks... mà các tường lửa thông thường (Network
Firewall) không ngăn chặn được, đồng thời hệ thống đưa ra các cảnh báo tấn
công, đề xuất giải pháp ngăn chặn các lỗ hổng đã phát hiện được.
10
CHƯƠNG 2: GIỚI THIỆU VỀ MODSECURITY WAF
2.1. Tổng quan về ModSecurity
Mod Security do Ivan Ristic phát triển là một module tường lửa có thể
tích hợp với các Web Application Server như Apache, IIS, Nginx. Mod Security
đứng trước Web Server, làm nhiệm vụ như một firewall để kiểm soát truy cập
vào ra Web Server. Các thơng tin đi từ bên ngồi vào bên trong ra sẽ được kiểm
soát chặt chẽ để tránh những thơng tin có thể gây hại cho Web Server hay là việc
rị rỉ các thơng tin đặc biệt từ Web Server đến Client.
Mục đích của ModSecurity là tăng cường bảo mật cho các ứng dụng web,
bảo vệ chúng khỏi các loại tấn công đã biết và chưa biết. Cùng với sự gia tăng
về phương pháp tấn công web thì ModSecurity cũng đã cập nhật những rule và
đưa ra nhiều cách phịng chống trong mã nguồn của chương trình. Một số tính
chất mà ModSecurity có thể dùng làm Web Application Firewall:
Tính linh động (Flexibility):
Việc phân tích luồng HTTP theo một tiêu chí nhất định trong thực tế
thường gặp vấn đề là làm sao để có thể so trùng mẫu mà bạn muốn. Ngoài ra, do
nhu cầu của từng hệ thống web là khác nhau dẫn đến việc phân tích trên từng
loại ứng dụng cũng khác nhau. Mod_security đã kết hợp với OWASP phát triển
các tập rule mẫu (Core Rule Set) nhằm tạo ra tính linh động cho từng mơ hình
web khác nhau, hỗ trợ người quản trị phân tích theo nhu cầu thực tế của hệ
thống đang quản trị.
Tính thụ động (Passivity):
Mod Security sẽ không thực thi các tác vụ nếu như người quản trị viên
không chỉ định công việc cụ thể cho chương trình; việc này là khá quan trọng
trong một ứng dụng có nhiệm vụ phân tích nguy cơ như ModSecurity. Mọi cảnh
báo sẽ được thực hiện thơng qua cơ chế phân tích và quyết định tương tác với hệ
thống sẽ do người quản trị thực hiện.
2.2. Tính năng của ModSecurity
ModSecurity hoạt động với chương trình web server (ví dụ: Apache) sẽ
thực hiện các tác vụ như sau:
Parsing
11
ModSecurity sẽ phân tách các dữ liệu luân chuyển qua hệ thống thành cấu
trúc dữ liệu mà ModSecurity định nghĩa sẵn. Cấu trúc này sẽ được chuyển qua
cơ chế so trùng mẫu trong tập rule để phân tích nguy cơ.
Buffering
Chức năng buffer (đệm) đóng vai trị khá quan trọng trong cơ chế hoạt
động của ModSec. Việc này có ý nghĩa khi các request gửi đến ứng dụng web
thì phải thơng qua ModSecurity trước khi đến ứng dụng xử lý và những
response cũng sẽ được phân tích trước khi trả về phía client. Cơ chế này là cách
duy nhất để có thể ngăn chặn các cuộc tấn công thời gian thực, các dữ liệu mà
ModSecurity nhận được và phân tích sẽ được lưu trữ trong RAM (bao gồm
request body và response data)
Logging
ModSecurity hỗ trợ ghi nhật ký các gói tin HTTP: request headers,
request body, response header, response body nhằm hỗ trợ người quản trị phân
tích nguy cơ mà hệ thống đang gặp phải để có thể ra quyết định kiểm sốt.
Rule Engine
Các tập mẫu trong ModSecurity đóng vai trị quan trọng trong việc phát
hiện các dạng tấn công và thực hiện phòng chống. ModSecurity cùng phát triển
với dự án OWASP phát triển một nhóm các tập lệnh có tên là OWASP
ModSecurity CRS để phân tích và phịng chống các tấn cơng hệ thống web.
Nhằm mục đích bảo vệ các ứng dụng web phổ biến, CRS phân loại nội
dung các rule dựa trên các phương pháp tấn công:
- HTTP Protection: phát hiện các nguy cơ dựa trên giao thức HTTP như
Method (GET HEAD POST …), phiên bản HTTP (1.0, 1.1)
- Real-time Blacklist Lookups: lọc các dãy IP nguy hiểm dựa vào một bên
thứ ba.
- Web-based Malware Detection: xác định các mã độc trong nội dung trang
web bằng cách sử dụng Google Safe Browsign API.
- HTTP Denial of Service Protections: chống lại dạng tấn công từ chối dịch
vụ như HTTP Flooding và Slow HTTP DoS.
- Common Web Attacks Protection: phát hiện một số dạng tấn công phổ
biếtn vào ứng dụng web Automation Detection: phát hiện các bots, crawler,
chương trình quét (scanner) và các hoạt động thu thập thông tin.
12