Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 97 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
97
Dung lượng
7,62 MB
Nội dung
BỘ GIÁO DỤC VÀ ĐÀO TẠO TRƯỜNG ĐẠI HỌC HOA SEN KHOA KHOA HỌC VÀ CÔNG NGHỆ Giảng viên hướng dẫn : Nguyễn Ngọc Như Hằng Nhóm sinh viên thực hiện : Nguyễn Quỳnh MSSV:070073 Phù Sử Hùng MSSV:070156 Lớp : VT071 Tháng 12 /năm 2010 PHIẾU GIAO ĐỀ TÀI KHÓA LUẬN TỐT NGHIỆP 1. Mỗi sinh viên phải viết riêng một báo cáo 2. Phiếu này phải dán ở trang đầu tiên của báo cáo 1. Họ và tên sinh viên/ nhóm sinh viên được giao đề tài (sĩ số trong nhóm:____) (1) MSSV: khóa: (2) MSSV: khóa: (3) MSSV: khóa: Chuyên ngành: Mạng máy tính Khoa: Khoa Học - Công Nghệ 2. Tên đề tài: Xây dựng hệ thống IDS – Snort trên hệ điều hành Linux 3. Các dữ liệu ban đầu: Snort được xây dựng với mục đích phát hiện xâm nhập vào hệ thống. Snort có khả năng phát hiện một số lượng lớn các kiểu thăm dò, xâm nhập khác nhau như : buffer overflow, ICMP, virus…Snort là phần mềm open source cung cấp cho nhà quản trị các thông tin cần thiết để xử lý các sự cố khi bị xâm nhập 4. Các yêu cầu đặc biệt: Hiểu được khái niệm, cách hoạt động của IDS - Snort. Cài đặt, cấu hình Snort trên hệ điều hành Ubuntu. Kiểm chứng kết quả đạt được sau khi cài đặt thành công 5. Kết quả tối thiểu phải có: 1. Nắm rõ khái niệm về IDS và Snort 2. Cài đặt, cấu hình thành công Snort trên hệ điều hành Ubuntu 3. 4. Ngày giao đề tài:…… /………./………Ngày nộp báo cáo: ……/…………/ Họ tên GV hướng dẫn 1: Nguyễn Ngọc Như Hằng…….………Chữ ký: Họ tên GV hướng dẫn 2: ………………… ………………… Chữ ký: Ngày …. tháng … năm… Xây dựng hệ thống IDS – Snort trên hệ điều hành Linux 2010 Trích Yếu Intrusion Detection System (IDS) là hệ thống phòng chống và phát hiện xâm nhập thông minh nhất hiện nay. IDS phát hiện những tín hiệu, biểu hiện, hành vi của người xâm nhập trước khi có thể gây thiệt hại đến hệ thống mạng như làm cho dịch vụ mạng ngừng hoạt động hay mất dữ liệu. Từ đó chúng ta có thể ngăn chặn thông qua các biện pháp kỹ thuật khác nhau. Đề tài của chúng tôi với mục tiêu là xây đựng một hệ thống Snort – IDS trên hệ điều hành Ubuntu, hệ thống này với mục đích phát hiện và phòng chống các hành động tấn công và thâm nhập trong mạng. Do đó đề tài tập trung nghiên cứu vào phương thức hoạt động và vận hành của hệ thống Snort – IDS đồng thời đưa ra cách cài đặt và thiết lập một hệ thống IDS hoàn chỉnh trên hệ điều hành Ubuntu. Bên cạnh đó chúng tôi đưa ra giải pháp nhằm tăng cường khả năng hoạt động và vận hành của hệ thống thông qua việc sử dụng barnyard để tăng cường khả năng ghi lại log của hệ thống và oinkmaster để tự động liên tục cập nhật rule. Ngoài việc sử dụng hệ thống rule có sẵn, đề tài tìm hiểu cách tạo ra rule theo yêu cầu nhằm giám sát và kiểm tra đối với một luồng thông tin cụ thể khi mà hệ thống rule của snort không thể đáp ứng. Thông qua việc nghiên cứu, đề tài của chúng tôi đưa một cái nhìn tổng quan về hệ thống Host-based IDS và Network-based IDS, về sự khác và giống nhau của hai hệ thống từ đó có thể ứng dụng trong mô hình mạng thực tế. 4 Xây dựng hệ thống IDS – Snort trên hệ điều hành Linux 2010 Mục Lục 5 Xây dựng hệ thống IDS – Snort trên hệ điều hành Linux 2010 Chúng tôi xin chân thành cảm ơn cô Nguyễn Ngọc Như Hằng - giảng viên trực tiếp hướng dẫn nhóm chúng tôi thực hiện khóa luận tốt nghiệp này này, đã tận tình hướng dẫn và hỗ trợ và giúp chúng tôi giải quyết khó khăn trong quá trình nghiên cứu đề tài này. Chúng tôi chân thành cảm ơn sự nhiệt tình của cô, cô đã giúp chúng tôi giải đáp những thắc mắc cũng như cung cấp những tài liệu cần thiết cho quá trình nghiên cứu đề tài của chúng tôi. Một lần nữa xin chân thành cảm ơn cô. Chúng tôi xin gửi lời cảm ơn đến những giảng viên của ngành Mạng Máy Tính trường đại học Hoa Sen đã tận tình giảng dạy và tạo điều kiện cho chúng tôi học tập, nghiên cứu. Để từ đó chúng tôi có được một nền tảng kiến thức vững chắc làm tiền đề giúp cho chúng tôi thực hiện tốt đề tài tốt nghiệp của mình. 6 Xây dựng hệ thống IDS – Snort trên hệ điều hành Linux 2010 NHẬN XÉT CỦA NGƯỜI HƯỚNG DẪN Người hướng dẫn ký tên 7 Nhập Đề Khái niệm tấn công một máy tính bằng việc tác động trực tiếp vào máy đó đã trở thành quá khứ khi mà ngày nay con người có thể truy cập vào một máy chủ ở cách xa mình nửa vòng trái đất để lấy thông tin website, mail… Hacker cũng làm những công việc tương tự nhưng họ tận dụng những lỗ hỏng của hệ thống nhằm chiếm quyền sử dụng hay ngăn chặn sự truy cập của người dùng khác vào hệ thống đó. Nhằm ngăn chặn những truy nhập trái phép vào hệ thống người ta sử dụng những thiết bị bảo mật như Firewall hay các thuật toán mã hóa. Thế nhưng đối với những máy chủ chạy những dịch vụ như web, mail thì những công cụ bảo mật này vẫn chưa hoàn hảo vì đây là những máy chủ được mọi người từ bên ngoài truy cập (public server). Hacker sẽ lợi dụng chính những dịch vụ này để tấn công vào hệ thống. Điều đó là nguyên nhân dẫn đến sự cần thiết sử dụng công cụ IDS (Intrusion Detection System) với mục đích là dò tìm và nghiên cứu các hành vi bất thường và thái độ của người sử dụng trong mạng, phát hiện ra các hành vi lạm dụng đặc quyền để giám sát hệ thống mạng. I. Nguyên Lý Hoạt Động Của Snort 1. Quá trình khởi động của snort Quá trình khởi động của snort chia làm 3 giai đoạn • Các đối số của command-line được phân tích để xác định chế độ chạy của snort và thiết lập các biến môi trường. • File cấu hình được xử lý, trong file này chứa các thông tin cấu hình về rule, preprocessor, output plug-in… • Sau khi thông tin cấu hình được đọc, snort bắt đầu thiết lập detection engine, cácthư viện pcap… 1.1 Trình command-line của snort Command line của snort rất linh hoạt và có nhiều option cho phép người dùng thiết lập và cấu hình thông qua command line. Điều này cho phép người dùng có thể thay đổi cấu hình cấu hình của snort mà không cần phải thay đổi file cấu hình. Đồng thời có thể cho phép nhiều tiến trình snort chia sẽ với nhau một file cấu hình. Để xem các command line option trong snort được xử lý thế nào người dùng có thể xem hàm ParseCmdLine trong file snort.c. Đồng thời qua đó người dùng cũng có thể tạo thêm các option tùy theo ý muốn. Từ phiên bản 2.6 snort đã có hơn 40 command line options. 1.2 Xử lý file cấu hình File cấu hình chứa các thông số cấu hình cho snort, một số thông số cấu hình sẽ không được hỗ trợ thông qua command line. Các thông số này bao gồm các loạigiá trị cấu hình, preprosessor, các chỉ dẫn cho output, rule và các thông số khác. File cấu hình của snort được định dạng theo từng dòng và được phân tích và chạy theo từng dòng một. Snort đọc toàn bộ các line và phân tích từng line như là một đối tượng riêng biệt. Để thực hiện việc phân tích các rule snort sử dụng hàm ParseRulesFile trong file parser.c. Để phân tích các thành phần còn lại trong file cấu hình snort tích hợp code dùng cho việc phân tích cho preprocessor, dectection option, và các output plug-in vào trong các module đó. 1.3 Phân tích các rule Mỗi rule trong snort bao gồm 2 phần: header và các option. Header của rule dùng để phân biệt loại rule (alert, log, pass…), protocol, source và destination IP, source và destination port mà rule đang dùng. Phần Option của rule chứa nhiều loại option khác nhau quy định các thông tin về rule và khác detect option như sid (snort identifier), message…Khi rule được phân tích snort sẽ tiến hành xây dựng tất cả các rule theo dạng cây. Phần header của rule dùng để tạo thành rule tree node (RTN) và phần option sẽ tạo thành option tree node (OTN). Một phần của OTN sẽ bao gồm các dection option. Tất cả các OTN tương ứng với một header sẽ được nhóm lại dưới cùng một RTN. 2. Xử lý gói tin trong snort Snort bắt đầu với việc tiếp nhận gói tin. Sau khi gói tin được snort tiếp nhận, các gói tin lúc này được chuyển vào packet decoder. Sau khi được decode, gói tin sẽ được chuyển vào preprocessor để tiêu chuẩn hóa gói tin, phân tích, phân tích thống kê và phát hiện các protocol bất thường. [...]... “target-base” IDS, tức là frag3 sẽ xây dựng lại gói tin bị phân mảnh dựa vào destination host mà gói tin sẽ đến Bởi vì mỗi hệ điều hành xây dựng lại gói tin theo một các khác nhau và snort không hề biết destination host của gói tin mà nó đang ráp mảnh là hệ điều hành gì Một gói tin có thể xem là bình thường với hệ điều hành này, nhưng nó có thể được xem là bất thường với một hệ điều hành khác Do đó... Bit 2 No Flag set F S R P A U 1 2 0 Trên đây là một số keyword thông dụng trong việc viết Rule của Snort, một số keyword khác sẽ đề cập tiếp trong phần thực hiện LAB với Snort 9 Thứ tự các rule trong rule base của snort Rule có thể phân thành 3 loại dựa trên trường Action của Rule: AlertPass Log Khi một gói tin đi vào IDS Snort, nó sẽ được kiểm tra theo thứ tự nêu trên để đảm bảo mọi gói tin đều được... dụng khi có một hành động nào đó cố hình kích hoạt hành động cảnh báo của hàng loạt rule và có thể làm hệ thống quá tải Ví dụ trong file snort. conf ta có thể cấu hình cho phép một địa chỉ IP source có thể chỉ kích hoạt được một cảnh báo trong thời gian 60 giây threshold gen_id 1, sig_id 0, type limit, track by_src, count 1, seconds 60 Threshold được dùng để quy định một hành động vi phạm một rule bao... thành công Việc này sẽ khó khăn hơn khi database nằm trên một host khác Snort có khả năng xuất thông tin về một alter nào đó thành một binary file Điều này diễn ra rất nhanh và không cần bất cứ tiến trình nào khác Barnyard sau đó học file này vào sau đó xuất ra snort logfile, syslog, CSV hoặc xuất vào database Barnyard có thể được cấu hình để chạy cùng với snort và việc cấu hình cũng khá giống với snort. .. dùng có thể điều chỉnh thứ tự rule thông qua file snort. conf ở dòng config order Alert -> Pass -> Log 10 Oinkmaster Oinkmaster là một phần mềm mã nguồn mở cho phép người dùng có thể cập nhật những rule mới từ website snort. org Oinkmaster sẽ tự động so sánh giữa tập rule hiện tại trong hệ thống và những rule mới trên website snort. org để từ đó onikmaster sẽ cập nhật những rule mới nhất vào hệ thống Oinkmaster... phần khác nhau của gói tin, điều này cho phép snort có thể truy xuất nhanh đến những thành phần trong gói tin Con trỏ này cho phép các thành phần của snort như preprocessor, detection engine và output-plugin có thực hiện công việc một cách dễ dàng sau này Trong sự phát triển và cải tiến của snort, một số con trỏ được thêm vào trong gói tin cho phép các thành phần khác nhau của snort có thể thông tin cho... thư mục Mỗi option trên tương đương với việc cấu hình trong file snort. conf như sau: • dynamicengine : load một dynamic engine từ một file chỉ định • dynamicdetection file : load dynamic rule từ một file • dynamicdetection directory : load dynamic rule từ tất cả các rule trong một thư mục 5 Snort Inline Mode 5.1 Các mode chính của snort • Sniffer mode: ở mode này snort chỉ log lại... Logger mode: ở mode này snort chỉ log lại gói tin và ghi vào hệ thống đĩa • Network Intrusion Detection System (NIDS) mode: đây là mode phức tạp nhất của snort, ở mode này snort phân tích traffic trong mạng, từ đó phát hiện được những hành động thâm nhập hoặc tấn công trong mạng • Inline mode :trong mode này snort sẽ tiếp nhận gói tin từ iptables thay vì từ libpcap sau đó sẽ tiến hành xử lý gói tin (DROP,... kiếm trên rule đối với một gói tin Điều này sẽ làm giảm thời gian snort xử lý gói tin và tăng khả năng hoạt động trên những mạng có tốc độ cao Pattern matcher bắt đầu bằng việc nhóm các rule lại với nhau dựa trên destination port của rule Sau đó với mỗi destination port, snort xác định trường content string dài nhất trong content option của rule Khi snort hoàn tất việc tập hợp content string, snort. .. động dựa trên thông tin thu thập từ nhiều gói tin khác có liên quan với nhau Và nếu một hay nhiều gói tin bị drop snort sẽ tiếp tục chờ những gói tin bị mất và thiếu, do đó các gói tin tiếp theo sẽ được đưa vào hang đợi Trong quá trình chờ đợi như vậy snort sẽ tiêu thụ nhiều bộ nhớ và CPU của hệ thống 2.2 Giải mã gói tin Sau khi snort có được gói tin, gói tin được chuyển qua cho các decoder ở lớp trên . Network-based IDS, về sự khác và giống nhau của hai hệ thống từ đó có thể ứng dụng trong mô hình mạng thực tế. 4 Xây dựng hệ thống IDS – Snort trên hệ điều hành Linux 2010 Mục Lục 5 Xây dựng hệ thống IDS. nhau. Đề tài của chúng tôi với mục tiêu là xây đựng một hệ thống Snort – IDS trên hệ điều hành Ubuntu, hệ thống này với mục đích phát hiện và phòng chống các hành động tấn công và thâm nhập trong. Học - Công Nghệ 2. Tên đề tài: Xây dựng hệ thống IDS – Snort trên hệ điều hành Linux 3. Các dữ liệu ban đầu: Snort được xây dựng với mục đích phát hiện xâm nhập vào hệ thống. Snort có khả