Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 45 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
45
Dung lượng
6,82 MB
Nội dung
BAN CƠ YẾU CHÍNH PHỦ HỌC VIỆN KỸ THUẬT MẬT Mà ¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯¯ CHUN ĐỀ 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 tồn thơng tin – Học viện Kỹ thuật mật mã Hà Nội, 2022 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 tồ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 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 WAF 1.1 Giới thiệu chung WAF 1.1.1 Khái niệm WAF .1 1.1.2 Phân loại WAF 1.1.3 So sánh WAF với NetworkFirewall IDS/IPS 1.1.4 Hoạt động tường lửa ứng dụng web .4 1.1.5 Lợi ích tầm quan trọng WAF .5 1.2 Kiến trúc WAF 1.2.1 Vị trí đặt WAF 1.2.2 Mơ hình bảo mật 1.2.3 Mơ hình hoạt động 1.3 Các phiên WAF mã nguồn mở phổ biến 1.3.1 ModSecurity .8 1.3.2 WebKnight .8 1.3.3 Shadow Daemon 1.3.4 NAXSI .9 1.3.5 F5 Advance .9 1.4 Kết luận Chương 10 Chương 2: Giới thiệu ModSecurity WAF 10 2.1 Tổng quan ModSecurity .10 2.2 Chức ModSecurity 11 2.3 Cấu trúc rule 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ý ModSecurity 16 2.5 Kết luận Chương 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 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 DVWA 27 3.3 Kết luận chương 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 HEnh 1.1: Định nghĩa WAF HEnh 1.2: So sánh WAF Firewall, IDS/IPS .3 HEnh 1.3: Mô hEnh hệ thống tường lửa ứng dụng Web (WAF) HEnh 1.4: Hoạt động WAF 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í 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 đă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 bật ModSecurity(SQL) 28 HEnh 3.15: Log ghi lại sau thực công SQL 29 HEnh 3.16: Giao diện trang thực công XSS .29 HEnh 3.17: Tấn công XSS thành công 30 HEnh 3.18: Trang web sau bật ModSecurity (XSS) 30 HEnh 3.19: Log ghi lại sau thực 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 đến toàn quý thầy cô Học viện Kỹ thuật Mật mã, q thầy 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 kiến thức quý báu cho em suốt bốn năm học tập rèn luyện 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 tEnh hướng dẫn em thực đề tài chuyên ngành An tồn hệ thống thơng tin Do thời gian trEnh độ cịn hạn chế, báo cáo khơng thể tránh khỏi thiếu sót Kính mong thầy bảo đóng góp ý kiến để báo cáo em hoàn thiệ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 năm gần đây, xu hướng công vào ứng dụng web ngày trở nên phổ biến Các kỹ thuật công sử dụng chủ yếu cross-site scripting, SQL injection, nhiều kỹ thuật khác… tất kỹ thuật nhằm vào tầng ứng dụng mô hEnh OSI Các lỗ hổng ứng dụng web chủ yếu xảy người lập trEnh không kiểm tra kỹ tham số hay ký tự người dùng nhập vào để tương tác với ứng dụng web Để khắc phục lỗi ứng dụng web, người lập trEnh cần hiểu viết đoạn mã mức độ bảo mật nhất, nhiên việc viết mã cho “bảo mật” thường khó thực hiện, lẽ sau: Thức nhất, đơn vị lập trEnh thường khơng có thiếu đội ngữ chun trách việc kiểm tra sửa lỗi bảo mật mã nguồn ứng dụng Thức hai, đơi áp lực phải hồn thành ứng dụng web thời gian nhanh khiến cho ứng dựng ểb đưa vào vận hành mà không qua khâu kiểm thử.Thức ba, việc dùng công cụ kiểm tra lỗi web tự động không tEm hết lỗi thực tay Do vậy, việc bảo mật ứng dụng web q trEnh phịng thử theo chiều sâu bao gồm khâu phát triển, vận hành, xây dựng sở hạ tầng bảo vệ tốt có độ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) giải pháp nhằm bảo vệ cho ứng dụng web tránh khỏi lỗi bảo mật nói Đề tài thực nhằm mục đích tEm hiểu nghiên cứu công nghệ WAF triển khai bảo vệ hệ thống website với WAF mã nguồn mở cụ thể ModSecurity Mục tiêu đặt thực đồ án là: Hệ thống kiến thức hệ mật WAF; Nghiên cứu ModSecurity ứng dụng WAF để triển khai bảo vệ website; Triển khai cài đặt ModSecurity Apache Kali Linux kịch công SQL injection, công XSS DVWA v Sau thời gian thực đề tài, mục tiêu đạt Tuy nhiên bảo mật website khỏi công lĩnh vực phức tạp, thời gian thực nghiên cứu chuyên đề tương đối ngắn nên chắn không tránh khỏi thiếu sót Rất mong góp ý thầy cô, bạn sinh viên để đề tài hoàn thiệ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 WAF 1.1.1 Khái niệm WAF WAF viết tắt Web Application Firewall – tường lửa ứng dụng web, công cụ giúp bảo vệ ứng dụng web cách lọc theo dõi lưu lượng trao đổi web server mạng Internet Một WAF hoạt động thông qua tập hợp quy tắc thường gọi sách Các sách nhằm mục đích bảo vệ chống lại lỗ hổng ứng dụng cách lọc lưu lượng truy cập độc hại Bằng cách triển khai WAF trước ứng dụng web, chắn đặt ứng dụng web Internet Mặc dù máy chủ proxy bảo vệ danh tính máy khách cách sử dụng trung gian, WAF loại proxy ngược, bảo vệ máy chủ khỏi bị lộ cách cho phép máy khách qua WAF trước đế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 định cấu hnh dựa loại hoạt động bảo mật mà bạn yêu cầu: Blocklist Cấu hEnh WAF bảo vệ trang web ứng dụng dựa web khỏi bị khai thác cách lọc truyền liệu thông qua danh sách đặt trước mối đe dọa biết gọi Blocklist Bạn tạo Blocklist tự động thủ công Khi tường lửa nhận số gói liệu phù hợp với mối đe dọa ghi blocklist, ngăn chặn mục nhập chúng Blocklist tiết lộ mối đe dọa ngụy trang dạng yêu cầu thực lưu lượng mạng chặn hiệu tất mối đe dọa biết, chẳng hạn công DDoS Thiếu sót nó khơng hiệu trước mối đe dọa gây cho tổ chức, chẳng hạn công zero-day Allowlist Tường lửa WAF giám sát việc truyền liệu thông qua cấu hEnh bảo mật lập trEnh phép lưu lượng mạng phê duyệt trước Việc bật Allowlist cho trang web ứng dụng web bạn gặp cố vE danh sách thường chặn u cầu an tồn khơng gây hại cho hệ thống Điều do, theo thiết kế, Allowlist chặn tất lưu lượng truy cập mạng vào ứng dụng web cho phép người phê duyệt trước danh sách cho phép Hybird Loại tường lửa sử dụng kết hợp Allowlist Blocklist để tạo cấu hEnh kết hợp hai loại b Phân loại theo mô hnh triển khai, có ba cách mà WAF xây dựng sử dụng trực tuyến với cách sử dụng trường hợp khác nhau: Network-Based (Nền tảng mạng lưới): Network-Based cài đặt cục mạng Đặc điểm dạng việc cần bảo trE khơng gian lưu trữ Mục đích giảm thiểu độ trễ Đây WAF dựa phần cứng Cloud-Based (Nền tảng đám mây): Cloud-Based chạy đám mây, trEnh cài đặt dễ dàng mà thông thường cần yêu cầu thay đổi DNS Cài đặt dễ dàng, mang lại nhiều lợi ích kèm với tiện lợi không cần lưu trữ hay bảo trE chỗ Đây giải pháp WAF rẻ Đổi tên file crs-setup.conf.example thành crs-setup.conf sudo mv /usr/share/ModSecurity-crs/crs-setup.conf.example /usr/share/ModSecurity-crs/crs-setup.conf Đổi tên tệp quy tắc loại trừ yêu cầu mặc định: sudo mv /usr/share/ModSecurity-crs/rules/REQUEST-900-EXCLUSIONRULES-BEFORE-CRS.conf.example /usr/share/ModSecuritycrs/rules/REQUEST-900-EXCLUSION-RULES-BEFORE-CRS.conf Để bắt đầu sử dụng ModSecurity, kích hoạt tệp cấu hEnh Apache cách thực theo bước sau: Chỉnh sửa tệp /etc/apache2/mods-available/security2.conf , thêm vào nội dung sau để bao gồm tệp OWASP-CRS mà tải xuống: SecDataDir /var/cache/ModSecurity Include /usr/share/ModSecurity-crs/crs-setup.conf Include /usr/share/ModSecurity-crs/rules/*.conf Hnh 3.4: nano /etc/apache2/mod-available/security2.conf Trong /etc/apache2/sites-enabled/000-default.conf tệp VirtualHost, thêm nội dung sau bao gồm thị SecRuleEngine đặt thành On: 23 ServerAdmin webmaster@localhost DocumentRoot /var/www/html ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined SecRuleEngine On Hnh 3.5: nano /etc/apache2/sites-enabled/000-default.conf Chỉ thị SecRuleEngine để chế độ DetectionOnly nghĩa phát công cảnh báo file error.log Sau khởi động lại dịch vụ Apache2 để áp dụng cấu hEnh thay đổi sudo systemctl restart apache2 Như ta cài đặt xong ModSecurity cấu hEnh với quy tắc OWASP-CRS Các dịch vụ thiết lập hoàn tất, thử nghiệm kết DVWA 3.2.3 Cài đặt DVWA: Đầu tiên, khởi chạy Terminal điều hướng đến thư mục /var/www/html 24 $ cd /var/www/html Tiếp theo, chép kho lưu trữ DVWA GitHub thư mục /html: $ sudo git clone https://github.com/ethicalhack3r/DVWA Hnh 2: Clone DVWA Github Sau chép thành công kho lưu trữ, xác nhận DVWA chép thành công, chạy lệnh: Hnh 3.7: Download DVWA thành công Bây cần gán quyền Read, Write Execute (777) cho thư mục này: sudo chmod -R 777 DVWA Để thiết lập định cấu hEnh DVWA, điều hướng đến thư mục /DVWA/config để xem nội dung thư mục cấu hEnh ta thấy file cấu hEnh mặc định DVWA config.inc.php.dist Tạo tệp với tên config.inc.php sử dụng để định cấu hEnh DVWA sudo cp config.inc.php.dist config.inc.php Mở tệp vừa chép để thực cấu hEnh cần thiết: sudo nano config.inc.php 25 Đổi thông tin hEnh đây: Hnh 3.8: Cấu hnh DVWA Theo mặc định, Kali Linux cài đặt với hệ thống quản lý sở liệu quan hệ MariaDB Đầu tiên, khởi động dịch vụ mysql lệnh bên sudo systemctl start mysql Đăng nhập vào sở liệu với quyền root Tạo người dùng với thông tin đăng nhập thông tin đặt tệp config.inc.php /DVWA Thực lệnh sau, sau tạo thành công thE exit MariaDB [(none)]> create user 'userDVWA'@'127.0.0.1' identified by "dvwa"; MariaDB [(none)]> grant all privileges on dvwa.* to 'userDVWA'@'127.0.0.1' identified by 'dvwa'; Khởi chạy lại dịch vụ Apache2 Mysql sudo systemctl start apache2 sudo systemctl start mysql Cài đặt cấu hEnh xong, truy cập vào DVWA Web Browser với đường dẫn http://127.0.0.1/DVWA/setup.php Click vào Create / Reset Database để bắt đầu đăng nhập sử dụng 26 Hnh 3.9: http://127.0.0.1/DVWA/setup.php Sử dụng thông tin đăng nhập mặc định bên để đăng nhập: Username: admin Password: password Hnh 3.10: http://127.0.0.1/DVWA/login.php 27 Hnh 3.11: Giao diện DVWA đăng nhập thành công Chọn mức Low mục DVWA Security để cài đặt mức độ thực hành công 3.2.4 Triển khai ModSecurity DVWA Với vai trò Attacker máy Client sử dụng phương thức XSS SQL Injection công website: Kịch 1: Ngăn chặn công SQL injection Hnh 3.12: Giao diện SQL injection ban đầu 28 Trước bật ModSecurity, tiêm câu truy vấn ' or 'x'='x vào, công thành công vào sở liệu Hnh 3.13: Tấn công SQL thành công Sau mở ModSecurity, trực tiếp chặn truy cập: Hnh 3.14: Trang web sau bật ModSecurity(SQL) 29 Hnh 3.15: Log ghi lại sau thực công SQL Kịch 2: Ngăn chặn công Cross Site Scripting (XSS) Hnh 3.16: Giao diện trang thực công XSS Chèn mã script vào: alert(‘votramy’) 30 Hnh 3.17: Tấn công XSS thành công Sau mở ModSecurity với SecRuleEngine chế độ On, trực tiếp chặn truy cập: Hnh 3.18: Trang web sau bật ModSecurity (XSS) 31 Hnh 3.19: Log ghi lại sau thực công XSS 3.3 Kết luận chương Chương trEnh triển khai bảo vệ website sử dụng WAF ModSecurity xây dựng thành công, đáp ứng yêu cầu đặt thấy hoạt động lợi ích sử dụng Từ kiến thức ModSecurity trên, người dùng tự viết rules để bảo vệ sâu cho trang web mEnh 32 KẾT LUẬN Ba chương báo cáo thể mục tiêu đặt thực đề tài đạt Cụ thể: Chương hệ thống kiến thức tổng quan Tường lửa ứng dụng web (WAF) Chương cho thấy lợi ích tầm quan WAF hệ thống website Chương kiến thức module mã nguồn mở WAF ModSecurity ModSecurity cho phép bạn bảo vệ server mEnh thông qua việc viết luật nhằm bao phủ dải viễn cảnh cơng Do đó, ModSecurity lớp bổ sung giúp bạn bảo vệ theo cách không cần vá Các luật ModSecurity tạo chỉnh sửa sử dụng định dạng văn đơn giản, làm cho việc viết rules trở nên đơn giản Một quen với cú pháp ModSecurity, nhanh chóng viết rules để block exploit ngăn chặn lỗ hổng Trong chương 3, cấu hEnh cài đặt thành công ModSecurity áp dụng OWASP- Core Rule Set, minh hoạ thành công tác dụng ModSecurity việc ngăn chặn công SQL injection, XSS Dù vậy, thực tế lỗ hổng bảo mật hệ thống Website phức tạp Trước hết, báo cáo tEm hiểu thực ModSecurity ứng dụng làm Tường lửa ứng dụng web TEm hiểu sâu ModSecurity phân tích rule ứng dụng thực tế hướng phát triển đề tài 33 TÀI LIỆU THAM KHẢO: [1] Jim Beechey Web Web Application Firewalls:Defense in Depth for Your Web Infrastructure [2] Dustin Anders, CISSP Introduction To Web Application Firewalls [3] F5 DevCentral What is a Web Application Firewall (WAF)? [4] Breach Security, Inc Mod Security For Apache User Guide [5] KALIMARVEL3000 Installation of ModSecurity WAF in Kali Linux Apache2 server tested on DVWA |howtoinstallmodsecurity [6] Hackersploit Securing Apache With ModSecurity https://www.linode.com/docs/guides/securing-apache2-with-modsecurity/ [7] NoobLinux How to Install DVWA on Kali Linux for Pentesting Practice https://nooblinux.com/how-to-install-dvwa/ [8] Khoa ATTT- Học viện Kỹ thuật Mật mã Tm hiểu Modsecurity 34 PHỤ LỤC OWASP (Open Web Application Security Project) dự án phi lợi nhuận, tập trung vào việc cải thiện tính bảo mật ứng dụng web Thành viên dự án cá nhân, tổ chức, chuyên gia … đóng góp mã nguồn, công cụ hỗ trợ kiểm tra lỗ hổng ứng dụng web Năm 2010, cộng đồng OWASP xuất “Tài liệu hướng dẫn kiểm tra ứng dụng Web” phiên (OWASP Testing Guide v3: https://www.owasp.org/index.php/OWASP_Testing_Project) Tài liệu liệt kê phân nhóm lỗ hổng bảo mật biết đến ứng dụng web Đồng thời nội dung tài liệu mô tả dự án cộng đồng phát triển, bao gồm dự án WAF ModSecurity Dưới thông tin Top 10 OWASP: Nhóm bao gồm lỗ hổng SQL injection, OS command injection, LDAP injection…các lỗ hổng A1-Injection phân nhóm cho phép hacker truy cập chèn liệu giả vào hệ thống thông qua câu truy vấn liệu XSS xuất ứng dụng web cho phép người dùng nhập liệu vào mà không thông qua kiểm duyệt nội dung, liệu tương tác trực tiếp với A2-Cross Site Scripting (XSS) A3-Broken Authentication and Session Management A4-Insecure Direct Object References người dùng khác sử dụng website Nguy tạo hacker chèn mã kịch HTML, Javascript… nhằm ăn cắp SessionCookie, thay đổi giao diện (deface) chuyển hướng đến trang có mã độc khác Phân nhóm liệt kê nguy chức xác thực quản lý phiên (session management) ứng dụng web Thông thường chức không triển khai tốt, cho phép hacker vượt qua chế kiểm duyệt người dùng Nguy nhóm A4 thường gặp trường hợp lập trEnh viên sử dụng tham chiếu đến tập tin, thư mục truy vấn database mã nguồn Nếu tham chiếu không quản lý chặt chẽ, thE việc truy cập liệu trái phép từ bên nguy hiểm 35 Một công CSRF yêu cầu người dùng đăng A5-Cross Site Request Forgery nhập Tiếp theo, hacker chèn mã kịch dựng sẵn vào nội dung trang web nhằm thực thi hành (CSRF) động bất hợp pháp với quyền người dùng đăng nhập Các yêu cầu bảo mật ứng dụng web bao gồm việc A6-Security cấu hEnh triển khai hệ thống, ứng dụng webserver (Apache, Nginx, Tenginx…), sở liệu (MySQL, Misconfiguratio n Oracle…), hệ điều hành (Linux, Windows…) Tất công việc thiết lập môi trường cho ứng dụng web hoạt động cần lên kế hoạch theo dõi, kiểm tra, cập nhật thường xuyên nhằm giảm thiểu nguy hệ thống bị khai thác Rất nhiều ứng dụng web không quan tâm đến việc bảo vệ A7-Insecure Cryptographic Storage A8-Failure to Restrict URL Access A9-Insufficient Transport Layer Protection liệu nhạy cảm thông tin thẻ tín dụng, SSN thơng tin xác thực Việc hacker thu thập liệu nhạy cảm khơng mã hóa (encrypt) băm (hash) tạo mối nguy hiểm lớn cho website cho phép giao dịch thông qua thương mại điện tử Hầu hết ứng dụng thường thực kiểm soát việc truy cập thông qua URL (thông qua chế Rewrite) Việc giới hạn quyền truy cập vào tập tin, thư mục nhạy cảm cần thiết Trong số tEnh huống, việc kiểm sốt khơng quản lý đầu đủ tạo nguy xâm nhập trái phép vào ứng dụng (ví dụ: thư viện fckditor thường truy cập trực tiếp không cần xác thực) Thông tin xác thực truyền qua môi trường mạng truyền dẫn không bảo mật tạo nguy liệu bị nghe Việc tương tự ứng dụng sử dụng A10Unvalidated chứng số (certificate) với khóa yếu (weak key), thuật tốn mã hóa yếu (weak algorithms) chứng hết hạn sử dụng (expired) Các ứng dụng web thường chuyển hướng người dùng đến trang web URL khác Hacker lợi Redirects and Forwards dụng chế để chuyển hướng người dùng đến website chứa phần mềm độc hại trang đăng nhập giả 36 Dự án OWASP ModSecurity Core Rule Set (CRS) sử dụng quyền ASLv2 Các tập rule CRS phân loại theo tiêu chuẩn OWASP để bảo vệ máy chủ web theo loại công Các rule hoạt động tốt với phiên ModSecurity 2.5 trở lên Hà Nội, ngày tháng XÁC NHẬN CỦA NGƯỜI HƯỚNG DẪN năm 2022 SINH VIÊN THỰC HIỆN Võ Trà My 37