TRƯỜNG ĐẠI HỌC SƯ PHẠM HÀ NỘI KHOA CÔNG NGHỆ THÔNG TIN NGUYỄN THỊ KIM THỦY ỨNG DỤNG PHÁT HIỆN VÀ PHÒNG CHỐNG XÂM NHẬP MẠNG BẰNG SNORT/SNORTSAM KHÓA LUẬN TỐT NGHIỆP ĐẠI HỌC Chuyên ngành: Sư phạm Tin học Người hướng dẫn khoa học PGS.TS Trịnh Đình Thắng HÀ NỘI – 2017 LỜI CẢM ƠN Trước tiên, em xin chân thành cảm ơn thầy Trịnh Đình Thắng, thầy người trực tiếp hướng dẫn, giúp đỡ chúng em trình nghiên cứu hoàn thành đề tài Em xin cảm ơn tất thầy cô khoa Công Nghệ Thông Tin – trường Đại học Sư phạm Hà Nội 2, người dạy dỗ, truyền đạt kiến thức cho em năm qua Do thời gian kiến thức có hạn, làm chắn nhiều sai sót, em kính mong quý thầy cô bạn đóng góp ý kiến để em hoàn thiện đề tài Em xin chân thành cảm ơn! Hà Nội, tháng 04 năm 2017 Sinh viên thực hiện: Nguyễn Thị Kim Thủy LỜI CAM ĐOAN Khóa luận em hoàn thành hướng dẫn thầy giáo Trịnh Đình Thắng với cố gắng thân Em xin cam đoan đề tài: “Ứng dụng phát phòng chống xâm nhập mạng Snort/Snortsam” kết mà em trực tiếp nghiên cứu Trong trình nghiên cứu em sử dụng tài liệu số tác giả Tuy nhiên sở để em rút vấn đề cần tìm hiểu đề tài Đây kết cá nhân em, hoàn toàn không trùng với kết tác giả khác Nếu sai em xin hoàn toàn chịu trách nhiệm Sinh viên thực Nguyễn Thị Kim Thủy MỤC LỤC DANH MỤC HÌNH ẢNH DANH MỤC TỪ VIẾT TẮT MỞ ĐẦU Tính cấp thiết đề tài Mục tiêu nghiên cứu đề tài Phạm vi nghiên cứu CHƯƠNG 1: TỔNG QUAN VỀ IDS, IPS 1.1 Giới thiệu IDS, IPS 1.2 Các thành phần IDS 1.2.1 Cảm biến (Sensor) 1.2.2 Agent 1.2.3 Trung tâm điều khiển (Console) 1.2.4 Engine 1.2.5 Thành phần cảnh báo (Alert Notification) 1.2.6 Vị trí đặt IDS 1.3 Chức IPS 1.4 Kiến trúc chung hệ thống IPS 1.4.1 Module phân tích luồng liệu 1.4.2 Module phát công 1.4.3 Module phản ứng 1.5 Hoạt động IDS, IPS 10 1.5.1 Cơ chế 10 1.5.2 Các phương pháp hoạt động 10 1.5.3 Quy trình hoạt động IDS, IPS .12 1.6 Phân loại IDS, IPS 13 1.6.1 Host-based IDS/IPS 14 1.6.2 Network-based IDS/IPS 14 1.7 Một số sản phẩm IDS/IPS 16 1.7.1 Cisco IDS-4235 .16 1.7.2 ISS Proventia A201 .16 1.7.3 NFR NID-310 .17 1.7.4 SNORT 17 CHƯƠNG 2: GIỚI THIỆU VỀ SNORT 18 2.1 Giới thiệu Snort thành phần 18 2.2 Cấu hình Snort rule 18 2.2.1 Rule header 19 2.2.2 Rule Options 19 2.3 Cài đặt Snort 22 2.3.1 Các gói cần thiết 22 2.3.2 Cài đặt snort 22 2.3.3 Cấu hình snort 22 2.3.4 Tạo CSDL snort với MySQL 23 2.3.5 Cài đặt BASE để quản lí Snort giao diện 24 2.4 Sử dụng Snort 25 2.4.1 Snort Sniffer Packet 25 2.4.2 Snort Network Instruction Detect System – Snort NIDS 26 2.5 Giới thiệu SnortSam 26 2.5.1 Cài đặt SnortSam 27 2.5.1 Snort Output Plug-in 27 2.5.2 Blocking Agent 28 CHƯƠNG 3: THỰC NGHIỆM 30 3.1 Mô hình thực nghiệm 30 3.2 Các kịch demo 31 3.2.1 Tấn công DDOS, phát ngăn chặn Snort: 31 3.2.2 Tấn công Brute Force, phát ngăn chặn Snort 35 3.2.3 Tấn công XSS, phát ngăn chặn Snort 39 3.2.4 Tấn công SQL Injection, phát ngăn chặn Snort 43 KẾT LUẬN 50 Những vấn đề đạt 50 Những hạn chế 50 Hướng phát triển tương lai 50 TÀI LIỆU THAM KHẢO TIẾNG ANH 51 TÀI LIỆU THAM KHẢO TIẾNG VIỆT 52 DANH MỤC HÌNH ẢNH Hình 1: Mô hình mạng thực nghiệm hệ thống phát phòng chống xâm nhập mạng Hình 1.1: Hệ thống phát xâm nhập trái phép Hình 1.2 Mô hình vị trí đặt IDS Hình 1.3: Quy trình hoạt động IDS, IPS 13 Hình 1.4: Hệ thống phát xâm nhập mạng dựa máy chủ lưu trữ 14 Hình 1.5 :Hệ thống NIDS 15 Hình 3.1 Mô hình thực nghiệm hệ thống 30 Hình 3.2: Máy Attacker công sang máy WEB, FTP, MAIL Server 32 Hình 3.3: Slowloris gửi hàng loạt gói tin đến Server thời gian ngắn 32 Hình 3.4: Viết luật cho Snort phát DDos 33 Hình 3.5: Thực lại công DDOS máy Attacker đến máy Server 34 Hình 3.6: Snort máy IDS_IPS phát cảnh báo có công DDOS 34 Hình 3.7: Sử dụng phần mềm xHydra để tạo Target công 35 Hình 3.8: Sử dụng phầm mềm xHydra để điền tài khoản cần dò mật 36 Hình 3.9: Sử dụng phần mềm xHydra để dò Passwords 36 Hình 3.10: Viết luật cho Snort phát công Brute Force 37 Hình 3.11: Thực lại công Brute Force đến máy Server 38 Hình 3.12: Snort máy IDS_IPS phát cảnh báo có công Brute Force 38 Hình 3.13: Máy Attacker truy cập vào trang web máy Server 40 Hình 3.14: Đoạn mã script thực thi có mã độc 40 Hình 3.15: Viết luật cho Snort phát công XSS 41 Hình 3.16: Thực lại công XSS máy Attacker đến máy Server 42 Hình 3.17: Snort máy IDS_IPS phát cảnh báo có công XSS 42 Hình 3.18: Máy Attacker truy cập vào trang web 10.10.10.2:8080/DemoAttackSQL máy Server 45 Hình 3.19: Đăng nhập thất bại máy Attack 46 Hình 3.20: Đăng nhập vào Server câu truy vấn SQL 46 Hình 3.21: Viết luật cho Snort phát công SQL Injection 47 Hình 3.22: Thực lại công SQL Injection 48 Hình 3.23: Snort máy IDS_IPS phát cảnh báo có công SQL Injection 48 DANH MỤC TỪ VIẾT TẮT IDS Intrusion Detection System IPS Intrusion Prevention System NIDS Netword - base IDS PIDS Protocol – based Intrusion Detection System Applicantion Protocol – based APIDS Intrusion Detection System HIDS Host - base IDS ICMP Internet Control Message Protocol SPAN Switched Port Analyzer IP Internet Protocol TCP Transmission Control Protocol UDP User Datagram Protocol DDoS Distributed Denial – of - Service BASE Basic Analysis and Security Engine HTTP Hypertext Transfer Protocol MỞ ĐẦU Tính cấp thiết đề tài - Hiện nay, giới giai đoạn phát triển công nghệ thông tin, giao dịch chuyển dần từ trạng thái giao dịch offline sang online Ví dụ như: giao dịch ATM, mua hàng trực tuyến, giao dịch thẻ VISA, … - Cùng với phát triển đó, công mạng diễn ngày nhiều với nhiều hình thức ngày phức tạp hơn, công nhằm mục đích đánh cắp thông tin người dùng, liệu quan trọng, … - Để phòng chống công mạng đó, ta phải sử dụng đến hệ thống IDS (Intrusion Detection System, có nghĩa hệ thống phát xâm nhập) IPS (Intrusion Prevention System, nghĩa hệ thống ngăn chặn xâm nhập) Mục tiêu nghiên cứu đề tài Các nội dung đề tài: - Tìm hiểu cách hoạt động hệ thống phòng chống ngăn chặn xâm nhập mạng (IDS/IPS) - Triển khai thành công mô hình bảo mật hệ thống dùng Snort làm IDS Snortsam làm IPS - Giả lập công, kiểm tra phản ứng Snort Snortsam Phạm vi nghiên cứu - Triển khai hệ thống mã nguồn mở Linux, cụ thể hệ điều hành Ubuntu hệ điều hành CentOS - Thực nghiệm mô hình mạng nhỏ, có mô sau: Mô hình mạng thực nghiệm hệ thống phát phòng chống xâm nhập mạng CHƯƠNG 1: TỔNG QUAN VỀ IDS, IPS 1.1.Giới thiệu IDS, IPS IDS (Intrusion Detection System) hay gọi hệ thống phát xâm nhập hệ thống phòng chống nhằm phát công thông qua mạng Mục đích phát hoạt động phá hoại vấn đề bảo mật hệ thống, hoạt động tiến trình công thu thập thông tin hay quét cổng (scanning) Một chức hệ thống cung cấp thông tin nhận biết hoạt động không bình thường đưa cảnh báo cho quản trị viên mạng để tiến hành xử lí công Ngoài ra, hệ thống IDS phân biệt công từ bên mạng hay từ bên mạng IDS phần mềm, phần cứng kết hợp phần mềm phần cứng Một hệ thống chống xâm nhập (Intrusion Prevention System – IPS) định nghĩa phần mềm thiết bị chuyên dụng có khả ngăn chặn nguy gây an ninh Hệ thống IPS xem trường hợp mở rộng hệ thống IDS, cách thức hoạt động đặc điểm hệ thống tương tự Điểm khác hệ thống IPS khả theo dõi, giám sát có chức ngăn chặn kịp thời hoạt động nguy hại hệ thống Hệ thống IPS sử dụng tập luật tương tự hệ thống IDS 1.2 Các thành phần IDS 1.2.1 Cảm biến (Sensor) Bộ phận làm nhiệm vụ phát kiện có khả đe dọa an ninh hệ thống mạng, Sensor có chức quét nội dung gói tin mạng, so sánh nội dung với mẫu phát dấu hiệu công Đếm gói tin vòng giây + SnortSam dùng luật “fwsam” khóa địa theo “src” tức địa IP gửi gói tin có dấu hiệu vòng phút Hình 3.12: Thực lại công Brute Force máy Attacker đến máy Server Hình 3.13: Snort máy IDS_IPS phát cảnh báo có công Brute Force Sau thực lại công Brute Force hình 3.12, ta thấy base hình 3.13 phát thông báo có công DDos 38 Hình 3.14: SnortSam thông báo khóa địa máy Attacker vòng 60 giây 3.2.3 Tấn công XSS, phát ngăn chặn Snort 3.2.3.1 Giới thiệu công XSS Cross-Site Scripting hay gọi tắt XSS (thay gọi tắt CSS để tránh nhầm lẫn với CSS - Cascading Style Sheet HTML) kĩ thuật công cách chèn vào website động (ASP, PHP, CGI, JSP ) thẻ HTML hay đoạn mã script nguy hiểm gây nguy hại cho người sử dụng khác Trong đó, đoạn mã nguy hiểm đựơc chèn vào hầu hết viết Client-Site Script JavaScript, JScript, DHTML thẻ HTML [5] 3.2.3.2 Tấn công: 39 Hình 3.15: Máy Attacker truy cập vào trang web 10.10.10.2:8080/DemoAttack máy Server, điền nội dung thông thường vào textbox bấm submit, trang web hiển thị lại nội dung vừa nhập Hình 3.16: Nếu nội dung điền vào textbox đoạn mã độc hình, trang web thực thi đoạn mã script 3.2.3.3 Phát ngăn chặn Snort, SnortSam: 40 Hình 3.17: Viết luật cho Snort phát công XSS - Trên máy IDS_IPS ta thêm luật vào local.rules tập luật snort vùng khoanh đỏ hình 3.17: alert tcp 10.10.10.0/24 21 ->any any (msg:“Attack XSS”; flow:to_server, established;pcre:“/((\%3C)|)/i”; classtype:Web-application-attack; sid:9000; rev:5;fwsam:src,1 minitues;) - Giải thích luật: + Snort phát cảnh báo với thông điệp “Attack XSS” phát gói tin có chứa kí tự “” gửi từ mạng đến lớp mạng 10.10.10.0/24 + SnortSam dùng luật “fwsam” khóa địa theo “src” tức địa IP gửi gói tin có dấu hiệu vòng phút 41 Hình 3.18: Thực lại công XSS máy Attacker đến máy Server Hình 3.19: Snort máy IDS_IPS phát cảnh báo có công XSS Sau thực lại công XSS hình 3.18, ta thấy base hình 3.19 phát thông báo có công XSS 42 Hình 3.20: SnortSam thông báo khóa địa IP máy Attacker 60 giây 3.2.4 Tấn công SQL Injection, phát ngăn chặn Snort 3.2.4.1 Giới thiệu công SQL Injection SQL injection kỹ thuật cho phép kẻ công lợi dụng lỗ hổng việc kiểm tra liệu đầu vào ứng dụng web thông báo lỗi hệ quản trị sở liệu trả để inject (tiêm vào) thi hành câu lệnh SQL bất hợp pháp SQL injection cho phép kẻ công thực thao tác, delete, insert, update,… sở liệu ứng dụng, chí server mà ứng dụng chạy, lỗi thường xảy ứng dụng web có liệu quản lý hệ quản trị sở liệu SQL Server, MySQL, Oracle, DB2, Sysbase [6] Các dạng công SQL injection thường gặp: - Dạng công vượt qua kiểm tra lúc đăng nhập: Kẻ công lợi dụng lỗ hổng truy vấn SQL để vượt qua kiểm tra đăng nhập Cụ thể ví dụ demo dưới, server xử lí thông tin người dùng nhập vào, kiểm tra đăng nhập với đoạn code sau: SessionFactory fr = new Configuration().configure().buildSessionFactory(); Session ss = fr.openSession(); ss.beginTransaction(); 43 Query query = ss.createSQLQuery("select * from User where UserName='" + userName + "' AND PassWord='" + passWord + "'").addEntity(User.class); List list = query.list(); ss.close(); fr.close(); if (list.size()>0) return true; else return false; Với userName passWord thông tin người dùng nhập vào Nếu kẻ công điền vào passWord “ something ‘or’ 1” truy vấn trở thành “select * from User where UserName=’user2’ AND PassWord = ‘something ‘or’ 1’ ” truy vấn hợp lệ, kết trả true - Dạng công sử dụng câu lệnh SELECT: Với đoạn code ví dụ trên, kẻ công điền vào trường userName passWord với liệu “union select all select * from User” câu truy vấn trở thành “select * from User where UserName=’union select all select * from User’ AND PassWord = ‘’” server thực câu truy vấn [6] - Dạng công sử dụng câu lệnh INSERT: Ví dụ câu truy vấn “insert into User values (userName, passWord);” với userName passWord người dùng nhập vào, kẻ công nhập userName với giá trị “ ‘+ (select top UserName from User) + ’ ” server thực câu truy vấn [6] 44 3.2.4.2 Tấn công: Hình 3.21: Máy Attacker truy cập vào trang web 10.10.10.2:8080/DemoAttackSQL máy Server, đăng nhập tài khoản user2 với password user2 (password CSDL) đăng nhập thành công 45 Hình 3.22: Máy Attacker truy cập trang web 10.10.10.2:8080/DemoAttackSQL máy Server, đăng nhập tài khoản user2 với password password đăng nhập thất bại Hình 3.23: Nhưng kẻ công mật khẩu, họ sử điền vào text box PassWord chuỗi “something ‘or’ 1”, câu truy vấn SQL trở thành: “select * from User where UserName=’user2’ AND PassWord = ‘something ‘or’ 1’”, truy vấn hợp lệ nên đăng nhập 46 3.2.4.3 Phát Snort: Hình 3.24: Viết luật cho Snort phát công SQL Injection - Trên máy IDS_IPS ta thêm luật vào local.rules tập luật snort vùng khoanh đỏ hình 3.24: alert tcp any any -> 10.10.10.0/24 any (msg: “Attack SQLInjection”; pcre: “/((\%26)|(\’))((\%5F)|o|(\%4F))((\%72)|r|(\%52))((\%27)|(\’))/ix”; sid: 1000003; fwsam:src,1 minitues;) - Giải thích luật: + Snort phát cảnh báo với thông điệp “Attack SQLInjection” phát gói tin có chứa chuỗi ký tự “ ‘or’ ”, không phân biệt viết hoa hay viết thường gửi từ IP đến lớp mạng 10.10.10.0/24 + SnortSam dùng luật “fwsam” khóa địa theo “src” tức địa IP gửi gói tin có dấu hiệu vòng phút 47 Hình 3.25: Thực lại công SQL Injection máy Attacker đến máy Server Hình 3.26: Snort máy IDS_IPS phát cảnh báo có công SQL Injection Sau thực lại công SQL Injection hình 3.25, ta thấy base hình 3.26 phát thông báo có công SQL Injection 48 Hình 3.27: SnortSam thông báo khóa địa IP máy Attacker 60 giây 49 KẾT LUẬN Những vấn đề đạt - Nắm bắt IDS, IPS chế hoạt động chúng - Cài đặt sử dụng Snort, Snortsam làm hệ thống IDS, IPS - Vận dụng kiến thức nghiên cứu để phát công mạng bản: DDos, Brute Force, XSS, SQL Injection, … Những hạn chế - Snort có hạn chế: Chỉ phát xâm nhập biết dấu hiệu xâm nhập Các kẻ công dựa vào điểm yếu này, thay đổi cách thức công, dấu hiệu công, dẫn đến Snort không phát người quản trị không kịp thời cập nhật luật cho Snort Người quản trị phải luôn đề cao cảnh giác, cập nhật thông tin, hình thức công kẻ công, tìm dấu hiệu để viết luật cho Snort - Các sản phẩm plugin Snort không phát huy hết tác dụng như: Barnyard, Snort Center, Snort_Inline, Snort_Snaft,… Hướng phát triển tương lai - Hoàn thiện hệ thống IDS, IPS sử dụng Snort, Snortsam - Tìm hiểu thêm phần mềm, hệ thống IDS, IPS khác, so sánh chúng với để tìm phần mềm, hệ thống phù hợp tối ưu để sử dụng cho sau 50 TÀI LIỆU THAM KHẢO TIẾNG ANH [1] Snort User Manual Copyright ©1998-2003 Martin Roesch Copyright ©2001-2003 Chris Green Copyright ©2003-2013 Sourcefire, Inc Copyright ©2014 Cisco and/or its affiliates All rights reserved [2] http://snort.org [3] http://snortsam.net [4] http://hacker.org 51 TÀI LIỆU THAM KHẢO TIẾNG VIỆT [5] Kĩ thuật công CROSS-SITE SCRIPTING Lê Hữu Tùng [6] http://vi.wikipedia.org/wiki/SQL_injection [7] https://vi.wikipedia.org/wiki/Tấn_công_từ_chối_dịch_vụ 52 ... cố gắng thân Em xin cam đoan đề tài: Ứng dụng phát phòng chống xâm nhập mạng Snort /Snortsam kết mà em trực tiếp nghiên cứu Trong trình nghiên cứu em sử dụng tài liệu số tác giả Tuy nhiên sở... hoạt động Có hai phương pháp để phát công, xâm nhập: Misuse Detection (dò lạm dụng) : Hệ thống phát xâm nhập cách tìm kiếm hành động tương ứng với kĩ thuật xâm nhập biết đến (dựa dấu hiệu - signatures)... (HIDS/HIPS): Sử dụng liệu kiểm tra từ máy trạm để phát xâm nhập 13 Network-based IDS/IPS (NIDS/NIPS): Sử dụng liệu toàn lưu thông mạng, với liệu kiểm tra từ nhiều máy trạm để phát xâm nhập 1.6.1