Hình 1.1: Mô hình hoạt động ứng dụng web Hình 1.2 bên dưới sẽ thể hiện chi tiết hơn quá trình từ lúc yêu cầu ban đầu được kích hoạt bởi người sử dụng thông qua trình duyệt trên Internet
Trang 1LỜI CAM ĐOAN
Để hoàn thành luận văn đúng thời gian quy định và đáp ứng được yêu cầu đề ra, tôi đã cố gắng nghiên cứu, học tập và làm việc trong thời gian cho phép Tôi đã tham khảo một số tài liệu đã nêu trong phần “Tài liệu tham khảo” và không hề sao chép nội dung từ bất kỳ luận văn hay bất kỳ một công trình nghiên cứu nào khác Tôi xin cam đoan những lời khai trên là đúng, mọi thông tin sai lệch tôi xin hoàn toàn chịu trách nhiệm trước Hội đồng
Hà Nội, ngày 28 tháng 9 năm 2016
Người cam đoan
Nguyễn Thanh Long
Trang 2
MỤC LỤC
TRANG BÌA PHỤ
LỜI CAM ĐOAN ii
MỤC LỤC iii
DANH MỤC HÌNH VẼ v
DANH MỤC CÁC TỪ VIẾT TẮT vii
MỞ ĐẨU viii
CHƯƠNG 1 – CÁC KỸ THUẬT KHAI THÁC LỖ HỔNG BẢO MẬT ỨNG DỤNG WEB 1
1.1 Tổng quan về nguy cơ, rủi ro và tác động của các tấn công 1
1.1.1 Khái niệm ứng dụng web 1
1.1.2 Vấn đề bảo mật ứng dụng web 2
1.1.3 Danh sách rủi ro bảo mật cho các ứng dụng web OWASP Top 10 3 1.2 Các kỹ thuật tấn công phổ biến 4
1.3 Các kỹ thuật để phát hiện và ngăn chặn tấn công 6
1.3.1 Sự phát triển của nhận dạng tấn công ứng dụng web 6
1.3.2 Các phương pháp nhận dạng tấn công ứng dụng web 7
CHƯƠNG 2 – XÂY DỰNG GIẢI PHÁP PHÁT HIỆN VÀ NGĂN CHẶN TẤN CÔNG KHAI THÁC LỖ HỔNG BẢO MẬT ỨNG DỤNG WEB 11
2.1 Tổng quan mô hình và chức năng của WAF 11
2.1.1 Tổng quan về WAF 11
2.1.2 Các mô hình triển khai WAF 18
2.1.3 Các phiên bản mã WAF mã nguồn mở phổ biến 20
2.2 Module Modsecurity để phát hiện và ngăn chặn 21
2.2.1 Giới thiệu về ModSecurity 21
2.2.2 Các mô hình triển khai ModSecurity 24
2.2.3 Core Rule Set (CRS) 25
Trang 32.3 Module quản trị hệ thống 31
2.3.1 Mô tả yêu cầu 31
2.3.2 Mô hình thiết kế 32
2.3.3 Mô tả các chức năng 32
CHƯƠNG 3 – TRIỂN KHAI VÀ THỬ NGHİỆM GIẢI PHÁP 35
3.1 Mô hình triển khai của giải pháp 35
3.1.1 Mô hình các thành phần của giải pháp 35
3.1.2 Các bước cài đặt 36
3.2 Mẫu dữ liệu và phương án thử nghiệm 37
3.2.1 Phương án thử nghiệm 37
3.2.2 Website chứa các lỗ hổng bảo mật (DVWA) 39
3.2.3 Phần mềm quét lỗ hổng bảo mật Acunetix 42
3.3 Kết quả thử nghiệm 44
3.3.1 Kết quả quét lỗi khi chưa dùng WAF 44
3.3.2 Kết quả khi triển khai WAF bảo vệ 45
KẾT LUẬN VÀ KIẾN NGHỊ 50
TÀI LIỆU THAM KHẢO 51
PHỤ LỤC 52
Trang 4DANH MỤC HÌNH VẼ
Hình 1.1: Mô hình hoạt động ứng dụng web 2
Hình 1.2: Mô hình chi tiết hoạt động ứng dụng web 2
Hình 1.3: Các kỹ thuật nhận dạng tấn công ứng dụng web 8
Hình 2.1: Mô hình network-based WAF 12
Hình 2.2: Mô hình host-based WAF 12
Hình 2.3: Mô hình quan hệ các sản phấm WAF 13
Hình 2.4: Mô hình triển khai Reverse Proxy 18
Hình 2.5: Mô hình triển khai Out – of – band 19
Hình 2.6: Mô hình triển khai Embedded-mode 19
Hình 2.7: Mô hình triển khai Internet Host/Cloud 20
Hình 2.8: Apache Request Cycle 23
Hình 2.9: Triển khai ModSecurity dạng Reverse Proxy 25
Hình 2.10: Sơ đồ xử lý chức năng cấu hình 33
Hình 2.11: Sơ đồ xử lý chức năng giám sát 33
Hình 3.1: Mô hình triển khai giải pháp WAF 35
Hình 3.2: Mô hình xử lý request từ người dùng của giải pháp WAF 36
Hình 3.3: Mô hình triển khai thử nghiệm giải pháp WAF 38
Hình 3.4: Ví dụ khai thác lỗi SQL Injection 40
Hình 3.5: Ví dụ khai thác lỗi XSS 40
Hình 3.6: Ví dụ khai thác lỗi Command Injection 41
Hình 3.7: Ví dụ khai thác lỗi File Include 41
Hình 3.8: Kết quả quét lỗi từ Acunetix khi website chưa được bảo vệ 45
Hình 3.9: Kết quả quét lỗi từ Acunetix khi website đã được bảo vệ 46
Hình 3.10: Request tấn công bị hệ thống WAF ngăn chặn 46
Hình 3.11: Thông tin request tấn công bị chặn trong log 47
Trang 5Hình 3.12: Thông tin request tấn công trên trang quản trị 47
Hình 3.12: Thông tin chi tiết của request tấn công trên trang quản trị 47
Hình 3.13: Chức năng báo cáo các request tấn công 48
Hình 3.14: Chức năng báo cáo thông kê 48
Hình 3.15: Chức năng báo cáo thông kê thoại loại tấn công 49
Hình 3.16: Chức năng báo cáo số lƣợng các request tấn công 49
Trang 6DANH MỤC CÁC TỪ VIẾT TẮT
Từ viết tắt Tiếng Anh Tiếng Việt
HTTP Hypertext Transfer Protocol Giao thức truyền tải siêu văn bản HIDS Host-based intrusion
DVWA Damn Vulnerable Website
Application
Ứng dụng web chứa các lỗ hổng bảo mật
Trang 7Hình thức tấn công tấn công khai thác lỗ hổng web đang là một hình thức tấn công phổ biến và ngày càng tăng mạnh hiện nay trên Internet Từ các lỗ hổng khai thác được, kẻ tấn công có thể khai thác được các dữ liệu trong hệ thống hoặc thậm chí leo thang chiếm quyền điều khiển Một website của tổ chức khi được đưa lên internet luôn có thể trở thành mục tiêu của những kẻ tấn công nhắm tới Các website mắc lỗi trở thành cửa ngõ cho kẻ tấn công xâm nhập vào hệ thống của tổ chức
Vì vậy, luận văn này sẽ nghiên cứu các kỹ thuật khai thác lỗ hổng website phổ biến và giải pháp phòng chống, cụ thể hóa các nghiên cứu đó vào ứng dụng cụ thể
và thử nghiệm trong thực tế
2 Lịch sử nghiên cứu
Năm 2009, tác giả Jim Beechey của SANS Technologhy Institute công bố báo cáo “Web Application Firewalls: Defense in Depth for Your Web Infrastructure” về các giải pháp triển khai tường lửa ứng dụng web để bảo vệ website
Năm 2012, tác giả Ivan Ristic, thuộc công ty Qualys, công bố báo cáo Level Evasion of Web Application Firewalls” về việc xây dựng giải pháp tường lửa ứng dụng web dùng Apache – ModSecuriy để đảo bảo các yêu cầu theo chuẩn PCI Năm 2016, tác giả Vladimir Ivanov đã công bố nghiên cứu “Web Application Firewalls: Attacking detection logic mechanisms” về các kỹ thuật ngăn chặn của waf, các kỹ thuật kẻ tấn công dùng để vượt qua tại hội thảo Black hat USA 2016
Trang 8“Protocol-3 Mục đích nghiên cứu
- Nghiên cứu các giải pháp nhận dạng, ngăn chặn tấn công ứng dụng web
- Nghiên cứu về giải pháp tưởng lửa cho ứng dụng web (WAF)
- Nghiên cứu về giải pháp waf sử dụng ModSecurity kết hợp tập luật CoreRuleSet
- Xây dựng giải pháp tường lửa chống tấn công khai thác lỗ hổng bảo mật ứng dụng web dùng Apache – ModSecurity, kết hợp hệ thống quản trị, theo dõi tập trung
4 Đối tượng và phạm vi nghiên cứu
- Tìm hiểu cơ bản về các lỗ hổng bảo mật ứng dụng WAF
- Nghiên cứu lý thuyết và mô hình triển khai hệ thống WAFs
- Tìm hiểu các mô hình nhận dạng tấn công ứng dụng web
5 Tóm tắt luận văn
Toàn bộ nội dung của Luận văn được chia thành 03 chương như sau:
Chương 1: Các kỹ thuật khai thác lỗ hổng bảo mật ứng dụng web
Chương 2: Xây dựng giải pháp phát hiện và ngăn chặn tấn công thác lỗ hổng bảo mật ứng dụng web
Chương 3: Triển khai và thử nghiệm giải pháp
6 Phương pháp nghiên cứu
- Sử dụng các thông tin, tài liệu trên trang web OWASP (Open Web Application Security Project) để nghiên cứu lý thuyết và mô hình triển khai hệ thống WAFs
- Sử dụng tài liệu “Modsecurity Handbook complete guide to securing your Web applications” của Ivan Ristic để nghiên cứu về ModSecurity
- Xây dựng giải pháp WAF và thử nghiệm
Trang 9CHƯƠNG 1 – CÁC KỸ THUẬT KHAI THÁC LỖ HỔNG
BẢO MẬT ỨNG DỤNG WEB
1.1 Tổng quan về nguy cơ, rủi ro và tác động của các tấn công
1.1.1 Khái niệm ứng dụng web
Các ứng dụng web là các chương trình cho phép người truy cập website để chuyển lên và lấy dữ liệu về cơ sở dữ liệu thông qua Internet bằng cách sử dụng trình duyệt web Dữ liệu sau đó được hiển thị trên trình duyệt của người dùng, thông tin trên đó được tạo ra tự động (theo một định dạng cụ thể, ví dụ như trong HTML bằng cách sử dụng CSS) bởi các ứng dụng web thông qua một máy chủ web
Nếu tìm hiểu chi tiết về kỹ thuật hơn thì các ứng dụng Web truy vấn máy chủ dữ liệu và tự động tạo ra các dữ liệu trên website để hiển thị cho người dùng Các dữ liệu trên Web được tự động tạo ra này sẽ theo một định dạng chuẩn được hỗ trợ bởi các trình duyệt khác nhau Các trình duyệt web giữ vai trò then chốt do vừa diễn dịch, thực thi tất cả Script và hiển thị nội dung các trang web
Mô hình hoạt động của ứng dụng web
Thông thường mô hình của ứng dụng web theo mô hình 03 lớp Lớp đầu tiên là trình duyệt web hoặc giao diện người dùng dạng Winform, lớp thứ hai là công cụ sử dụng công nghệ tạo ra các nội dung động như Java servlets (JSP) hoặc Active Server Pages (ASP), và lớp thứ ba là cơ sở dữ liệu có chứa nội dung (như tin tức, sản phẩm) và dữ liệu khách hàng (ví dụ như tên người dùng, thông tin cá nhân, )
Trang 10Hình 1.1: Mô hình hoạt động ứng dụng web Hình 1.2 (bên dưới) sẽ thể hiện chi tiết hơn quá trình từ lúc yêu cầu ban đầu được kích hoạt bởi người sử dụng thông qua trình duyệt trên Internet cho các máy chủ ứng dụng web, tiếp theo các ứng dụng web truy xuất đến máy chủ cơ sở dữ liệu
để thực hiện các nhiệm vụ được yêu cầu như: thêm mới, cập nhật, lấy các thông tin trong cơ sở dữ liệu Các ứng dụng web sau đó chuyển thông tin về đến trình duyệt web để cung cấp cho người dùng
Hình 1.2: Mô hình chi tiết hoạt động ứng dụng web
1.1.2 Vấn đề bảo mật ứng dụng web
Khi các công nghệ mới được phát triển và ứng dụng mạnh mẽ như các ứng dụng web hiện nay, thì theo khách quan đi cùng với điều này sẽ là hàng loạt các lỗ hổng bảo mật mới ra đời Đa số các cuộc tấn công nghiêm trọng vào các ứng dụng web là làm lộ thông tin, dữ liệu nhạy cảm hoặc truy cập không hạn chế với các hệ thống
mà các ứng dụng đang hoạt động
Vấn đề cốt lõi trong bảo mật ứng dụng web liên quan đến việc người dùng có thể nhập, tùy biến dữ liệu đầu vào bất kỳ Các ứng dụng web cũng như các ứng dụng phân tán khác đều phải đối mặt với một vấn đề căn bản và cần phải giải quyết tốt đó là các kết nối từ phía người dùng thường ngoài tầm kiểm soát của ứng dụng
Trang 11web, người dùng có nhập hay tùy biến dữ liệu đầu vào bất kỳ để chuyển về cho ứng dụng web xử lý Do đó, để đảm bảo an toàn thì các ứng web phải giả định rằng các
dữ liệu đầu vào có thể nguy cơ là mã độc và có các bước kiểm tra chắc chắn rằng kẻ tấn công không thể thay thế hay chèn dữ liệu đầu vào một cách thủ công để gây hại cho các ứng dụng web bằng cách can thiệp vào tính logic, cách thức hoạt động của các ứng dụng web, từ đó có thể truy cập trái phép vào chức năng và dữ liệu ứng dụng web
1.1.3 Danh sách rủi ro bảo mật cho các ứng dụng web OWASP Top 10
OWASP là viết tắt của The Open Web Application Security Project là dự án mở
về bảo mật ứng dụng Web Dự án là một sự cố gắng chung của cộng đồng giúp các
tổ chức có thể phát triển, mua hoặc bảo trì các ứng dụng an toàn
OWASP là một mô hình tổ chức mới Việc không bị thương mại hóa ảnh hưởng giúp OWASP đưa ra những thông tin chính xác, không thiên vị và có giá trị về an toàn ứng dụng OWASP không liên kết với bất kì công ty kỹ thuật nào, dù OWASP
hỗ trợ về các mặt kỹ thuật trong an toàn thông tin ứng dụng Cũng giống như những
dự án phần mềm mã nguồn mở, OWASP tạo ra rất nhiều sản phẩm bằng sự hợp tác của cộng đồng
OWASP cung cấp miễn phí và tính mở để phát triển các nội dung:
- Công cụ và các tiêu chuẩn về an toàn các ứng dụng
- Sách về kiểm tra bảo mật ứng dụng, lập trình an toàn và các bài viết về kiểm định mã nguồn an toàn
- Thư viện và các tiêu chuẩn kiểm soát anh ninh ứng dụng
- Những nghiên cứu mới nhất
- Những buổi hội thảo toàn cầu
- Địa chỉ thư liên lạc chung
- Và nhiều nội dung khác
OWASP Top 10 2013 đánh dấu 11 năm hoạt động tuyên truyền về sự quan trọng của bảo mật thông tin cho các ứng dụng WASP Top 10 xuất hiện đầu tiên vào năm
2003, được sửa đổi vài điểm nhỏ trong những năm 2004 và 2007, đến nay là phiên bản 2013 Mục tiêu chính của OWASP Top 10 là để hướng dẫn người lập trình viên, người thiết kế, kỹ sư, quản lí và cả tổ chức về hậu quả của những điểm yếu
Trang 12quan trọng nhất trong ứng dụng web Top 10 cung cấp những kỹ năng cơ bản để bảo chống lại các rủi ro và hướng dẫn để xử lý
1.2 Các kỹ thuật tấn công phổ biến
Theo OWASP Top 10 2013, danh sách các lỗ hổng bảo mật ứng dụng web phổ biến gồm những nhóm lỗi sau [2]
Tên lỗi Mô tả lỗi
A1 – Lỗi nhúng
mã
Xảy ra trong các ứng dụng như SQL, LDAP khi những dữ liệu không xác thực được gửi tới hệ thống biên dịch như một phần của mã lệnh Những dữ liệu này của kẻ tấn công có thể lừa hệ thống biên dịch thực hiện những mã lệnh độc hại hoặc giúp kẻ tấn công xâm nhập đến những dữ liệu quan trọng một cách trái phép
A3 – Thực thi mã
script xấu (XSS)
Xảy ra khi một ứng dụng tiếp nhận những dữ liệu không đáng tin cậy và gửi nhúng đến cho trình duyệt web mà không qua xử lý và kiểm duyệt XSS cho phép kẻ tấn công thực hiện mã độc trên trình duyệt của người bị tấn công và lợi dụng ăn cắp phiên truy cập để mạo danh hoặc hủy hoại trang web hoặc lừa người sử dụng đến những trang web chứa mã độc khác
A4 – Đối tượng
tham chiếu trực
tiếp không an toàn
Xảy ra khi người phát triển để lộ một tham chiếu đến những đối tượng trong hệ thống như các tập tin, thư mục hay khóa
dữ liệu Nếu chúng ta không có một hệ thống kiểm tra truy cập, kẻ tấn công có thể lợi dụng những tham chiếu này để truy cập dữ liệu một cách trái phép
Trang 13Chương 2 – Giao thức TCP hiện tại
A5 – Sai sót cấu
hình bảo mật
Một cơ chế an ninh tốt cần phải định nghĩa những hiệu chỉnh
về an ninh và triển khai nó cho các ứng dụng, máy chủ ứng dụng, máy chủ web, máy chủ dữ liệu và các ứng dụng nền tảng Tất cả những thiết lập nên được định nghĩa, thực hiện
và bảo trì bởi vì rất nhiều hệ thống không được triển khai với thiết lập an toàn mặc định Các hiệu chỉnh cũng bao gồm cập nhật phần mềm và những thư viện được sử dụng bởi ứng dụng
A6 – Phơi bày các
dữ liệu nhạy cảm
Nhiều ứng dụng web không bảo vệ dữ liệu nhạy cảm như thẻ tín dụng, mã số thuế và những mã xác thực bí mật bằng các phương thức mã hóa hay băm (hashing) Kẻ tấn công có thể ăn cắp hay thay đổi những dữ liệu hạy cảm này và tiến hành hành vi trộm cắp, gian lận thẻ tín dụng, v.v
để truy cập vào chức năng trái phép A8 – Giả mạo yêu
cầu (CSRF)
Kiểu tấn công này ép buộc trình duyệt web của một người dùng đã đăng nhập gửi những yêu cầu các HTTP giả bao gồm cookie của phiên truy cập và những thông tin tự động khác bao gồm thông tin đăng nhập đến một ứng dụng web Điều này, cho phép kẻ tấn công buộc trình duyệt web tạo ra những yêu cầu đến ứng dụng web mà ứng dụng không thể biết đây là những yêu cầu giả mạo của kẻ tấn công
A9 - Sử dụng
thành phần đã tồn
tại lỗ hổng
Các lổ hỏng có thể có trong các thành phần (thành phần phát triển ứng dụng) như các thư viện, các framework, và mô-đun phần mềm khác Các thành phần này gần như luôn luôn chạy với quyền cao nhất trong hệ thống Vì vậy, nếu bị khai thác, các thành phần này có thể gây mất dữ liệu nghiêm trọng
Trang 14Chương 2 – Giao thức TCP hiện tại
Các ứng dụng sử dụng các thành phần tồn tại lổ hỏng có thể làm suy yếu phòng thủ của hệ thống, cho phép một loạt các cuộc tấn công và ảnh hưởng đến hệ thống
A10 – Chuyển
hướng và chuyển
tiếp thiếu kiểm tra
Ứng dụng web thường chuyển hướng, chuyển tiếp người dùng đến những trang web, website khác và sử dụng những thông tin thiếu tin cậy để xác định trang đích đến Nếu không được kiểm tra một cách cẩn thận, kẻ tấn công có thể lợi dụng để chuyển hướng nạn nhân đến các trang web lừa đảo hay trang web chứa phần mềm độc hại, hoặc chuyển tiếp
để truy cập các trang trái phép
1.3 Các kỹ thuật để phát hiện và ngăn chặn tấn công
1.3.1 Sự phát triển của nhận dạng tấn công ứng dụng web
Hiện nay, khi đề cập đến phát hiện xâm nhập (IDS) thì đa số người dùng nghĩ đến một hệ thống phát hiện xâm nhập mạng (NIDS) [1] Một NIDS hoạt động ở mức TCP/IP và được sử dụng để phát hiện các cuộc tấn công dịch vụ mạng, bao gồm các máy chủ web Hệ thống IDS được triển khai phổ biến và rộng rãi với mục đích là giám sát các gói tin trên mạng để phát hiện gói tin nguy hiểm
Ngoài ra, hệ thống phát hiện xâm nhập dựa trên máy chủ (HIDSs) làm việc ở cấp độ máy chủ Mặc dù HIDS có thể phân tích lưu lượng mạng (chỉ có lưu lượng truy cập mà đến với máy chủ duy nhất) nhưng công việc này thường là của NIDSs HIDS chủ yếu giám sát đến các sự kiện diễn ra trên các máy chủ (ví dụ như người dùng đăng nhập vào và ra và thực hiện lệnh) và các thông báo lỗi hệ thống được tạo
ra
Nhiều loại NIDS được phát triển, trong đó có NIDS nhằm phát hiện xâm nhập cho các ứng dụng web Mặc dù, NIDS cho các ứng dụng web được thiết kế để giải quyết tốt vấn đề trợ giúp phát hiện xâm nhập ứng dụng web Tuy nhiên, các NIDS này không thể thực hiện đầy đủ phát hiện các xâm nhập tiềm năng với các ứng dụng web vì những lý do sau đây:
- NIDSs được thiết kế để làm việc với giao thức TCP/IP Web lại dựa trên giao thức HTTP, là một nội dung hoàn toàn mới với các vấn đề và thách thức riêng đối với giao thức TCP/IP
Trang 15- Vấn đề thực sự là các ứng dụng web không phải đơn giản là sử dụng giao thức HTTP Thay vào đó, HTTP chỉ được sử dụng để thực hiện trao đổi dữ liệu của các ứng dụng cụ thể Có thể xem như mỗi ứng dụng được xây dựng giao thức riêng của mình trên đầu trang của HTTP
- Nhiều giao thức mới được triển khai trên HTTP (dịch vụ Web, XML-RPC,
và SOAP) làm tăng mức độ phức tạp ứng dụng web
- Các vấn đề khác, như sự bất lực của NIDS để giám sát dữ liệu đi qua kênh
mã hóa SSL và không có khả năng để đối phó với một số lượng lớn lưu lượng truy cập web
Các nhà cung cấp của NIDSs đã phát triển các chức năng mở rộng để chống lại những thách thức trên như khả năng hiểu HTTP tốt hơn (như dữ liệu chuyển qua lại giữa người dùng và ứng dụng web) Các bức tường lửa chuyên sâu có thể kiểm tra ở mức độ cao hơn
Cuối cùng, một loại IDS đã ra đời đó là tường lửa ứng dụng web - WAF WAF còn được gọi là các cổng ứng dụng web, được thiết kế đặc biệt để bảo vệ các ứng dụng web Các yêu cầu kết nối thay vì đi trực tiếp đến các ứng dụng web thì sẽ được đưa đến một WAF kiểm tra và kết nối nếu WAF cho rằng yêu cầu này an toàn WAF được thiết kế hoàn toàn để đối phó với các cuộc tấn công vào ứng dụng web
và phù hợp nhất cho mục đích phát hiện và ngăn chặn tấn công ứng dụng web
1.3.2 Các phương pháp nhận dạng tấn công ứng dụng web
1.3.2.1 Kỹ thuật nhận dạng tấn công
Căn cứ vào cách tiếp cận mà một số thông tin phân loại dễ nhầm lẫn, thiếu sót trong quá trình phân loại là việc nhằm lẫn giữa phương pháp phát hiện xâm nhập và các chức năng của hệ thống phát hiện xâm nhập Thông thường có 02 phương pháp tiếp cận là sử dụng kỹ thuật nhận dạng tĩnh và kỹ thuật nhận dạng động
Trang 16Hình 1.3: Các kỹ thuật nhận dạng tấn công ứng dụng web
- Kỹ thuật nhận dạng tĩnh: Phát hiện xâm nhập dạng tĩnh dựa trên nhật ký truy cập chi tiết của máy chủ web, nơi mà các thông tin về tất cả các yêu cầu truy cập từ phía người dùng được lưu lại Ngoài ra, máy chủ web cũng có thể tạo
ra các nhật ký truy cập theo các định dạng đặc biệt để kiểm soát dữ liệu được thu thập Phát hiện xâm nhập dạng tĩnh được thực hiện chỉ sau khi giao dịch diễn ra Vì vậy, việc ngăn chặn tấn công tại thời điểm đang bị tấn công là không thể
- Kỹ thuật nhận dạng động: Phát hiện xâm nhập dạng động (thời gian thực) không chỉ có thể phát hiện xâm nhập, mà còn có thể phản ứng lại Có hai phương pháp:
o Network-based: một hệ thống phát hiện xâm nhập được đặt giữa đường kết nối vật lý người dùng và website
o Web server-based: một hệ thống phát hiện xâm nhập được tích hợp vào trong máy chủ web
1.3.2.2 Các chức năng chính của hệ thống phát hiện xâm nhập ứng dụng web
- Phát hiện bất thường trong giao thức sử dụng: Các IDS thực hiện một số kiểm tra yêu cầu gửi đến và không chấp nhận bất cứ điều gì không phù hợp với các tiêu chuẩn HTTP Ngoài ra, các IDS có thể thu hẹp các tính năng với các ứng dụng web và do đó làm giảm bớt các dạng tấn công
Trang 17- Mô hình an toàn Negative và Positive (backlist và whitelist): Đây là hai hướng tiếp cận mà thể hiện rõ ở 02 câu hỏi sau:
o Mô hình bảo mật Positive (Whitelist): Cái nào là an toàn?
o Mô hình bảo mật Negative (Blacklist): Cái nào là nguy hiểm?
Mô hình bảo mật Negative thường được sử dụng nhiều hơn Hệ thống chỉ cần xác định tấn công dựa vào một mẫu các tấn công nguy hiểm đã biết trước
và cấu hình để loại bỏ nó
Một mô hình bảo mật Positive là một phương pháp tốt hơn để xây dựng các chính sách áp dụng trong hoạt động tường lửa Trong lĩnh vực bảo mật ứng dụng web, một mô hình bảo mật Positive liệt kê tất cả các mô tả trong ứng dụng Mỗi mô tả cần phải xác định như sau:
o Các phương thức yêu cầu được phép (ví dụ, GET / POST hoặc chỉ POST)
o Content-Type được phép
o Content-Length được phép
o Các thông số được phép
o Những thông số là bắt buộc và là tùy chọn
o Kiểu dữ liệu tất cả các tham số (ví dụ, văn bản hoặc số nguyên)
o Thông số bổ sung (nếu có)
Các lập trình viên, người quản trị hệ thống có nghĩa vụ phải thực hiện cung cấp danh sách các mô tả trên Tuy nhiên, trong thực tế thông thường thì không thực hiện điều này Sử dụng mô hình bảo mật Positive là tốt hơn nếu người quản trị hệ thống dành đủ thời gian để phát triển nó Một khó khăn khác của phương pháp này là các ứng dụng thay đổi mô hình liên tục Do đó,
sẽ cần phải cập nhật mô hình mỗi khi một mô tả mới được thêm vào các ứng dụng hoặc thay đổi mới
1.3.2.3 Phương pháp bảo vệ dạng Rule-based và Anomaly-based
Rule-based: mọi yêu cầu HTTP là đối tượng của một loạt các kiểm tra, trong đó
mỗi kiểm tra bao gồm một hoặc nhiều quy tắc kiểm tra Kết quả của quá trình kiểm tra là một yêu cầu có thỏa hay không? nếu thỏa kết quả là True, không thỏa là False
Sau đó, các yêu cầu HTTP có kết quả là True bị xem là mã độc và bị từ chối based thường được sử dụng trong mô hình an toàn Negative
Trang 18Rule-Rule-based dễ xây dựng và sử dụng và có hiệu quả khi được sử dụng để bảo vệ chống lại các tấn công đã được biết đến hoặc xây dựng một chính sách tùy chỉnh Tuy nhiên, do phải biết về các chi tiết, cụ thể của tất cả các mối đe dọa, nên phương pháp này phải dựa trên cơ sở dữ liệu các quy tắc (hoặc cơ sở dữ liệu mẫu tấn công) Các nhà cung cấp IDS duy trì, phát triển cơ sở dữ liệu quy tắc và phân phối thông qua chức năng cập nhật tự động của IDS
Cách tiếp cận này ít có khả năng có thể để bảo vệ các ứng dụng tùy chỉnh hoặc
để bảo vệ trước tấn công khai thác zero-day (khai thác các lỗ hổng chưa được biết đến công khai) Đối với các vấn đề này thì IDS theo hướng anomaly-base thực hiện tốt hơn
Rule-based và Signature-based về cơ bản là giống nhau Signature-based
thường phát hiện xâm nhập bằng cách kiểm tra các chuỗi hoặc biểu thức trong lưu lượng dữ liệu với các mẫu có trùng khớp hay không Trong khi đó, Rule-based cho phép thực hiện các phép toán logic phức tạp hơn, cũng như có thể kiểm tra đến một phần cụ thể của giao dịch web được đặt ra trong quy tắc
Anomaly-based: là hướng tiếp cận dựa trên các dấu hiệu bất thường với ý
tưởng xây dựng một lớp bảo vệ và nó sẽ quan sát lưu lượng dữ liệu hợp pháp của ứng dụng và sau đó xây dựng một mô hình thống kê để đánh giá lưu lượng truy cập nhằm chống lại các tấn công Về lý thuyết, một khi được đào tạo, một hệ thống Anomaly-based sẽ phát hiện bất cứ điều gì khác thường Với phương pháp Anomaly-based thì không cần thiết sử dụng phương pháp Rule-based và khai thác zero-day không phải là một vấn đề đáng quan tâm Tuy nhiên, hệ thống Anomalybased rất khó để xây dựng và ít được sử dụng Bởi vì người dùng không hiểu cách hệ thống Anomaly-based làm việc do đó không tin tưởng vào hệ thống như vậy, vì thế làm cho nó ít phổ biến
Trang 19Học viên thực hiện: Nguyễn Thanh Long – CAC16024 Lớp 2016CLC
CHƯƠNG 2 – XÂY DỰNG GIẢI PHÁP PHÁT HIỆN VÀ NGĂN CHẶN TẤN CÔNG KHAI THÁC LỖ HỔNG BẢO
MẬT ỨNG DỤNG WEB
2.1 Tổng quan mô hình và chức năng của WAF
2.1.1 Tổng quan về WAF
2.1.1.1 Khái niệm WAF
WAF có thể được xem là một hệ thống phát hiện/ngăn chặn xâm nhập được thiết
kế đặc biệt để bảo vệ các ứng dụng web (như đã nêu phần “Sự phát triển của nhận dạng tấn công ứng dụng web”) WAF là một thiết bị hoặc máy chủ ứng dụng giám sát trao đổi thông tin của giao thức http/https giữa một trình duyệt máy trạm và máy chủ web ở tầng ứng dụng (Tầng 7 trong mô hình OSI) WAF sử dụng phương pháp nhận dạng động để phát hiện tấn công WAF sau đó có khả năng thực thi các chính sách bảo mật dựa trên nhiều chức năng bao gồm Rule-based (dựa trên mẫu, dấu hiệu của các cuộc tấn công được biết đến), bất thường trong giao thức sử dụng và Anomaly-based (nhận dạng các bất thường trong quá trình hoạt động của ứng dụng web), …
a Phân loại theo vị trí của WAF trong hệ thống mạng
WAF thường được chia thành 02 loại chính:
- Network-based WAF: theo mô hình này WAF được đặt giữa đường kết nối vật lý người dùng và Website, và kiểm tra giao dịch HTTP/HTTPS Một Network-based WAF có thể là một phần cứng chuyên dụng hoặc một máy chủ được cài đặt với phần mềm WAF
Trang 20Học viên thực hiện: Nguyễn Thanh Long – CAC16024 Lớp 2016CLC
Hình 2.1: Mô hình network-based WAF
Một Network-based WAF có những đặc điểm sau đây:
o Hoạt động của nó không phụ thuộc vào môi trường hoạt động của máy chủ web
o Hoạt động của nó không phụ thuộc vào số lượng các máy chủ web (của một trang website)
o Khi triển khai một WAF vào các trang web đã hoạt động thì yêu cầu phải cấu hình lại hệ thống mạng
o Khi sử dụng WAF, tính sẵng sàng của các trang web có thể giảm
- Host-based WAF: theo mô hình này WAF được đặt giữa đường kết nối (Logic) người dùng và Website, và kiểm tra giao dịch HTTP/HTTPS khi máy chủ web gởi và nhận dữ liệu Một Host-based WAF thường là phần mềm được cài đặt như một phần của máy chủ web
Hình 2.2: Mô hình host-based WAF
Trang 21Học viên thực hiện: Nguyễn Thanh Long – CAC16024 Lớp 2016CLC
b Phân loại theo bảng quyền sử dụng: có 2 loại là sản phẩm thương mại và phần mềm mã nguồn mở
c Phân loại theo hình thức cung cấp: thường có 03 loại là thiết bị phần cứng chuyên dụng, phần mềm và dịch vụ
Do đó, vấn đề quan trọng là phải hiểu được những lợi thế và bất lợi của từng loại WAF để chọn một loại thích hợp
Hình 2.3: Mô hình quan hệ các sản phẩm WAF 2.1.1.2 Chức năng của WAF
WAF bảo vệ các ứng dụng web trước các cuộc tấn công khai thác lỗ hổng trong các ứng dụng web bằng cách sử dụng kết hợp các tính năng khác nhau Theo hướng dẫn của tổ chức Information Technology Promotion Agency (IPA) Nhật Bản [9] thì các tính năng WAF thường chia ra 2 cấp độ: "các chức năng cơ bản" (tất cả các WAF phải có) và "các chức năng cao cấp" Cụ thể như sau:
a Chức năng cơ bản:
WAF kiểm tra các giao dịch HTTP giữa người sử dụng và các trang web theo quy định cụ thể Khi một giao dịch HTTP được coi là "độc hại", WAF thực hiện một hành động định sẵn Các "chức năng cơ bản" bao gồm những chức năng sau:
- Chức năng kiểm tra kết nối: là một chức năng kiểm tra các yêu cầu/phản hồi HTTP dựa trên các quy tắc được xác định trước Chi tiết các nội dung kiểm tra cho các yêu cầu/phản hồi HTTP như sau:
o Nội dung kiểm tra các yêu cầu HTTP
Nội dung của dòng yêu cầu HTTP như: phương thức, URI, chuỗi truy vấn
Trang 22Học viên thực hiện: Nguyễn Thanh Long – CAC16024 Lớp 2016CLC
Nội dung trường tiêu đề yêu cầu của HTTP như: header, requestheader, entity-header
general- Nội dung thông điệp phần dữ liệu yêu cầu của HTTP (HTTP body)
o Nội dung kiểm tra các phản hồi HTTP
Nội dung các dòng trạng thái (status code)
Nội dung trường tiêu đề trả về của HTTP
Nội dung thông điệp phần dữ liệu trả về của HTTP
Chức năng "kiểm tra" sử dụng mô hình nhận dạng Negative và Positive để nhận dạng kết nối an toàn và không an toàn
- Chức năng xử lý: là một chức năng thực hiện các hành động định sẵn đối với các giao dịch HTTP độc hại phát hiện bởi các "chức năng kiểm tra" Thông thường chức năng xử lý có 3 hành động như sau:
o Passing: là một hành động mà WAF cho phép các giao dịch HTTP sau khi được phát hiện, kiểm tra và bảo đảm an toàn để kết nối đến người
sử dụng hoặc máy chủ web
o Error Processing: là một hành động mà WAF tạo ra và gửi lại một phản hồi lỗi cho người sử dụng hoặc trang web, thay cho các kết nối HTTP ban đầu phát hiện trong chức năng kiểm tra Tổng quát thì WAF có thể tạo và gửi phản hồi lỗi với thông điệp bất kỳ
o Blocking: là một hành động mà WAF hoàn toàn loại bỏ các gói tin HTTP độc hại được phát hiện trong quá trình kiểm tra Khi WAF loại
bỏ một giao dịch HTTP, WAF có thể gởi trở lại một phản hồi HTTP thông báo với người sử dụng hoặc trang web rằng kết nối đã bị mất hoặc WAF không gởi bất kỳ thông tin nào
Ngoài ra, một số các WAF bổ sung thêm hành động Rewriting
o Rewriting: là một hành động mà WAF làm thay đổi một phần nội dung của giao dịch HTTP phát hiện trong kiểm tra và chuyển tiếp cho người sử dụng hoặc trang web Chế độ này được sử dụng để giữ cho các kết nối HTTP thực hiện ngay cả khi một chuỗi ký tự bị nghi ngờ được phát hiện trong các giao dịch HTTP
Trang 23Học viên thực hiện: Nguyễn Thanh Long – CAC16024 Lớp 2016CLC
- Chức năng ghi nhật ký: Chức năng ghi nhật ký là một chức năng ghi lại các giao dịch HTTP độc hại phát hiện bởi các "chức năng kiểm tra" và hoạt động của WAF Thông thường, các bản ghi WAF được lưu trữ như một tập tin hoặc trong các cơ sở dữ liệu WAF thường có 2 loại bản ghi phụ thuộc vào việc cần ghi nhận thông tin gì
o Audit Log: ghi lại các giao dịch HTTP độc hại phát hiện bởi các
"chức năng kiểm tra" và các hành động đối với những giao dịch HTTP này Nội dung của Audit Log bao gồm ngày và thời gian phát hiện, hành động, địa chỉ IP nguồn, địa chỉ IP đích, các trường của gói tin mà bị phát hiện và các nguyên tắc WAF đã áp dụng
o Debug Log: ghi lại hoạt động và thông tin lỗi của WAF Nội dung của Debug Log bao gồm ngày và thời điểm xảy ra lỗi, các thông tin về hoạt động của WAF như khởi động, dừng lại/tắt và thay đổi các thiết lập cấu hình và các thông tin lỗi Debug Log được sử dụng bởi người quản lý trang web để kiểm xác định xem tất cả mọi thứ đang làm việc tốt với WAF hay không
b Chức năng nâng cao:
Ngoài những "tính năng cơ bản", WAF có thể có những "chức năng nâng cao" Các chức năng nâng cao bao gồm: Chức năng Kiểm tra tính hợp lệ kết nối HTTP, Chức năng quản lý (nâng cao sự tiện lợi trong sử dụng WAF)
- Chức năng kiểm tra hợp lệ kết nối HTTP: Chức năng kiểm tra hợp lệ kết nối HTTP là một chức năng xác nhận tính hợp lệ của các thông số phiên HTTP
và các yêu cầu HTTP Do "chức năng kiểm tra" chủ yếu là kiểm tra nội dung của từng giao dịch HTTP, rất khó để ngăn chặn các cuộc tấn công khai thác
lỗ hổng trong quản lý phiên kết nối Chức năng ngăn chặn những cuộc tấn công theo 03 cách
o Kiểm tra các tham số trong phiên làm việc: có nghĩa là để kiểm tra xem các thông số được sử dụng để quản lý phiên làm việc có bị thay đổi hay không
o Kiểm tra tính hợp lệ của yêu cầu HTTP: có nghĩa là để kiểm tra xem một yêu cầu HTTP được gửi từ người sử dụng trong phiên giao dịch thực sự là một yêu cầu hợp lệ và đúng dự định của người dùng
Trang 24Học viên thực hiện: Nguyễn Thanh Long – CAC16024 Lớp 2016CLC
o Kiểm tra quá trình chuyển đổi trang web: có nghĩa là để kiểm tra xem một yêu cầu chuyển trang web trong các yêu cầu HTTP được gửi từ người sử dụng trong phiên làm việc có phù hợp, như dự kiến của ứng dụng web hay không
- Chức năng quản lý: Là một chức năng tạo sự tiện lợi khi sử dụng WAF Chức năng này cho phép người quản lý trang web kiểm tra số lượng giao dịch HTTP độc hại bằng cách phân tích các mục trong Audit Log, cập nhật các quy tắc WAF cho "chức năng kiểm tra", theo dõi tình hình hoạt động của WAF, bao gồm một số chức năng cơ bản sau:
o Chức năng báo cáo: cho phép tạo một báo cáo thống kê phân tích từ các mục trong Audit Log Một báo cáo thường được tạo ra theo định
kỳ Báo cáo tóm tắt các sự kiện, chẳng hạn như số lượng các giao dịch HTTP coi là độc hại cho mỗi địa chỉ IP nguồn và những quy tắc vi phạm tương ứng
o Chức năng thông báo: có nghĩa là WAF sẽ gửi một thông báo đến người quản lý trang web khi một giao dịch HTTP độc hại được phát hiện bởi các "chức năng kiểm tra" và "chức năng kiểm tra hợp lệ kết nối HTTP" Thông thường, các tính năng cung cấp cho người quản lý trang web nhiều dạng thông báo như: email, SMS, cảnh báo dạng âm thanh, khi phát hiện một giao dịch HTTP độc hại
o Tạo ra Whitelist tự động: có nghĩa là WAF sẽ tự động tạo ra một Whitelist dựa trên các giao dịch HTTP đi qua WAF Cách tiếp cận Whitelist có một bất lợi là đòi hỏi phải tạo Whitelist cho mỗi ứng dụng web khác nhau Việc tạo ra Whitelist tự động sẽ giúp giải quyết vấn đề này
o Cập nhật Blacklist tự động: có nghĩa là WAF tự động cập nhật Blacklist Do khi tiếp cận Blacklist phụ thuộc vào các phương pháp tấn công được biết trước, nên có một nhược điểm là danh sách phải được cập nhật ngay sau khi một phương pháp tấn công mới được báo cáo Tự động cập nhật sẽ giúp giải quyết vấn đề
c Một số điểm cần lưu ý với chức năng của WAF
Trang 25Học viên thực hiện: Nguyễn Thanh Long – CAC16024 Lớp 2016CLC
Lưu ý rằng việc sử dụng WAF không thể ngăn chặn tất cả các cuộc tấn công khai thác lỗ hổng đã biết và chưa biết của mọi ứng dụng web theo những cách tinh
vi và sáng tạo Khi xem xét việc sử dụng WAF, điều quan trọng là người quản trị trang web phải hiểu rõ và lưu ý những điểm sau trước khi quyết định sử dụng
- Vấn đề xác định sai trong chức năng kiểm tra của WAF: Bởi vì WAF thực hiện các lọc giao dịch HTTP dựa trên các quy tắc được thiết lập khi kiểm tra các giao dịch HTTP giữa người sử dụng và trang web Do đó đôi khi cơ chế lọc không thực hiện đúng như mong muốn và gây ra lỗi, thường được chia thành 02 loại lỗi là: false positives và false negatives
o False positives: là trường hợp một giao dịch HTTP hợp pháp được xem là độc hại Khi lỗi False positives xảy ra, giao dịch HTTP hợp pháp của người sử dụng có thể bị WAF ngăn chặn
o False negatives: là trường hợp một giao dịch HTTP độc hại được coi
là hợp pháp Khi lỗi False negatives xảy ra, một cuộc tấn công khai thác lỗ hổng trong các ứng dụng web có thể đi qua WAF
- Điểm lưu ý với Backlist: Blacklist có thể được chia sẻ dùng chung cho một ứng dụng web bất kỳ Thông thường, các nhà phát triển WAF cung cấp một Blacklist để ngăn chặn các cuộc tấn công đã được biết đến Tuy nhiên, nếu tất cả các quy tắc trong Blacklist được áp dụng thì có thể xảy ra lỗi false positive Nếu một giao dịch HTTP hợp pháp bị chặn, không có sự lựa chọn nào khác ngoài việc vô hiệu hóa các quy tắc mà cho rằng các giao dịch này là độc hại (do vi phạm quy tắc)
- Điểm lưu ý với Whitelist: Nếu một ứng dụng web cung cấp một mẫu thông tin đầu vào mà người dùng có thể nhập vào một cách tự do, rất khó để xác định được những giá trị đầu vào nào là hợp pháp Trong trường hợp này, các quy tắc đối với thông tin đầu vào không thể được xác định trong Whitelist,
và do đó các cuộc tấn công có thể không bị WAF phát hiện Hơn nữa, nếu đặc điểm kỹ thuật của ứng dụng web được thay đổi thì Whitelist cũng phải cập nhật theo Trừ khi có một số cách nào đó để phản ánh sự thay đổi trong đặc điểm kỹ thuật của ứng dụng web vào Whitelist Tất nhiên là lỗi false positives và false negatives đều có thể xảy ra
Trang 26Học viên thực hiện: Nguyễn Thanh Long – CAC16024 Lớp 2016CLC
2.1.2 Các mô hình triển khai WAF
WAF có một số kiến trúc và chế độ hoạt động khác nhau [11]
- 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
Hình 2.4: Mô hình triển khai Reverse Proxy
- Layer 2 Bridge: Ở 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ể
- Out – of – band : Ở 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ể
Trang 27Học viên thực hiện: Nguyễn Thanh Long – CAC16024 Lớp 2016CLC
Hình 2.5: Mô hình triển khai Out – of – band
- Embedded-mode: Đâ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 Embedded-mode 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
Hình 2.6: Mô hình triển khai Embedded-mode
- Internet Host/Cloud: đây là giải pháp sử dụng điện toán đám mây để cung cấp giải pháp WAF Nó hoạt động như mô hình Reverse Proxy kết hợp với
bộ DNS để từ đó tạo các kết nối web hợp lệ tới máy chủ web thật Mô hình này rất linh hoạt, dễ dàng mở rộng cho các hệ thống máy chủ web khi có nhu cầu
Trang 28Học viên thực hiện: Nguyễn Thanh Long – CAC16024 Lớp 2016CLC
Hình 2.7: Mô hình triển khai Internet Host/Cloud
2.1.3 Các phiên bản mã WAF mã nguồn mở phổ biến
Trên thị trường hiện có rất nhiều giải pháp WAF được cung cấp Các giải pháp
có thể là các sản phẩm phần cứng tích hợp đến từ các hãng lớn như Citrix Application Firewall (Citrix), Application Security Manager (F5), ; hoặc các giải pháp cloud như của CloudFlare, Imperva, …Tuy nhiên, các giải pháp này đòi hỏi chi phí đầu tư lớn, chưa kể phải trả phí dịch vụ hàng năm để được hỗ trợ, nâng cấp Việc sử dụng các giải pháp WAF sử dụng mã nguồn mở sẽ giúp các tổ chức, doanh nghiệp tiết kiệm được chi phí nhưng vẫn đảm bảo được tính an toàn thông tin Các bản WAF mã nguồn mở phổ biến như:
- IronBee: là một dự án được hỗ trợ bởi Qualys, sản phẩm được thiết kế module hóa, linh hoạt và hiệu quả Tuy nhiên, sản phẩm này không có sẵn bộ cài mà người dùng phải thực hiện dựng từ mã nguồn và kiểm tra lại trên các
hệ điều hành khác nhau
- WebKnight: Đây cũng là 1 sản phẩm dành cho các máy chủ web Microsoft IIS Giải pháp này có thể chặn được nhiều lỗi bảo mật ứng dụng web phổ biến Từ phiên bản 3.0, giải pháp đi kèm giao diện quản trị để người dùng có thể cấu hình các luật, theo dõi thống kê
- Naxsi: đây là giải pháp chống tấn công SQL Injection, XSS chạy trên máy chủ Nginx Chỉ có các request dạng GET, PUT là được kiểm tra tham số và thực hiện chặn lọc
Trang 29Học viên thực hiện: Nguyễn Thanh Long – CAC16024 Lớp 2016CLC
- Shadow Daemon: đây là giải pháp thực hiện phát hiện, ghi và chặn các request tấn công bằng các lọc các tham số đầu vào Giải pháp này có thể chặn được phần lớn các lỗi bảo mật ứng dụng web phổ biến Giải pháp đi kèm với giao diện quản trị cho người dùng cấu hình Phiên bản hiện tại hỗ trợ cho các nền tảng ngôn ngữ lập trình web như Php, Python, Perl
- ModSecurity: đây là giải pháp WAF mã nguồn mở phát triển lâu đời nhất và được sử dụng rộng rãi nhất Cơ chế phòng chống tấn công rất mạnh mẽ và linh hoạt Phiên bản hiện tại đã hỗ trợ rất nhiều loại máy chủ web như: Apache HTTP, Microsoft IIS & Nginx Tuy nhiên, để hoạt động hiểu quả thì
tổ chức cần có nhân sự hoặc có hợp đồng hỗ trợ từ chuyên gia bảo mật để thực hiện cầu hình, bổ sung cho phù hợp với nhu cầu sử dụng
Trong luận văn của mình, tôi sẽ tiến hành sử dụng sản phẩm ModSecurity để xây dựng giải pháp WAF Để giải pháp đáp ứng được nhu cầu sử dụng, tôi sẽ thực hiện lập trình thêm website quản trị, cấu hình các luật chặn lọc
2.2 Module Modsecurity để phát hiện và ngăn chặn
2.2.1 Giới thiệu về ModSecurity
ModSecurity là một firewall ứng dụng mã nguồn mở, được Ivan Ristic phát triển dành cho Web Server Apache, hiện nay đã hỗ trợ IIS 7.5, Nginx, Java (Ivan Ristic
là người có rất nhiều kinh nghiệm trong lĩnh vực bảo mật cho Web Server Apache, ông đã có nhiều thời gian nghiên cứu về Web Application Security, Web Intrusion,
và Security Patterns Trước khi chuyển sang lĩnh vực nghiên cứu bảo mật, Ivan đã
có nhiều năm làm việc như một Developer, System Architect, Technical Director trong phát triển phần mềm Ông cũng là người sáng lập ra công ty ThinkingStone làm các dịch vụ liên quan đến bảo mật cho ứng dụng Web) Hiện nay ModSecurity
sử dụng giấp phép GPL, hoàn toàn miễn phí
Modsecurity là WAF có tính mở, nó không đưa ra mô hình bảo mật cụ thể nào
mà phụ thuộc vào việc sử dụng của người dùng Người dùng có thể xây dựng các module, chính sách để đưa vào modsecurity sao cho phù hợp với hệ thống web cần phải bảo vệ
Các tính năng của ModSecurity được gom lại thành 4 mảng chính [3], đó là:
Trang 30Học viên thực hiện: Nguyễn Thanh Long – CAC16024 Lớp 2016CLC
- Parsing: ModSecurity cố gắng hiểu các dữ liệu của transaction nhiều nhất có
thể Các dữ liệu được hỗ trợ sẽ được bộ phân tích cú pháp giữ lại, trích xuất các bit data và lưu giữ chúng cho các rules sử dụng về sau
- Buffering: Với các cài đặt thông thường của ModSecurity th cả request và
response bodies đều được buffer lại Điều này có nghĩa là ModSecurity sẽ thấy được hoàn toàn requests trước khi chúng được truyền tới ứng dụng xử
lý, và thấy hoàn toàn responses trước khi chúng được gửi tới cho clients Buffering là một tính năng rất quan trọng, nhưng nó cũng khiến tiêu tốn RAM của hệ thống để lưu trữ dữ liệu của request và response
- Logging: Việc lưu trữ log của toàn bộ transaction (được gọi là audit logging)
là một tính năng đặc biệt cần thiết của ModSecurity Tính năng này cho phép bạn ghi lại toàn bộ HTTP traffic: Request headers, request body, response header, response body
- Rule engine: Một bộ rules engine được xây dựng để phối hợp hoạt động với
các thành phần còn lại Khi rule engine bắt đầu hoạt động thì các bits và các phần dữ liệu cần thiết phải được chuẩn bị sẵn sàng cho việc kiểm tra Vào lúc này, các rules sẽ thực hiện đánh giá transaction và đưa ra hành động nếu thấy cần thiết
Trong ModSecurity, mọi transaction đều trải qua 5 pha (phases) Trong mỗi một pha, ModSecurity sẽ bắt đầu thực hiện phân tích dữ liệu, gọi những rules đặt trong pha đó, và thực hiện những hành động đã định nghĩa trong rules