Mod Security là gì? Modsecurity là một công cụ quan trọng mà những nhà xây dựng và phát triển website thường quan tâm để giải quyết những vấn đề liên quan đến bảo mật trang web. Được sử dụng rộng rãi, công cụ này mang đến những tính năng và trải nghiệm độc đáo. Để hiểu rõ hơn về chúng, mời bạn khám phá thông tin chi tiết trong bài viết dưới đây của VinaHost.
1. Mod Security là gì
ModSecurity, hay còn được biết đến với tên gọi Modsec, là một tường lửa ứng dụng cho web mã nguồn mở (WAF).
Ban đầu, nó được phát triển như một mô đun cho máy chủ Apache HTTP. Sau đó, Mod Security đã được mở rộng để cung cấp chức năng lọc phản hồi và yêu cầu giao thức truyền văn bản, cùng với nhiều tính năng bảo mật khác.
Mod Security có khả năng hoạt động trên nhiều nền tảng khác nhau như máy chủ Apache HTTP, Microsoft IIS, và Nginx. Đây là một phần mềm hoàn toàn miễn phí và được phát hành dưới giấy phép Apache 2.0.
Xem thêm: WAF là gì | Kiến thức [A-Z] về Tường Lửa Ứng Dụng Web
2. Tính năng và vai trò của Mod Security
2.1. Giám sát thời gian thực và phát hiện tấn công
Modsecurity không chỉ cung cấp khả năng ghi log mà còn có khả năng theo dõi luồng dữ liệu HTTP theo thời gian thực để phát hiện các cuộc tấn công. Do đó, hệ thống chạy Modsecurity được xem là một công cụ phát hiện xâm nhập web, cho phép phản ứng đối với các sự kiện đáng ngờ diễn ra trên hệ thống web.
2.2. Chống tấn công và vá lỗi
Modsecurity cũng có khả năng thực hiện hành động ngay lập tức để đối mặt với các cuộc tấn công vào các ứng dụng web. Có 03 phương pháp thông thường được áp dụng:
- Sử dụng mô hình bảo mật NSM (Negative Security Model): Theo dõi những yêu cầu không bình thường, các hành vi khác thường nhắm vào ứng dụng web. Modsecurity ghi lại các điểm bất thường này trong mỗi yêu cầu, bao gồm địa chỉ IP, phiên ứng dụng, và tài khoản người dùng. Các yêu cầu có điểm bất thường cao sẽ được log hoặc loại bỏ.
- Mô hình Bảo mật PSM (Positive Security Model): Với ưu điểm là khi triển khai, chỉ có những yêu cầu hợp lệ mới được chấp nhận, và tất cả những thứ khác sẽ bị loại bỏ. Phương pháp tiếp cận này thường đem lại hiệu quả tốt nhất đối với các ứng dụng được sử dụng phổ biến và ít khi được cập nhật.
- Phương pháp Known weaknesses and vulnerabilities: Modsecurity trở thành một công cụ lý tưởng cho quá trình sửa chữa. Thường thì nhà phát triển sẽ mất nhiều tuần để sửa chữa các lỗ hổng trong ứng dụng. Nhưng với Modsecurity, ứng dụng có thể được chắp vá từ bên ngoài mà không cần can thiệp vào mã nguồn của ứng dụng (thậm chí không yêu cầu truy cập đến nó), làm cho hệ thống vẫn an toàn cho đến khi lỗi của ứng dụng được khắc phục.
2.3. Khả năng linh hoạt của Core Rule Set
ModSecurity sử dụng một bộ quy tắc được gọi là Core Rule Set (CRS), một tập hợp các quy tắc được thiết kế để ngăn chặn các mô hình tấn công phổ biến.
2.4. Phát triển mẫu nhúng
Modsecurity là một firewall ứng dụng web, có thể triển khai như một phần của cơ sở hạ tầng của máy chủ ứng dụng web như Apache hoặc IIS. Việc xây dựng hệ thống Web server với Modsecurity mang lại nhiều lợi ích:
- Không làm thay đổi cơ sở hạ tầng mạng hiện tại: Việc thêm Modsecurity vào máy chủ web đã có trong hệ thống mạng chỉ mất vài phút. Triển khai miễn phí và chỉ bổ sung các tính năng cần thiết cho người dùng.
- Tương thích với tất cả các thành phần: Việc phát triển mẫu nhúng chỉ đòi hỏi một can thiệp nhỏ.
- Không gặp vấn đề nào với nội dung đã được mã hóa hoặc nén: Việc phân tích luồng dữ liệu truy cập sử dụng SSL thường là khó khăn đối với nhiều hệ thống IDS. Nhưng điều này không tạo ra vấn đề gì với Modsecurity, vì nó được thiết kế để hoạt động sau khi luồng dữ liệu được giải mã và giải nén.
- Modsecurity thể hiện hiệu suất tốt: Đặc biệt là khi được triển khai như một phần của máy chủ reverse proxy dựa trên Apache, và nhiều khách hàng đã chọn lựa nó để triển khai cho web server. Trong trường hợp này, Modsecurity có thể bảo vệ cho nhiều web server.
Xem thêm: HTTP, HTTPS là gì? Tại sao Website nên sử dụng HTTPS
3. Khi chưa tích hợp Mod Security có thể bị SQL Injection và tấn công XSS
Để kiểm thử SQL Injection và tấn công XSS, chúng ta sử dụng Damn Vulnerable Web Application (DVWA), một ứng dụng mã nguồn PHP tổng hợp các lỗi logic về bảo mật, trong đó bao gồm cả SQL Injection và XSS. Sau khi tải mã nguồn từ địa chỉ: https://github.com/ethicalhack3r/DVWA, giải nén vào thư mục C:\xampp\htdocs, khởi chạy và đăng nhập với tài khoản username/password là admin/password, giao diện trang web sẽ hiển thị như sau.
3.1. Thử nghiệm SQL Injection
Thực hiện SQL Injection bằng cách nhập %’ or ‘0’=’0 và nhấn submit.
Kết quả sẽ trả về thông tin của tất cả người dùng có trong cơ sở dữ liệu, vì câu truy vấn tại thời điểm này được hiểu là: SELECT * FROM users WHERE user_id = ‘%’ or ‘0’=’0′
3.2. Thử nghiệm XSS
Thực hiện XSS stored bằng cách submit đoạn script sau:
<script>alert(“Hacked! – KMA”)</script>:
Sau khi submit đoạn script trên, mỗi khi truy cập vào, trang web sẽ hiển thị một thông báo như sau cho người dùng:
Qua một số thao tác đơn giản, có thể thấy rằng lỗi SQL Injection và XSS dễ dàng bị khai thác. Do đó, cần có phương pháp để ngăn chặn các loại tấn công này. Có nhiều phương pháp để chống lại tấn công SQL Injection và XSS, nhưng trong bài viết này, chúng ta chỉ đề cập đến phương pháp tích hợp tường lửa, cụ thể là sử dụng Mod Security trên Apache.
4. Cách hoạt động của Mod Security
Modsecurity hoạt động như một hệ thống phát hiện và ngăn chặn xâm nhập (IDPS – Intrusion Detection and Prevention System). Trong quá trình phát hiện xâm nhập, Modsecurity giám sát luồng dữ liệu HTTP, HTTTPS khi đi vào (Request) hoặc ra khỏi Web Server (Response), phân tích chúng để tìm kiếm các dấu hiệu của sự kiện bất thường.
Điều này bao gồm việc phát hiện các vi phạm hoặc đe dọa sắp xảy ra đối với chính sách an ninh, chính sách truy cập, hoặc hoạt động không tuân thủ chính sách chuẩn của máy chủ web. Sự kiện bất thường có thể xuất phát từ nhiều nguyên nhân, bao gồm cả việc kẻ tấn công lợi dụng lỗ hổng SQL injection để truy cập hệ thống một cách trái phép và người dùng hợp pháp lạm dụng quyền hoặc cố gắng thêm vào các quyền mà họ không được phép.
Modsecurity thực hiện phát hiện tấn công thông qua hai phương pháp:
- Dựa vào các mẫu
- Dựa vào các dấu hiệu bất thường
Một trong những cách để phát hiện các cuộc tấn công là sử dụng phương pháp dựa trên mẫu (Pattern) và dấu hiệu (Signature) trong request gửi đến Web server. Các dấu hiệu và mẫu nguy hiểm của các loại tấn công được cấu hình sẵn trong rule. Khi luồng dữ liệu HTTP được kiểm tra và phát hiện chứa các dấu hiệu, mẫu nguy hiểm này, nó sẽ bị cấm. Các hành động kèm theo, như ghi log và mô tả rõ ràng về loại tấn công của request này cũng được thực hiện.
Các mẫu này cụ thể là các ký tự trong các gói tin request hoặc Response, chẳng hạn như request URI, host, user-agent, access-encoding, và cookie. Hầu hết các dạng tấn công đã biết có thể dễ dàng thu thập mẫu thông qua quá trình Capture. Những mẫu đặc biệt trong các kiểu tấn công này sẽ được tích hợp vào các rule.
Từ các thông báo lỗi, người quản trị cũng có thể nhanh chóng khắc phục với sự hỗ trợ của Modsecurity. Các lỗi sẽ hiện ra màn hình dưới sự kiểm soát của Modsecurity, do đó, hacker gặp khó khăn khi cố gắng biết và khai thác các hệ thống này.
Với lỗi trên, chúng ta có thể thực hiện phục hồi tạm thời bằng cách sử dụng rule sau, dựa trên các dấu hiệu đặc thù và nguy hiểm như “ODBC Error Code”:
SecRule RESPONSE BODY “ODBC Error code” Deny,log,status:503,phase:4,msg:”Database Error Message Detected”
Dạng thứ hai của việc phát hiện tấn công là dựa trên các dấu hiệu bất thường. Ngoài các dạng tấn công được liệt kê cụ thể, còn tồn tại nhiều dạng tấn công khác. Các dấu hiệu bất thường bao gồm “bad user-agent”. Ví dụ về một “bad user-agent” có thể được mô tả như sau:
(.|\s|\n)?(script|about|applet|activex|chrome|object)(.|\s|\n)?>.*<(.|\s|\n)?(script|about|applet|activex|chrome|object)
5. Kiến trúc và thành phần của Mod Security
5.1. Tổng quan về Modsecurity core ruler
Modsecurity là một tường lửa ứng dụng dành cho website, do đó, tự nó không có nhiều khả năng phòng chống tấn công mặc định và cũng không được tích hợp các quy tắc cấu hình cẩn thận. Để tận dụng được ưu điểm từ các tính năng có sẵn của Modsecurity, các nhà phát triển đã thiết lập một bộ luật chặt chẽ, đầy đủ và hoàn toàn miễn phí.
Khác với các hệ thống dò tìm và phát hiện mối nguy hiểm xâm nhập khác, những core rule này có khả năng cung cấp sự bảo vệ chống lại những yếu điểm chưa được phát hiện trong các ứng dụng web.
5.2. Nội dung của Core ruler
Để đảm bảo sự bảo vệ toàn diện cho website, core rule bao gồm các thành phần sau:
- Thành phần bảo vệ luồng dữ liệu HTTP: Chức năng của thành phần này là phát hiện các hành vi vi phạm giao thức HTTP và thực hiện các quy tắc xử lý đã được xác định theo core rule.
- Phòng chống các cuộc tấn công phổ biến vào Web server: Tính năng này giúp phát hiện các cuộc tấn công vào ứng dụng bảo mật của web server.
- Một số tính năng khác: Tự động phát hiện Bots, ngăn chặn và phát hiện truy cập từ Trojan horses, nhận diện lỗi tấn công và các thông báo từ web server.
Xem thêm: [Tìm Hiểu] Trojan là gì? | Dấu hiệu & Ngăn chặn Virus Trojan
5.3. Cấu trúc của Core ruler
Cấu hình của Rule modsecurity bao gồm các thông tin khác nhau, yêu cầu đặc biệt về nội dung. Dưới đây là một số cấu trúc của Rule modsecurity:
- Cấu trúc chứa các chỉ thị, hàm chuyển đổi, biến và signature, cùng với các action tương ứng cho phép hoặc không cho phép.
- Thông tin về logic để phát hiện các cuộc tấn công.
- Thông tin thiết lập chính sách, quyết định hành động xử lý cụ thể khi phát hiện cuộc tấn công.
Modsecurity cho phép xử lý từng thành phần tấn công khác nhau. Core rule được xây dựng dựa trên mẫu có sẵn và có thể tự thay đổi, thêm hoặc giảm bớt các core rule.
6. Bộ quy tắc của Mod Security
Để mod_security hoạt động, cần sử dụng một bộ quy tắc. SpiderLabs đã hợp tác với OWASP để phát triển bộ quy tắc “generic”, sử dụng cho các chức năng của mod_security.
Bạn có thể tham khảo và tải xuống bộ quy tắc tại: owasp-modsecurity-crs
Ngoài ra, bạn cũng có thể tự tạo bộ quy tắc của riêng mình hoặc mua các bộ quy tắc tùy chỉnh khác.
7. Hướng dẫn các phương pháp cài đặt Mod Security
Dưới đây là hướng dẫn cách cài đặt mod_security trên cả cPanel và DirectAdmin.
7.1. Cài đặt trên cPanel
Để cấu hình ModSecurity, bạn cần cài đặt module này vào Apache. Nếu chưa được cài đặt, vui lòng tìm sự trợ giúp từ EasyApache để thực hiện quá trình cài đặt. Hãy đảm bảo rằng bạn đã chọn ModSecurity trước khi bắt đầu quá trình cấu hình.
Ngoài ra, bạn có thể đăng nhập vào máy chủ bằng tài khoản root và thực hiện lệnh sau trên cPanel với Easy Apache 4.
{{EJS0}}
Đó là các bước cần thiết để cài đặt mod_security và kích hoạt nó.
Sau khi quá trình cài đặt hoàn tất, bạn có thể thêm bộ quy tắt theo hướng dẫn tại WHM, nằm ở đường dẫn Home >> Security Center >> ModSecurity™ Vendors. Bộ quy tắt OWASP của cPanel đã được tích hợp sẵn, và nếu bạn muốn sử dụng bộ quy tắt khác, vui lòng liên hệ với nhà phát triển bộ quy tắt để thêm chúng vào WHM. Lựa chọn bộ quy tắt có sẵn là một phương pháp cài đặt được ưa chuộng nhất.
Xem thêm: cPanel là gì | Hướng dẫn Cài đặt & Sử dụng cPanel [A-Z]
7.2. Cài đặt trên DirectAdmin
Mod_security cho DirectAdmin được cài đặt thông qua Command Line Interface (CLI) sử dụng Custombuild, vì vậy trước khi thực hiện quá trình cài đặt, bạn cần nắm vững thông tin về DirectAdmin và Custombuild.
DirectAdmin hỗ trợ 2 bộ quy tắt khác nhau, đó là – OWASP và Comodo. Các bước cài đặt dưới đây là dành cho bộ quy tắt ‘Comodo’.
Để bắt đầu, hãy đăng nhập vào máy chủ DirectAdmin với tài khoản root và thực hiện lệnh sau:
{{EJS1}}
Lệnh này được sử dụng để cài đặt mod_security trên máy chủ và đồng thời cài đặt DirectAdmin.
Sau khi quá trình cài đặt hoàn tất, bạn có thể đăng nhập vào DirectAdmin và sử dụng ModSecurity bằng cách truy cập Server Manager >> ModSecurity (https: // hostname: 2222 / admin / modsecurity).
Tại đây, bạn có thể quản lý ModSecurity, kiểm tra nhật ký, điều chỉnh quy tắc, và thực hiện các tác vụ quản trị khác.
Xem thêm: DirectAdmin là gì? | Cài đặt & Sử dụng DirectAdmin [A-Z]
8. Tính tương thích của Mod Security
Một số loại quy tắt không tương thích với mod_ruid2. Bất kỳ quy tắt nào của ModSecurity lưu trữ giá trị vào tệp cũng sẽ không hoạt động với mod_ruid2 do sự tương tác quyền truy cập vào tệp, quyền sở hữu và các quy trình apache sẽ chạy. Tương tự, những quy tắt này cũng không khả dụng với mpm-itk.
Nếu bạn không chắc chắn liệu bộ quy tắc cụ thể có chứa quy tắc lưu trữ tệp không, hãy đặt câu hỏi với nhà cung cấp trước khi sử dụng bộ quy tắc này trong mod_ruid2 hoặc mpm-itk.
9. Kiểm tra Firewall
Nếu máy chủ của bạn sử dụng ConfigServer Security & Firewall, bạn cần kiểm tra xem tính năng LF_MODSEC có được bật mặc định hay không. Nếu tính năng này đã được kích hoạt, IP kích hoạt quy tắt modsec trong một số lần nhất định và trong một khoảng thời gian nhất định sẽ bị chặn trong Firewall.
Điều này có thể là chặn tạm thời hoặc vĩnh viễn tùy thuộc vào cấu hình. Để tránh xung đột quy tắc với các ứng dụng web, hãy đảm bảo rằng modsec đã được cài đặt phù hợp với máy chủ trước khi bật tính năng LF_MODSEC. Nếu không, người truy cập vào trang web có thể bị chặn bởi Firewall.
Xem thêm: Tường lửa là gì | Tổng hợp thông tin [A-Z] về Firewall
10. Liệu có nên sử dụng Mod Security không?
Trước khi quyết định sử dụng, bạn nên tham khảo ý kiến của các nhà phát triển của các bộ quy tắc để có sự tự tin và hiểu rõ hơn, đặc biệt là nếu bạn không có nhiều kinh nghiệm.
Câu trả lời ở đây chỉ mang tính chất tương đối và phụ thuộc vào nhiều yếu tố. Ví dụ, nếu bạn đã xác định rằng bộ quy tắc không ảnh hưởng đến chức năng của trang web, việc sử dụng mod_security có thể là cần thiết. Tuy nhiên, nếu trang web của bạn có nhiều yêu cầu POST tùy chỉnh, mod_security có thể gây ảnh hưởng đến chức năng cốt lõi, vì vậy bạn nên tránh sử dụng nó.
11. Tổng kết
Như bạn đã biết, ModSecurity có thể được xem là một ứng dụng hữu ích giúp bảo vệ trang web khỏi những cuộc tấn công nguy hiểm như Cross-Site Scripting, SQL Injection,…. Tuy nhiên, nếu bạn không thường xuyên cập nhật phần mềm, việc sử dụng Modsecurity có thể mang lại nhiều bất cập. Do đó, trước khi quyết định đầu tư vào bất kỳ bộ quy tắc nào của mod_security, bạn cần tham khảo kỹ và hỏi ý kiến của nhà phát triển để có trải nghiệm tốt hơn.
Hy vọng bạn đã hiểu rõ Mod Security là gì, cũng như những tính năng và tầm quan trọng của nó. Bạn có thể tìm hiểu thêm về các chủ đề khác bằng cách truy cập vào Blog của VinaHost TẠI ĐÂY hoặc liên hệ ngay cho chúng tôi nếu cần tư vấn về dịch vụ:
- Email: support@vinahost.vn
- Hotline: 1900 6046
- Livechat: https://livechat.vinahost.vn/chat.php
Xem thêm một số bài viết khác:
CSF Firewall là gì? | Cài đặt & Cấu hình CSF Firewall A-Z
Apache Tomcat là gì? | Cách cài đặt Apache Tomcat chi tiết