đề tài tìm hiểu mod_security và demo tính năng

22 1.2K 1
đề tài   tìm hiểu mod_security và demo tính năng

Đang tải... (xem toàn văn)

Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống

Thông tin tài liệu

Khoa CNTT – ĐH Công nghiệp thành phố Hồ Chí Minh Tìm hiểu Modsecurity & demo tính năng ĐỀ TÀI TÌM HIỂU MOD_SECURITY DEMO TÍNH NĂNG MSSV Họ Tên Lớp 10348551 Nguyễn Đức Lợi DHTH4ATLT 10321271 Dương Hiễn Lãm DHTH4BTLT 10356381 Nguyễn Phạm Hoàng Duy DHTH4BTLT 10244481 Trịnh Minh Tiến DHTH6C 09076271 Trần Công Chính DHTH5C 11234421 Trần Anh Thiện DHTH7B 11262121 Từ Kỷ DHTH7B 1 Khoa CNTT – ĐH Công nghiệp thành phố Hồ Chí Minh Tìm hiểu Modsecurity & demo tính năng Mục Lục Mục Lục 2 Chương 1: Giới thiệu 3 Chương 2: Modsecurity 4 I. Các khả năng của mod_security 5 II. Cài đặt 7 III. Cấu hình cơ bản 8 IV. Rules 9 V. Logging 13 VI. Xây dựng chính sách trên Modsecurity chống lại một số tấn công 15 Chương 3: Kịch bản demo 20 Tài liệu tham khảo 21 2 Khoa CNTT – ĐH Công nghiệp thành phố Hồ Chí Minh Tìm hiểu Modsecurity & demo tính năng Chương 1: Giới thiệu Tường lửa ứng dụng web không phổ biến như tường lửa mạng, nhưng nó đã được đề cập đến trong các tin tức, bài báo hội thảo bảo mật hiện nay. Các doanh nghiệp đã chấp nhận sử dụng công nghệ này bởi vì nó nâng cao an toàn web một cách đáng kể. Nhưng cấu hình, triển khai duy trì công nghệ mới này không hề đơn giản. Để triển khai chúng thành công, bạn cần phải hiểu rõ các hoạt động của ứng dụng một cách đầy đủ cấu hình các quy tắc tường lửa một cách cẩn thận. Hơn nữa, chi phí để mua được sản phẩm thương mại là rất đắt đỏ, chúng tôi khuyến khích bắt đầu sử dụng với các sản phẩm mã nguồn mở, chẳng hạn ModSecurity, do đó bạn có thể đưa ra quyết định, nếu giải pháp này là thích hợp với ngân sách môi trường mạng của bạn. Trong vài năm gần đây, các lỗ hổng ứng dụng web đã trở thành mối đe dọa lớn nhất trong môi trường công nghệ thông tin. Theo cơ sở dữ liệu lổ hổng mã nguồn mở (OSVDB), các mối đe dọa ứng dụng web chiếm hơn 50% tất cả các lỗ hổng trong năm 2010. Bạn không phải một chuyên gia trong lĩnh vực IT để cấu hình các ứng dụng web đã trở nên sử dụng rộng rãi trong cuộc sống cũng như trong kinh doanh. Do đó, bảo mật các ứng dụng web đã trở thành một vấn đề quan trọng nhất mà bạn cần phải chú ý như người dùng cuối hoặc một người kinh doanh. Tường lửa ứng dụng web (WAF) là một dạng tường lửa nhằm lọc các lưu lượng HTTP dựa trên một tập quy tắc. Nó kiểm tra ở mức ứng dụng vì vậy nó thường đi kèm như một thiết bị hoặc một mô đun trong máy chủ, có chức năng xác định ngăn chặn các tấn công web phổ biến như cross-site scritpting (XSS) SQL injection bằng việc tùy chỉnh các quy tắc. Do đó, việc tùy chỉnh các quy tắc này là rất đáng quan tâm yêu cầu bảo trì cao. Có nhiều cách để bảo vệ ứng dụng web, chẳng hạn như thực hiện một đoạn mã an toàn, quản lý cấu hình an toàn, thực hiện đánh giá lỗ hổng triển khai tường lửa ứng dụng web, nhưng không có một giải pháp nào là hoàn hảo, việc sử dụng tường lửa ứng dụng web chỉ là một phương thức bảo mật ứng dụng. Kỹ thuật này tương đối mới so với các công nghệ khác, nhưng nó có thể trở thành một giải pháp hữu hiệu khi bạn cấu hình sử dụng nó đúng cách. Trong bài giới thiệu này, Modsecurity sẽ được sử dụng để minh hoạ làm thế nào bảo mật ứng dụng web sử dụng WAF. Modsecurity bảo vệ các 3 Khoa CNTT – ĐH Công nghiệp thành phố Hồ Chí Minh Tìm hiểu Modsecurity & demo tính năng ứng dụng web từ nhiều cuộc tấn công cho phép giám sát lưu lượng HTTP với sự can thiệp không nhiều của cơ sở hạ tầng hiện có. Nó là một mô đun mã nguồn mở của ứng dụng máy chủ web Apache nó đã được bảo trì bởi SpiderLabs, Trustwave. Từ khi nó là một sản phẩm mã nguồn mở, nó mặc nhiên là miễn phí nhiều người dùng sử dụng đã góp phần cải thiện duy trì sản phẩm này. WAF không phải là một công cụ mà chỉ nhằm ngăn chặn các hoạt động nguy hiểm tại lớp ứng dụng. Nó cũng có thể được sử dụng để phân tích phát hiện các lưu lượng nguy hiểm tấn công vào các ứng dụng. Do đó, phần sau của loạt bài viết này sẽ minh họa làm thế nào phân tích các tấn công web phổ biến sử dụng WAF để phát hiện ghi lại các khả năng cùng với nhật ký máy chủ Web Apache. Chương 2: Modsecurity Mod_security là một opensource web application firewall được Ivan Ristic phát triển dành cho Apache Web Server. Ivan Ristic là tác giả quyển sách.Ông là một người có rất nhiều kinh nghiệm trong bảo vệ Apache Web Server. Ông đã có nhiều thời gian nghiên cứu Web Application Security, Web Intrusion Detection, Security Patterns. Trước khi chuyển sang lĩnh vực security, 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 là người sáng lập ra công ty ThinkingStone làm các dịch vụ liên quan đến web application security. Hiện tại mod_security sử dụng giấy phép GPL, hoàn toàn miễn phí. Ngoài ra nếu muốn có sự hỗ trợ thì bạn có thể mua nó tại công ty ThinkingStone của ông (http://www.thinkingstone.com) 4 Khoa CNTT – ĐH Công nghiệp thành phố Hồ Chí Minh Tìm hiểu Modsecurity & demo tính năng I. Các khả năng của mod_security - Request filtering : tất cả các request gửi đến web server đều được phân tích cản lọc (filter) trước khi chúng được đưa đến các modules khác để xử lý. - Anti-evasion techniques: paths parameters được chuẩn hoá trước khi phân tích để chống evasion techniques. Kỹ thuật này sẽ được thảo luận ở phần sau. - Understanding of the HTTP protocol: mod_security là web application firewall nên nó có khả năng hiểu được HTTP protocol. Mod_security khả năng cản lọc dựa trên các thông tin ở HTTP Header hay có thể xem xét đến từng parameters hay cookies của các requests vv - POST payload analysis: ngoài việc cản lọc dựa trên HTTP Header, mod_security có thể dựa trên nội dung (payload) của POST requests. - Audit logging : mọi requests đều có thể được ghi lại (bao gồm cả POST ) để chúng ta có thể xem xét sau nếu cần. - HTTPS filtering: mod_security có thể phân tích HTTPS. - Compressed content filtering: mod_security sẽ phân tích sau khi đã decompress các request data. Quá trình xử lý các request của Apache mod_security 5 Khoa CNTT – ĐH Công nghiệp thành phố Hồ Chí Minh Tìm hiểu Modsecurity & demo tính năng Modsecurity cho phép bạn đặt rule tại một trong năm thời điểm trong chu kỳ xử lý của Apache như sau: Phase Request Header: rule được đặt tại đây sẽ được thực hiện ngay sau khi Apache đọc request header, lúc này phần request body vẫn chưa được đọc. Phase Request Body: đây là thời điểm các thông tin chức năng chung đưa vào vào được phân tích xem xét, các rule mang tính application- oriented thương được đặt ở đây. Ở thời điểm này bạn đã nhận đủ các request argument phần request body đã được đọc.Modsecurity hỗ trợ ba loại mã hoá request body + application/x-www-form-urlencoded dùng để truyền form dữ liệu + multipart/form-data dùng để truyền file + text/xml dùng để phân tich dữ liệu XML 6 Khoa CNTT – ĐH Công nghiệp thành phố Hồ Chí Minh Tìm hiểu Modsecurity & demo tính năng Phase Response Header: đây là thời điểm ngay sau khi phần response header được gửi trả về cho client. Bạn đặt rule ở đây nếu muốn giám sát quá trình sau khi phần response được gửi đi. Phase Response Body: đây là thời điểm bạn muốn kiểm tra những dữ liệu HTML gửi trả về Phase logging: đây là thời điểm các hoạt động log được thực hiện, các rules đặt ở đây sẽ định rõ việc log sẽ như thế nào, nó sẽ kiểm tra các error message log của Apache. Đây cung là thời điểm cuối cùng để bạn chặn các connection không mong muốn, kiểm tra các response header mà bạn không thể kiểm tra ở phase 3 phase 4. II. Cài đặt 1. Download mod_security: #wget http://www.modsecurity.org/download/modsecurity- apache_2.5.13.tar.gz 2. Trước khi cài đặt Cần các thư viện apxs, libxml2 cần file mod_unique_id.so Cài đặt thư viện #yum install httpd-devel (cài apxs) #yum install libxml2-devel Thêm dòng sau vào file http.conf (file nằm trong /etc/httpd/conf) dòng sau LoadModule unique_id_module modules/mod_unique_id.so (Chú ý: thêm vào đoạn có nhiều LoadModule đầu dòng) 3. Giải nén #tar xzvf modsecurity-apache_2.5.13.tar.gz 4. Biên dịch Tại thư mục apache2 gõ các lệnh sau #./configure 7 Khoa CNTT – ĐH Công nghiệp thành phố Hồ Chí Minh Tìm hiểu Modsecurity & demo tính năng #make #make install 5. Tích hợp modsecurity vào apache Thêm dòng sau vào file httpd.conf LoadModule security2_module modules/mod_security2.so 6. Khởi động lại apache #service httpd restart III. Cấu hình cơ bản 1. File cấu hình Modsecurity là application firewall thuộc loại rules-based, nghĩa chúng ta cần thiết lập các luật (rules) để mod_security hoạt động. Các rules này được thể hiện dưới dạng các chỉ thị (directives) có thể đặt trực tiếp trong file cấu hình Apache (thông thường là httpd.conf). Ngoài ra có thể đặt các cấu hình này vào một file riêng, chẳng hạn modsecurity.conf trong thư mục conf.d sau đó chúng ta cần thêm vào httpd.conf Include conf.d/modsecurity.conf (mặc định trong httpd.conf đã có dòng include conf.d/*.conf với dòng này nó sẽ thực hiện tất cả các file có phần mở rộng là .conf) 2. Turning Rule on and off Theo mặc định thì rule engine bị disable. Để kích hoạt modsecurity ta cần thêm chỉ thị sau vào file cấu hình SecRuleEngine On Directive này dùng để điều khiển rule engine, chúng ta có thể sử dụng các tuỳ chọn là On, Off hoặc DynamicOnly. Off : Vô hiệu hoá modsecurity DetectionOnly : Khi nó phù hợp một luật nào đó thì nó cũng không thực hiện bất kì action nào. (nó rất có ích trong trường hợp muốn test một luật nào đó mà không muốn nó block bất kì request nào có vấn đề với luật) 8 Khoa CNTT – ĐH Công nghiệp thành phố Hồ Chí Minh Tìm hiểu Modsecurity & demo tính năng On : Các rules của modsecurity được áp dụng cho tất cả các nội dung 3. SecDefaultAction Dùng để tạo các action mặc định. Khi tạo 1 luật mà không chỉ rõ hành động cho luật đó nó sẽ thực hiện hành động mặc định Ví dụ: SecDefaultAction "phase:2,deny,log,status:403" IV. Rules 1. Xây dựng rules như thế nào? HTTP request GET /documentation/index.html HTTP/1.1 Host: www.modsecurity.org User-Agent: Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.8.0.1) ecko/20060124 Firefox/1.5.0.1 Accept: text/xml,application/xml,application/xhtml+xml, text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5 Accept-Language: en-us,en;q=0.5 Accept-Encoding: gzip,deflate Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7 Keep-Alive: 300 Connection: keep-alive Referer: http://www.modsecurity.org/index.php Cookie:__utmz=129890064.1139909500.1.1.utmccn=(direct)| utmcsr=(direct)|utmcmd=(none); __utma=129890064.347942152.1139909500. 1140275483.1140425527.13; __utmb=129890064; __utmc=129890064 Xem xét request ở trên chúng ta có thể thấy các HTTP Header sau : 9 Khoa CNTT – ĐH Công nghiệp thành phố Hồ Chí Minh Tìm hiểu Modsecurity & demo tính năng GET – Đây là request method Host User-Agent Accept Accept-Language Accept-Encoding Accept-Encoding Keep-Alive Connection Referer Modsecurity sẽ sử dụng thông tin này trong các rules của nó để cản lọc các requests. không chỉ trong header, modsecurity cũng có thể xem xét cả POST payload như đã nhắc tới ở trên, Chẳng hạn ta có cấm request có Referer là www.abc.com ta có rule sau: SecRule HTTP_Referer “www\.abc\.com” Không cho phép User-Agent có từ HotBar: SecRule HTTP_User-Agent “HotBar” 2. Cấu trúc của rules SecRule VARIABLES OPERATOR [ACTIONS] 2.1. Variables SecRule ARGS dirty Có thể dùng 1 hay nhiều variables SecRule ARGS|REQUEST_HEADERS:User-Agent dirty 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, 10 [...]... server, phương thức tìm kiếm thông tin này gọi là HTTP Fingerprinting (dấu vân tay HTTP) HTTP Fingerprinting hoạt động bằng cách kiểm tra các đặc tính riêng của web server bằng các response khi được thăm dò lấy “dấu vân tay” của server từ những thông tin thu thập được Sau đó dấu vân tay này 19 Khoa CNTT – ĐH Công nghiệp thành phố Hồ Chí Minh Tìm hiểu Modsecurity & demo tính năng được so sánh với... Minh Tìm hiểu Modsecurity & demo tính năng Secondary actions sẽ bổ sung cho Primary actions, một rule có thể có nhiều Secondary actions status : n khi một Request vi phạm một rule nào đó thì mod_security có thể trả về các HTTP status code n thay vì status code 500 mặc định exec : thực thi một lệnh nào đó nếu một request vi phạm log : ghi log những request vi phạm rule nolog : không ghi log pause : n mod_security. .. nghiệp thành phố Hồ Chí Minh Tìm hiểu Modsecurity & demo tính năng 5 - as above, but including information about each piece of information handled 9 - log everything, including very detailed debugging information 2 Audit logging Apache log ít thông tin vì thế nó không cho phép chúng ta có thể lần ngược các bước của kẻ tấn công Mod_security hỗ trợ audit loging với đầy đủ thông tin từ đó có thể lần ngược... rocker=r0xker Host: conmaz.com Connection: Keep-Alive mod_security- message: Access denied with code 403 Pattern match "^$" at HEADER("User-Agent") mod_security- action: 403 HTTP/1.1 403 Forbidden Content-Length: 285 Keep-Alive: timeout=5, max=29 Connection: Keep-Alive 14 Khoa CNTT – ĐH Công nghiệp thành phố Hồ Chí Minh Tìm hiểu Modsecurity & demo tính năng Content-Type: text/html; charset=iso-8859-1 378bfd37—... hacker cũng sử dụng kĩ thuật này đề chiếm quyền điều khiển các website nhưng đó vẫn chỉ tấn công vào bề mặt của website Thật vậy, XSS là những Client-Side Script, những đoạn mã này sẽ chỉ chạy bởi trình duyệt phía client do đó XSS không làm ảnh hưởng đến hệ thống website nằm trên server 16 Khoa CNTT – ĐH Công nghiệp thành phố Hồ Chí Minh Tìm hiểu Modsecurity & demo tính năng Mục tiêu tấn công của XSS... IP:FAILED_LOGINS "@gt 3" deny 18 exist" Khoa CNTT – ĐH Công nghiệp thành phố Hồ Chí Minh Tìm hiểu Modsecurity & demo tính năng Các rule trên dựa vào đặt điểm trả về của website khi người truy cập đăng nhập không thành công: Username does not exist Các rule trên sẽ khởi tạo collection IP tăng giá trị biến ip.failed_login lên một đơn vị sau mỗi lần đăng nhập không thành công Action expirevar... collection Ví dụ: với variable ARGS ta có 2 thông số p, q SecRule ARGS:p dirty 11 Khoa CNTT – ĐH Công nghiệp thành phố Hồ Chí Minh 2.3 Tìm hiểu Modsecurity & demo tính năng SecRule ARGS:q dirty Operators Sử dụng @ để chỉ ra đây là một operation SecRule ARGS "@rx dirty" Sử dụng !@ để chỉ ra một operation negation SecRule &ARGS "!@rx ^0$" Ở đây chúng ta đề cập đến một operation là rx (regular expression)... ModSecurity Rules Project http://www.modsecurity.org/projects/rules/index.html [3] Gotroot mod_security rules http://www.gotroot.com/tiki-index.php?page =mod_security+ rules [4] Ivan Ristic, Apache Security – O'reilly 2005 , ISBN 0-596-00724-8 21 Khoa CNTT – ĐH Công nghiệp thành phố Hồ Chí Minh Tìm hiểu Modsecurity & demo tính năng [5] Ryan C Barnett, Preventing Web Attack with Apache , Addison Wesley Professional... Kịch bản demo Windows 7 Centos 5.0 (attacker) (Victim) Thông tin cấu hình demo phiên bản phần mềm: - Victim: + Network interface: VirtualBox Host-only Ethernet Adapter IP: 192.168.56.101 + Open port 80 + Disable firewall + OS: Centos 5.0 + Webserver: Apache 2 + WAF(Web Application Firewall): mod_security 2.5.13 + php version 5.1.6 20 Khoa CNTT – ĐH Công nghiệp thành phố Hồ Chí Minh Tìm hiểu Modsecurity... "t:lowercase,deny,msg:'SQL Injection'" 2 XSS Attack 15 Khoa CNTT – ĐH Công nghiệp thành phố Hồ Chí Minh Tìm hiểu Modsecurity & demo tính năng 2.1 Định nghĩa Cross-Site Scripting hay còn được gọi tắt là XSS (thay vì gọi tắt là CSS để tránh nhầm lẫn với CSS-Cascading Style Sheet của HTML) là một kĩ thuật tấn công bằng cách chèn vào các website động (ASP, PHP, CGI, JSP ) những thẻ HTML hay những đoạn mã script nguy hiểm . Khoa CNTT – ĐH Công nghiệp thành phố Hồ Chí Minh Tìm hiểu Modsecurity & demo tính năng ĐỀ TÀI TÌM HIỂU MOD_ SECURITY VÀ DEMO TÍNH NĂNG MSSV Họ Tên Lớp 10348551 Nguyễn Đức Lợi DHTH4ATLT 10321271. nghiệp thành phố Hồ Chí Minh Tìm hiểu Modsecurity & demo tính năng Mục Lục Mục Lục 2 Chương 1: Giới thiệu 3 Chương 2: Modsecurity 4 I. Các khả năng của mod_ security 5 II. Cài đặt 7 III thành phố Hồ Chí Minh Tìm hiểu Modsecurity & demo tính năng I. Các khả năng của mod_ security - Request filtering : tất cả các request gửi đến web server đều được phân tích và cản lọc (filter)

Ngày đăng: 27/06/2014, 14:41

Từ khóa liên quan

Mục lục

  • Mục Lục

  • Chương 1: Giới thiệu

  • Chương 2: Modsecurity

    • I. Các khả năng của mod_security

    • II. Cài đặt

    • III. Cấu hình cơ bản

    • IV. Rules

    • V. Logging

    • VI. Xây dựng chính sách trên Modsecurity chống lại một số tấn công

    • Chương 3: Kịch bản demo

      • Tài liệu tham khảo

Tài liệu cùng người dùng

Tài liệu liên quan