nghiên cứu và ứng dụng modsecurity để bảo vệ hệ thống web bất kỳ
MỤC LỤC I PHIẾU GIAO ĐỀTÀI Tên đề án: Nghiên cứu ứng dụng Mod Security để bảo vệ web server Người hướng dẫn: Lưu Thanh Trà Thời gian thực hiện: 14 tuần Số lượng SV I Mục đích Các firewall truyền thống không đủ mạnh để để bảo vệ web server ModSecurity cho phép bảo vệ web server (một/nhiều) thông qua chế can thiệp trực tiếp mức độ ứng dụng Đồ án nhằm nghiên cứu ứng dụng ModSecurity để bảo vệ hệ thống web II II Yêu cầu sinh viên thực Sinh viên có kiến thức Linux, web Sinh viên có kiến thức security, html, lập trình web III yêu cầu Sinh viên nắm rõ hoạt động hệ điều hành Linux Sinh viên nắm rõ web, html, http, PhP IV Sản phẩm Hệ thống Mod Security triển khai hoàn chỉnh để bảo vệ hệ thống web V Tài liệu tham khảo Các giáo trình giảng viên đề nghị, Internet Ngày 28 tháng 02 năm 2013 Ký tên TS Lưu Thanh Trà II NHẬP ĐỀ Ngày nay, ứng dụng web doanh nghiệp quan phủ phải đối mặt với hai thách thức lớn là: giảm thiểu nguy bảo mật bảo đảm quy trình công nghiệp và/hoặc quy định phủ May mắn thay tồn giải pháp an toàn thông tin sẵn sàng hỗ trợ tổ chức CNTT đạt hai tiêu chí thời điểm OWASP cho phép chuyên gia an ninh CNTT giảm thiểu công chủ động liên tục củng cố cấu hình cấu hình an ninh OS, ứng dụng web Web Application Firewall Đồng thời, dự án thuộc chuẩn OWASP cho phép kiểm soát viên giám sát việc tuân thủ sách bắt buộc tổ chức, doanh nghiệp ModSecurity sản phẩm thuộc dự án OWASP, cho phép người dùng cấu hình, tùy chỉnh phương thức phát công vào web server Phiên ModSecurity hỗ trợ Apache, Nginx IIS Cùng với dự án ModSecurity Core Rule Set việc triển khai hệ thống WAF dễ dàng cho nhân viên hệ thống chuyên viên bảo mật III IV GIỚI THIỆU MOD_SECURITY Mod_Security module mở rộng cho chương trình web server Apache, Nginx, IIS hoạt động firewall lớp ứng dụng web Cùng với gia tăng phương pháp công web mod_security cập nhật rule đưa nhiều cách phòng chống mã nguồn chương trình Một số tính chất mà mod_security dùng làm Web Application Firewall: Tính linh động (Flexibility) Việc phân tích luồng HTTP theo tiêu chí định thực tế thường gặp vấn đề để so trùng mẫu mà bạn muốn Ngoài ra, nhu cầu hệ thống web khác dẫn đến việc phân tích loại ứng dụng khác Mod_security kết hợp với OWASP phát triển tập rule mẫu (Core Rule Set) nhằm tạo tính linh động cho mô hình web khác nhau, hỗ trợ người quản trị phân tích theo nhu cầu thực tế hệ thống quản trị Tính thụ động (Passivity) ModSecurity không thực thi tác vụ người quản trị viên không định công việc cụ thể cho chương trình, việc quan trọng ứng dụng có nhiệm vụ phân tích nguy ModSecurity Mọi cảnh báo thực thông qua chế phân tích định tương tác với hệ thống người quản trị thực CHỨC NĂNG ModSecurity hoạt động với chương trình web server (ví dụ: Apache) thực tác vụ sau: Parsing ModSecurity phân tách liệu luân chuyển qua hệ thống thành cấu trúc liệu mà ModSecurity định nghĩa sẵn Cấu trúc chuyển qua chế so trùng mẫu tập rule để phân tích nguy Buffering Chức buffer (đệm) đóng vai trò quan trọng chế hoạt động ModSec Việc có ý nghĩa request gởi đến ứng dụng web phải thông qua ModSecurity trước đến ứng dụng xử lý response phân tích trước trả phía client Cơ chế cách để ngăn chặn công thời gian thực, liệu mà ModSecurity nhận phân tích lưu trữ RAM (bao gồm request body response data) Logging ModSecurity hỗ trợ ghi nhật ký gói tin HTTP: request headers, request body, response header, response body nhằm hỗ trợ người quản trị phân tích nguy mà hệ thống gặp phải để định kiểm soát Rule Engine Các tập mẫu ModSecurity đóng vai trò quan trọng việc phát dạng công thực phòng chống ModSecurity phát triển với dự án OWASP phát triển mẫu để phân tích phòng chống công hệ thống web (Tham khảo https://www.owasp.org/index.php/Category:OWASP_ModSecurity_Core_Rule_Set_Project) Các phân nhóm mà CRS hỗ trợ: • • • • • • • • • • • HTTP Protection Real-time Blacklist Lookups Web-based Malware Detection HTTP Denial of Service Protections Common Web Attacks Protection Automation Detection Integration with AV Scanning for File Uploads Tracking Sensitive Data Trojan Protection Identification of Application Defects Error Detection and Hiding CẤU TRÚC RULE TRONG ModSecurity Tất hoạt động ModSecurity hầu hết liên quan đến hai phần là: cấu hình (configuration) tập luật (rule) Phần cấu hình định cách thức xử lý liệu, rule định thực hành vi (action) với liệu xử lý Một ví dụ rule: SecRule ARGS "" log,deny,status:404 Cấu trúc chuẩn rule ModSecurity bao gồm phần chính: SecRule VARIABLES OPERATOR ACTIONS VARIABLES: xác định vị trí liệu mà ModSecurity tìm kiếm mẫu Trong ví dụ trên, tham số ARGS nhằm định tìm kiếm mẫu tất tham số request OPERATOR: định cách mà ModSecurity tìm kiếm mẫu Các operator dùng theo dạng Regular expression nhằm tạo nên chế phân tích linh động cho rule ACTIONS: định hành động mà ModSecurity thực có mẫu so trùng Trong ví dụ trên, phần action viết log,deny,status:404 có nghĩa là: trùng mẫu gói tin thực ghi log, deny gói tin cách sử dụng mã trạng thái 404 (Not found) QUY TRÌNH XỬ LÝ TRONG ModSecurity Trong ModSecurity phiên phân tích thực qua bước (pha), bước ModSecurity thực thi rule tương ứng nhằm phát phòng chống khai thác Hình : Quy trình xử lý ModSecurity (nguồn www.Modsecurity.org) Request Header (1) Đây bước trình thực phân tích gói tin Mục đích bước nhằm cho phép người viết rule tương tác với request trước thực yêu cầu phần HTTP body Phần quan trọng để phân tích khai thác dựa vào HTTP method dựa vào URL SQL Injection, Reflect XSS, Local file include … Request body (2) Bước trình kiểm tra trình client gởi request đến server, phần có hiệu người dùng cố sử dụng phương thức POST PUT để upload tập tin lên phía server Việc kiểm tra bảo đảm liệu đưa lên server an toàn, tránh tình trạng upload mã độc dạng công Stored XSS, Ajax Injection … Response headers (3) Những request xử lý server trả cho ModSecurity kiểm tra trạng thái phần respone header Trước phần respone body đọc ModSecurity dựa vào tập rule để xác định có cần kiểm tra nội dung liệu phần body hay không Ví dụ: mã trạng thái trả 404 (Not found) lúc không cần kiểm tra nội dung gói tin trả Response body (4) Sau ModSecurity hoàn thành việc kiểm tra respone header nội dung phần body kiểm tra so trùng với mẫu tập lệnh Việc hiệu để phát phòng chống xâm nhập trường hợp bước không phát công Ví dụ: khai thác SQL injection, hacker cố gắng sử dụng số công nghệ evasion việc phát request khó khăn Khi khai thác thành công, ModSecurity phân tích kết gói tin trả để phát câu truy vấn thành công Logging (5) Việc ghi log ghi nhận cảnh báo quy trình làm việc ModSecurity KHUYẾN CÁO KHI TRIỂN KHAI THỰC TẾ Nhằm bảo đảm tính tính linh động việc phát bảo vệ theo thời gian thực, ModSecurity cần sử dụng lượng tài nguyên CPU RAM để bảo đảm hoạt động mục đích triển khai Việc sử dụng tài nguyên phụ thuộc nhiều vào phần cấu hình cách triển khai hệ thống khác Dưới dây số điểm cần ý: ModSecurity phân tích cú pháp mà apache thực hiện, hệ thống bạn tăng tiêu thụ tài nguyên CPU để thực tác vụ Việc phân tích linh động số trường hợp cần lượng tài nguyên lớn để phân tích Ví dụ: XML, JSON, AJAX … Việc quản lý liệu upload từ phía client yêu cầu thêm tài nguyên I/O (như HDD), số trường hợp gây tình trạng trùng lặp liệu hệ thống Dữ liệu request resopone lưu trữ đệm RAM để thực tác vụ chặn theo thời gian thực Mỗi rule phần cấu hình sử dụng CPU (cho phần operartor) RAM (dùng để chuyển đổi liệu đầu vào trước qua phiên phân tích) Việc sử dụng Regular expression tốn tài nguyên nhiều Các hoạt động I/O tăng cao cho việc ghi nhật ký trình hoạt động ModSecurity (full transaction loging) Khi triển khai thực tế ModSecurity, bạn cần ý đến điều để xác định tài nguyên cần thiết để ModSecurity hoạt động ổn định Trong trường hợp bạn thay đổi tài nguyên phần cứng, khuyên bạn nên thường xuyên theo dõi trạng thái hoạt động hệ thống, rút kinh nghiệm nhằm điều chỉnh giảm bớt chức năng, ruleset phù hợp mà đảm bảo an toàn cho việc hoạt động Nếu tổ chức mà bạn quản lý sử dụng số công nghệ ảo hóa việc điều chỉnh tài nguyên thuận tiện để ModSecurity hoạt động Một cách khác để triển khai ModSecurity thực dùng reverse proxy, trường hợp tài nguyên cho ModSecurity ổn định so với hệ thống tích hợp (CPU, RAM, I/O hoạt động trạng thái cao) V TỐNG QUAN VỀ TIÊU CHUẨN OWASP TOP TEN 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 OWASP phân loại lỗ hổng thành 10 phân nhóm chính: A1-Injection A2-Cross Site Scripting (XSS) A3-Broken Authentication and Session Management A4-Insecure Direct Object References A5-Cross Site Request Forgery (CSRF) A6-Security Misconfiguration A7-Insecure Cryptographic Storage Nhóm bao gồm lỗ hổng SQL injection, OS command injection, LDAP injection…các lỗ hổng 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 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 trình 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ẽ, việc truy cập liệu trái phép từ bên nguy hiểm Một công CSRF yêu cầu người dùng đăng 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 độ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 cấu hình triển khai hệ thống, ứng dụng webserver (Apache, Nginx, Tenginx…), sở liệu (MySQL, 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ệ 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ử A8-Failure to Hầu hết ứng dụng thường thực kiểm soát việc truy cập Restrict URL Access 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ố tình huống, việc kiểm soá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) A9-Insufficient Thông tin xác thực truyền qua môi trường mạng truyền dẫn Transport Layer không bảo mật tạo nguy liệu bị nghe Việc Protection tương tự ứng dụng sử dụng chứng số (certificate) với khóa yếu (weak key), thuật toán mã hóa yếu (weak algorithms) chứng hết hạn sử dụng (expired) A10-Unvalidated Các ứng dụng web thường chuyển hướng người dùng đến Redirects and Forwards trang web URL khác Hacker lợi 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ả 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 Các vấn đề triển khai ModSecurity CRS phương pháp kiểm tra lỗ hổng sau triển khai, bạn tham khảo mục OWASP MODSECURITY CORE RULE SET PHỤ LỤC VI CÀI ĐẶT MODSECURITY Trước bạn tiến hành cài đặt ModSecurity cho hệ thống, bạn cần biết phương thức cài đặt số ưu điểm khuyết điểm cho loại: CÁCH CÀI ĐẶT ƯU ĐIỂM Dựa vào phiên • Tự động cài đặt hệ điều hành • Dễ dàng bảo trì NHƯỢC ĐIỂM • Có thể phiên cũ Gói cài đặt bên thứ • Tự động cài đặt • Có thể phiên cũ • Yêu cầu tải cập nhật ba Cài đặt từ mã nguồn • Bảo đảm phiên • Có thể sử dụng phiên thử nghiệm • Có thể tùy biến, sử dụng vá khẩn cấp tình phát lỗi 10 thường xuyên • Không tin tưởng vào gói cài đặt đóng gói • Có thể gặp vấn đề quản trị viên muốn sử dụng lại phiên cũ trước SM-002 SM-003 SM-004 SM-005 Testing for Cookies attributes Cookies are set not ‘HTTP Only’, ‘Secure’, and no time validity Testing for Session Fixation Session Fixation Cookies are set not ‘HTTP Onl y’, ‘Secure’, and no tim e validity Testing for Exposed Session Variables Exposed sensitive session variables Testing for CSRF - CSRF Exposed sensitive se ssion varia bles Session Fixation ";secure", HTTPOnly - Always set, "; domain=app.mysite.com", "; path=/myapp/", expires-Future Value => inspect for sensitive data The application doesn’t renew the cookie after auth -Session hijacking Webscarab Encryption & Reuse of Session Tokens vulnerabilities, Proxies & Caching vulnerabilities,TGET & POST vulnerabilities, Transport vulne rabilities CSRF URL Analysis and auth requirements 73 Webscarab,Bur pProxy,Paros, TamperIE/Data Authoriz ation Testing AZ-001 AZ-002 AZ-003 Testing for Path Tr Path Traversal aversal - Path Traversal Testing for bypassing authorization schema Bypassing authorization schema Testing for Privilege Escalation Privilege Escalation Proper Implementatio n of ACLs, Check server side includes Bypassi ng authori zation schema a) Input vector enumeration b) Testing Techniques dot-dot-slash attack ( /), directory traversal,directory climbing, or backtracking Access a resource without authentication/after logout, Forceful Browsing Privileg vertical esca Testing for role/privilege manipulati e Escalatio lation when it i o - Manipulate the values of hidden n s possible to ac variables , analyse the error messages cess resources etc granted to mor e privileged acc ounts (e.g., acquiring admi nistrative privil eges for the ap plication), and to horizontal es calation when i t is possible to access resource s 74 Grep, Nikto, Burp Suite, Paros, Webscarab Proxy Tools granted to a si milarly configu red account (e g., in an online banking applic ation, accessin g information r elated to a diffe rent user) Business logic testing BL-001 Testing for Business Logic - Bypassable business logic Bypassa Bypass the ble busines actual s logic workflow required to complete a process *Understanding the application *Creating raw data for designing logica l tests (Workflows, ACLs) *Designing the logical tests *Standard prerequisites *Execution of logical tests Automated tools fails Data Validation Testing DV-001 Testing for Reflected Cross Site Scripting Reflected XSS Reflecte d XSS Detect input vectors Analyze each input vector to detect p otential vulnerabilities Replace the vector used to identify XSS with the vector which can exploit the vulnerability CAL9000, Rsnake XSSdb, XSSMe firefox addon, XSS proxy, WebScarab, Rat proxy, Burp Proxy Check for input validation, try out different combinations of XSS vectors 75 DV-002 DV-003 Testing for Stored X Impacts Stored Cross SS *Hijacking ano Site Scripting ther user's bro Stored XSS wser *Capturing sen sitive informati on viewed by a pplication user s *Pseudo deface ment of the app lication *Port scanning of internal host s ("internal" in relation to the users of the we b application) *Directed deliv ery of browserbased exploits *Other malicio us activities Testing for DOM XS This DOM based S happens mostly Cross Site due to poor Scripting javascript DOM XSS coding 76 1.Input Forms 2.Analyze HTML code 3.Leverage Stored XSS with BeEF 4.File Upload CAL9000, Hackvertor, XSSProxy, BeEF, WebScarab Test for the user inputs obtained from client-side JavaScr ipt objects Automated tools fails DV-004 DV-005 Testing for Cross Site Flashing Cross Site Flashing SQL Injection - SQL Injection DV-006 LDAP Injection LDAP Injection DV-007 ORM Injection ORM Injection Cross Sit Working for e Flashing actionscript 2.0 files 1.Decompile 2.Undefined Variables 3.Unsafe methods 4.Include malicious SWF SWFIntruder, Flare, Flasm SQL Inje 1.Inband ction (retrieved data in the webpage) 2.Out-of-band (data sent through email or other means) 3.Inferential (Analyse the behaviour of Dbserver) LDAP In jection Test Categories 1.Authentication Forms, 2.Search Engine, 3.E-Commerce sites OWASP SQLiX SQL Power Injector sqlbftools sqlmap SqlDumper sqlninja ORM Inj ection Black box testing for ORM Injection vulnerabilities is identical to SQL Injection testing Object Relational Mapping tool ORM tools include 77 Tests 1.Heuristic Analysis(' , : , ) 2.Construct SQL Injection Vectors 3.Analyse Error Messages Ability to • Access unauthorized content • Evade Application restrictions • Gather unauthorized information • Add or modify Objects inside LDAP tree structure Softerra LDAP Browser Hibernate for Java, NHibernate for NET, ActiveRecord for Ruby on Rails, EZPDO for PHP and many others DV-008 DV-009 DV-010 XML Injection XML Injection SSI Injection - SSI Injection XML Inj ection Check with XML Meta Characters ', " , , , &, , SSI Injec tion * Presense of shtml extension * Check for these characters < ! # = / " - > and [a-zA-Z0-9] * include String = XPath Injection XPath Injection XPath I njection Unlike SQL, there are not ACLs enforced, as our query can access every part of the XML document 78 * Check for XML error enumeration by supplying a single quote (') * Username: ' or '1' = '1 Password: ' or '1' = '1 Burp Suit, WebScarab, Paros DV-011 IMAP/SMTP IMAP/S Injection MTP Inject IMAP/SMTP ion Injection • Exploitation of vulnerabilities in the IMAP/SMTP protocol • Application restrictions evasion • Anti-automation process evasion • Information leaks • Relay/SPAM The standard attack patterns are: • Identifying vulnerable parameters • Understanding the data flow and deployment structure of the client • IMAP/SMTP command injection DV-012 DV-013 DV-014 Code Code Inj Injection ection Code Injection OS OS Com Commanding - manding OS Commanding Buffer Buffer o overflow verflow Buffer overflow Enter commands in the input field Understand the application platform, OS, folder structure, relative path and execute those • Testing for heap overflow vulnerability • Testing for stack overflow vulnerability • Testing for format string vulnerability 79 Webscarab OllyDbg, Spike, Brute Force Binary Tester (BFB), Metasploit RATS, Flawfinder and ITS4 are available for analyzing C-style languages DV-015 DV-016 Denial of Service Testing DS-001 Incubated vulnerability Incubated vulnerability Testing for HTTP Splitting/Smu ggling - HTTP Splitting, Smuggling Incubat ed vulnera bility Testing for SQL Wildcard Attacks - SQL Wildcard vulnerability SQL Wil • Starting dcard with % and vulnerabili ending with % ty will generally cause longer running queries • Some search implementatio ns may cache search results During the testing, every search query should be slightly different to avoid this HTTP S plitting, S muggling File Upload, Stored XSS , SQL/XPATH Injection, Manage server files via server misconfigs Outcome Cache Poisoning/XSS 80 param=foobar%0d%0aContentLength:%200%0d%0a%0d %0aHTTP/1.1%20200%20OK%0d %0aContentType:%20text/html%0d %0aContent-Length:%2035%0d %0a%0d%0aSorry, %20System%20Down • '%_[^!_%/%a?F%_D)_(F%)_%([)({} %){()}£$&N%_)$*£()$*R"_)][%](%[x]) %a][$*"£$-9]_%' • '%64_[^!_%65/%aa?F%64_D)_(F %64)_%36([)({}%33){()}£$&N%55_) $*£()$*R"_)][%55](%66[x])%ba ][$*"£$-9]_%54' bypasses modsecurity • _[r/a)_ _(r/b)_ _(r-d)_ • %n[^n]y[^j]l[^k]d[^l]h[^z]t[^k]b[^q]t[ ^q][^n]!% • %_[aaaaaaaaaaaaaaaaaaaaaaaaaaaa aaaaaaaaaaaaa[! -z]@$!_% XSS-proxy, Paros, Burp, Metasploit DS-002 DS-003 DS-004 Locking Customer Accounts Locking Customer Accounts Testing for DoS Buffer Overflows Buffer Overflows User Specified Object Allocation User Specified Object Allocation Locking Customer Accounts Wrong Attempts Valid Username enumeration - Login Page, New User Reg Page, Password Reset Page Buffer O if you have verflows received a response (or a lack of) that makes you believe that the overflow has occurred, attempt to make another request to the server and see if it still responds User Spe cified Obje ct Allocati on Submit large inputs and check how the server responds 81 If the application does not pose an upper limit to the number of items that can be in any given moment inside the user electronic cart, you can write an automated script that keeps adding items to the user cart until the cart object fills the server memory DS-005 DS-006 User Input as a Loop Counter - User Input as a Loop Counter Writing User Provided Data to Disk Writing User Provided Data to Disk User Inp ut as a Loo p Counter if the user can directly or indirectly assign a value that will be used as a counter in a loop function, this can cause performance problems on the server The tester submits an extremely long value to the server in the request, and the application logs the value directly without having validated that it conforms to what was expected The application may have data validation to verify the submitted value being well formed and of proper length, but then still log the failed value (for auditing or error tracking purposes) into an application log Writing User Provi ded Data t o Disk 82 DS-007 Failure to Release Resources Failure to Release Resources Failure t o Release Resources • An application locks a file for writing, and then an exception occurs but does not explicitly close and unlock the file • Memory leaking in languages where the developer is responsible for memory management such as C & C++ In the case where an error causes normal logic flow to be circumvented, the allocated memory may not be removed and may be left in such a state that the garbage collector does not know it should be reclaimed • Use of DB connection objects where the objects are not being freed if an exception is thrown A number of such repeated requests can cause the application to consume all the DB connections, as the code will still hold the open DB object, never releasing the resource 83 Web Services Testing DS-008 Storing too Much Data in Session Storing too Much Data in Session WS-001 WS Information Gathering N.A WS-002 Testing WSDL - WSDL Storing too Much Data in Ses sion N.A curl request POST header “Content-type: text/xml data @my_request.x ml http://api.goog le.com/search/ beta2 WSDL Weakness The developer may have chosen to cache the records in the session instead of returning to the database for the next block of data If this is suspected, create a script to automate the creation of many new sessions with the server and run the request that is suspected of caching the data within the session for each one Let the script run for a while, and then observe the responsiveness of the application for new sessions It may be possible that a Virtual Machine (VM) or even the server itself will begin to run out of memory because of this attack * inurl:wsdl site:example.com * Web Services Discovery DISCO, UDDI * http://seekda.com * http://www.wsindex.org * http://www.soapclient.com Net Square wsPawn, SOAPClient4XG, CURL, Perl SOAPlite, OWASP WebScarab: Web Services plugin, WSDigger WebScarab, WSDigger 84 Weakness WS-003 XML Weak X Structural ML Structu Testing - Weak re XML Structure WS-004 XML content-level Testing - XML content-level HTTP GET parameters/R EST Testing WS HTTP GET parameters/R EST Naughty SOAP attachments WS Naughty SOAP attachments Replay Testing - WS WS-005 WS-006 WS-007 * A web service utilizing DOM-based parsing can be "upset" by including a very large payload in the XML message, which the parser would be obliged to parse * Binary attachments - Large BLOB * WSDigger contains sample attack plug-ins for SQL injection, XSS, XPATH injection attacks 1) SQL Injection or XPath injection 2) Buffer Overflow and 3) Command Injection XML tent-level WS HTT P GET par ameters/R EST https://www.ws.com/accountinfo? accountnumber=12039475' exec master xp_cmdshell 'net user Vxr pass /Add &userId=asi9485jfuhe92 WS Nau ghty SOAP attachmen ts Attach a test virus attachment using a non-destructive virus like EICAR, to a SOAP message and post to the target Web Service WS Repl ay Testing Capture the Traffic with sniffers/proxy and replay the request 85 WebScarab, WSDigger WebScarab, MetaSploit WebScarab, Ethreal, Replay Testing Ajax Testing WireShark, TCPReplay AJ-001 AJAX Vulnerabilities - N.A N.A AJ-002 AJAX Testing - AJAX weakness AJAX weakness * XMLHttpRequest Vulnerabilitie, SQL Injectio, XSS, DOM based XSS, JSON/XML/XSLT Injection * AJAX Bridging - Cross website requests are sent through this method * Cross Site Request Forgery (CSRF) * DOS - Multiple XMLHttpRequests Parse the HTML and JavaScript files and using a proxy to observe traffic 86 Proxy tools, Firebug OWASP Sprajax XIII TÀI LIỆU THAM KHẢO Ristic, Ivan Modsecurity Handbook: The Complete Guide to the Popular Open Source Web Application Firewall S.l.: Feisty Duck, 2010 Web • Barnett, Ryan The Web Application Defender's Cookbook: Battling Hackers and Protecting Users Indianapolis, Ind: Wiley, 2013 • "ModSecurity® Reference Manual." Reference Manual Trustwave Holdings, Inc., n.d Web • OWASP Testing Guide 3rd ed N.p.: OWASP Foundation, n.d OWASP Testing Guide V3 2010 Web • "OWASP Based Web Application Security Testing Checklist." OWASP Based Web Application Security Testing Checklist N.p., 19 Oct 2011 Web • 87 [...]... Tuy nhiên, việc tự viết và triển khai các rule là khá phức tạp và tốn thời gian để tối ưu các chức năng trong rule Nhóm nghiên cứu Truswave SpiderLabs đã phát triển một nhóm các tập lệnh có tên là OWASP ModSecurity CRS, bao gồm các nội dung gói tin của kiểu tấn công đã được biết đến Một tính năng mạnh mẽ của CRS là có thể bảo vệ những ứng dụng web phổ biến cũng như những ứng dụng web tự phát triển riêng... /opt /modsecurity/ var/data Logs: /opt /modsecurity/ var/log Temporary files: /opt /modsecurity/ var/tmp File uploads: /opt /modsecurity/ var/upload Location /opt /modsecurity /opt /modsecurity/ bin /opt /modsecurity/ etc /opt /modsecurity/ var / opt /modsecurity/ var/audit / opt /modsecurity/ var/data /opt /modsecurity/ var/log /opt /modsecurity/ var/tmp / opt /modsecurity/ var/upload Owner root root root root apache Group apache apache... cấu hình ModSecurity, tôi sẽ tạo một danh sách các thư mục theo một định dạng sẵn Việc này giúp tôi quản lý dễ dàng các dữ liệu mà ModSecurity tạo ra, đồng thời hỗ trợ trong việc bảo trì và cập nhật các rule mới cho ModSecurity Binaries: /opt /modsecurity/ bin Configuration files: /opt /modsecurity /etc Audit logs: /opt /modsecurity /var/audit Persistent data: /opt /modsecurity/ var/data Logs: /opt /modsecurity/ var/log... liệt kê các tham số giúp giảm thiểu tài nguyên hệ thống và năng hiệu suất theo dõi của ModSecurity Trong một số trường hợp, bạn có thể sử dụng toán tử phủ định (operator negation) để loại bỏ một nhóm biến trong rule, bằng cách thêm dấu chấm than vào trước nhóm biết mà bạn không sử dụng: SecRule ARGS|!ARGS:z Hướng dẫn sử dụng liên kết rule (chain) ModSecurity cho phép bạn liên kết các SecRule... mục đích bảo vệ các ứng dụng web phổ biến, CRS phân loại nội dung 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ên thứ 3 • Web- based Malware Detection: xác định các mã độc trong nội dung trang web bằng cách sử dụng Google... https://github.com/SpiderLabs/owasp -modsecurity- crs https://github.com/SpiderLabs/owasp -modsecurity- crs/tarball/master https://github.com/SpiderLabs/owasp -modsecurity- crs/zipball/master #tar xvf SpiderLabs-owasp -modsecurity- crs-2.2.7-28-g9a715d8.tar.gz #cd SpiderLabs-owasp -modsecurity- crs-2.2.7-28-g9a715d8 #cp modsecurity_ crs_10_setup.conf.example /opt /modsecurity/ etc /modsecurity_ crs_10_setup.conf #mkdir -p /opt /modsecurity/ etc/crs/activated_rules... /opt /modsecurity/ etc/crs/activated_rules/ #vi /etc/httpd/conf.d /modsecurity. conf #START COMMON CONFIGURATION Include /opt /modsecurity/ etc/main.conf #Include /opt /modsecurity/ etc/rules-first.conf #Include /opt /modsecurity/ etc/rules.conf #Include /opt /modsecurity/ etc/rules-last.conf #STOP COMMON CONFIGURATION #START OWASP MODSECURITY CORE RULE SET Include /opt /modsecurity/ etc /modsecurity_ crs_10_setup.conf... trước 2.5, ModSecurity chỉ hỗ trợ SecRequestBodyLimit dùng để giới hạn kích thước gói tin request đến server, bao gồm gói tin với POST method bình thường (ví dụ: nhập username, password) và các gói tin dùng POST method để upload tập tin Nhưng nhóm phát triển ModSecurity thấy rằng: khi client dùng POST để upload tập tin, thì quá trình này không sử dụng đến RAM để xử lý gói tin mà chỉ dùng I/O để truyền... (parameter), tham số này được dùng để liên kết với thành phần thứ ba trong chỉ thị SecRule SecAction nolog,pass,setvar:tx.counter=10 Using Transformation Functions Trong các phương pháp khai thác lỗ hổng ứng dụng web, hacker thường sử dụng các kỹ thuật biến đổi dữ liệu (obfuscation) để vượt qua cơ chế kiểm tra Để chống lại phương pháp biến đổi, ModSecurity hỗ trợ chuyển đổi dữ liệu đầu vào trước khi thực hiện... đổi: Với các khai thác sử dụng phương pháp encode base64, ta có thể áp dụng t:base64Decode để decode dữ liệu đầu vào • Tương tự Base64, với trường hợp hacker chuyển đổi kiểu dữ liệu thành dạng Hex thì t:hexEncode nên được sử dụng để chuyển đổi sang dạng Plaintext • Blocking Các chỉ thị sử dụng trong ModSecurity được liên kết duy nhất với một action (hoặc chỉ thị SecAction) để xử lý kết quả đã phân tích ... vệ web server ModSecurity cho phép bảo vệ web server (một/nhiều) thông qua chế can thiệp trực tiếp mức độ ứng dụng Đồ án nhằm nghiên cứu ứng dụng ModSecurity để bảo vệ hệ thống web II II Yêu... Nghiên cứu ứng dụng Mod Security để bảo vệ web server Người hướng dẫn: Lưu Thanh Trà Thời gian thực hiện: 14 tuần Số lượng SV I Mục đích Các firewall truyền thống không đủ mạnh để để bảo vệ web. .. dựng sẵn vào nội dung trang web nhằm thực thi hành độ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 cấu hình triển khai hệ thống, ứng dụng webserver