1. Trang chủ
  2. » Luận Văn - Báo Cáo

Xây dựng mô đun firewall tích hợp cho web

96 442 0

Đ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

Thông tin cơ bản

Định dạng
Số trang 96
Dung lượng 1,71 MB

Nội dung

Xây dựng mô đun firewall tích hợp cho web

Đồ án tốt nghiệp web Xây dựng mô-đun firewall tích hợp cho MỤC LỤC MỤC LỤC DANH MỤC HÌNH ẢNH c) Dòng phiên 1.6.x 13 .5 c) Dòng phiên 1.6.x 17 DANH MỤC KÍ HIỆU VÀ CHỮ VIẾT TẮT .10 LỜI MỞ ĐẦU 11 Chương 13 TỔNG QUAN VỀ HỆ THỐNG QUẢN LÝ NỘI DUNG .13 1.1 Khái niệm Hệ thống quản lý nội dung 13 1.2 Giới thiệu Joomla 14 1.2.1 Lịch sử phát triển 14 1.2.2 Các phiên 16 c) Dòng phiên 1.6.x 17 1.2.3 Kiến trúc Joomla 1.5! 17 1.2.3.1 Ba tầng hệ thống Joomla! 1.5 .18 1.2.2.2 Mô hình Model-View-Controller (MVC) 20 1.2.4 Nhóm Nòng cốt 21 Chương 23 GIỚI THIỆU CHUNG VỀ TƯỜNG LỬA ỨNG DỤNG WEB 23 2.1 Tổng quan tường lửa ứng dụng web 23 2.2 Ưu điểm tường lửa ứng dụng web 24 2.3 Hạn chế tường lửa ứng dụng web 25 2.4 Những rủi ro WAF 25 Đồ án tốt nghiệp web Xây dựng mô-đun firewall tích hợp cho 2.5 Firewall Script 28 2.5.1 Khái niệm 28 2.5.2 Chức Firewall Script 28 Chương 30 MÔ ĐUN FIREWALL TÍCH HỢP CHO WEBSITE JOOMLA .30 Theo thống kê trang web (www.webappsecroadmap.com) năm 2008 có tới 68% trang web bị công dựa vào lỗi SQL injection, 61% bị công theo XSS Đây lỗi rất nguy hiểm Nguyên nhân chủ yếu nhà phát triển web chưa cẩn thận, chưa ý thức rõ tầm quan trọng việc bảo vệ dự liệu website sơ suất trình phát triển dẫn đến không kiểm tra kỹ liệu đầu vào .31 Joomla! framework dành cho tổ chức, cá nhân dùng để giới thiệu tin tức, giới thiệu công ty, làm blog làm sử dụng vào thương mại điện tử như: bán hàng qua mạng Bản thân Joomla! chưa có mô-đun dùng cho việc kiểm tra liệu đầu vào trước tới thành phần mở rộng Do đó, người sử dụng cài phần mở rộng không đảm bảo an toàn dễ bị kẻ xấu lợi dụng công 31 Việc trang bị sản phẩm chuyên dụng hay sản phẩm thương mại hóa đắt Những sản phẩm tường lửa cho Joomla! chống lại kiểu công không chống kiểu công khác như: chống SQL injection, XSS không chống DoS upshell Đối với sản phẩm, thiết bị chuyên dụng cấu hình phức tạp doanh nghiệp vừa nhỏ 31 Do em chọn giải pháp xây dựng Firewall Script tích hợp vào Joomla! 1.5 để bảo vệ công làm liệu trước thành phần khác Joomla! xử lý liệu 31 Xfirewall tường lửa ứng dụng web, hoạt động tầng Ứng dụng mô hình OSI Nó chống nhiều kiểu công tầng Ứng dụng như: Đồ án tốt nghiệp web Xây dựng mô-đun firewall tích hợp cho HTTP Flood, SQL injection, XSS, up shell Ngoài ra, Xfirewall có nhiều chức bảo vệ an toàn cho người quản trị như: thay đổi link admin, đặt password sử dụng htpasswd, hay sử dụng master password để quản lí Xfirewall 31 Hiện có nhiều component plugin viết với mục đích ngăn chặn công từ bên vào hệ thống Song thành phần mở rộng (extension) có nhiều hạn chế Do Xfirewall viết với mong muốn hạn chế tối đa thiệt hại cho máy chủ cho trang web triển khai 32 3.1 Xây dựng mô-đun Xfirewall 32 3.1.1 Luồng liệu vào Joomla! 32 3.1.2 Cách thức xây dựng component Joomla! 33 3.1.3 Các thành phần mô-đun Xfirewall .35 3.1.4 Hoạt động modun Xfirewall 42 3.1.5 Cài đặt 44 3.2 Một số chức mô-đun Xfirewal .49 3.2.1 SQL injection Attack 49 3.2.2 XSS Attack 52 3.2.3 DDoS Attack (Distributed Denial of Service) .56 3.2.4 Up shell 59 3.2.5 Enable / Disable chức admin .61 3.2.6 Chặn user .62 3.2.7 Chặn IP 63 3.2.8 Bảo vệ link admin 63 3.2.9 Master password 66 3.2.10 Ghi log .66 Đồ án tốt nghiệp web Xây dựng mô-đun firewall tích hợp cho 3.3 So sánh với số firewall loại 67 3.3.1 Blind SQL Injection .68 3.3.2 DoS 69 3.3.3 File upload 69 3.3.4 File inclusion .70 3.3.5 XSS 70 3.4 Ưu nhược điểm Xfirewall .71 3.4.1 Ưu điểm .71 3.4.2 Nhược điểm 72 KẾT LUẬN .74 TÀI LIỆU THAM KHẢO .77 PHỤ LỤC 78 Đồ án tốt nghiệp web Xây dựng mô-đun firewall tích hợp cho DANH MỤC HÌNH ẢNH MỤC LỤC c) Dòng phiên 1.6.x 13 c) Dòng phiên 1.6.x 17 .1 c) Dòng phiên 1.6.x 17 DANH MỤC HÌNH ẢNH DANH MỤC KÍ HIỆU VÀ CHỮ VIẾT TẮT .11 LỜI MỞ ĐẦU 12 Chương 14 TỔNG QUAN VỀ HỆ THỐNG QUẢN LÝ NỘI DUNG .14 1.1 Khái niệm Hệ thống quản lý nội dung 14 1.2 Giới thiệu Joomla 15 1.2.1 Lịch sử phát triển 15 1.2.2 Các phiên 17 c) Dòng phiên 1.6.x 18 1.2.3 Kiến trúc Joomla 1.5! 18 1.2.3.1 Ba tầng hệ thống Joomla! 1.5 .19 Hình 1.1 Kiến trúc Joomla! 1.5 19 1.2.2.2 Mô hình Model-View-Controller (MVC) 21 Hình 1.2 Mô hình MVC 21 1.2.4 Nhóm Nòng cốt 22 Chương 24 GIỚI THIỆU CHUNG VỀ TƯỜNG LỬA ỨNG DỤNG WEB 24 2.1 Tổng quan tường lửa ứng dụng web 24 Đồ án tốt nghiệp web Xây dựng mô-đun firewall tích hợp cho 2.2 Ưu điểm tường lửa ứng dụng web 25 2.3 Hạn chế tường lửa ứng dụng web 26 2.4 Những rủi ro WAF 26 Hình 2.1 Bảng đánh giá kiểu công Website .27 Hình 2.2 HTTP Parameter Pollution HPP .28 Hình 2.3: Cross-site Script HTTP 28 Hình 2.4: Path Traversal, Local/Remote File Inclusion 29 2.5 Firewall Script 29 2.5.1 Khái niệm 29 2.5.2 Chức Firewall Script 29 Chương 31 MÔ ĐUN FIREWALL TÍCH HỢP CHO WEBSITE JOOMLA .31 Theo thống kê trang web (www.webappsecroadmap.com) năm 2008 có tới 68% trang web bị công dựa vào lỗi SQL injection, 61% bị công theo XSS Đây lỗi rất nguy hiểm Nguyên nhân chủ yếu nhà phát triển web chưa cẩn thận, chưa ý thức rõ tầm quan trọng việc bảo vệ dự liệu website sơ suất trình phát triển dẫn đến không kiểm tra kỹ liệu đầu vào .32 Joomla! framework dành cho tổ chức, cá nhân dùng để giới thiệu tin tức, giới thiệu công ty, làm blog làm sử dụng vào thương mại điện tử như: bán hàng qua mạng Bản thân Joomla! chưa có mô-đun dùng cho việc kiểm tra liệu đầu vào trước tới thành phần mở rộng Do đó, người sử dụng cài phần mở rộng không đảm bảo an toàn dễ bị kẻ xấu lợi dụng công 32 Việc trang bị sản phẩm chuyên dụng hay sản phẩm thương mại hóa đắt Những sản phẩm tường lửa cho Joomla! chống lại kiểu công không chống kiểu công Đồ án tốt nghiệp web Xây dựng mô-đun firewall tích hợp cho khác như: chống SQL injection, XSS không chống DoS upshell Đối với sản phẩm, thiết bị chuyên dụng cấu hình phức tạp doanh nghiệp vừa nhỏ 32 Do em chọn giải pháp xây dựng Firewall Script tích hợp vào Joomla! 1.5 để bảo vệ công làm liệu trước thành phần khác Joomla! xử lý liệu 32 Xfirewall tường lửa ứng dụng web, hoạt động tầng Ứng dụng mô hình OSI Nó chống nhiều kiểu công tầng Ứng dụng như: HTTP Flood, SQL injection, XSS, up shell Ngoài ra, Xfirewall có nhiều chức bảo vệ an toàn cho người quản trị như: thay đổi link admin, đặt password sử dụng htpasswd, hay sử dụng master password để quản lí Xfirewall 32 Hiện có nhiều component plugin viết với mục đích ngăn chặn công từ bên vào hệ thống Song thành phần mở rộng (extension) có nhiều hạn chế Do Xfirewall viết với mong muốn hạn chế tối đa thiệt hại cho máy chủ cho trang web triển khai 33 3.1 Xây dựng mô-đun Xfirewall 33 3.1.1 Luồng liệu vào Joomla! 33 Hình 3.1 Mô tả luồng liệu vào/ra Joomla! .33 3.1.2 Cách thức xây dựng component Joomla! 34 3.1.3 Các thành phần mô-đun Xfirewall .36 Hình 3.4 Các Model Xfirewall .40 Hình 3.5 Các View Xfirewall .41 Hình 3.6 Plugin Xfirewall .42 Hình 3.7 Helpers Xfirewall 43 3.1.4 Hoạt động modun Xfirewall 43 Hình 3.8 Sơ đồ hoạt động 44 Đồ án tốt nghiệp web Xây dựng mô-đun firewall tích hợp cho 3.1.5 Cài đặt 45 Hình 3.9 Cài đặt modun Xfirewall 45 Hình 3.10 Giao diện Xfirewall 46 Hình 3.11 Cấu hình link an toàn 47 Hình 3.12 Cấu hình truy cập vào back-end 48 Hình 3.13 Cấu hình chống công SQL injection .48 Hình 3.14 Cấu hình chống công DDoS 49 Hình 3.15 cấu hình upshell .50 3.2 Một số chức mô-đun Xfirewal .50 3.2.1 SQL injection Attack 50 Hình 3.16 Cấu hình chống công SQL injection .51 Hình 3.17 Sơ đồ hoạt động kiểm tra công SQL injection 52 Hình 3.18 Cảnh báo lỗi SQL injection 53 3.2.2 XSS Attack 53 Hình 3.19 Sơ đồ kiểm tra công XSS 55 Hình 3.20 Cảnh báo lỗi XSS 57 3.2.3 DDoS Attack (Distributed Denial of Service) .57 Hình 3.21 Mô tả công DDoS 58 Hình 3.22 Cấu hình công DDoS 59 3.2.4 Up shell 60 Hình 3.23 Cấu hình chống up shell 61 3.2.5 Enable / Disable chức admin .62 Hình 3.24 Cấu hình cấm chức phần quản trị 63 3.2.6 Chặn user .63 Đồ án tốt nghiệp web Xây dựng mô-đun firewall tích hợp cho Hình 3.25 Cấu hình chặn user truy cập vào phần quản trị .63 3.2.7 Chặn IP 64 Hình 3.26 Giao diện quản trị IP bị cấm 64 3.2.8 Bảo vệ link admin 64 Hình 3.27 Cấu hình tạo link an toàn cho admin .65 Hình 3.28 Cấu hình đặt password sử dụng htpasswd 66 Hình 3.29 Giao diện đăng nhập cấu hình đặt pass htpasswd 66 3.2.9 Master password 67 Hình 3.30 Cấu hình Master password 67 Hình 3.31 Giao diện đăng nhập Master user 67 3.2.10 Ghi log .67 Hình 3.32 Nhật kí trang web 68 3.3 So sánh với số firewall loại 68 3.3.1 Blind SQL Injection .69 3.3.2 DoS 70 3.3.3 File upload 70 3.3.4 File inclusion .71 3.3.5 XSS 71 3.4 Ưu nhược điểm Xfirewall .72 3.4.1 Ưu điểm .72 3.4.2 Nhược điểm 73 KẾT LUẬN .75 TÀI LIỆU THAM KHẢO .78 Đồ án tốt nghiệp web Xây dựng mô-đun firewall tích hợp cho PHỤ LỤC 79 10 Đồ án tốt nghiệp web Xây dựng mô-đun firewall tích hợp cho * */ function checkSQLInjectionURI($url) { $config = new JConfig(); $prefix = $config->dbprefix; $attack = Xfirewall::getAttackConfig(); $keyword = Xfirewall::explode($attack->sql_keyword); // kiểm tra với từ khóa thỏa mãn union, select, delete, concat… if (preg_match('#[\d\W]('.implode('|', preg_match('#'.$prefix.'(\w+)#s',$url) ) $keyword).')[\d\W]#is',$url) { if(preg_match('#'.$prefix.'(\w+)#s',$url)){ $level = "high"; } else $level = 'medium'; $code = "SQLinjection attack, url:".Xfirewall::UrlEncode($url); Xfirewall::logs($level,$code); return true; } return false; } /* * function checkSQLInjection() Kiểm tra giá trị 82 || Đồ án tốt nghiệp web Xây dựng mô-đun firewall tích hợp cho * phương thức $_GET,$_POST, $_REQUEST * */ function checkSQLInjection($array) { global $option; $merger = new MergerArray($array); $results = $merger->getArray(); $config = new JConfig(); $prefix = $config->dbprefix; $attack = Xfirewall::getAttackConfig(); $keyword = Xfirewall::explode($attack->sql_keyword); foreach ($results as $value) { if (empty($value)) continue; if (!is_string($value)) continue; // Kiểm tra URL xem cho chứa từ khóa SQL injection hay ko if (preg_match('#('.implode('|', $keyword).')#is',$value) || preg_match('#' $prefix.'(\w+)#s',$value)) { if(preg_match('#'.$prefix.'(\w+)#s',$value)){ $level = "high"; } else $level = 'medium'; $code = "SQLinjection attack, value:".Xfirewall::UrlEncode($value); 83 Đồ án tốt nghiệp web Xây dựng mô-đun firewall tích hợp cho Xfirewall::logs($level,$code); return true; } } return false; } /* * function kiểm tra công file inclusion * */ function checkFileInclude() { $url = &Attacks::getURL(); if(preg_match('#\.\.\/#u',$url)){ // Ghi log Xfirewall::logs('medium'," SQL injection attack: file inclusion"); // Đưa thông báo Xfirewall::header(403,'Truy vấn không hợp lệ'); return true; } return false; } /* * 84 Đồ án tốt nghiệp web Xây dựng mô-đun firewall tích hợp cho * function isSQLinjection() Kiem tra loi SQL injection dua vao cac request tu URL, $_GET,$_POST * * */ function isSQLinjection() { if (!empty($_SERVER['REQUEST_URI']) && Attacks::checkSQLInjectionURI(urldecode($_SERVER['REQUEST_URI']))) return true; // SQL Injection if (!empty($_GET) && Attacks::checkSQLInjection($_GET)) return true; // SQL Injection if (!empty($_POST) && Attacks::checkSQLInjection($_POST)) return true; // SQL Injection if (!empty($_POST) && Attacks::checkSQLInjection($_REQUEST)) return true; // SQL Injection return false; } /* * function checkFileUpload($files): Kiểm tra tất file upload lên *Nếu phát file chứa mã độc xóa đưa cảnh báo */ function checkFileUpload($files) { 85 Đồ án tốt nghiệp web Xây dựng mô-đun firewall tích hợp cho / jimport('joomla.filesystem.file'); $attack = Xfirewall::getAttackConfig(); $ext_block = Xfirewall::explode($attack->file_type); // có file upload if(count($files>0) && ($attack->block_upshell_attack ==1)) { foreach($files as $i=>$file) { if($file['name'] == null) break; // lay phan mo rong cua file $ext = Attacks::getExtFile($file); // kiem tra phan mo rong neu la anh if(in_array($ext, Attacks::extImage())){ $xss_check = JFile::read($file['tmp_name'],false,256); $html_tags = array('abbr','acronym','address','applet','area','audioscope','base','basefont','bdo','b gsound','big','blackface','blink','blockquote','body','bq','br','button','caption','center' ,'cite','code','col','colgroup','comment','custom','dd','del','dfn','dir','div','dl','dt','em',' embed','fieldset','fn','font','form','frame','frameset','h1','h2','h3','h4','h5','h6','head',' hr','html','iframe','ilayer','img','input','ins','isindex','keygen','kbd','label','layer','lege nd','li','limittext','link','listing','map','marquee','menu','meta','multicol','nobr','noem bed','noframes','noscript','nosmartquotes','object','ol','optgroup','option','param','pl aintext','pre','rt','ruby','s','samp','script','select','server','shadow','sidebar','small','sp acer','span','strike','strong','style','sub','sup','table','tbody','td','textarea','tfoot','th','th ead','title','tr','tt','ul','var','wbr','xml','xmp','!DOCTYPE', '! '); 86 Đồ án tốt nghiệp web Xây dựng mô-đun firewall tích hợp cho foreach($html_tags as $tag) { //kiểm tra tag có tồn file ảnh hay không if(stristr($xss_check, '[...]... và cũng thực sự tỏ ra hiệu quả để chống lại các tấn công 30 Đồ án tốt nghiệp web Xây dựng mô- đun firewall tích hợp cho Chương 3 MÔ ĐUN FIREWALL TÍCH HỢP CHO WEBSITE JOOMLA 31 Đồ án tốt nghiệp web Xây dựng mô- đun firewall tích hợp cho Theo thống kê của trang web (www.webappsecroadmap.com) năm 2008 thì có tới 68% các trang web bị tấn công dựa vào lỗi SQL injection, 61% là bị tấn công theo XSS Đây là... án tốt nghiệp web Xây dựng mô- đun firewall tích hợp cho • Tháng 11 năm 2006, Hệ quản trị nội dung mã nguồn mở tốt nhất do Packt Publishing công bố • Tháng 10 năm 2006, Dự án mã nguồn mở/ Linux tốt nhất tại triễn lãm LinuxWorld 2006 ở Anh • Tháng 10 năm 2005, Dự án mã nguồn mở/ Linux tốt nhất tại triễn lãm LinuxWorld 2005 ở Anh 23 Đồ án tốt nghiệp web Xây dựng mô- đun firewall tích hợp cho Chương 2 GIỚI... Tại tầng ứng dụng, WAF phân tích các dữ liệu dựa vào giao thức HTTP Sau đó dựa vào các luật đã đặt ra mà nó cho phép truy cập hay không Một tường lửa ứng dụng được coi như là một thiết bị bảo vệ máy chủ (server) khỏi bị tấn công Một số WAF như : 24 Đồ án tốt nghiệp web Xây dựng mô- đun firewall tích hợp cho • Armorlogic - Profense web application firewall • Array Networks - WebWall Multi-Layered Application... Security • Barracuda Web Application Firewall • Cisco - Application Control Engine (ACE) Web Application Firewall • Citrix NetScaler - Application Firewall • F5 Networks - Application Security Manager ASM • Fortinet - Fortiweb web application firewall • ModSecurity - Opensource web application firewall • Radware - AppWall Web Application Firewall • SonicWALL - SonicWALL Web Application Firewall Service... nghiệp web Xây dựng mô- đun firewall tích hợp cho Hình 2.1 Bảng đánh giá các kiểu tấn công Website Kết quả cho ta thấy, đa số các website bị tấn công đều bị những kẻ xấu sử dụng và khai thác các lỗi về SQL injection, XSS Tưởng chừng các lỗi này rất đơn giản và dễ khắc phục, nhưng trên thực tế cho thấy sự đa dạng về các phương thức tấn công, và sự uyển chuyển của các cách khai thác lỗi đã khuyến cho nhiều... và tấn công Hơn nữa là Joomla cũng chưa có mô- đun firewall nào để bảo vệ trang web Một số các nhà phát triển cũng đã phát triển các mô- đun firewall nhưng vẫn chưa thực sự hiệu quả và chống được ít kiểu tấn công.Vì vậy, em đã chọn đề tài của mình là: Xây dựng module firewall tích hợp vào website dựa trên nền joomla 1.5” để có thể phòng chống và bảo vệ trang web một cách hiệu quả hơn Đồ án tốt nghiệp... 1: Tổng quan về CMS Chương 2: Giới thiệu chung về tường lửa ứng dụng web Chương 3: Mô- đun Xfirewall Chương 4: Kết luận Để hoàn thành được đồ án này, trước hết em xin chân thành cảm ơn ban lãnh đạo Học viện Kỹ thuật Mật Mã cùng với các thầy cô trong khoa an toàn thông tin, 12 Đồ án tốt nghiệp web Xây dựng mô- đun firewall tích hợp cho các thầy cô trong khoa công nghệ thông tin cùng các thầy cô ở khoa... hiện 19 Đồ án tốt nghiệp web Xây dựng mô- đun firewall tích hợp cho tại một vị trí hoặc các vị trí khác nhau hay có thể tái sử dụng cho một trang web khác Các module được quản lý ở giao diện người quản trị Mỗi một module có thể có hoặc không có các thông số cấu hình Và người quản trị có thể cho phép các module ẩn hoặc hiện ở vị trí nào đó tùy theo thiết kế, chức năng của trang web • Templates: Là một... trên nhiều môi trường khác nhau Nó có thể hoạt động trên cả hệ điều hành window hay linux, có thể chạy trên nền Apache hoặc là IIS Giá thành rẻ, đây là một ưu thế của WAF Chi phí để xây dựng tường lửa loại này thấp hơn rất nhiều so với việc mua một tường lửa hoạt động ở các mức khác trên mô hình OSI thậm chí còn miễn phí (Mod_security) 25 Đồ án tốt nghiệp web Xây dựng mô- đun firewall tích hợp cho Tường... xử lý dữ liệu nữa 21 Đồ án tốt nghiệp web Xây dựng mô- đun firewall tích hợp cho Mô hình này đã tạo ra một chuẩn chung cho cộng đồng phát triển Joomla! Qua đó, cộng động phát triển có thể dễ dàng đọc, phát triển cũng như kế thừa những sản phẩm của người khác Nhiệm vụ và chức năng của các thành phần trong mô hình MVC: • View: Cũng như tên gọi, nó thể hiện ra ngoài cho người sử dụng giao diện của chương ... nghiệp web Xây dựng mô-đun firewall tích hợp cho 2.5 Firewall Script 28 2.5.1 Khái niệm 28 2.5.2 Chức Firewall Script 28 Chương 30 MÔ ĐUN FIREWALL TÍCH HỢP CHO. .. loại Firewall Script PHP Đặc điểm nhỏ, nhẹ, cài đặt dễ dàng thực tỏ hiệu để chống lại công 30 Đồ án tốt nghiệp web Xây dựng mô-đun firewall tích hợp cho Chương MÔ ĐUN FIREWALL TÍCH HỢP CHO WEBSITE... nghiệp web Xây dựng mô-đun firewall tích hợp cho • Armorlogic - Profense web application firewall • Array Networks - WebWall Multi-Layered Application Security • Barracuda Web Application Firewall

Ngày đăng: 09/04/2016, 09:48

TỪ KHÓA LIÊN QUAN

TÀI LIỆU CÙNG NGƯỜI DÙNG

TÀI LIỆU LIÊN QUAN

w