Để khắc phục cáclỗi trên ứng dụng web, người lập trEnh 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ựchiện, bởi các
Trang 1BAN CƠ YẾU CHÍNH PHỦ
HỌC VIỆN KỸ THUẬT MẬT MÃ
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
CHUYÊN ĐỀ AN TOÀN THÔNG TIN
NGHIÊN CỨU CÔNG NGHỆ WAF VÀ TRIỂN KHAI
Trang 2BAN CƠ YẾU CHÍNH PHỦ
HỌC VIỆN KỸ THUẬT MẬT MÃ
¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯
CHUYÊN ĐỀ AN TOÀN HỆ THỐNG THÔNG TIN
NGHIÊN CỨU CÔNG NGHỆ WAF VÀ TRIỂN KHAI
Trang 3MỤ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
Trang 42.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
Trang 5DANH MỤC HÌNH ẢNH
HEnh 1.1: Định nghĩa WAF 1
HEnh 1.2: So sánh WAF và Firewall, IDS/IPS 3
HEnh 1.3: Mô hEnh của một hệ thống tường lửa ứng dụng Web (WAF) 4
HEnh 1.4: Hoạt động của WAF 5
HEnh 1.5: Vị trí đặt WAF 7
HEnh 2.1: Operation(1) 15
HEnh 2.2: Operation (2) 15
HEnh 2.3: Quy trEnh xử lí của ModSecurity 17
HEnh 3.1: Mô hEnh thực nghiệm 19
HEnh 3.2: Cài đặt ModSecurity 20
HEnh 3.3: nano /etc/ModSecurity/ModSecurity.conf 21
HEnh 3.4: nano /etc/apache2/mod-available/security2.conf 22
HEnh 3.5: nano /etc/apache2/sites-enabled/000-default.conf 23
HEnh 3.6: Clone DVWA Github 24
HEnh 3.7: Download DVWA thành công 24
HEnh 3.8: Cấu hEnh DVWA 25
HEnh 3.9: http://127.0.0.1/DVWA/setup.php 26
HEnh 3.10: http://127.0.0.1/DVWA/login.php 26
HEnh 3.11: Giao diện DVWA khi đăng nhập thành công 27
HEnh 3.12: Giao diện SQL injection ban đầu 27
HEnh 3.13: Tấn công SQL thành công 28
HEnh 3.14: Trang web sau khi bật ModSecurity(SQL) 28
HEnh 3.15: Log ghi lại sau khi thực hiện tấn công SQL 29
HEnh 3.16: Giao diện trang thực hiện tấn công XSS 29
HEnh 3.17: Tấn công XSS thành công 30
HEnh 3.18: Trang web sau khi bật ModSecurity (XSS) 30
HEnh 3.19: Log ghi lại sau khi thực hiện tấn công XSS 31
Trang 6LỜI CẢM ƠN
Trước hết, em xin gửi lời cảm ơn chân thành nhất đến toàn bộ quý thầy côHọc viện Kỹ thuật Mật mã, quý thầy cô khoa An toàn thông tin, chuyên ngành
An toà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 ơnsâu sắc đến giáo viên hướng dẫn - Thầy Phạm Duy Trung, người đã nhiệt tEnhhướng dẫn em thực hiện đề tài chuyên ngành An toàn hệ thống thông tin này
Do thời gian và trEnh độ còn hạn chế, bài báo cáo không thể tránh khỏinhữ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áocá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
Trang 7LỜ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 đangngà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ậtnày đều nhằm vào tầng ứng dụng trong mô hEnh OSI Các lỗ hổng trong ứngdụng web chủ yếu xảy ra do người lập trEnh 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áclỗi trên ứng dụng web, người lập trEnh 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ựchiện, bởi các lẽ sau: Thức nhất, các đơn vị lập trEnh 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 hoàn thành ứng dụng web trong thời gian nhanhkhiế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ểmthử.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ôngtEm 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 ứngdụng web đó là một quá trEnh phòng thử theo chiều sâu bao gồm các khâu pháttriể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êntrá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ảiphá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 tEm 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à:
Trang 8Sau thời gian thực hiện đề tài, các mục tiêu về cơ bản đã đạt được Tuy nhiênbả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ựchiệ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ếusó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
Trang 9CHƯƠ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ậphợ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ượngtruy 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 đặtgiữa ứng dụng web và Internet Mặc dù máy chủ proxy bảo vệ danh tính củamá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ủ
Hnh 1.1: Định nghĩa WAF
1.1.2 Phân loại WAF
a Phân loại mô hnh tường lửa có thể định cấu hnh dựa trên loại hoạt động bảo mật mà bạn yêu cầu:
Blocklist
Cấu hEnh 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
Trang 10đ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ạngyê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ớigâ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 hEnh bảo mậtnày và được lập trEnh để 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ố vE 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ậpmạng vào ứng dụng web trong khi chỉ cho phép những người được phê duyệttrước trong danh sách cho phép
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 trE 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á trEnh cài đặt dễ dàng mà thôngthườ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 đikèm với sự tiện lợi không cần lưu trữ hay bảo trE tại chỗ Đây là giải pháp WAF
rẻ nhất
Trang 11Thông thường, phương pháp này là một dịch vụ đăng ký với các doanhnghiệ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 trEnh 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ạytrên các máy chủ cục bộ, yêu cầu bảo trE 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 vE tính đơngiả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 trE
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ựatrê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ếtlậ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ửicả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óichung, 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âmnhập (IDS) & Hệ thống ngăn chặn xâm nhập (IPS) rất tốt trong việc cung cấpbả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úngkhô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ểnphiê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ấncô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ậnbiế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à trunggian 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ướckhi 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
Trang 12nhiề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).
Hnh 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
Hnh 1.3: Mô hnh 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ượngHTTP – kiểm tra cả request GET và POST nhằm phát hiện và chặn bất kỳ thứ gE
Trang 13độ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 toà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ữngloại tấn công này rất khó phát hiện vE chúng thường được thiết kế để bắt chướcgiố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ácdạ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
Hnh 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 vE nó cung cấp khả năng hiểnthị 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ụnglớp ứng dụng HTTP Nó có thể ngăn chặn các cuộc tấn công lớp ứng dụngthườ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 trEnh 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ạngngười dùng được ủy quyền ID phiên thường được lưu trữ trong cookie hoặcUniform Resource Locator (URL)
Trang 14-Các cuộc tấn công từ chối dịch vụ (DDoS) phân tán áp đảo một mạngbằ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àynhư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ênweb 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ờicung 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ỉnhnhanh 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 cungcấp sản phẩm qua internet – bao gồm các ngân hàng trực tuyến, nhà cung cấpnền tảng truyền thông xã hội và nhà phát triển ứng dụng di động – vE nó giúpngă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índụng và hồ sơ khách hàng, được lưu trữ trong cơ sở dữ liệu back-end có thể truycập được thông qua các ứng dụng web Những kẻ tấn công thường nhắm mụctiê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ẩnbảo mật dữ liệu ngành thẻ thanh toán (PCI DSS), là một bộ chính sách để đảmbả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ỳ doanhnghiệp nào xử lý CHD VE 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 VE lý do này, WAF là một phần quantrọng trong mô hEnh 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áychủ ứ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ệ khiWAF chỉ được dùng để giám sát cổng đang mở trên máy chủ web Ngoài ra các
Trang 15chương trEnh WAF còn được cài đặt trực tiếp lên máy chủ web và thực hiện cácchứ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.
Hnh 1.5: Vị trí đặt WAF 1.2.2 Mô hnh bảo mật
Một WAF hoạt động dựa theo 2 mô hEnh bảo mật: Positive và Negative
Mô hEnh 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ô hEnh Negative sẽ cho phép tất cả cáclư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ô hEnh trên, tuy nhiên thông thườngWAF chỉ cung cấp 1 trong 2 mô hEnh Với mô hEnh Postitive thE đòi hỏi nhiềucấu hEnh và tùy chỉnh, còn mô hEnh 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
- Transparent Proxy: Ở mô hEnh 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ô hEnh Reverse Proxy nhưng khôngđứng ra làm trung gian kết nối như bên Reverse Proxy Mô hEnh này không đòi
Trang 16hỏi phải thay đổi điều gE trong hạ tầng mạng nhưng có thể không cung cấp đượcmột số dịch vụ như mô hEnh Reverse Proxy có thể.
- Layer 2 Brigde: Ở mô hEnh này, WAF đứng giữa tường lủa mạng và máychủ web, nhưng hoạt động giống như một thiết bị Switch ở lớp 2 Mô hEnh nàygiúp mạng hoạt động với hiệu năng cao và mạng thay đổi không đáng kể, tuynhiên nó lại không thể cung cấp các dịch vụ cao cấp khác mà các mô hEnh WAFkhá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ạiWAF network base Tuy nhiên mô hEnh này có thể khắc phục được vài điểm yếu
mà các mô hEnh network base (các thiết bị WAF cứng) có Tuy nhiên nó cũnglà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ậpvào ra Web Server Các thông tin đi từ bên ngoài vào bên trong ra sẽ được kiểmsoá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ạnchế các vấn đề:
Trang 171.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
1.3.5 F5 Advance
Cách tính năng WAF F5 Advanced như:
Trang 18-Bảo vệ ứng dụng nâng cao:kết hợp máy học thông minh để tEm 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ự độngbở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ụngdành cho thiết bị di động thông qua danh sách cho phép, phân tích hành vi, xácthực cookie an toàn và tăng cường ứng dụng nâng cao
-Mã hóa dữ liệu trong trEnh 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ôngminh 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ữuhiệ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ớingườ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ảmthiểu các cuộc tấn công lỗ hổng ở lớp ứng dụng như: SQL injection, cross-sitescripting, botnet, DDoS attacks mà các tường lửa thông thường (NetworkFirewall) không ngăn chặn được, đồng thời hệ thống đưa ra các cảnh báo tấncông, đề xuất giải pháp ngăn chặn các lỗ hổng đã phát hiện được
Trang 19CHƯƠNG 2: GIỚI THIỆU VỀ MODSECURITY WAF2.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ậpvào ra Web Server Các thông tin đi từ bên ngoài vào bên trong ra sẽ được kiểmsoá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 thE 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 trEnh Một số tínhchấ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, donhu 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ừngloại ứng dụng cũng khác nhau Mod_security đã kết hợp với OWASP phát triểncác tập rule mẫu (Core Rule Set) nhằm tạo ra tính linh động cho từng mô hEnhweb 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ênkhông chỉ định công việc cụ thể cho chương trEnh; việc này là khá quan trọngtrong một ứng dụng có nhiệm vụ phân tích nguy cơ như ModSecurity Mọi cảnhbá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 trEnh web server (ví dụ: Apache) sẽthực hiện các tác vụ như sau:
Parsing
Trang 20ModSecurity sẽ phân tách các dữ liệu luân chuyển qua hệ thống thành cấutrú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 webthE phải thông qua ModSecurity trước khi đến ứng dụng xử lý và nhữngresponse cũng sẽ được phân tích trước khi trả về phía client Cơ chế này là cáchduy 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ồmrequest 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ântích nguy cơ mà hệ thống đang gặp phải để có thể ra quyết định kiểm soát
Rule Engine
Các tập mẫu trong ModSecurity đóng vai trò quan trọng trong việc pháthiện các dạng tấn công và thực hiện phòng chống ModSecurity cùng phát triểnvới dự án OWASP phát triển một nhóm các tập lệnh có tên là OWASPModSecurity 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ộidung 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ênthứ ba
-Web-based Malware Detection: xác định các mã độc trong nội dung trangweb 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 trEnh quét (scanner) và các hoạt động thu thập thông tin
Trang 21-Integration with AV Scanning for File Uploads: phát hiện các mã độc,webshell, 0days thông qua các chức năng upload tập tin.
-Tracking Sensitive Data: theo dõi các hoạt động và chặn lộ thông tin thẻtín dụng (trong trường hợp website có hoạt động thương mại điện tử)
-Trojan Protection: phát hiện các mẫu trojan
-Identification of Application Defects: cảnh báo các lỗi trong quản lý cấyhEnh ứng dụng webserver
-Error Detection and Hiding: gửi các mã thông báo lỗi giả về phía ngườidùng
2.3 Cấu trúc rules trong ModSecurity
Tất cả các hoạt động trong ModSecurity hầu hết sẽ liên quan đến hai phầnchính là: cấu hEnh (configuration) và các tập luật (rules) Phần cấu hEnh chỉ địnhcách thức xử lý dữ liệu, trong khi các rule sẽ quyết định thực hiện các hành vi(action) với dữ liệu đã được xử lý
Một ví dụ về rule: SecRule ARGS "<script>" log,deny,status:404
Cấu trúc chuẩn của một rule trong ModSecurity bao gồm 3 phần chính:
SecRule VARIABLES OPERATOR ACTIONS
2.3.1 VARIABLE
VARIABLES xác định vị trí dữ liệu mà ModSecurity sẽ tEm kiếm mẫu.Trong ví dụ trên, tham số ARGS nhằm chỉ định tEm kiếm mẫu trong tất cả cáctham số trong request
Các tham số thường thấy của VARIABLES:
REMOTE_ADDR: Địa chỉ IP của client
REMOTE_HOST: Hostname của client (nếu tồn tại)
REMOTE_USER: Authenticated username (nếu tồn tại)
REMOTE_IDENT: Remote Username (lấy từ inetd, ít dùng)
REQUEST_METHOD: Request Method (GET, HEAD, POST )
SCRIPT_FILENAME: Đường dẫn đầy đủ của script được thực thi
PATH_INFO: Phần mở rộng của URI phía sau tên của một script
Ví dụ: /archive.php/5 th PATH_INFO là /5
QUERY_STRING: URI phía sau dấu ?
Ví dụ /index.php?i=1 th QUERY_STRING là i=1.
Trang 22AUTH_TYPE: Basic hoặc Digest Authentication.
DOCUMENT_ROOT: Đường dẫn đến documentroot
SERVER_ADMIN: Email của Server Administrator
SERVER_NAME: Hostname của Server
SERVER_ADDR: Địa chỉ IP của Server
SERVER_PORT: Server port
SERVER_PROTOCOL: Protocol, (ví dụ HTTP/1.1)
SERVER_SOFTWARE: Apache version
TIME_YEAR: Năm hiện tại (2014)
TIME_MON: Tháng hiện tại (12)
TIME_DAY: Ngày
TIME_HOUR: Giờ
TIME_MIN: Phút
TIME_SEC: Giây
TIME_WDAY: Thứ tự ngày trong tuần (ví dụ 4 - Thursday)
TIME : Thời điểm hiện tại được viết theo cấu trúc: YmdHMS
Ví dụ: 20060220144530: 20/02/2006 14h 45' 30''.
API_VERSION
THE_REQUEST: Dòng đầu tiên của request vd: GET / HTTP/1.1
REQUEST_URI: Request URI
FILENAME: Tên file được yêu cầu đến
IS_SUBREQ
Một variables có thể bao gồm 1 hay nhiều phần dữ liệu Khi variable cónhiều hơn 1 giá trị thE ta gọi nó là collection
Ví dụ: với variable ARGS ta có 2 thông số p, và q
SecRule ARGS:p dirty
SecRule ARGS:q dirty
Có thể dùng 1 hay nhiều variables
SecRule ARGS|REQUEST_HEADERS:User-Agent dirty
2.3.2 OPERATOR
OPERATOR: chỉ định cách mà ModSecurity sẽ tEm kiếm mẫu Cácoperator được dùng theo dạng Regular expression nhằm tạo nên cơ chế phântích linh động cho các rule