XÂY DỰNG hệ THỐNG PHÒNG CHỐNG tấn CÔNG MẠNG máy TÍNH

89 206 1
XÂY DỰNG hệ THỐNG PHÒNG CHỐNG tấn CÔNG MẠNG máy TÍNH

Đ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

ĐẠI HỌC QUỐC GIA TP HCM TRƢỜNG ĐẠI HỌC CÔNG NGHỆ THƠNG TIN  NGUYỄN THANH BÌNH XÂY DỰNG HỆ THỐNG PHỊNG CHỐNG TẤN CƠNG MẠNG MÁY TÍNH KHĨA LUẬN CAO HỌC NGÀNH KHOA HỌC MÁY TÍNH Mã số: 60.48.01.01 NGƢỜI HƢỚNG DẪN KHOA HỌC: TS ĐÀM QUANG HỒNG HẢI TP HỒ CHÍ MINH – NĂM 2015 LỜI CẢM ƠN Em xin chân thành cảm ơn quý thầy cô trƣờng Đại học Cơng nghệ thơng tin tận tình dạy cho em nhiều kiến thức bổ ích suốt thời gian học tập trƣờng Em kính chúc quý thầy cô dồi sức khoẻ thành công cơng việc Em xin bày tỏ lòng biết ơn chân thành sâu sắc đến thầy TS Đàm Quang Hồng Hải, ngƣời thầy tận tâm, nhiệt tình hƣớng dẫn bảo cho em suốt trình thực khóa luận Con gửi tất lòng biết ơn kính trọng đến ơng bà, cha mẹ nuôi dạy, bên cạnh động viên ủng hộ đƣờng mà yêu thích lựa chọn, cho niềm tin nghị lực vƣợt qua khó khăn Xin cảm ơn tất bạn bè động viên, giúp đỡ hỗ trợ tơi nhiều, nhƣ đóng góp cho tơi nhiều ý kiến q báu giúp tơi hồn thiện cho khóa luận Khóa luận hồn thành đạt đƣợc số kết định nhiên khơng tránh khỏi thiếu sót Kính mong cảm thơng đóng góp ý kiến từ q thầy cô bạn Một lần xin chân thành cảm ơn! Tp Hồ Chí Minh, ngày 10 tháng 11 năm 2015 Nguyễn Thanh Bình LỜI CAM ĐOAN Tơi xin cam đoan cơng trình nghiên cứu riêng tôi, số liệu kết nghiên cứu nêu khóa luận trung thực.Vì tơi xin chịu trách nhiệm hồn tồn cơng trình nghiên cứu Tp Hồ Chí Minh, ngày 10 tháng 11 năm 2015 Nguyễn Thanh Bình Mục lục DANH MỤC CÁC TỪ VIẾT TẮT DANH MỤC HÌNH VẼ MỞ ĐẦU Chƣơng 1: TỔNG QUAN 1.1 1.2 1.3 1.4 TỔNG QUAN TÌNH HÌNH NGHIÊN CỨU MỤC TIÊU VÀ PHẠM VI CỦA ĐỀ TÀI 10 PHƢƠNG PHÁP NGHIÊN CỨU 11 NỘI DUNG THỰC HIỆN 11 Chƣơng 2: CÁC LỖ HỔNG MẠNG MÁY TÍNH 13 2.1 CÁC LỖ HỔNG MẠNG MÁY TÍNH 13 2.2 MỘT SỐ LỖ HỔNG CƠ BẢN 14 2.2.1 Lỗi mã nhúng (Injection) 14 2.2.2 Thực thi mã script độc (Cross Site Scripting - XSS) 15 2.2.3 Hƣ hỏng chế chứng thực quản lý phiên làm việc 15 2.2.4 Giả mạo yêu cầu (Cross Site Request Forgery - CSRF) 15 2.2.5 Sai sót cấu hình an ninh 16 2.2.6 Lƣu trữ mật mã không an toàn 16 2.2.7 Sai sót hạn chế truy cập 16 2.2.8 Thiếu bảo vệ lớp vận chuyển 17 2.3 PHÁT HIỆN CÁC LỖ HỔNG MẠNG MÁY TÍNH 17 2.3.1 Nikto 18 2.3.2 Paros proxy 18 2.3.3 WebScarab 18 2.3.4 Acunetix Web Vulnerability Scanner 19 2.3.5 Metasploit Framework 19 2.3.6 Nessus 19 2.3.7 Arachni 20 2.3.8 W3AF 20 Chƣơng 3: CÁC DẠNG TẤN CƠNG MẠNG MÁY TÍNH 21 3.1 GIỚI THIỆU VỀ TẤN CƠNG MẠNG MÁY TÍNH 21 3.2 TẤN CÔNG TỪ CHỐI DỊCH VỤ DOS 23 3.2.1 Winnuke 24 3.2.2 Teardrop 24 3.2.3 SYN Attack 24 3.2.4 Land Attack 25 3.2.5 Smurf Attack 25 3.2.6 UDP Flooding 25 3.2.7 Tấn công DNS 26 3.2.8 DRDoS 26 3.3 TẤN CÔNG TỪ CHỐI DỊCH VỤ DDOS 26 3.3.1 Giới Thiệu DDoS 26 3.3.2 Các giai đoạn DDoS 28 3.3.3 Kiến trúc tổng quan DDoS 28 3.4 3.5 3.6 3.7 3.8 TẤN CÔNG SOCIAL ENGINEERING 30 TẤN CÔNG NGHE TRỘM SNIFFER 30 TẤN CÔNG VIRUSES 31 TẤN CÔNG TROJAN 31 TẤN CÔNG BOTNET 32 Chƣơng 4: HỆ THỐNG IDS/IPS 34 4.1 GIỚI THIỆU VỀ IDS 34 4.2 GIỚI THIỆU VỀ IPS 35 4.3 GIỚI THIỆU VỀ SNORT 36 4.3.1 Snort 36 4.3.2 Kiến trúc Snort 37 4.3.3 Bộ luật Snort 39 4.4 HỆ THỐNG MONITOR ELK 43 4.5 GIỚI THIỆU CÁC THÀNH PHẦN BNORT 45 4.5.1 Giới thiệu Framework 45 4.5.2 Giới thiệu CakePHP 45 Chƣơng 5: HỆ THỐNG BNORT PHÁ T HIỆN VÀ PHÒNG CHỐNG TẤN CÔNG MẠNG 47 5.1 THIẾT KẾ HỆ THỐNG 47 5.1.1 Mục tiêu ̣ thố ng BNort 47 5.1.2 Yêu cầu chức hệ thống 47 5.1.3 Thiế t kế ̣ thố ng 49 5.2 KẾT QUẢ THỬ NGHIỆM VỚI SNORT IDS 63 5.2.1 Tấn công ICMP 63 5.2.2 Tấn công UDP 65 5.2.3 Tấn công TCP 67 5.3 KẾT QUẢ THỬ NGHIỆM VỚI HỆ THỐNG BNORT 70 Chƣơng 6: KẾT LUẬN VÀ HƢỚNG PHÁT TRIỂN 83 6.1 KẾT LUẬN 83 6.2 HẠN CHẾ 84 6.3 HƢỚNG PHÁT TRIỂN 84 TÀI LIỆU THAM KHẢO 85 DANH MỤC CÁC TỪ VIẾT TẮT Từ viết tắt ACID Cụm từ đầy đủ tiếng Anh Dịch sang tiếng Việt Atomicity Consistency Isolation Durability API Giao diê ̣n lâ ̣p trình ƣ́ng du ̣ng Application Programming Interface ARP Address Resolution Protocol Giao thƣ́c phân giải điạ chỉ ASCII American Standard Code for Chuẩn mã trao đổi thông tin Information Interchange Hoa Kỳ Basic Analysis and Security Bộ phận phân tích gói tin BASE Engine Cơng nghê ̣ thông tin CNTT Bô ̣ xƣ̉ lý trung tâm CPU Central Processing Unit CSS Cascading Style Sheets DDoS Distributed Deny of Service Tấn công từ chối dịch vụ phân tán DHCP Dynamic Host Configuration Giao thức DHCP Protocol Truy xuấ t bô ̣ nhớ trƣ̣c tiế p DMA Direct Memory Access DMZ Demilitarized Zone DNS Domain Name System Giao thức DNS DoS Deny of Service Tấn công từ chối dịch vụ DOS Disk Operating System/Microsoft Hê ̣ điề u hành DOS/MS-DOS Disk Operating System DRDoS Distributed Reflection DoS ELK Elasticsearch Logstash Kibana Hệ thống quan sát log FTP File Transfer Protocol Giao thức truyền file FTP xóa luật Flush Firewall iptables/ipset IDP Intrusion Detection and Prevention IDS Intrusion Detection System Hệ thống phát xâm nhập IPS Intrusion Prevention System Hệ thống chống xâm nhập HIDS Host Intrusion Detection System HTTP HyperText Transfer Protocol ICMP Internet Control Message Protocol IP Internet Protocol Địa mạng IRC Internet Relay Chat Chat chuyển tiếp Internet JDBC Java DataBase Connectivity JSON JavaScript Object Notatio LAN Local Area Network MITM Man-in-the-Middle MTU Maximum Transfer Units NetBiOS Network Basic Input/Output Chia sẽ tài nguyên các máy System ma ̣ng LAN NIC Network Interface Card Card giao tiế p ma ̣ng NIDS Network Intrusion Detection Giao thức HTTP Mạng máy tính cục System ODBC Open Database Connectivity Kế t nố i sở dƣ̃ liê ̣u OS Operating System Hê ̣ điề u hành OSI Open Systems Interconnection Mô hình tầng OSI OWASP Open Web Application Security Tổ chức bảo mật OWASP Project PHP Hypertext Preprocessor Giao thức Protocol R2L Remote to Local RAM Random Acess Memory Bô ̣ nhớ truy xuấ t ngẫu nhiên ROM RFC Read Only Memory Bô ̣ nhớ chỉ đo ̣c Resources Tài nguyên Request for Comments Đề nghị duyệt thảo bình luận RPC Remote procedure call POST Power On Self Test Tự kiểm tra khởi động Sensor Bộ phần cảm biến IDS SMB Server Message Block Giao thức chia file SMB SNMP Simple Network Management Protocol SOM Seft-Organizing Map SQL Structured Query Language SSH Secure Shell SSL Secure Sockets Layer SSN Social Security Number TCP Transmission Control Protocol TCP/IP Transmission Control Protocol/ Ngôn ngƣ̃ truy vấ n cấ u trúc Internet Protocol TSL Transport Layer Security Bảo mật tầng truyền tải TSR Terminate and Stay Resident Chƣơng trình thƣờng trú U2R User to Root UDP User Datagram Protocol XML Extensible Markup Language XSS Cross Site Scripting DANH MỤC HÌNH VẼ Hình 3.1 Mơ hình cơng mạng từ máy 22 Hình 3.2 Mơ hình cơng mạng từ nhiều máy 22 Hình 3.3 Các bƣớc cơng 23 Hình 3.4 Biểu đồ cơng DDoS 27 Hình 4.1 Mơ hình NIDS 34 Hình 4.2 Mơ hình HIDS 35 Hình 4.3 Mơ hình kiến trúc Snort 38 Hình 4.4 Cấu trúc Snort 40 Hình 4.5 Header luật Snort 40 Hình 4.6 Kiến trúc hệ thống ELK 44 Hình 5.1 Mơ hình xử lý gói tin Snort IDS 49 Hình 5.2 Mơ hình Hệ thống quan sát ELK 52 Hình 5.3 Cơ chế xử lý gói tin Snort IPS – Ngăn chặn địa IP kẻ cơng 58 Hình 5.4 Cơ chế xử lý gói tin Snort IPS – Ngăn chặn Quốc gia cơng 59 Hình 5.5 Tấn cơng giao thức ICMP với địa IP 64 Hình 5.6 Thống kê giáo thức công 65 Hình 5.7 Chỉ quốc gia công đồ 65 Hình 5.8 Tấn cơng UDP với địa IP 66 Hình 5.9 Tấn cơng giao thức UDP với địa IP đƣợc định 67 Hình 5.10 Thống kê giao thức công 67 Hình 5.11 Tấ n cơng giao thức TCP với địa IP 69 Hình 5.12 Tấ n cơng giao thức TCP với địa IP đƣợc định 69 Hình 5.13 Thống kê giao thức công 70 Hình 5.14 Hê ̣ thố ng BNort phát hiê ̣n và phòng chố ng tấ n công ma ̣ng 71 Hình 5.15 Hê ̣ thớ ng BNort với triể n khai IPS 75 Hình 5.16 Hê ̣ thớ ng BNort – Bắt đầu triển khai ngăn chặn IP 75 Hình 5.17 Hê ̣ thớ ng BNort – Hoàn thành Bắt đầu ngăn chặn địa IP 76 Hình 5.18 Sơ đồ logic thực thi IPS ngăn chặn IP hay quốc gia cơng 79 Hình 5.19 Trang Bảo trì hệ thống Hệ thống BNort 80 Hình 5.20 Giao diện trang Terminal Linux của BNort 80 Chương Triển khai hệ thống IDS/IPS class AppController extends Controller { var $components = array('Session', 'Cookie'); var $helpers = array('Form', 'Html', 'Javascript'); var $mainMenu = array ( ); var $subMenu; public function beforeFilter() { parent::beforeFilter(); $this->set('lang', $this->Session->read('Lang.code')); $this->autoRender = false; } public function beforeRender() { parent::beforeRender(); $this->set('mainMenu', $this->mainMenu); $this->set('subMenu', $this->subMenu); } } protected function setActiveSubMenu($menuName) { if (array_key_exists($menuName, $this->subMenu)) { $this->subMenu[$menuName]['active'] = true; } } Kế tiế p chúng ta sẽ ta ̣o các sub -menu DashboardController, thiế t kế layout cho ̣ thố ng, v.v public function beforeFilter() { parent::beforeFilter(); $this->subMenu = array( 'elk_dashboard' => array( 'name' => $this-> _('elk_dashboard'), 'controller' 'action' 'active' => $this->name, => 'index', => false ), 72 Chương Triển khai hệ thống IDS/IPS 'snort_ips' => array( 'name' => $this-> _('snort_ips'), 'controller' 'action' => $this->name, => 'snort_ips', 'active' => false ), 'maintenance' => array( 'name' => $this-> _('maintenance'), 'controller' 'action' => $this->name, => 'maintenance', 'active' => false ), 'tools' => array( 'name' => $this-> _('tools'), 'controller' 'action' => $this->name, => 'tools', => false 'active' ), 'documentation' => array( 'name' => $this-> _('documentation'), 'controller' => $this->name, 'action' => 'documentation', 'active' => false ) ); $this->layout = 'twocolumn'; $this->setActiveMenu('dashboard'); $this->set('subMenuHeader',$this-> _('dashboard')); } Mỗi hành động tƣơng tác vào sub-menu sẽ go ̣i đế n mô ̣t hành đô ̣ng, viế t mô ̣t phƣơng thƣ́c và dùng điề u kiê ̣n switch case nhƣ sau : public function runshell($id) { $result = ''; 73 Chương Triển khai hệ thống IDS/IPS switch($id){ case 1: $result = shell_exec('sudo sh shells/restart_snort.sh'); break; case 2: $result = shell_exec('sudo sh shells/restart_elk.sh'); break; case 3: $result = shell_exec('sudo sh shells/flush_firewall.sh'); break; case 4: $result = shell_exec('sudo sh shells/start_ips_firewall.sh'); break; case 5: $result = shell_exec('sudo sh shells/stop_ips_firewall.sh'); break; case 6: $result = shell_exec('sudo sh shells/start_ips_country.sh'); break; case 7: $result = shell_exec('sudo sh shells/stop_ips_country.sh'); break; default: $result = false; break; } echo $id;die; } “Triển khai IPS” có hai thành phần “Triển khai IPS - Ngăn chặn địa nguồn công”, “Triển khai IPS - Ngăn chặn quốc gia công” 74 Chương Triển khai hệ thống IDS/IPS Hình 5.15 Hê ̣ thớ ng BNort với triể n khai IPS “Triển khai IPS - Ngăn chặn địa IP công” gồm hai hành đô ̣ng bắ t đầ u – dƣ̀ng triển khai IPS ngăn chặn IP kẻ công “Triển khai IPS - Ngăn chặn quốc gia công” gồm hai hành động bắ t đầ u - dƣ̀ng triển khai IPS ngăn chă ̣n quốc gia kẻ công Khi click vào “Bắt đầu ngăn chặn IP”, hệ thống lên thống báo đồng ý hay khơng, chọn “OK”, sau hồn thành xong, thơng báo “Xong” nhƣ hình bên dƣới Hình 5.16 Hê ̣ thớ ng BNort – Bắt đầu triển khai ngăn chặn IP 75 Chương Triển khai hệ thống IDS/IPS Hình 5.17 Hê ̣ thớ ng BNort – Hoàn thành Bắt đầu ngăn chặn địa IP Cho trƣờng hợp triển khai IPS – Ngăn chặn Quốc gia công, tƣơng tự nhƣ trên, click vào “Bắt đầu ngăn chặn quốc gia công”, “Dừng ngăn chặn quốc gia công”, sau click vào “OK”, hệ thống thơng báo “Xong”, hồn thành hành động Đoạn code cho sub-menu “Triể n khai IPS” đƣơ ̣c trin ̀ h bày nhƣ sau: Triển khai ngăn chặn cơng mạng máy tính Triển khai IPS - Ngăn chặn địa nguồn công Triển IPS - Ngăn chặn quốc gia công 76 khai Chương Triển khai hệ thống IDS/IPS Khi ngƣời quản tri ̣click vào “Bắ t đầ u ngăn chă ̣n IP” thì sẽ go ̣i đế n hàm StartIPS() function StartIPS() { var answer = confirm("Bạn có muốn ngăn chặn IP?") if (answer){ $.ajax({ method: 'get', url: "http://dashboard.local/Dashboard/runshell/4", context: document.body }).done(function(data){ alert('Xong'); }); }} Hàm sẽ đƣa thông báo xác nhâ ̣n có muố n thƣ̣c hiê ̣n hành đô ̣ng ngăn chă ̣n IP không , nế u click vào “Ok” thì nó sẽ thƣ̣c hiê ̣n hành đô ̣ng , thƣ̣c thi file này : /var/www/dashboard/vendors/shells/start_ips_firewall.sh Khi ngƣời quản tri ̣click vào "Dừng ngăn chặn IP" gọi đến hàm StopIPS() function StopIPS() { var answer = confirm("Bạn có muốn dừng ngăn chặn IP?") if (answer){ $.ajax({ method: 'get', url: "http://dashboard.local/Dashboard/runshell/5", context: document.body }).done(function(data){ 77 Chương Triển khai hệ thống IDS/IPS alert('Xong'); }); }} Hàm đƣa thông báo xác nhâ ̣n có muố n thƣ̣c hiê ̣n hành đô ̣ng ngăn chă ̣n IP không , nế u click vào “Ok” thì nó sẽ thƣ̣c hiê ̣n hành đô ̣ng , thƣ̣c thi file này : /var/www/dashboard/vendors/shells/stop_ips_firewall.sh Tƣơng tƣ̣ click vào "Bắt đầu ngăn chặn quốc gia", "Dừng ngăn chăn quốc gia" gọi đến hàm StartIPSCountry(), StopIPSCountry() Các thành phần “Triển khai IPS - Ngăn chặn địa nguồn công”, “Triển khai IPS - Ngăn chặn quốc gia cơng” đƣợc giải thích chi tiết nhƣ sau: “Bắt đầu ngăn chặn IP”: Khi hành động đƣợc active (đƣợc clicked) gọi đến file elk server: start_ips_firewall.sh, file truy xuất đến snort server thực thi file ips-script/start_cron_ips_firewall.sh Nội dung file thêm vào crontab với nhiệm vụ chạy file ips_firewall.sh restart lại dịch vụ crontab File ips_firewall.sh tìm chuỗi thời gian log cảnh báo, tìm kết nối lớn filter địa IP kẻ công, ngăn chăn địa IP Có thể tóm tắt nhƣ: 78 Chương Triển khai hệ thống IDS/IPS Hình 5.18 Sơ đồ logic thực thi IPS ngăn chặn IP hay quốc gia công “Dừng ngăn chặn IP”: Khi hành động đƣợc active (đƣợc clicked) gọi đến file elk server (giả định elk server Giao diê ̣n quản tri ̣IPS ): stop_ips_firewall.sh, file truy xuất đến snort server thực thi file ipsscript/stop_cron_ips_firewall.sh Nội dung file xóa job crontab restart lại dịch vụ crontab Vì file ips_firewall.sh chạy dựa crontab, nên crontab xóa jobs file dừng hoạt động Với cách trình bày cho “Bắt đầu ngăn chặn IP”, “Dừng ngăn chặn IP” trên, cách trình bày cho trƣờng hợp “Bắt đầu ngăn chặn quốc gia” “Dừng ngăn chăn quốc gia” tƣơng tự (xem chi tiết hình trên) “Bảo trì hệ thống” có ba thành phần “Khởi động lại dịch vụ Snort”, “Khởi động lại dịch vụ ELK”, “Khởi động lại Firewall” 79 Chương Triển khai hệ thống IDS/IPS o “Khởi động lại dịch vụ Snort” khởi động lại dịch vụ Snort, remote host (Snort server) o “Khởi động lại dịch vụ ELK” khởi động lại dịch vụ nhƣ: Logstash, Elasticsearch elk server o “Khởi động lại Firewall” reset lại iptables/ipset firewall, xóa tất rules iptables hay ipset Hình 5.19 Trang Bảo trì ̣ thố ng của Hê ̣ thớ ng BNort Hình 5.20 Giao diện trang Terminal Linux của BNort Giao diê ̣n quản lý dòng lê ̣nh (Terminal Emulaor) giả lập terminal linux , ngƣời quản trị tƣờng tác với server qua dòng lệnh – command line 80 Chương Triển khai hệ thống IDS/IPS Session khái niệm quan trọng lập trình PHP Nó đƣợc sử dụng để quản lý phiên làm việc ngƣời sử dụng Terminal dựa session, tạo sesstion kiểm tra session nhƣ sau:

Ngày đăng: 23/12/2018, 06:17

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

  • Đang cập nhật ...

Tài liệu liên quan