Ngày nay khi công nghệ thông tin phát triển, nhu cầu xây dựng cho mình một website riêng với mục đích giải trí, quảng bá sản phẩm, …. của các cá nhân, tổ chức ngày càng gia tăng thì vấn đề bảo mật các website này ngày càng được quan tâm. Hiện nay, nhiều tổ chức đã nghiên cứu và cung cấp các giải pháp giúp cho mỗi cá nhân, tổ chức có thể xây dựng website riêng và vấn đề bảo mật được đặt lên hàng đầu. Trên Dự án về kiểm thử các lỗ hổng của ứng dụng web (Open Web Application Security Project OWASP), các tổ chức, các công ty đã xây dựng lên tường lửa ứng dụng web (Web Application Firewall WAF) để bảo vệ hệ thống máy chủ web như sản phẩm Imperva, CheckPoint hay Modsecurity. Trong khi Imperva và CheckPoint là sản phẩm thương mại thì Modsecurity là một sản phẩm mã nguồn mở và có nhiệm vụ ngăn chặn một số dạng tấn công nhằm vào web và cơ sở dữ liệu. Do đó, chúng em lựa chọn đề tài: “Tìm hiểu, thử nghiệm tường lửa ứng dụng web modsecurity”.
HỌC VIỆN KỸ THUẬT MẬT MÃ KHOA AN TỒN THƠNG TIN - - BÀI TẬP LỚN Đề tài: Tìm hiểu, thử nghiệm tường lửa ứng dụng web modsecurity Lớp: L02 Sinh viên thực hiện: Phạm Thị Quỳnh Phạm Bảo Yến Giảng viên: Bùi Việt Thắng Hà Nội, 11/201 MỤC LỤC MỤC LỤC DANH SÁCH HÌNH ẢNH LỜI MỞ ĐẦU CHƯƠNG I – GIỚI THIỆU VỀ TẤN CÔNG SQL INJECTION 1.1 Khái niệm 1.2 Một số dạng công thường gặp với ứng dụng 1.2.1 Dạng công vượt qua kiểm tra lúc đăng nhập 1.2.2 Dạng công sử dụng câu lệnh SELECT 1.2.3 Dạng công sử dụng câu lệnh INSERT 1.2.4 Dạng công sử dụng stored-procedures 1.3 Các dạng lỗi thường gặp 1.3.1 Không kiểm tra ký tự thoát truy vấn 1.3.2 Xử lý không kiểu 1.3.3 Lỗi bảo mật bên máy chủ sơ sở liệu 1.3.4 Blind SQL Injection 1.3.5 Thay đổi giá trị điều kiện truy vấn 1.3.6 Điều kiện lỗi 1.3.7 Thời gian trễ CHƯƠNG II – GIỚI THIỆU VỀ MODSECURITY 2.1 Khái niệm 2.2 Các khả ModSecurity 2.3 Cách xử lý yêu cầu ModSecurity 10 2.4 Cách viết tập luật cho ModSecurity 11 2.4.1 Cơ Regular Expression –biểu thức quy 12 2.4.2 Chỉ dẫn SecRule 13 2.4.3 Biến ModSecurity 13 2.4.4 Operator 14 2.4.5 Action 16 2.4.6 Lưu trữ giữ liệu request 19 2.4.7 Tạo chain rule- chuỗi luật 19 CHƯƠNG III – TRIỂN KHAI CÀI ĐẶT CẤU HÌNH MODSECURITY CHO MÁY CHỦ WEB APACHE 21 3.1 Chuẩn bị 21 3.2 Xây dựng kịch 21 3.3 Các bước thực 21 3.4 Cài đặt website có lỗ hổng bảo mật 21 3.4.1 DVWA 21 3.4.2 Thực 22 3.5 Thực công SQL Injection lên máy chủ web 23 3.6 Cài đặt mod_security lên máy chủ Linux CentOS 24 3.6.1 Cài đặt cấu hình mod_security 24 3.6.2 Thiết lập luật cho mod_security 25 3.6 Kiểm tra 26 KẾT LUẬN 27 PHỤ LỤC 28 Cài đặt Apache 28 Cài đặt MariaDB 28 Cài đặt PHP 29 Cài đặt phpMyAdmin 29 TÀI LIỆU THAM KHẢO 31 DANH SÁCH HÌNH ẢNH Hình 2.1: Quá trình xử lý yêu cầu ModSecurity 10 Hình 3.1: Mơ hình triển khai 21 Hình 3.2: DVWA 22 Hình 3.3: Giao diện trang web có lỗ hổng bảo mật 23 Hình 3.4: Giao diện khai thác thông tin 23 Hình 3.5: Cài đặt modsecurity 24 Hình 3.6: File cấu hình 25 Hình 3.7: File mod_security.conf 25 Hình 3.8: Nội dụng rule 26 Hình 3.9: Kết kiểm tra 26 DANH MỤC BẢNG Bảng 2.1: Một số biểu thức quy 12 Bảng 2.2: Các ký tự meta thường dùng 13 Bảng 2.3: Các giá trị toán tử so trùng chuỗi 15 Hình 2.4: Các giá trị toán tử hỗ trợ so sánh 15 Hình 2.5: Các giá trị toán tử kiểm tra 15 Hình 2.6: Các giá trị tốn tử hỗn độn 16 Hình 2.7: Các giá trị disruptive actions 17 Hình 2.8: Các giá trị flow actions 17 Hình 2.9: Các giá trị metadata actions 17 Hình 2.10: Các giá trị variable actions 18 Hình 2.11: Các giá trị logging actions 18 Hình 2.12: Các giá trị special actions 18 Hình 2.13: Các giá trị miscellaneous actions 19 LỜI MỞ ĐẦU Ngày công nghệ thông tin phát triển, nhu cầu xây dựng cho website riêng với mục đích giải trí, quảng bá sản phẩm, … cá nhân, tổ chức ngày gia tăng vấn đề bảo mật website ngày quan tâm Hiện nay, nhiều tổ chức nghiên cứu cung cấp giải pháp giúp cho cá nhân, tổ chức xây dựng website riêng vấn đề bảo mật đặt lên hàng đầu Trên Dự án kiểm thử lỗ hổng ứng dụng web (Open Web Application Security Project - OWASP), tổ chức, công ty xây dựng lên tường lửa ứng dụng web (Web Application Firewall - WAF) để bảo vệ hệ thống máy chủ web sản phẩm Imperva, CheckPoint hay Modsecurity Trong Imperva CheckPoint sản phẩm thương mại Modsecurity sản phẩm mã nguồn mở có nhiệm vụ ngăn chặn số dạng cơng nhằm vào web sở liệu Do đó, chúng em lựa chọn đề tài: “Tìm hiểu, thử nghiệm tường lửa ứng dụng web modsecurity” Bản báo cáo gồm phần: Chương – Giới thiệu công SQL Injection: Chương giới thiệu khái niệm, dạng công, số lỗi thường gặp công SQL Injection Chương - Giới thiệu Modsecurity: Chương giới thiệu khái niệm, viết tập luật, … vấn đề khác liên quan đến Modsecurity Chương - Triển khai mơ hình : Chương triển khai cài đặt, cấu hình rule cho modsecurity để chống lại công SQL Injection Mặc dù cố gắng kiến thức có hạn thời gian nhiều hạn chế nên chắn báo cáo nhiều thiếu sót, chúng em mong nhận ý kiến đóng góp thầy bạn sinh viên để chúng em tìm hiểu sâu vấn đề Chúng em xin chân thành cảm ơn! CHƯƠNG I – GIỚI THIỆU VỀ TẤN CÔNG SQL INJECTION 1.1 Khái niệm SQL injection kỹ thuật cho phép kẻ công lợi dụng lỗ hổng việc kiểm tra liệu đầu vào ứng dụng web thông báo lỗi hệ quản trị sở liệu trả để inject (tiêm vào) thi hành câu lệnh SQL bất hợp pháp SQL injection cho phép kẻ công thực thao tác, delete, insert, update, v.v sở liệu ứng dụng, chí server mà ứng dụng chạy SQL injection thường biết đến vật trung gian cơng ứng dụng web có liệu quản lý hệ quản trị sở liệu SQL Server, MySQL, Oracle, DB2, Sysbase 1.2 Một số dạng công thường gặp với ứng dụng 1.2.1 Dạng công vượt qua kiểm tra lúc đăng nhập Với dạng công này, tin tặc dễ dàng vượt qua trang đăng nhập nhờ vào lỗi dùng câu lệnh SQL thao tác sở liệu ứng dụng web Thông thường phép người dùng truy cập vào trang web bảo mật, hệ thống thường xây dựng trang đăng nhập để yêu cầu người dùng nhập thông tin tên đăng nhập mật Sau người dùng nhập thông tin vào, hệ thống kiểm tra tên đăng nhập mật có hợp lệ hay khơng để định cho phép hay từ chối thực tiếp 1.2.2 Dạng công sử dụng câu lệnh SELECT Dạng công phức tạp Để thực kiểu công này, kẻ cơng phải có khả hiểu lợi dụng sơ hở thông báo lỗi từ hệ thống để dò tìm điểm yếu khởi đầu cho việc công 1.2.3 Dạng công sử dụng câu lệnh INSERT Thông thường ứng dụng web cho phép người dùng đăng ký tài khoản để tham gia Chức thiếu sau đăng ký thành cơng, người dùng xem hiệu chỉnh thơng tin SQL injection dùng hệ thống khơng kiểm tra tính hợp lệ thông tin nhập vào 1.2.4 Dạng công sử dụng stored-procedures Việc công stored-procedures gây tác hại lớn ứng dụng thực thi với quyền quản trị hệ thống 'sa' Ví dụ, ta thay đoạn mã tiêm vào dạng: '; EXEC xp_cmdshell ‘cmdd.exe dir C: ' Lúc hệ thống thực lệnh liệt kê thư mục ổ đĩa C:\ cài đặt server Việc phá hoại kiểu tuỳ thuộc vào câu lệnh đằng sau cmd.exe 1.3 Các dạng lỗi thường gặp 1.3.1 Khơng kiểm tra ký tự truy vấn Đây dạng lỗi SQL injection xảy thiếu đoạn mã kiểm tra liệu đầu vào câu truy vấn SQL Kết người dùng cuối thực số truy vấn khơng mong muốn sở liệu ứng dụng Dòng mã sau minh họa lỗi này: statement = "SELECT * FROM users WHERE name = '" + userName + "';" Câu lệnh thiết kế để trả ghi tên người dùng cụ thể từ bảng người dùng Tuy nhiên, biến "userName" nhập xác theo cách người dùng ác ý, trở thành câu truy vấn SQL với mục đích khác hẳn so với mong muốn tác giả đoạn mã Ví dụ, ta nhập vào giá trị biến userName sau: a' or 't'='t Khiến câu truy vấn hiểu sau: SELECT * FROM users WHERE name = 'a' or 't'='t'; Nếu đoạn mã sử dụng thủ tục xác thực ví dụ sử dụng để bắt buộc lựa chọn tên người dùng hợp lệ 't'='t' 1.3.2 Xử lý không kiểu Lỗi SQL injection dạng thường xảy lập trình viên hay người dùng định nghĩa đầu vào liệu không rõ ràng thiếu bước kiểm tra lọc kiểu liệu đầu vào Điều xảy trường số sử dụng truy vấn SQL lập trình viên lại thiếu bước kiểm tra liệu đầu vào để xác minh kiểu liệu mà người dùng nhập vào có phải số hay khơng 1.3.3 Lỗi bảo mật bên máy chủ sơ sở liệu Đơi lỗ hổng tồn phần mềm máy chủ sở liệu, trường hợp hàm mysql_real_escape_string() máy chủ MySQL Điều cho phép kẻ cơng thực công SQL injection thành công dựa ký tự Unicode không thông thường đầu nhập vào thoát 1.3.4 Blind SQL Injection Lỗi SQL injection dạng dạng lỗi tồn ứng dụng web hậu chúng lại không hiển thị trực quan cho kẻ cơng Nó gây sai khác hiển thị nội dung trang chứa lỗi bảo mật này, hậu cơng SQL injection dạng khiến cho lập trình viên hay người dùng phải nhiều thời gian để phục hồi xác bit liệu Những kẻ cơng sử dụng số cơng cụ để dò tìm lỗi dạng công với thông tin thiết lập sẵn 1.3.5 Thay đổi giá trị điều kiện truy vấn Dạng lỗi khiến cho kẻ cơng thay đổi giá trị điều kiện câu truy vấn, làm sai lệch hiển thị ứng dụng chứa lỗi 1.3.6 Điều kiện lỗi Lỗi SQL injection dạng dẫn tới việc buộc sở liệu phép đánh giá mà giá trị câu lệnh WHERE Ví dụ: SELECT 1/0 from users where username='Ralph'; Phép chia cho đánh giá lỗi mà người dùng có tên "Ralph" tồn sở liệu 1.3.7 Thời gian trễ Lỗi SQL injection dạng tồn thời gian xử lý hay nhiều truy vấn SQL phụ thuộc vào liệu logic nhập vào trình xử lý truy vấn SQL engine cần nhiều thời gian Tin tặc sử dụng lỗi SQL injection dạng để xác định thời gian xác mà trang cần tải giá trị nhập vào CHƯƠNG II – GIỚI THIỆU VỀ MODSECURITY 2.1 Khái niệm ModSecurity máy phát phòng chống xâm nhập dành cho ứng dụng web (hay web application firewall) ModSecurity hoạt động module máy chủ web Apache, mục đích ModSecurity tăng cường bảo mật cho ứng dụng web, bảo vệ chúng trước công vào ứng dụng web ModSecurity hoạt động tích hợp với Apache ModSecurity phát triển Ivan Ristic – Chuyên gia bảo mật ứng dụng năm 2002 – Tác giả Apache Web Security Hiện mod_security sử dụng giấy phép GPL, hồn tồn miễn phí 2.2 Các khả ModSecurity ModSecurity có khả sau: - ModSecurity có khả tra thơng điệp HTTP request trước xử lý hồn tồn Apache - Thanh tra, lưu trữ tùy chỉnh file tải lên server - Thực thi hành động anti-evasion cách tự động Hầu hết Web Application Firewalls signature-based, chúng xem xét HTTP Traffic tìm kiếm dấu hiệu định nghĩa sẵn Nếu thấy HTTP Traffic có trùng khớp với dấu hiệu Firewall tiến hành sàn lọc Nhưng kẻ công thay đổi liệu công (attack payload) nhiều cách mà cho kết thay đổi không trùng khớp với signature Firewall Request vượt qua Firewall Kỹ thuật thay đổi attack payload để tránh phát gọi evasion techniques - Có khả phân tích tỉ mỉ ghi nhật ký toàn hoạt động giao thức HTTP tra thông điệp Request, Response - Có khả theo dõi lưu lượng gói tin HTTP (HTTP Traffic) theo thời gian thực để sớm phát công - Chủ động theo dõi yêu cầu để phát điểm bất thường, sau thực hành động ghi log loại bỏ gói tin theo luật thiết lập Hình 2.7: Các giá trị disruptive actions Flow actions Hình 2.8: Các giá trị flow actions Metadata actions Phân nhóm cho phép bạn định nghĩa thông tin mô tả rule Các thông tin thường dùng để mô tả thông báo lỗi (error message), giải thích nguyên nhân xuất lỗi cách khắc phục đề nghị Hình 2.9: Các giá trị metadata actions Variable actions Các hành vi nhóm liên hệ với giá trị biến, action cho phép gán giá trị (set), thay đổi (change) xóa (remove) giá trị mà biến lưu trữ 17 Hình 2.10: Các giá trị variable actions Logging actions Các action phân nhóm ghi log dẫn ModSecurity phưng pháp nơi lưu trữ log Các action ảnh hưởng đến việc ghi log rule auditlog, log, noauditlog nolog Để điều khiển trình ghi log, bạn cần tham khảo ctlaction Hình 2.11: Các giá trị logging actions Special actions Hình 2.12: Các giá trị special actions 18 Miscellaneous actions Hình 2.13: Các giá trị miscellaneous actions 2.4.6 Lưu trữ giữ liệu request Thông thường sử dụng hành động setvar để tạo gán giá trị cho biến, nhiên biến bị hết hạn xử lý xong request, ModSecurity hỗ trợ số kiểu biến tập hợp để lưu trữ liệu request truy cập sau như: - IP: Lưu trữ thông tin địa IP client Thường sử dụng để lưu trữ số lần cố gắng truy cập tài nguyên bị lỗi, số request người dùng - SESSION: Biến sử dụng sau hành động setsid thực thi Lưu trữ liệu phiên kết nối Trước sử dụng biến cần phải khởi tạo giá trị cho sử dụng hành động initcol cấu hình thư mục lưu trữ liệu ModSecurity SecAction initcol:ip=%{REMOTE_ADDR},nolog,pass SecDataDir /usr/local/apache2/log/modsec_data Ví dụ sử dụng biến SecRule ARGS|REQUEST_HEADERS “park” deny Luật thực deny đối số request REQUEST_HEADERS chứa chuỗi “park” 2.4.7 Tạo chain rule- chuỗi luật Chain action đặt bên luật muốn tạo chuỗi luật Xét ví dụ sau: bạn chủ website, bạn muốn block số trình download gây hại cho website bạn từ số client Tuy nhiên bạn block tất client sử dụng trình duyệt download 19 Sau phân tích request bạn thấy request gây hại cho website có chuỗi user-agent chứa “Red Bullet” có địa IP thuộc lớp mạng 192.168.1.0/24 Như bạn thiết lập luật là: - Luật deny request có User-Agent chứa “Ret Bullet” SecRule REQUEST_HEADERS:User-Agent “Red Bullet” “deny” - Và client có địa IP thuộc lớp mạng 192.168.1.0/24 SecRule REMOTE_ADDR “192\.168\.1.\” Kết hợp luật lại sau: SecRule REQUEST_HEADERS:User-Agent “Red Bullet” “chain,deny” SecRule REMOTE_ADDR “192\.168\.1.\” Khi tạo chain rules cần ý: - Các action deny, log, msg, id, rev, tag, severity, logdata đặt luật chain - Các rule chain viết liền sau đặt action chain luật chain (trừ luật cuối cùng) Tiếp tục với ví dụ trên, bạn muốn thực chain trước tối chain rules là: SecRule REQUEST_HEADERS:User-Agent “Red Bullet” “chain,deny” SecRule REMOTE_ADDR “192\.168\.1.\” “chain” SecRule TIME_HOUR “@LT 18” 20 CHƯƠNG III – TRIỂN KHAI CÀI ĐẶT CẤU HÌNH MODSECURITY CHO MÁY CHỦ WEB APACHE 3.1 Chuẩn bị - Máy ảo chạy hệ điều hành CentOS cấu hình cài đặt website sử dụng Apache, PHP, MariaDB - Máy ảo chạy hệ điều hành Kali 3.2 Xây dựng kịch Hình 3.1: Mơ hình triển khai - Máy ảo Web linux CentOS chạy website: Apache, PHP, MariaDB, Mod_security - Máy ảo Windows thực công SQL Injection 3.3 Các bước thực Thực máy CentOS - Xây dựng website có lỗ hổng bảo mật - Từ máy Windows thực công SQL Injection vào máy chủ web - Cài đặt mod_security lên máy chủ web - Thực công lại kiểm tra kết 3.4 Cài đặt website có lỗ hổng bảo mật 3.4.1 DVWA Damn Vulnerable Web Application (DVWA) ứng dụng mã nguồn PHP/MySQL tập hợp sẵn lỗi logic bảo mật ứng dụng web mã nguồn PHP Lỗi logic lập trình áp dụng loại ngơn ngữ lập trình nhằm giảm thiểu khả tạo lổ hổng bảo mật từ tư lập trình chưa cẩn thận 21 Hình 3.2: DVWA Mục tiêu DVWA tạo mơi trường thực hành pentest hợp pháp Giúp cho nhà phát triển ứng dụng web hiểu hoạt động lập trình an tồn bảo mật Bên cạnh DVWA cung cấp cho pentester phương pháp học thực hành công khai thác lỗi bảo mật ứng dụng web mức nâng cao Dự án DVWA khai sinh từ tháng 12/2008 phát triển nhanh chóng sớm tiếng 3.4.2 Thực Ở đây, ta sử dụng DVWA làm trang web có lỗ hổng bảo mật cài máy chủ Web Linux CentOS cài sẵn: Apache, MariaDB, PHP, PHPMyAdmin Sau download cấu hình, ta có giao diện web sau: 22 Hình 3.3: Giao diện trang web có lỗ hổng bảo mật 3.5 Thực công SQL Injection lên máy chủ web Ta truy cập từ máy ảo Windows đến máy chủ web server thông qua putty, lựa chọn giao thức ssh Thực cơng SQL Injection lên trang web có lỗ hổng bảo mật khai thác thơng tin hình sau: Hình 3.4: Giao diện khai thác thơng tin 23 3.6 Cài đặt mod_security lên máy chủ Linux CentOS 3.6.1 Cài đặt cấu hình mod_security Đầu tiên ta phải cài đặt thư viện cần thiết: yum install httpd-devel libxml2-devel pcre-devel apr-devel apr-util-devel curl-devel –y Tiếp theo, ta tiến hành cài đặt modsecurity với câu lệnh sau: yum install mod_security Hình 3.5: Cài đặt modsecurity Sau cài đặt xong, ta tiến hành cấu hình modsecurity: Đầu tiên, ta tìm file config mà ta cần với câu lệnh: cd /etc/httpd/conf.d 24 Hình 3.6: File cấu hình File cấu hình mà ta sử dụng mod_security.conf Để mở file trên, ta sử dụng câu lệnh: Sudo nano mod_security.conf Hình 3.7: File mod_security.conf Sử dụng tổ hợp phím Ctrl+W để tìm SecRuleEngine Off chuyển thành SecRuleEngine On, SecResponseBodyAccess On chuyển thành SecResponseBodyAccess Off Sau ta lưu file lại restart lại Apache để Mod_Security có hiệu lực với câu lệnh: service httpd restart 3.6.2 Thiết lập luật cho mod_security Trước hết ta tạo tệp tin rule.conf thư mục /etc/httpd với câu lệnh Vi rule.conf Và với nội dung sau: 25 Hình 3.8: Nội dụng rule Theo đặc tính cơng SQL Injection, hacker thường sử dụng ký tự comment MySQL để đạt mục đích Do đó, ta dễ dàng chặn cơng chặn bỏ ký tự comment sau: /\*!?|\*/|[';] | [\s\r\n\v\f]|(?: [^-]*?-)|([^\-&])#.*?[\s\r\n\v\f]|;?\\x00 3.6 Kiểm tra Ta thực lại công SQL Injection nhận trả lời từ Server sau: Hình 3.9: Kết kiểm tra Như vậy, sử dụng modsecurity chặn số cơng vào website công SQL Injection 26 KẾT LUẬN Bài tập lớn “Tìm hiểu, thử nghiệm tường lửa ứng dụng web modsecurity” hoàn thành mục tiêu đề là: - Tìm hiểu tổng quan công SQL Injection dạng - Tìm hiểu lý thuyết modsecurity, tạo rule modesecurity,… triển khai mơ hình đơn giản để chống lại cơng SQL Injection modsecurity Tuy nhiên , thời gian hạn chế nên bên cạnh nội dung thực hiện, báo cáo tránh khỏi sai sót định Hy vọng tương lai, có thời gian hội, chúng em tiếp tục phát triển vấn đề nâng cao 27 PHỤ LỤC Cài đặt Apache - Cài đặt Apache 2.4 lệnh sau: # yum -y install httpd - Cấu hình Apache tự khởi động hệ thống # systemctl enable httpd.service - Cấu hình firewall cho phép apache chạy qua # firewall-cmd permanent zone=public add-service=http # firewall-cmd permanent zone=public add-service=https # firewall-cmd reload - Khởi động Apache # systemctl start httpd.service - Kiểm tra hoạt động Apache: Truy cập trình duyệt http://your_ip_server http://your_domain (Ở đây, địa ip server 127.0.0.1) Kết nhận trang ghi It works! Testing 123… Cài đặt MariaDB - MariaDB nhánh phát triển từ Monty Widenius Hỗ trợ tương thích với MySQL Bài viết sử dụng MariaDB thay cho MySQL - Cài đặt Mariadb theo lệnh: #yum -y install mariadb-server mariadb 28 - Cấu hình Mariadb tự khởi động hệ thống # systemctl enable mariadb.service - Khởi động MariaDB # systemctl start mariadb.service - Cấu hình thơng tin quản trị MariaDB #mysql_secure_installation - Tiếp theo, tất câu hỏi để mặc định vào ấn Enter Cài đặt PHP - Đối với CentOS 7.x mặc định cài đặt PHP 5.4 Bài viết hướng dẫn kích hoạt thêm PHP 7.0 PHP 7.1 - Thêm gói Remi Centos # rpm –Uvh http://rpms.remirepo.net/enterprise/remirelease-7.rpm - Cài đặt gói quản trị yum # yum -y install yum-utils - Và chạy lệnh update - # yum updateVới PHP 5.4 # yum -y install php - Để cài đặt thực thi, phải khởi động Apache # systemctl restart httpd.service - Để kiểm tra hoạt động PHP Tại thư mục root Apache /var/www/html, khởi tạo PHP file (info.php) # vi /var/www/html/info.php - Với nội dung: - Truy cập trình duyệt http://your_ip_server/info.php http://your_domain/info.php Cài đặt phpMyAdmin - Cài đặt Epel hỗ trợ chứa gói cài đặt phpMyAdmin # rpm import /etc/pki/rpm-gpg/RPM-GPGKEY* 29 # yum -y install epel-release - Cài đặt phpMyAdmin # yum -y install phpMyAdmin - Cấu hình phpMyAdmin # vi /etc/httpd/conf.d/phpMyAdmin.conf - Thêm Require all granted vào sau: - Khởi động dịch vụ Apache # systemctl restart httpd.service - Truy cập trình duyệt http://your_ip_server/phpmyadmin http://your_domain/phpmyadmin 30 TÀI LIỆU THAM KHẢO (1) Cấu hình LAMP: https://www.sharelinux.top/2017/10/cai-dat-lamp-tren-centos-7.x.html (2) https://vi.wikipedia.org/wiki/SQL_injection (3) Cấu hình modsecurity: http://liemphan.net/blog/2018/03/30/cai-dat-modsecurity-cho-apache-2tren-centos/ (4) http://it.die.vn/m/modsecurity/ (5) https://en.wikipedia.org/wiki/ModSecurity (6) https://www.slideshare.net/hacker21/nghin-cu-ng-dng-mod-security-bo-vweb-server 31 ... Như vậy, sử dụng modsecurity chặn số công vào website công SQL Injection 26 KẾT LUẬN Bài tập lớn Tìm hiểu, thử nghiệm tường lửa ứng dụng web modsecurity hoàn thành mục tiêu đề là: - Tìm hiểu tổng... cho ứng dụng web (hay web application firewall) ModSecurity hoạt động module máy chủ web Apache, mục đích ModSecurity tăng cường bảo mật cho ứng dụng web, bảo vệ chúng trước công vào ứng dụng web. .. website riêng vấn đề bảo mật đặt lên hàng đầu Trên Dự án kiểm thử lỗ hổng ứng dụng web (Open Web Application Security Project - OWASP), tổ chức, công ty xây dựng lên tường lửa ứng dụng web (Web