Đề tài Hệ thống phát hiện xâm nhập IDS – SNORT

Tài liệu Đề tài Hệ thống phát hiện xâm nhập IDS – SNORT: MỤC LỤC DANH MỤC HÌNH VẼ Tên Hình Vẽ Trang Hình 1.1. Mô hình VPN client to site 11 Hình 1.2. Mô hình VPN site-to-site 11 Hình 1.3. Mô hình tổng quát Firewall 12 Hình 1.4. Hệ thống chống xâm nhập IDS 14 Hình 2.1. Các vị trí đặt IDS trong mạng 17 Hình 2.2. Thành phần của IDS 18 Hình 2.3. Hoạt động của IDS 19 Hình 2.4. Mô hình Network based IDS - NIDS 23 Hình 2.5. Mô hình Host based IDS – HIDS 25 Hình 3.1. Mô hình kiến trúc hệ thống Snort 34 Hình 3.2. Thành phần hệ thống của Snort 34 Hình 3.3. Bộ tiền sử lý 35 Hình 3.4. Bộ phát hiện 37 Hình 3.5. Bộ kết xuất thông tin 38 Hình 3.6. Cấu trúc luật của Snort 40 Hình 3.7. Header của luật Snort 40 Hình 3.8. Mô hình mạng Công Ty Hoàn Mỹ 51 Hình 3.9. Mô hình giải pháp kết hợp IDS 52 Hình 3.10. Mô hình Demo 53 Hình 3.11. Giao diện chính của trang www.snort.org 53 Hình 3.12. Giao diện Download Rules 54 Hình 3.13. Chế độ màn hình đang Setup Snort 54 Hình 3.14. Thư mục Rule 55 Hình 3.15. Thư mục Rule c...

doc81 trang | Chia sẻ: hunglv | Lượt xem: 3817 | Lượt tải: 1download
Bạn đang xem trước 20 trang mẫu tài liệu Đề tài Hệ thống phát hiện xâm nhập IDS – SNORT, để tải tài liệu gốc về máy bạn click vào nút DOWNLOAD ở trên
MỤC LỤC DANH MỤC HÌNH VẼ Tên Hình Vẽ Trang Hình 1.1. Mô hình VPN client to site 11 Hình 1.2. Mô hình VPN site-to-site 11 Hình 1.3. Mô hình tổng quát Firewall 12 Hình 1.4. Hệ thống chống xâm nhập IDS 14 Hình 2.1. Các vị trí đặt IDS trong mạng 17 Hình 2.2. Thành phần của IDS 18 Hình 2.3. Hoạt động của IDS 19 Hình 2.4. Mô hình Network based IDS - NIDS 23 Hình 2.5. Mô hình Host based IDS – HIDS 25 Hình 3.1. Mô hình kiến trúc hệ thống Snort 34 Hình 3.2. Thành phần hệ thống của Snort 34 Hình 3.3. Bộ tiền sử lý 35 Hình 3.4. Bộ phát hiện 37 Hình 3.5. Bộ kết xuất thông tin 38 Hình 3.6. Cấu trúc luật của Snort 40 Hình 3.7. Header của luật Snort 40 Hình 3.8. Mô hình mạng Công Ty Hoàn Mỹ 51 Hình 3.9. Mô hình giải pháp kết hợp IDS 52 Hình 3.10. Mô hình Demo 53 Hình 3.11. Giao diện chính của trang www.snort.org 53 Hình 3.12. Giao diện Download Rules 54 Hình 3.13. Chế độ màn hình đang Setup Snort 54 Hình 3.14. Thư mục Rule 55 Hình 3.15. Thư mục Rule chứa thư mục giải nén trên 55 Hình 3.16. Khai báo biến HOME_NET 56 Hình 3.17. Khai báo biến RULE_PATH 56 Hình 3.18. Khai báo các biến include classification,reference 57 Hình 3.19. Khai báo các biến dynamicpreprocessor và dynamicengine 57 Hình 3.20. Kết quả sau khi thực thi dòng lệnh 58 Hình 3.21. Số card mạng 58 Hình 3.22. Bắt và phân tích gói tin 59 Hình 3.23. Kết quả thu được 59 Hình 3.24. Bắt và lưu gói dữ liệu vào file Log 60 Hình 3.25. Kiểm thử file Log đã ghi lại 60 Hình 3.26. Tạo file text co tên là “”tài liệu bảo mật” 62 Hình 3.27. Viết luật 1) 2) 3) 62 Hình 3.28. Chạy Snort để cập nhật rule vừa khởi tạo 63 Hình 3.29. Truy cập Website ->chọn Bom 63 Hình 3.30. Máy 192.168.1.100 -> 192.168.1.200 64 Hình 3.31. Window server 2003 copy file text “tài liệu bảo mật” về máy 64 Hình 3.32. Kết quả ghi lại khi thực hiện 65 Hình 3.33. Viết luật 3) và 4) 66 Hình 3.34. Vào trình duyêt mp3.zing.vn 66 Hình3.35. Kết quả IDS_Ssnort ghi lại 67 Hình 3.36. Window server 2003 gởi nhiều gói tin 67 Hình 3.37. Kết quả thu được 68 DANH MỤC BẢNG BIỂU Bảng Trang Bảng 1.1. So sánh 2 mô hình phát hiện 28 Bảng 2.1. Một vài dich vụ và port tương ứng 45 DANH MỤC TỪ VIẾT TẮT IDS Intrusion Detection System HIDS Host – based Intrusion Detection System NIDS Network – based Intrusion Detection System SMTP Simple Mail Transfer Protocol (giao thuc tuyen tai thu tin) PIN Personal Indentification Number QoS Quality of Service (chỉ chất lượng dịch vụ) DoS Denial of Services DNS Domain Name System VPN Virtual Private Network MỞ ĐẦU LÝ DO CHỌN ĐỀ TÀI An ninh thông tin nói chung và an ninh mạng nói riêng đang là vấn đề được quan tâm không chỉ ở Việt Nam mà trên toàn thế giới. Cùng với sự phát triển nhanh chóng của mạng Internet, việc đảm bảo an ninh cho các hệ thống thông tin càng trở nên cấp thiết hơn bao giờ hết. Trong lĩnh vực an ninh mạng, phát hiện và phòng chống tấn công xâm nhập cho các mạng máy tính là một vấn đề cần thiết. Ngoài việc tăng cường chính sách bảo mật trong hệ thống, các tổ chức cần phải xác định rằng việc tăng các liên kết cũng làm tăng sự nguy hiểm với các dữ liệu quan trọng như việc sao chép dữ liệu, nghe trộm việc truyền nhằm lấy dữ liệu quan trọng. Có rất nhiều giải pháp được đưa ra và để hạn chế những vấn đề nói trên tôi đã chọn đề tài “Hệ thống phát hiện xâm nhập IDS – SNORT” để nghiên cứu. Ý NGHĨA CỦA ĐỀ TÀI Xây dựng kiến thức liên quan đến hệ thống phát hiện và chống xâm nhập IDS Xây dựng bản demo về việc phát hiện xâm nhập bằng Snort ĐỐI TƯỢNG VÀ PHƯƠNG PHÁP NGHIÊN CỨU Tìm hiểu về bảo mật Nghiên cứu những phương pháp xâm nhập hệ thống– biện pháp ngăn ngừa Nghiên cứu về hệ thống phát hiện xâm nhập IDS Nghiên cứu công cụ IDS – Snort Xây dựng hệ thống Snort – IDS trên Window Thu thập tài liệu liên quan đến các vấn đề về đề tài Các khái niệm cơ bản và nguyên lý hoạt động của hệ thống phát hiện xâm nhập CÁC MỤC TIÊU CỦA ĐỀ TÀI Tìm hiểu thông tin về bảo mật Tìm hiểu, tổng hợp và phân tích hệ thống phát hiện xâm nhập IDS. Tìm hiểu và nghiên cứu các vấn đề liên quan đến chương trình snort. Tìm hiểu và sử dụng tốt hệ điều hành Window Tìm hiểu phương pháp và triển khai cài đặt Snort trên Window Đưa ra một số nhận định và hướng phát triển đề tài. BỐ CỤC Nội dung khóa luận tốt nghiệp gồm 3 chương: Chương I: Tổng quan về bảo mật Những nguy cơ đe dọa đối với bảo mật. Các phương pháp xâm nhập hệ thống – Biện pháp phát hiện và ngăn ngừa. Các giải pháp bảo mật an toàn cho hệ thống. Chương II: Hệ thống phát hiện xâm nhập IDS Tìm hiểu về kiến trúc và nguyên lý hoạt động của IDS. Phân loại IDS, phương thức phát hiện và cơ chế hoạt động IDS. Cách phát hiện kiểu tấn công thông dụng của IDS. Chương III: Triển khai ứng dụng dò tìm xâm nhập trên hệ thống Window dựa trên Snort. Kiến trúc Snort. Bộ luật Snort. Demo triển khai CHƯƠNG I TỔNG QUAN VỀ BẢO MẬT GIỚI THIỆU VỀ BẢO MẬT Internet phát triển, sự kết nối trên toàn thế giới đang mang lại thuận tiện cho tất cả mọi người. Nhưng bên cạnh đó nó cũng mang tiềm ẩn những nguy cơ đe dọa đến mọi mặt của đời sống xã hội. Việc mất trộm thông tin trên mạng gây ảnh hưởng đến tính riêng tư cho các cá nhân, những vụ lừa đảo, tấn công từ chối dịch vụ gây ảnh hưởng lớn đến hoạt động kinh doanh cũng như người sử dụng Internet làm cho vấn đề bảo mật trên mạng luôn là vấn đề nóng và được quan tâm đến trong mọi thời điểm. Vấn đề bảo mật được đặt ra và những đóng góp lớn trong việc hạn chế và ngăn chặn bảo mật, ví dụ như Firewall ngăn chặn những kết nối không đáng tin cậy, mã hóa làm tăng độ an toàn cho việc truyền dữ liệu, các chương trình diệt virus với cơ sở dữ liệu liên tục cập nhật…Tuy nhiên hiện nay, các vụ vi phạm bảo mật xảy ra ngày càng tinh vi cùng với sự gia tăng những vụ lạm dụng. Những điều này dẫn đến yêu cầu cần phải có một phương pháp bảo mật mới bỗ trợ cho những phương pháp bảo mật truyền thống. Hệ thống phát hiện xâm nhập IDS là một phương pháp bảo mật có khả năng chống lại các kiểu tấn công, các vụ lạm dụng… Từ những vấn đề nêu trên, tôi thực hiện đồ án này với mong muốn không chỉ nghiên cứu những đặc trưng cơ bản của hệ thống phát hiện xâm nhập IDS với vai trò bảo mật mà còn có thể xây dựng một phần mềm IDS phù hợp với điều kiện Việt Nam và qua đó ứng dụng vào thực tiễn nhằm đảm bảo an toàn cho hệ thống và chất lượng dịch vụ cho người dùng.. Khái niệm Bảo mật là sự hạn chế khả năng lạm dụng tài nguyên và tài sản. Hạn chế ở đây có nghĩa là không thể triệt phá hết ngay việc lạm dụng, cho nên cần sẵn sàng đề phòng mọi khả năng xấu. Ngoài ra, cần phải phân tích chính xác các cuộc tấn công, các điểm yếu của hệ thống và tăng cường bảo mật những vùng cần thiết để làm giảm thiệt hại gây nên từ các cuộc tấn công. Khái niệm bảo mật thành 3 lĩnh vực chính : Bảo mật máy tính (Computer Security) – Là một tiến trình ngăn chặn và phát hiện sử dụng không hợp pháp vào máy tính của bạn bằng cách lựa chọn các công cụ thiết kế để bảo vệ dữ liệu và tấn công của hackers. Bảo mật mạng (Network Security) – Là các phương pháp để bảo vệ dữ liệu trong suốt quá trình chuyển động của chúng. Bảo mật Internet (Internet Security) – Là các phương pháp để bảo vệ dữ liệu trong suốt quá trình vận chuyển của chúng ra ngoài đến kết nối internet. Trọng tâm của chương này chúng ta quan tâm đến các vấn đề tổng quát về bảo mật mạng (Mạng và Internet). Bao gồm các giải pháp để ngăn chặn, phòng ngừa, phát hiện và hiệu chỉnh các vi phạm bảo mật mà có liên quan đến trao đổi thông tin. Tính an toàn của hệ thống mạng Sự an toàn của hệ thống mạng được thể hiện qua 3 vấn đề chính : Thông tin - bí mật : Thông tin chỉ cung cấp tới những người một cách chính đáng khi có sự truy nhập hợp pháp tới nó. Thông tin - Toàn vẹn : Thông tin chỉ được điểu khiển (sửa đổi, thay thế v.v…) bởi những người được quyền ủy thác. Thông tin - sẵn sàng : Thông tin có thể tiếp cận đối với những người mà cần nó khi có yêu cầu. Do đó, để đánh giá sự bảo mật của hệ thống mạng, người ta thường quan tâm đến các khía cạnh sau : Xác thực (Authentication): là các tiền trình xử lý nhằm xác định nhận dạng thực thể liên kết. Thực thể đó có thể là người dùng độc lập hay tiến trình của phần mềm. Ủy quyền (Authorization): là các luật xác định ai có quyền truy nhập vào các tài nguyên của hệ thống. Tính bảo mật (Confidentiality): nhằm đảm bảo dữ liệu được bảo vệ khỏi những nhóm không được phép truy nhập. Tính toàn vẹn (Integrity): hệ thống đảm bảo tính toàn vẹn của dữ liệu, ngăn sự thay đổi dữ liệu trái phép. Sự thay đổi bao gồm tạo, ghi, sửa, xóa và xem lại những thông điệp đã được truyền. Tính sẵn sàng (Availability): yêu cầu tài sản hệ máy tính là sẵn sàng đối với nhóm được phép. Mục tiêu của kiểu tấn công từ chối dịch vụ DoS là phá hoại tính sẵn sàng của tài nguyên hệ thống. NHỮNG NGUY CƠ VÀ MỐI ĐE DỌA ĐỐI VỚI BẢO MẬT Theo đánh giá của tổ chức CERT, các nguy cơ an ninh xuất hiện từ khả năng : Sự lạm dụng của máy tính của các bạn bởi những người làm phiền qua Internet. Đối mặt thường xuyên khi làm việc trên Internet. Sự ngẫu nhiên do khi cài đặt các phần mềm hay sử dụng các dịch vụ không chính thống v.v… Chính các nguy cơ này làm bộc lỗ những điểm trong các hệ thống máy tính ( chẳng hạn như các lỗ hỗng) mà kẻ xấu có thể lợi dụng để truy cập bất hợp pháp hoặc hợp pháp vào máy tính của bạn. Các lỗ hỗng này trên mạng là các yếu điểm quan trọng mà người dùng, hacker dựa đó để tấn công vào mạng. Các hiện tượng sinh ra trên mạng do các lỗ hổng này mang lại thường là : sự ngưng trệ của dịch vụ, cấp thêm quyền đối với các user hoặc cho phép truy nhập không hợp pháp vào hệ thống. Hiện nay trên thế giới có nhiều cách phân lọai khác nhau về lỗ hổng của hệ thống mạng. Dưới đây là cách phân loại sau đây được sử dụng phổ biến theo mức độ tác hại hệ thống, do Bộ quốc phòng Mỹ công bố năm 1994. Các lỗ hổng loại C Các lỗ hổng loại này cho phép thực hiện các phương thức tấn công theo DoS (Denial of Services - Từ chối dịch vụ). Mức độ nguy hiểm thấp, chỉ ảnh hưởng tới chất lượng dịch vụ, có thể làm ngưng trệ, gián đoạn hệ thống, không làm phá hỏng dữ liệu hoặc đạt được quyền truy nhập bất hợp pháp DoS là hình thức tấn công sử dụng các giao thức ở tầng Internet trong bộ giao thức TCP/IP để làm hệ thống ngưng trệ dẫn đến tình trạng từ chối người sử dụng hợp pháp truy nhập hay sử dụng hệ thống. Một số lượng lớn các gói tin được gửi tới server trong khoảng thời gian liên tục làm cho hệ thống trở nên quá tải, kết quả là server đáp ứng chậm hoặc không thể đáp ứng các yêu cầu từ client gửi tới. Tuy nhiên, mức độ nguy hiểm của các lỗ hổng loại này được xếp loại C, ít nguy hiểm vì chúng chỉ làm gián đoạn cung cấp dịch vụ của hệ thống trong một thời gian mà không làm nguy hại đến dữ liệu và những kẻ tấn công cũng không đạt được quyền truy nhập bất hợp pháp vào hệ thống. Các lỗ hổng loại B Các lỗ hổng cho phép người sử dụng có thêm các quyền trên hệ thống mà không cần thực hiện kiểm tra tính hợp lệ. Đối với dạng lỗ hổng này, mức độ nguy hiểm ở mức độ trung bình. Những lỗ hổng này thường có trong các ứng dụng trên hệ thống, có thể dẫn đến mất hoặc lộ thông tin yêu cầu bảo mật. Các lỗ hổng loại B có mức độ nguy hiểm hơn lỗ hổng loại C, cho phép người sử dụng nội bộ có thể chiếm được quyền cao hơn hoặc truy nhập không hợp pháp. Những lỗ hổng loại này thường xuất hiện trong các dịch vụ trên hệ thống. Người sử dụng cục bộ được hiểu là người đã có quyền truy nhập vào hệ thống với một số quyền hạn nhất định. Việc kiểm soát chặt chẽ cấu hình hệ thống và các chương trình sẽ hạn chế được các lỗ hổng loại B. Các lỗ hổng loại A Các lỗ hổng này cho phép người sử dụng ở ngoài có thể truy nhập vào hệ thống bất hợp pháp. Lỗ hổng này rất nguy hiểm, có thể làm phá hủy toàn bộ hệ thống. Các lỗ hổng loại A có mức độ rất nguy hiểm, đe dọa tính toàn vẹn và bảo mật của hệ thống. Các lỗ hổng loại này thường xuất hiện ở những hệ thống quản trị yếu kém hoặc không kiểm soát được cấu hình mạng. Những lỗ hổng loại này hết sức nguy hiểm vì nó đã tồn tại sẵn có trên phần mềm sử dụng; người quản trị nếu không hiểu sâu về dịch vụ và phần mềm sử dụng sẽ có thể bỏ qua những điểm yếu này. Ví dụ, một kẻ phá hoại muốn xâm nhập vào hệ thống mà anh ta không có tài khoản truy nhập hợp lệ trên hệ thống đó. Trong trường hợp này, trước tiên kẻ phá hoại sẽ tìm ra các điểm yếu trên hệ thống, hoặc từ các chính sách bảo mật, hoặc sử dụng các công cụ dò xét thông tin như ISS trên hệ thống đó để đạt được quyền truy nhập vào hệ thống. Sau khi mục tiêu thứ nhất đã đạt được, kẻ phá hoại có thể tiếp tục tìm hiểu các dịch vụ trên hệ thống, nắm bắt được các điểm yếu và thực hiện các hành động phá hoại tinh vi hơn. Tuy nhiên, không phải bất kỳ lỗ hổng bảo mật nào cùng nguy hiểm đến hệ thống. Có rất nhiều thông báo liên quan đến lỗ hổng bảo mật trên mạng Internet, hầu hết trong số đó là các lỗ hổng loại C, và không đặc biệt nguy hiểm đối với hệ thống. Ví dụ, khi những lỗ hổng về sendmail được thông báo trên mạng, không phải ngay lập tức ảnh hưởng trên toàn bộ hệ thống. Khi những thông báo về lỗ hổng được khẳng định chắc chắn, các nhóm tin sẽ đưa ra một số phương pháp để khắc phục hệ thống. Dựa vào kẻ hở của các lỗ hỗng này, kẻ xấu sẽ xây dựng các hình thức tấn công khác nhau nhằm không chế và nắm quyền kiểm soát trên mạng. Cho đến nay, các hacker đã nghĩ ra không biết bao nhiêu kiểu tấn công từ xa qua mạng khác nhau. Mỗi cuộc tấn công thường mở đầu bằng việc trực tiếp hoặc gián tiếp chui vào một hoặc nhiều máy tính đang nối mạng của người khác. Sau khi đã vào được hệ thống mạng, hacker có thể đi đến các bước khác như xem trộm, lấy cắp, thay đổi và thậm chí phá huỷ dữ liệu hoặc làm treo các hoạt động của một hệ thống thông tin điện tử.Các hacker cũng có thể gài bẫy những người sử dụng thiếu cảnh giác hoặc đánh lừa những hệ thống thông tin kém phòng bị. Chẳng hạn, chúng sưu tầm các địa chỉ email và gửi thư kèm virus đến đó hoặc làm nghẽn tắc mạng bằng cách gửi thật nhiều các bức thư điện tử đến cùng một địa chỉ. Đôi khi các hacker xâm nhập vào một mạng máy tính nào mà nó phát hiện ra lỗi và để lại thông báo cho người quản trị mạng, tệ hơn nữa là chúng cài virus hoặc phần mềm nào đó để theo dõi và lấy đi những thông tin nội bộ CÁC PHƯƠNG PHÁP XÂM NHẬP HỆ THỐNG – BIỆN PHÁP PHÁT HIỆN VÀ NGĂN NGỪA Phương thức ăn cắp thông tin bằng Packet Sniffer Đây là chương trình ứng dụng bắt giữ được tất cả các gói tin lưu chuyển trên mạng. Phụ thuộc vào cách nghe lén và mức bảo mật trong hệ thống như thế nào, một hacker có thể sử dụng một sniffer để tìm ra tên đăng nhập, mật mã và các thông tin bí mật khác trao đổi trong mạng. Biện pháp phát hiện và ngăn ngừa: Authentication Kỹ thuật này được thực hiện bao gồm hai yếu tố: Personal Identification number (PIN) để xác thực một thiết bị hoặc một phần mềm ứng dụng. Token card là thiết bị phần cứng hoặc phần mềm sản sinh ra thông tin một cách ngẫu nhiên (password) tại một thời điểm, thường là 60 giây. Khách hàng sẽ kết nối password đó với một PIN để vào hệ thống. Giả sử một hacker học được password đó bằng kỹ thuật packet sniffers thì thông tin đó cũng không còn giá trị vì hết hạn. Mã hóa Tất cả thông tin lưu chuyển trên mạng đều được mã hóa. Khi đó, nếu hacker dùng packet sniffer thì chỉ bắt được các gói dữ liệu đã được mã hóa. Cisco dùng giao thức IPSec để mã hóa dữ liệu… Phương thức tấn công mật khẩu Password attack Các hacker tấn công password bằng một số phương pháp như: brute – force attack, chương trình Trojan House, IP spoofing, và packet sniffer. Mặc dù dùng packet sniffer và IP spoofing có thể lấy được user account và password, nhưng hacker lại thường sử dụng brute – force để lấy user account hơn. Tấn công brute – force được thực hiện bằng cách dùng một chương trình chạy trên mạng, cố gắng login vào các phần share trên server bằng phương pháp “thử và sai” password. Biện pháp phát hiện và ngăn ngừa: Phương pháp giảm thiểu tấn công password: giới hạn số lần login sai,đặt password sai. Cấm truy cập vào thiết bị, server từ xa thông qua các giao thức không an toàn như FTP, Telnet… Phương thức tấn công bằng Mail Relay Đây là phương pháp phố biến hiện nay. Email server nếu cấu hình không chuẩn hoặc Username/ password bị lộ. Hacker có thể lợi dụng email server để gửi mail gây ngập mạng, phá hoại hệ thống email khác. Biện pháp phát hiện và ngăn ngừa: Giới hạn dung lượng Mail box Sử dụng các phương thức chống Relay Spam bằng các công cụ bảo mật cho SMTP server, đặt password cho SMTP Sử dụng gateway SMTP riêng Phương thức tấn công hệ thống DNS DNS Server là hệ thống quan trọng nhất trong hệ thống máy chủ. Việc tấn công và chiếm quyền điều khiển máy chủ phục vụ DNS là một sự phá hoại nguy hiểm liên quan đến toàn bộ hoạt động của hệ thống truyền trên mạng. Biện pháp phát hiện và ngăn ngừa: Hạn chế tối đa các dịch vụ khác trên hệ thống máy chủ DNS Cài đặt hệ thống IDS Host cho hệ thống DNS Luôn cập nhật phiên bản mới có sửa lỗi của hệ thống phần mềm DNS Phương thức tấn công Man-in-the-middle attack Tấn công theo kiểu Man-in-the-middle là trường hợp trong đó hacker sử dụng một AP để đánh cắp các node di động bằng cách gởi các tín hiệu RF mạnh hơn AP hợp pháp đến các node đó. Các node di động nhận thấy có AP phát tín hiệu RF tốt hơn nên sẽ kết nối đến AP giả mạo này, và lúc này thì hacker toàn quyền sử lý. Tấn công dạng này được thực hiện nhờ một packet sniffer. Biện pháp phát hiện và ngăn ngừa: Tấn công dạng này có thể hạn chế bằng cách mã hóa dữ liệu được gửi ra. Nếu các hacker có bắt được các gói dữ liệu thì là các dữ liệu đã được mã hóa. Phương thức tấn công để thăm dò mạng Thăm dò mạng tất cả các hoạt động nhằm mục đích lấy các thông tin về mạng. Khi một hacker cố gắng chọc thủng một mạng thường thì họ phải thu thập được thông tin về mạng càng nhiều càng tốt trước khi tấn công. Điều này có thể thực hiện bởi các công cụ như ping sweep, hay port scan. Biện pháp phát hiện và ngăn ngừa: Ta không thể ngăn chặn được hoàn toàn các hoạt động thăm dò kiểu như vậy. Ví dụ ta có thể tắt đi ICMP echo và echo-reply, khi đó có thể chặn được ping sweep, nhưng lại nhưng lại khó cho ta khi mạng có sự cố, cần phải chẩn đoan lỗi do đâu. NIDS và HIDS giúp nhắc nhở khi có các hoạt động thăm dò xảy ra trong mạng Phương thức tấn công lớp ứng dụng Tấn công lớp ứng dụng được thực hiện bằng nhiều cách khác nhau. Một trong những cách thông dụng nhất là tấn công vào các điểm yếu của phần mềm như sendmail, HTTP, hay FTP…Nguyên nhân chủ yếu của các tấn công lớp ứng dụng này là chúng sử dụng những port cho qua bởi Firewall. Ví dụ các hacker tấn công Web server bằng cách sử dụng TCP port 80, mail server bằng TCP port 25… Biện pháp phát hiện và ngăn ngừa: Lưu lại file log, và thường xuyên phân tích file log. Luôn cập nhật các patch cho OS và các ứng dụng. Dùng IDS, có 2 loại IDS: HIDS, NIDS. Phương thức tấn công Virus và Trojan Horse Các nguy hiểm cho các workstation và end user là các tấn công virus và trojan house. Virus là một phần mềm có hại, được đính kèm vào một chương trình thực thi khác để thực hiện một chức năng phá hoại nào đó. Trojan house thì hoạt động khác hơn. Một ví dụ về Trojan house là một phần mềm ứng dụng có thể chạy trong một game đơn giản ở máy workstation. Trong khi người dùng đang mải mê chơi game, Trojan house sẽ gởi một bản copy đến tất cả các user trong address book. Khi user khác nhận và chơi trò chơi thì nó lại làm tiếp tục như vậy, gởi đến tất cả các địa chỉ mail có trong address book của user đó. Biện pháp phát hiện và ngăn ngừa: Có thể dùng các phần mềm chống Virus để diệt các Virus và Trojan house và luôn luôn cập nhật chương trình mới. CÁC GIẢI PHÁP BẢO MẬT AN TOÀN CHO HỆ THỐNG Bảo mật VPN (Virtual Private Network) Mạng riêng ảo là phương pháp làm cho một mạng công cộng hoạt động giống như mạng cục bộ, có các đặc tính như bảo mật và tính ưu tiên mà người dùng ưa thích. VPN cho phép kết nối với những người dùng ở xa, các văn phòng chi nhánh của bộ, công ty và các đối tác đang sử dụng một mạng công cộng. Định đường hầm là một cơ chế dùng cho việc đóng gói một giao thức vào trong một giao thức khác. Định đường hầm cho phép những giao thức như IPX, Apple Talk và IP được mã hóa sau đó đóng gói trong IP… VPN còn cung cấp các thỏa thuận về chất lượng dịch vụ (QoS-Quality of Service), là một thuật ngữ dùng để chỉ chất lượng của một hệ thống truyền thông hay một kết nối truyền thông trong mạng. VPN = Định đường hầm + Bảo mật + Các thỏa thuận về QoS Ưu điểm của VPN Giảm chi phí: VPN cho phép tiết kiệm đến 60% chi phí so với thuê đường truyền. Truy cập mọi lúc mọi nơi. Giảm chi phí đầu tư: sẽ không tốn chi phí đầu tư cho máy chủ, bộ định tuyến cho mạng đường trục và bộ chuyển mạch phục vụ cho việc truy cập vì các thiết bị này do các nhà cung cấp dịch vụ quản lý và làm chủ. Giảm chi phí quản lý và hỗ trợ: với qui mô kinh tế, các nhà cung cấp dịch vụ có thể mang lại cho các đơn vị sử dụng những khoản tiết kiệm có giá trị so với việc tự quản lý mạng. Các loại mạng VPN: Có hai loại phổ biến hiện nay là VPN truy cập từ xa (Remote-Access) và VPN điểm nối điểm (site-to-site). VPN truy cập từ xa (Remote-Access) Hình 1.1. Mô hình VPN client to site VPN truy cập từ xa còn được gọi là mạng Dial-up riêng ảo (VPDN), là kết nối người dùng đến LAN thường là nhu cầu của một tổ chức có nhiều nhân viên cần liên hệ với mạng riêng của mình từ rất nhiều địa điểm ở xa VPN điểm nối điềm (site-to-site) Hình 1.2. Mô hình VPN site-to-site VPN site-to-site là việc sử dụng mật mã dành cho nhiều người để kết nối nhiều điểm cố định với nhau thông qua một mạng công cộng như Internet. Loại này có thể dựa trên Intranet hoặc Extranet. Loại dựa trên Intranet: nếu một công ty có vài chi nhánh từ xa muốn tham gia vào mạng riêng duy nhất họ có thể tạo ra một VPN intranet (VPN nội bộ) để nối LAN với LAN. Loại dựa trên Extranet: khi một công ty có mối quan hệ mật thiết với công ty khác (ví dụ như đối tác cung cấp, khách hàng…)họ có thể xây dựng một VPN extranet (VPN mở rộng) kết nối LAN với LAN để nhiều tổ chức khác nhau có thể làm việc trên một môi trường chung. Firewall Là hàng rào giữa hai mạng máy tính, nó bảo vệ mạng này tránh khỏi sự xâm nhập từ mạng kia. Firewall rất cần thiết, chức năng chính là kiểm soát luồng thông tin giữa mạng cần bảo vệ và internet thông qua các chính sách truy cập đã được thiết lập. Firewall có thể là phần cứng, phần mềm hoặc cả hai. Tất cả đều có chung một thuộc tính là cho phép xử lý dựa trên địa chỉ nguồn, bên cạnh đó nó còn có tính năng như dự phòng trong trường hợp xảy ra lỗi hệ thống. Hình 1.3. Mô hình tổng quát Firewall Do đó, việc lựa chọn Firewall thích hợp cho một hệ thống không phải là dễ dàng. Các firewall đều phụ thuộc vào môi trường, cấu hình mạng, ứng dụng cụ thể. Khi xem xét lựa chọn một firewall cần tập trung tìm hiểu tập các chức năng của firewall như tính năng lọc địa chỉ, gói tin… Các thành phần của Firewall: Một Firewall chuẩn bao gồm một hay nhiều các thành phần sau: Bộ lọc packet. Cổng ứng dụng Cổng mạch Bộ lọc gói tin Ưu điểm Đa số các hệ thống firewall đều sử dụng bộ lọc packet. Một trong những ưu điểm của phương pháp dùng bộ lọc packet là chi phí thấp vì cơ chế lọc packet đã được bao gồm trong mỗi phần mềm router. Ngoài ra, bộ lọc packet là trong suốt đối với người sử dụng và các ứng dụng. Hạn chế Việc định nghĩa chế độ lọc packet là một việc khá phức tạp, nó đòi hỏi người quản trị cần phải hiểu biết chi tiết về các dịch vụ internet, các dạng packet header, và các giá trị cụ thể mà họ có thể nhận trên môi trường. Do làm việc dựa trên header của các packet, rõ ràng là bộ lọc packet không kiểm soát được nội dung thông tin của packet. Các packet chuyển qua vẫn có thể mang theo những hành động với ý đồ ăn cắp thông tin hay phá hoại của kẻ xấu. Bảo mật bằng IDS (Hệ thống dò tìm và phát hiện xâm nhập) IDS (Intrusion Detection System) là hệ thống phát hiện xâm nhập, cung cấp thêm cho việc bảo vệ an toàn thông tin mạng ở mức độ cao, nó theo dõi, giám sát các truy cập, có khả năng phát hiện ra các đoạn mã độc hại hoạt động trong hệ thống. Có hai dạng chính đó là: Network bases –IDS và Host based – IDS. IDS có thể là phần mềm hoặc phần cứng, mục đích chung của IDS là quan sát các sự kiện trên hệ thống mạng và thông báo cho nhà quản trị biết về an ninh của sự kiện cảm biến được cho là đáng báo động. Hình 1.4. Hệ thống chống xâm nhập IDS Hệ thống phát hiện xâm nhập phần mềm (Snort) Để cài được Snort thì đầu tiên phải xem xét quy mô của hệ thống mạng, yếu cầu để có thể cài đặt Snort như: cần không gian đĩa cứng để lưu trữ các file ghi log ghi lại cảnh báo, một máy chủ khá mạnh. Người quản trị sẽ chọn cho mình một hệ điều hành mà họ sử dụng thành thạo nhất. Snort có thể chạy trên các hệ điều hành như window, linux… Hệ thống phát hiện xâm nhập phần cứng (Cisco) Cisco cung cấp nhiều loại thiết bị phát hiện xâm nhập, có nhiều nền tảng cảm biến cho phép quyết định vị trí tốt nhất để giám sát hoạt động xâm nhập cho hệ thống như: Cisco IDS 4235, Cisco IPS 4.200 CHƯƠNG II HỆ THỐNG PHÁT HIỆN XÂM NHẬP IDS 2.1. GIỚI THIỆU VỀ IDS Cách đây khoảng 25 năm, khái niệm phát hiện xâm nhập xuất hiện qua một bài báo của James Anderson. Khi đó người ta cần IDS 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 việc lạm dụng đặc quyền để giám sát tài sản hệ thống mạng. Các nghiên cứu về hệ thống phát hiện xâm nhập được nghiên cứu chính thức từ năm 1983 đến năm 1988 trước khi được sử dụng tại mạng máy tính của không lực Hoa kỳ. Cho đến tận năm 1996, các khái niệm IDS vẫn chưa được phổ biến, một số hệ thống IDS bắt đầu phát triển dựa trên sự bùng nổ của công nghệ thông tin. Đến năm 1997 IDS mới được biết đến rộng rãi và thực sự đem lại lợi nhuận với sự đi đầu của công ty ISS, một năm sau đó, Cisco nhận ra tầm quan trọng của IDS và đã mua lại một công ty cung cấp giải pháp IDS tên Wheel. Hiện tại, các thống kê cho thấy IDS đang là một trong các công nghệ an ninh được sử dụng nhiều nhất và vẫn còn phát triển. Định nghĩa về IDS Hệ thống phát hiện xâm nhập (Intrusion Detection System - IDS) là hệ thống phần cứng hoặc phần mềm có chức năng tự động theo dõi các sự kiện xảy ra, giám sát lưu thông mạng, và cảnh báo các hoạt động khả nghi cho nhà quản trị. Một hệ thống IDS có thể vừa là phần cứng vừa là phần mềm phối hợp một cách hợp lí để nhận ra những mối nguy hại có thể tấn công. Chúng phát hiện những hoạt động xâm nhập trái phép vào mạng. Chúng có thể xác định những hoạt động xâm nhập bằng việc kiểm tra sự đi lại của mạng, những host log, những system call, và những khu vực khác khi phát ra những dấu hiệu xâm nhập. IDS cũng có thể phân biệt giữa những tấn công từ bên trong(những người trong công ty) hay tấn công từ bên ngoài (từ các Hacker). IDS phát hiện dựa trên các dấu hiệu đặc biệt về nguy cơ đã biết (giống như các phần mềm diệt virus dựa vào các dấu hiệu đặc biệt để phát hiện và diệt virus) hay dựa trên so sánh lưu thông mạng hiện tại với baseline (thông số đo đạc chuẩn của hệ thống) để tìm ra các dấu hiệu khác thường. Một hệ thống phát hiện xâm nhập trái phép cần phải thỏa mãn những yêu cầu sau: Tính chính xác (Accuracy): IDS không được coi những hành động thông thường trong môi trường hệ thống là những hành động bất thường hay lạm dụng (hành động thông thường bị coi là bất thường được gọi là false positive). Hiệu năng (Performance): Hiệu năng của IDS phải đủ để phát hiện xâm nhập trái phép trong thời gian thực (thời gian thực nghĩa là hành động xâm nhập trái phép phải được phát hiện trước khi xảy ra tổn thương nghiêm trọng tới hệ thống). Tính trọn vẹn (Completeness): IDS không được bỏ qua một xâm nhập trái phép nào (xâm nhập không bị phát hiện gọi là false negative). Đây là một điều kiện khó có thể thỏa mãn được vì gần như không thể có tất cả thông tin về các tấn công từ quá khứ,hiên tại va tương lai. Chịu lỗi (Fault Tolerance): bản thân IDS phải có khả năng chống lại tấn công. Khả năng mở rộng (Scalability): IDS phải có khả năng sử lý trong trạng thái xấu nhất là không bỏ sót thông tin. Yêu cầu này có liên quan đến hệ thống mà các sự kiện tương quan đến từ nhiều nguồn tài nguyên với số lượng host nhỏ. Với sự phát triển nhanh và mạnh của mạng máy tính, hệ thống có thể bị quá tải bởi sự tăng trưởng của số lượng sự kiện. Hình sau minh hoạ các vị trí thường cài đặt IDS trong mạng : Hình 2.1. Các vị trí đặt IDS trong mạng Lợi ích của IDS Lợi thế của hệ thống này là có thể phát hiện được những kiểu tấn công chưa biết trước. Tuy nhiên, hệ thống này lại sinh ra nhiều cảnh bảo sai do định nghĩa quá chung về cuộc tấn công. Thống kê cho thấy trong hệ thống này, hầu hết các cảnh báo là cảnh báo sai, trong đó có rất nhiều cảnh báo là từ những hành động bình thường, chỉ có một vài hành động là có ý đồ xấu, vấn đề là ở chỗ hầu hết các hệ thống đều có ít khả năng giới hạn các cảnh báo nhầm. Sử dụng hệ thống IDS để nâng cao khả năng quản lý và bảo vệ mạng, lợi ích mà nó đem lại là rất lớn. Một mặt nó giúp hệ thống an toàn trước những nguy cơ tấn công, mặt khác nó cho phép nhà quản trị nhận dạng và phát hiện những nguy cơ tiềm ẩn dựa trên những phân tích và báo cáo được IDS cung cấp. Từ đó, hệ thống IDS có thể góp phần loại trừ được một cách đáng kể những lỗ hổng về bảo mật trong môi trường mạng. Phân biệt những hệ thống không phải là IDS Theo một cách riêng biệt nào đó, các thiết bị bảo mật dưới đây không phải là IDS: Hệ thống đăng nhập mạng được sử dụng để phát hiện lỗ hổng đối với vấn đề tấn công từ chối dịch vụ (DoS) trên một mạng nào đó. Ở đó sẽ có hệ thống kiểm tra lưu lượng mạng. Các công cụ đánh giá lỗ hỗng kiểm tra lỗi và lỗ hổng trong hệ điều hành, dich vụ mạng (các bộ quét bảo mật). Các sản phẩm chống virus được thiết kế để phát hiện các phần mềm mã nguy hiểm như virus, trojan horse, worm,…Mặc dù những tính năng mặc định có thể giống IDS và thường cung cấp một công cụ phát hiện lỗ hổng bảo mật hiệu quả. Tường lửa – firewall Các hệ thống bảo mật, mật mã như: SSL, Kerberos, VPN,… Kiến Trúc và nguyên lý hoạt động IDS Thành phần của IDS Hình 2.2. Thành phần của IDS Kiến trúc của hệ thống IDS bao gồm các thành phần chính: thành phần thu thập gói tin (information collection), thành phần phân tích gói tin (Dectection), thành phần phản hồi (respontion) nếu gói tin đó được phát hiện là một tấn công của tin tặc. Trong ba thành phần này thì thành phần phân tích gói tin là quan trọng nhất và ở thành phần này bộ cảm biến đóng vai trò quyết định nên chúng ta sẽ đi vào phân tích bộ cảm biến để hiểu rõ hơn kiến trúc của hệ thống phát hiện xâm nhập là như thế nào. Bộ cảm biến được tích hợp với thành phần là sưu tập dữ liệu và một bộ tạo sự kiện. Cách sưu tập này được xác định bởi chính sách tạo sự kiện để định nghĩa chế độ lọc thông tin sự kiện. Bộ tạo sự kiện (hệ điều hành, mạng, ứng dụng) cung cấp một số chính sách thích hợp cho các sự kiện, có thể là một bản ghi các sự kiện của hệ thống hoặc các gói mạng. Vai trò của bộ cảm biến là dùng để lọc thông tin và loại bỏ dữ liệu không tương thích đạt được từ các sự kiện liên quan với hệ thống bảo vệ, vì vậy có thể phát hiện được các hành động nghi ngờ. Bộ phân tích sử dụng cơ sở dữ liệu chính sách phát hiện cho mục này. Ngoài ra còn có các thành phần: dấu hiệu tấn công, profile hành vi thông thường, các tham số cần thiết (ví dụ: các ngưỡng). Thêm vào đó, cơ sở dữ liệu giữ các tham số cấu hình, gồm có các chế độ truyền thông với module đáp trả. Bộ cảm biến cũng có cơ sở dữ liệu của riêng nó, gồm dữ liệu lưu về các xâm phạm phức tạp tiềm ẩn (tạo ra từ nhiều hành động khác nhau). Nguyên lý hoạt động Intrustion Monitoring Prevention Simulation Analysis Respose Intruction detection Notification Hình 2.3. Hoạt động của IDS Quá trình phát hiện có thể được mô tả bởi các yếu tố cơ bản nền tảng sau: Thu thập thông tin (information source): Kiểm tra tất cả các gói tin trên mạng (Intrustion Montorring). Sự phân tích (Analysis): Phân tích tất cả các gói tin đã thu thập để cho biết hành động nào là tấn công (Intruction detection). Xuất thông tin cảnh báo (response): hành động cảnh báo cho sự tấn công được phân tích ở trên nhờ bộ phận (thông báo - Notification). Khi một hành động xâm nhập được phát hiện, IDS đưa ra các cảnh báo đến các quản trị viên hệ thống về sự việc này. Bước tiếp theo được thực hiện bởi các quản trị viên hoặc có thể là bản thân IDS bằng cách lợi dụng các tham số đo bổ sung (các chức năng khóa để giới hạn các session, backup hệ thống, định tuyến các kết nối đến bẫy hệ thống, cơ sở hạ tầng hợp lệ,…) – theo các chính sách bảo mật của các tổ chức. Một IDS là một thành phần nằm trong chính sách bảo mật. Giữa các nhiệm vụ IDS khác nhau, việc nhận ra kẻ xâm nhập là một trong những nhiệm vụ cơ bản. Nó cũng hữu dụng trong việc nghiên cứu mang tính pháp lý các tình tiết và việc cài đặt các bản vá thích hợp để cho phép phát hiện các tấn công trong tương lai nhằm vào các cá nhân cụ thể hoặc tài nguyên hệ thống. Phát hiện xâm nhập đôi khi có thể đưa ra các báo cảnh sai, ví dụ những vấn đề xảy ra do trục trặc về giao diện mạng hoặc việc gửi phần mô tả các tấn công hoặc các chữ ký thông qua mail. Chức năng của IDS Những đe dọa đối với an ninh mạng ngày càng trở nên cấp thiết đã đặt ra câu hỏi cho các nhà an ninh mạng chuyên nghiệp có nên sử dụng hệ thống phát hiện xâm nhập trừ khi những đặc tính của hệ thống phát hiện xâm nhập và hữu ích cho họ, bổ sung những điểm yếu của hệ thống khác…IDS có được chấp nhận là một thành phần thêm vào cho hệ thống an toàn không vẫn là câu hỏi của nhiều nhà quản trị hệ thống. Có nhiều tài liệu giới thiệu về những chức năng mà IDS đã làm được và đây là vài lý do đưa ra tại sao chon IDS: Bảo vệ tính toàn vẹn (integrity) của dữ liệu, bảo đảm sự nhất quán của dữ liệu trong hệ thống. Các biện pháp đưa ra ngăn chặn được việc thay đổi bất hợp pháp hoặc phá hoại dữ liệu. Bảo vệ tính bí mật, giữ cho thông tin không bị lộ ra ngoà i. Bảo vệ tính khá dụng, tức là hệ thống luôn sẵn sàng thực hiện yêu cầu truy nhập thông tin của người dùng hợp pháp. Bảo vệ tính riêng tư, tức là đảm bảo cho người sử dụng khai thác tài nguyên của hệ thống theo đúng chức năng, nhiệm vụ đã được phân cấp. Cung cấp thông tin về sự xâm nhập, đưa ra những chính sách đối phó, khôi phục, sửa chữa.. Nói tóm lại có thể tóm tắt IDS như sau: Chức năng quan trọng nhất là: giám sát – cảnh báo – bảo vệ. Giám sát: lưu lượng mạng và các hoạt động khả nghi. Cảnh báo: báo cáo về tình trạng mạng cho hệ thống và nhà quản trị. Bảo vệ: dùng những thiết lập mặc định và các cấu hình từ nhà quản trị mà có những hành động thiết thực để chống lại kẻ xâm nhập và phá hoại. Chức năng mở rộng: Phân biệt: tấn công bên trong và tấn công từ bên ngoài. Phát hiện: những dấu hiệu bất thường dựa trên những gì đã biết hoặc nhờ vào sự so sánh thông lượng mạng hiện tại với baseline. Khi IDS chạy một thời gian sẽ đưa ra được những điểm yếu đó là điều hiển nhiên. Việc đưa ra những điểm yếu đó nhằm đánh giá chất lượng việc thiết kế mạng cũng như cách bố trí bảo vệ phòng thủ của các nhà quản trị mạng. PHÂN LOẠI IDS Cách thông thường nhất để phân loại các hệ thống IDS là dựa vào đặc điểm của nguồn dữ liệu thu thập được. Trong trường hợp này, các hệ thống IDS được chia thành các loại sau: Network-based IDS (NIDS): Sử dụng dữ liệu trên toàn bộ lưu thông mạng, cùng với dữ liệu kiểm tra từ một hoặc một vài máy trạm để phát hiện xâm nhập. Host-based IDS (HIDS): Sử dụng dữ liệu kiểm tra từ một máy trạm đơn để phát hiện xâm nhập. Network based IDS – NIDS Hệ thống IDS dựa trên mạng sử dụng bộ dò và bộ bộ cảm biến cài đặt trên toàn mạng. Những bộ dò này theo dõi trên mạng nhằm tìm kiếm những lưu lượng trùng với những mô tả sơ lược được định nghĩa hay là những dấu hiệu. Những bộ bộ cảm biến thu nhận và phân tích lưu lượng trong thời gian thực. Khi ghi nhận được một mẫu lưu lượng hay dấu hiệu, bộ cảm biến gửi tín hiệu cảnh báo đến trạm quản trị và có thể được cấu hình nhằm tìm ra biện pháp ngăn chặn những xâm nhập xa hơn. NIPS là tập nhiều sensor được đặt ở toàn mạng để theo dõi những gói tin trong mạng so sánh với với mẫu đã được định nghĩa để phát hiện đó là tấn công hay không. Được đặt giữa kết nối hệ thống mạng bên trong và mạng bên ngoài để giám sát toàn bộ lưu lượng vào ra. Có thể là một thiết bị phần cứng riêng biệt được thiết lập sẵn hay phần mềm cài đặt trên máy tính. Chủ yếu dùng để đo lưu lượng mạng được sử dụng. Tuy nhiên có thể xảy ra hiện tượng nghẽn cổ chai khi lưu lượng mạng hoạt động ở mức cao Hình 2.4. Mô hình Network based IDS - NIDS Ưu điểm Quản lý được cả một network segment (gồm nhiều host). “Trong suốt” với người sử dụng lẫn kể tấn công Cài đặt và bảo trì đơn giản, không ảnh hưởng tới mạng. Tránh DOS ảnh hưởng tới một host nào đó. Có khả năng xác định lỗi ở tầng Network (trong mô hình OSI). Đôc lập với OS (Operating System) Nhược điểm Có thể xảy ra trường hợp báo động giả. Không thể phân tích các traffic đã được encrypt (vd: SSL, SSH, IPSec…).. NIDS đòi hỏi phải được cập nhật các signature mới nhất để thực sự an toàn Có độ trễ giữa thời điểm bị attack với thời điểm phát báo động. Khi báo động được phát ra, hệ thống có thể đã bị tổn hại. Không cho biết việc attack có thành công hay không. Một trong những hạn chế là giới hạn băng thông. Những bộ dò mạng phải nhận tất cả các lưu lượng mạng, sắp xếp lại những lưu lượng đó cũng như phân tích chúng. Khi tốc độ mạng tăng lên thì khả năng của đầu dò cũng vậy. Một giải pháp là bảo đảm cho mạng được thiết kế chính xác để cho phép sự sắp đặt của nhiều đầu dò. Khi mà mạng phát triển, thì càng nhiều đầu dò được lắp thêm vào để bảo đảm truyền thông và bảo mật tốt nhất. Một cách mà các hacker cố gắng nhằm che đậy cho hoạt động của họ khi gặp hệ thống IDS dựa trên mạng là phân mảnh những gói thông tin của họ. Mỗi giao thức có một kích cỡ gói dữ liệu giới hạn, nếu dữ liệu truyền qua mạng lớn hơn kích cỡ này thì gói dữ liệu đó sẽ được phân mảnh. Phân mảnh đơn giản chỉ là quá trình chia nhỏ dữ liệu ra những mẫu nhỏ. Thứ tự của việc sắp xếp lại không thành vấn đề miễn là không xuất hiện hiện tượng chồng chéo. Nếu có hiện tượng phân mảnh chồng chéo, bộ cảm biến phải biết quá trình tái hợp lại cho đúng. Nhiều hacker cố gắng ngăn chặn phát hiện bằng cách gởi nhiều gói dữ liệu phân mảnh chồng chéo. Một bộ cảm biến sẽ không phát hiện các hoạt động xâm nhập nếu bộ cảm biến không thể sắp xếp lại những gói thông tin một cách chính xác. Host based IDS – HIDS Bằng cách cài đặt một phần mềm trên tất cả các máy tính chủ, IDS dựa trên máy chủ quan sát tất cả những hoạt động hệ thống, như các file log và những lưu lượng mạng thu thập được. Hệ thống dựa trên máy chủ cũng theo dõi OS, những cuộc gọi hệ thống, lịch sử sổ sách (audit log) và những thông điệp báo lỗi trên hệ thống máy chủ. Trong khi những đầu dò của mạng có thể phát hiện một cuộc tấn công, thì chỉ có hệ thống dựa trên máy chủ mới có thể xác định xem cuộc tấn công có thành công hay không. HIDS thường được cài đặt trên một máy tính nhất đinh. Thay vì giám sát hoạt động của một network segment, HIDS chỉ giám sát các hoạt động trên một máy tính. HIDS thường được đặt trên các host xung yếu của tổ chức, và các server trong vùng DMZ - thường là mục tiêu bị tấn công đầu tiên. Nhiêm vụ chính của HIDS là giám sát các thay đổi trên hệ thống, bao gồm: Các tiến trình. Các entry của Registry. Mức độ sử dụng CPU. Kiểm tra tính toàn vẹn và truy cập trên hệ thống file. Một vài thông số khác. Các thông số này khi vượt qua một ngưỡng định trước hoặc những thay đổi khả nghi trên hệ thống file sẽ gây ra báo động. Hình 2.5. Mô hình Host based IDS – HIDS Ưu điểm Có khả năng xác đinh user liên quan tới một event. HIDS có khả năng phát hiện các cuộc tấn công diễn ra trên một máy, NIDS không có khả năng này. Có thể phân tích các dữ liệu mã hoá. Cung cấp các thông tin về host trong lúc cuộc tấn công diễn ra trên host này. Nhược điểm Thông tin từ HIDS là không đáng tin cậy ngay khi sự tấn công vào host này thành công. Khi OS bị "hạ" do tấn công, đồng thời HIDS cũng bị "hạ". HIDS phải được thiết lập trên từng host cần giám sát . HIDS không có khả năng phát hiện các cuộc dò quét mạng (Nmap, Netcat…). HIDS cần tài nguyên trên host để hoạt động. HIDS có thể không hiệu quả khi bị DOS. CƠ CHẾ HOẠT ĐỘNG CỦA IDS Có hai cách tiếp cận cơ bản đối với việc phát hiện và phòng chống xâm nhập là: Phát hiện sự lạm dụng (Misuse Detection Model): Hệ thống sẽ phát hiện các xâm nhập bằng cách tìm kiếm các hành động tương ứng với các kĩ thuật xâm nhập đã được biết đến (dựa trên các dấu hiệu - signatures) hoặc các điểm dễ bị tấn công của hệ thống. Phát hiện sự bất thường (Anomaly Detection Model): Hệ thống sẽ phát hiện các xâm nhập bằng cách tìm kiếm các hành động khác với hành vi thông thường của người dùng hay hệ thống. Mô hình phát hiện sự lạm dụng Phát hiện sự lạm dụng là phát hiện những kẻ xâm nhập đang cố gắng đột nhập vào hệ thống mà sử dụng một số kỹ thuật đã biết. Nó liên quan đến việc mô tả đặc điểm các cách thức xâm nhập vào hệ thống đã được biết đến, mỗi cách thức này được mô tả như một mẫu. Hệ thống phát hiện sự lạm dụng chỉ thực hiện kiểm soát đối với các mẫu đã rõ ràng. Mẫu có thể là một xâu bit cố định (ví dụ như một virus đặc tả việc chèn xâu),…dùng để mô tả một tập hay một chuỗi các hành động đáng nghi ngờ. Một hệ thống phát hiện sự lạm dụng điển hình sẽ liên tục so sánh hành động của hệ thống hiện tại với một tập các kịch bản xâm nhập để cố gắng dò ra kịch bản đang được tiến hành. Hệ thống này có thể xem xét hành động hiện tại của hệ thống được bảo vệ trong thời gian thực hoặc có thể là các bản ghi kiểm tra được ghi lại bởi hệ điều hành. Các hệ thống phát hiện sự lạm dụng thế hệ đầu tiên sử dụng các luật (rules) để mô tả những gì mà các nhà quản trị an ninh tìm kiếm trong hệ thống. Một lượng lớn tập luật được tích luỹ dẫn đến khó có thể hiểu và sửa đổi bởi vì chúng không được tạo thành từng nhóm một cách hợp lý trong một kịch bản xâm nhập. Để giải quyết khó khăn này, các hệ thống thế hệ thứ hai đưa ra các biểu diễn kịch bản xen kẽ, bao gồm các tổ chức luật dựa trên mô hình và các biểu diễn về phép biến đổi trạng thái. Điều này sẽ mang tính hiệu quả hơn đối với người dùng hệ thống cần đến sự biểu diễn và hiểu rõ ràng về các kịch bản. Hệ thống phải thường xuyên duy trì và cập nhật để đương đầu với những kịch bản xâm nhập mới được phát hiện. Mô hình phát hiện sự bất thường Dựa trên việc định nghĩa và mô tả đặc điểm của các hành vi có thể chấp nhận của hệ thống để phân biệt chúng với các hành vi không mong muốn hoặc bất thường, tìm ra các thay đổi, các hành vi bất hợp pháp. Như vậy, bộ phát hiện sự không bình thường phải có khả năng phân biệt giữa những hiện tượng thông thường và hiện tượng bất thường. Ranh giới giữa dạng thức chấp nhận được và dạng thức bất thường của đoạn mã và dữ liệu lưu trữ được định nghĩa rõ ràng (chỉ cần một bit khác nhau), còn ranh giới giữa hành vi hợp lệ và hành vi bất thường thì khó xác định hơn. So sánh giữa hai mô hình Bảng 1.1. So sánh 2 mô hình phát hiện Phát hiện sự lạm dụng (Misuse Detection Model) Phát hiện sự bất thường (Anomaly Detection Model) Bao gồm: - Cơ sở dữ liệu các dấu hiệu tấn công. - Tìm kiếm các hành động tương ứng với các kĩ thuật xâm nhập biết đến (dựa trên dấu hiệu - signatures). Bao gồm: - Cơ sở dữ liệu các hành động thông thường. - Tìm kiếm độ lệch của hành động thực tế so với hành động thông thường. Hiệu quả trong việc phát hi.ện các dạng tấn công hay các biến thể của các dạng tấn công đã biết. Không phát hiện được các dạng tấn công mới. Hiệu quả trong việc phát hiện các dạng tấn công mới mà một hệ thống phát hiện sự lạm dụng bỏ qua. Dễ cấu hình hơn do đòi hỏi ít hơn về thu thập dữ liệu, phân tích và cập nhật. Khó cấu hình hơn vì đưa ra nhiều dữ liệu hơn, phải có được một khái niệm toàn diện về hành vi đã biết hay hành vi được mong đợi của hệ thống Đưa ra kết luận dựa vào phép so khớp mẫu (pattern matching). Đưa ra kết quả dựa vào độ lệch giữa thông tin thực tế và ngưỡng cho phép). Có thể kích hoạt một thông điệp cảnh báo nhờ một dấu hiệu chắc chắn, hoặc cung cấp dữ liệu hỗ trợ cho các dấu hiệu khác. Có thể hỗ trợ việc tự sinh thông tin hệ thống một cách tự động nhưng cần có thời gian và dữ liệu thu thập được phải rõ ràng. Để có được một hệ thống phát hiện xâm nhập tốt nhất ta tiến hành kết hợp cả hai phương pháp trên trong cùng một hệ thống. Hệ thống kết hợp này sẽ cung cấp khả năng phát hiện nhiều loại tấn công hơn và hiệu quả hơn. CÁCH PHÁT HIỆN KIỂU TẤN CÔNG THÔNG DỤNG CỦA IDS Tấn công từ chối dịch vụ (Denial of Service attack) Denial of service (DoS) attack có mục đích chung là đóng băng hay chặn đứng tài nguyên của hệ thống đích. Cuối cùng, mục tiêu trở nên không thể tiếp cận và không thể trả lời. DoS tấn công vào các mục tiêu bao gồm 3 dạng là mạng, hệ thống và ứng dụng. Phá hoại Network: kiểu tấn công SYN flood là một dạng tấn công từ chối dịch vụ, kẻ tấn công sẽ gửi các gói tin kết nối SYN đến hệ thống… Phá hoại hệ thống: bao gồm thiết bị như Ping of Death, Teardrop.. các kiểu tấn công nhằm lợi dụng lỗ hổng trên hệ điều hành nhằm phá hoại, gây quá tải hệ thống. Sự kiện này có thể xảy ra bằng cách gửi gói tin có định dạng khác thường tới hệ thống và thiết bị, chúng có thể được tạo ra bằng các công cụ tấn công được lập trình trước. Phá hoại ứng dụng: bằng cách lợi dụng điểm yếu trên ứng dụng, cơ sở dữ liệu, email, trang web,… Ví dụ như một email rất dài hay một số lượng email lớn có thể gây quá tải cho server của các ứng dụng đó. Giải pháp của IDS: Một firewall dạng proxy rất hiệu quả để ngăn chặn các gói tin không mong muốn từ bên ngoài, tuy nhiên Network IDS có thể phát hiện được các tấn công dạng gói tin. Quét và thăm dò (Scanning và Probe) Bộ quét và thăm dò tự động tìm kiếm hệ thống trên mạng để xác định điểm yếu. Tuy các công cụ này được thiết kế cho mục đích phân tích để phòng ngừa, nhưng hacker có thể được sử dụng để gây hại cho hệ thống. Các công cụ quét và thăm dò như: SATAN, ISS Internet Scanner…. Việc thăm dò có thể được thực hiện bằng cách ping đến hệ thống cũng như kiểm tra các cổng TCP và UDP để phát hiện ra ứng dụng có những lỗi đã được biết đến. Vì vậy các công cụ này có thể là công cụ đắc lực cho mục đích xâm nhập. Giải pháp của IDS: Network-based IDS có thể phát hiện các hành động nguy hiểm trước khi chúng xảy ra. Host-based IDS cũng có thể có tác dụng đối với kiểu tấn công này, nhưng không hiệu quả bằng giải pháp dựa trên mạng. Tấn công vào mật mã (Password attack) Có 3 phương thức tiếp cận đối với kiểu tấn công Passwork attack. Kiểu dễ nhận thấy nhất là ăn trộm mật mã, mang lại quyền hành cho kẻ tấn công có thể truy nhập tới mọi thông tin tại mọi thành phần trong mạng. Ví dụ về trộm mật mã: như nghe trộm mật mã gửi trên mạng, gửi thư, chương trình có kèm keylogger, trojan cho người quản trị. Đoán hay bẻ khóa mật mã là phương thức tiếp cận được gọi là brute force bằng cách thử nhiều mật mã để mong tìm được mật mã đúng. Với bẻ khóa, kẻ tấn công cần truy nhập tới mật mã đã được mã hóa, hay file chứa mật mã đã mã hóa, kẻ tấn công sử dụng chương trình đoán nhiều mã với thuật toán mã hóa có thể sử dụng được để xác định mã đúng. Với tốc độ máy tính hiện nay, việc bẻ khóa là rất hiệu quả trong trường hợp mật mã là từ có nghĩa (trong từ điển), bất cứ mã nào nhỏ hơn 6 ký tự, tên thông dụng và các phép hoán vị. Ví dụ đoán và bẻ khóa như: đoán từ tên, các thông tin cá nhân, từ các từ thông dụng (có thể dùng khi biết username mà không biết mật mã), sử dụng tài khoản khách rồi chiếm quyền quản trị; các phương thức tấn công như brute force, đoán mật mã đã mã hóa từ các từ trong từ điển… Giải pháp của IDS: Một Network-based IDS có thể phát hiện và ngăn chặn cố gắng đoán mã (có thể ghi nhận sau một số lần thử không thành công), nhưng nó không có hiệu quả trong việc phát hiện truy nhập trái phép tới file đã bị mã hóa. Trong khi đó Host-based IDS lại rất có hiệu quả trong việc phát hiện việc đoán mật mã cũng như phát hiện truy nhập trái phép tới file chứa mật mã. Chiếm đặc quyền (Privilege-grabbing) Khi kẻ tấn công đã xâm nhập được vào hệ thống, chúng sẽ cố chiếm quyền truy nhập. Khi thành công, chúng đã chiếm được hệ thống. Trong hệ điều hành UNIX, điều này nghĩa là trở thành “root”, ở Windows NT là “Administrator”, trên NetWare là “Supervisor”. Dưới đây là một số kỹ thuật thường dùng cho việc chiếm đặc quyền: Đoán hay bẻ khóa của root hay administrator Gây tràn bộ đệm Khai thác Windows NT registry Truy nhập và khai thác console đặc quyền Thăm dò file, scrip hay các lỗi của hệ điều hành và ứng dụng. Giải pháp của IDS: Cả Network và Host-based IDS đều có thể xác định việc thay đổi đặc quyền trái phép ngay lập tức, ở cấp phần mềm, do việc đó xảy ra trên thiết bị chủ. Cài đặt mã nguy hiểm (Hostile code insertion) Một số loại tấn công có thể cài đặt mã nguy hiểm vào hệ thống. Mã này có thể lấy trộm dữ liệu, gây từ chối dịch vụ, xóa file, hay tạo backdoor cho lần truy nhập trái phép tiếp theo. Ta có một số ví dụ về việc cài đặt mã nguy hiểm sau: Virus: chương trình hay đoạn mã mà khi thực thi sẽ dẫn đến một số hành động tự động, có hoặc không có hại, nhưng luôn dẫn đến việc tạo ra bản sao của file hệ thống, file của ứng dụng hay dữ liệu. Trojan Horse: một chương trình hay đoạn mã mà khi thực thi sẽ dẫn đến một số hành động tự động, thường có hại, nhưng không có mục đích nhân bản. Thường thì Trojan Horse được đặt tên hay mô tả như một chương trình mà người ta muốn sử dụng, nhưng thưc tế chúng kích hoạt các hành động có thể dẫn đến hỏng file hay hệ thống. Giải pháp của IDS: Cài đặt các phần mềm bảo mật có tác dụng chống virus và các đoạn mã nguy hiểm lên gateway, server và workstation là phương pháp hiệu quả nhất để giảm mức độ nguy hiểm. Hành động phá hoại trên máy móc (Cyber vandalism) Hành động phá hoại trên máy móc bao gồm: thay đổi trang web, xóa file, phá block khởi động và chương trình hệ điều hành, format ổ đĩa. Giải pháp của IDS: Đối với giải pháp của Host-based IDS, cài đặt và cấu hình cẩn thận có thể xác định được tất cả các vấn đề liên quan đến cyber vandalism. Network-based IDS thì có thể sử dụng dấu hiệu tấn công được định nghĩa trước để phát hiện chính xác việc truy nhập trái phép vào hệ điều hành, ứng dụng cũng như xóa file và thay đổi trang web. Tấn công hạ tầng bảo mật (Security infrastructure attack) Có nhiều loại tấn công can thiệp vào việc điều khiển cơ bản của cơ sở hạ tầng bảo mật, như tạo tường lửa trái phép, chỉnh sửa tài khoản của người dùng hay router, hay thay đổi quyền của file. Tấn công vào cơ sở hạ tầng cho phép kẻ xâm nhập có thêm quyền truy nhập hay tạo thêm nhiều đường xâm nhập vào hệ thống hay mạng. Giải pháp của IDS: Host-based IDS có thể bắt giữ các cuộc đăng nhập mà thực hiện những hành động như đưa thêm tài khoản có đặc quyền, hay router và firewall bị thay đổi một cách đáng nghi. CHƯƠNG III TRIỂN KHAI ỨNG DỤNG DÒ TÌM XÂM NHẬP TRÊN HỆ THỐNG WINDOW DỰA TRÊN SNORT GIỚI THIỆU VỀ SNORT Snort là một kiểu IDS (Instruction Detection System). Nói ngắn gọn IDS là một hệ thống được cài đặt trên mạng (hay máy tính) của bạn và nhiệm vụ của nó là giám sát những gói tin vào ra hệ thống của bạn. Nếu một cuộc tấn công được phát hiện bởi snort thì nó có thể phản ứng bằng nhiều cách khác nhau phụ thuộc vào cấu hình mà bạn thiết lập, chẳng hạn như nó có thể gởi thông điệp cảnh báo đến nhà quản trị hay loại bỏ gói tin khi phát hiện có sự bất thường trong các gói tin đó. Snort là một sản phẩm được phát triển dưới mô hình mã nguồn mở. Tuy Snort miễn phí nhưng nó lại có rất nhiều tính năng tuyệt vời mà không phải sản phẩm thương mại nào cũng có thể có được. Với kiến trúc thiết kế theo kiểu module, người dùng có thể tự tăng cường tính năng cho hệ thống Snort của mình bằng việc cài đặt hay viết thêm mới các module. Cơ sở dữ liệu luật của Snort đã lên tới 2930 luật và được cập nhật thường xuyên bởi một cộng đồng người sử dụng. Snort có thể chạy trên nhiều hệ thống nền như Windows, Linux, OpenBSD, FreeBSD, NetBSD, Solaris, HP-UX, AIX, IRIX, MacOS.. KIẾN TRÚC SNORT Snort bao gồm nhiều thành phần, với mỗi phần có một chức năng riêng. Các phần chính đó là: Module giải mã gói tin (Packet Decoder) Module tiền xử lý (Preprocessors) Module phát hiện (Detection Engine) Module log và cảnh báo (Logging and Alerting System) Module kết xuất thông tin (Output Module) Kiến trúc của Snort được mô tả trong hình sau: Hình 3.1. Mô hình kiến trúc hệ thống Snort Khi Snort hoạt động nó sẽ thực hiện việc lắng nghe và thu bắt tất cả các gói tin nào di chuyển qua nó. Các gói tin sau khi bị bắt được đưa vào Môđun Giải mã gói tin. Tiếp theo gói tin sẽ được đưa vào môđun Tiền xử lý, rồi môđun Phát hiện. Tại đây tùy theo việc có phát hiện được xâm nhập hay không mà gói tin có thể được bỏ qua để lưu thông tiếp hoặc được đưa vào module Log và cảnh báo để xử lý. Khi các cảnh báo được xác định thì module Kết xuất thông tin sẽ thực hiện việc đưa cảnh báo ra theo đúng định dạng mong muốn. Sau đây ta sẽ đi sâu vào chi tiết hơn về cơ chế hoạt động và chức năng của từng thành phần. THÀNH PHẦN VÀ CHỨC NĂNG CỦA SNORT Hình 3.2. Thành phần hệ thống của Snort Module giải mã gói tin (Packet Decoder) Chuyển những gói tin bắt được thành những cấu trúc và những định danh liên kết những tầng giao thức. Sau đó, nó làm ở tầng tiếp theo, mã hóa IP " TCP hay UDP hay loại giao thức khác "lấy những thông tin hứu ích như những cổng và những địa chỉ…Snort sẽ cảnh báo nếu nó tìm thấy những header không đúng cấu trúc, chiều dài TCP bất thường. Module tiền xử lý (Preprocessor) Hình 3.3. Bộ tiền sử lý Module tiền xử lý là một module rất quan trọng đối với bất kỳ một hệ thống IDS nào để có thể chuẩn bị gói dữ liệu đưa và cho module Phát hiện phân tích. Ba nhiệm vụ chính của các môđun loại này là: Kết hợp lại các gói tin: Khi một lượng dữ liệu lớn được gửi đi, thông tin sẽ không đóng gói toàn bộ vào một gói tin mà phải thực hiện việc phân mảnh, chia gói tin ban đầu thành nhiều gói tin rồi mới gửi đi. Khi Snort nhận được các gói tin này nó phải thực hiện việc ghép nối lại để có được dữ liệu nguyên dạng ban đầu, từ đó mới thực hiện được các công việc xử lý tiếp. Như ta đã biết khi một phiên làm việc của hệ thống diễn ra, sẽ có rất nhiều gói tin đuợc trao đổi trong phiên đó. Một gói tin riêng lẻ sẽ không có trạng thái và nếu công việc phát hiện xâm nhập chỉ dựa hoàn toàn vào gói tin đó sẽ không đem lại hiệu quả cao. Giải mã và chuẩn hóa giao thức: công việc phát hiện xâm nhập dựa trên dấu hiệu nhận dạng nhiều khi bị thất bại vì khi kiểm tra các giao thức thì dữ liệu có thể được thể hiện dưới nhiều dạng khác nhau. Ví dụ: một web server có thể chấp nhận nhiều dạng URL như URL được viết dưới dạng mã hexa/Unicode, URL chấp nhận cả dấu \ hay / hoặc nhiều ký tự này liên tiếp cùng lúc. Chẳng hạn ta có dấu hiệu nhận dạng “scripts/iisadmin”, kẻ tấn công có thể vượt qua được bằng cách tùy biến các yêu cấu gửi đến web server như sau: “scripts/./iisadmin” “scripts/examples/../iisadmin” “scripts\iisadmin” “scripts/.\iisadmin” Hoặc thực hiện việc mã hóa các chuỗi này dưới dạng khác. Nếu Snort chỉ thực hiện đơn thuần việc so sánh dữ liệu với dấu hiệu nhận dạng sẽ xảy ra tình trạng bỏ sót các hành vi xâm nhập. Do vậy, một số module tiền xử lý của Snort phải có nhiệm vụ giải mã và chỉnh sửa, sắp xếp lại các thông tin đầu vào này để thông tin khi đưa đến module phát hiện có thể phát hiện được mà không bỏ sót. Hiện nay Snort đã hỗ trợ việc giải mã và chuẩn hóa cho các giao thức: telnet, http, rpc, arp. Phát hiện các xâm nhập bất thường: Các module tiền xử lý dạng này có thể thực hiện việc phát hiện xâm nhập theo bất cứ cách nào mà ta nghĩ ra bằng cách tăng cường thêm tính năng cho Snort. Ví dụ, một plugin tiền xử lý có nhiệm vụ thống kê thông lượng mạng tại thời điểm bình thường để rồi khi có thông lượng mạng bất thường xảy ra nó có thể tính toán, phát hiện và đưa ra cảnh báo (phát hiện xâm nhập theo mô hình thống kê). Phiên bản hiện tại của Snort có đi kèm hai plugin giúp phát hiện các xâm nhập bất thường đó là portscan và bo (backoffice). Portcan dùng để đưa ra cảnh báo khi kẻ tấn công thực hiện việc quét các cổng của hệ thống để tìm lỗ hổng. Bo dùng để đưa ra cảnh báo khi hệ thống đã bị nhiễm trojan backoffice và kẻ tấn công từ xa kết nối tới backoffice thực hiện các lệnh từ xa. Module phát hiện (Detection Engine) Hình 3.4. Bộ phát hiện Đây là module quan trọng nhất của Snort. Nó chịu trách nhiệm phát hiện các dấu hiệu xâm nhập. Module phát hiện sử dụng các luật được định nghĩa trước để so sánh với dữ liệu thu thập được từ đó xác định xem có xâm nhập xảy ra hay không. Rồi tiếp theo mới có thể thực hiện một số công việc như ghi log, tạo thông báo và kết xuất thông tin. Một vấn đề rất quan trọng trong module phát hiện là vấn đề thời gian xử lý các gói tin: một IDS thường nhận được rất nhiều gói tin và bản thân nó cũng có rất nhiều các luật xử lý. Có thể mất những khoảng thời gian khác nhau cho việc xử lý các gói tin khác nhau. Và khi thông lượng mạng quá lớn có thể xảy ra việc bỏ sót hoặc không phản hồi được đúng lúc. Khả năng xử lý của module phát hiện dựa trên một số yếu tố như: số lượng các luật, tốc độ của hệ thống đang chạy Snort, tải trên mạng. Một số thử nghiệm cho biết, phiên bản hiện tại của Snort khi được tối ưu hóa chạy trên hệ thống có nhiều bộ vi xử lý và cấu hình máy tính tương đối mạnh thì có thể hoạt động tốt trên cả các mạng cỡ Giga. Một module phát hiện cũng có khả năng tách các phần của gói tin ra và áp dụng các luật lên từng phần nào của gói tin đó. Các phần đó có thể là: IP header Header ở tầng giao vận: TCP, UDP Header ở tầng ứng dụng: DNS header, HTTP header, FTP header, … Phần tải của gói tin (bạn cũng có thể áp dụng các luật lên các phần dữ liệu được truyền đi của gói tin) Một vấn đề nữa trong module phát hiện đó là việc xử lý thế nào khi một gói tin bị phát hiện bởi nhiều luật. Do các luật trong Snort cũng được đánh thứ tự ưu tiên, nên một gói tin khi bị phát hiện bởi nhiều luật khác nhau, cảnh báo được đưa ra sẽ là cảnh báo ứng với luật có mức ưu tiên lớn nhất. Module log và cảnh báo (Logging and Alerting system) Tùy thuộc vào việc module phát hiện có nhận dạng đuợc xâm nhập hay không mà gói tin sẽ bị ghi log hoặc đưa ra cảnh báo. Các file log là các file text dữ liệu trong đó có thể được ghi dưới nhiều định dạng khác nhau chẳng hạn như tcpdump… Module kết xuất thông tin (output module) Hình 3.5. Bộ kết xuất thông tin Module này có thể thực hiện các thao tác khác nhau tùy theo việc bạn muốn lưu kết quả xuất ra như thế nào. Tùy theo việc cấu hình hệ thống mà nó có thể thực hiện các công việc như là: Ghi log file. Ghi syslog: syslog và một chuẩn lưu trữ các file log được sử dụng rất nhiều trên các hệ thống Unix, Linux. Ghi cảnh báo vào cơ sở dữ liệu. Tạo file log dạng xml: việc ghi log file dạng xml rất thuận tiện cho việc trao đổi và chia sẻ dữ liệu. Cấu hình lại Router, firewall. Gửi các cảnh báo được gói trong gói tin sử dụng giao thức SNMP. Các gói tin dạng SNMP này sẽ được gửi tới một SNMP server từ đó giúp cho việc quản lý các cảnh báo và hệ thống IDS một cách tập trung và thuận tiện hơn. Gửi các thông điệp SMB (Server Message Block) tới các máy tính Windows. Nếu không hài lòng với các cách xuất thông tin như trên, ta có thể viết các luật để module kết xuất thông tin thực hiện tuỳ theo mục đích sử dụng của bạn. BỘ LUẬT CỦA SNORT Giới thiệu về bộ luật Snort chủ yếu là một IDS dựa trên luật, nó sử dụng các luật được lưu trữ trong các file text, có thể được chỉnh sửa bởi người quản trị. Các luật được nhóm thành các kiểu. Các luật thuộc về mỗi loại được lưu trong các file khác nhau. File cấu hình chính của Snort là snort.conf. Snort đọc những luật này vào lúc khởi tạo và xây dựng cấu trúc dữ liệu cung cấp các luật để nắm bắt dữ liệu. Snort tìm ra các dấu hiệu và sử dụng chúng trong các luật là một vấn đề đòi hỏi sự tinh tế, vì bạn càng sử dụng nhiều luật thì năng lực sử lý càng được đòi hỏi để thu nhập dữ liệu trong thực tế. Snort có một tập hợp các luật được định nghĩa trước để phát hiện xâm nhập và bạn cũng có thể thêm vào các luật chính của bạn. Bạn cũng có thể xóa một vài luật đã được tạo trước để tránh việc báo động sai. Cũng giống như virus, hầu hết các hoạt động tấn công hay xâm nhập đều có các dấu hiệu riêng. Hệ thống phát hiện của Snort hoạt động dựa trên các luật (rules) và các luật này lại được dựa trên các dấu hiệu nhận dạng tấn công. Các luật có thể được áp dụng cho tất cả các phần khác nhau của một gói tin dữ liệu . Một luật có thể được sử dụng để tạo nên một thông điệp cảnh báo, log một thông điệp hay có thể bỏ qua một gói tin. Cấu trúc luật của Snort Hình 3.6. Cấu trúc luật của Snort Diến giải: Tất cả các Luật của Snort về logic đều gồm 2 phần: Phần Header và phần Option. Phần Header: chứa thông tin về hành động mà luật đó sẽ thực hiện khi phát hiện ra có sự xâm nhập nằm trong gói tin và nó cũng chứa các tiêu chuẩn để áp dụng luật với gói tin đó. Phần Option: chứa một thông điệp cảnh báo và các thông tin về các phần của gói tin dùng để tạo nên cảnh báo. Phần Option chứa các tiêu chuẩn phụ thêm để đối sánh luật với gói tin. Một luật có thể phát hiện được một hay nhiều hoạt động thăm dò hay tấn công. Các luật thông minh có khả năng áp dụng cho nhiều dấu hiệu xâm nhập. Dưới đây là cấu trúc chung của phần Header của một luật Snort: Hình 3.7. Header của luật Snort Action: là phần qui định loại hành động nào được thực thi khi các dấu hiệu của gói tin được nhận dạng chính xác bằng luật đó. Thông thường, các hành động tạo ra một cảnh báo hoặc log thông điệp hoặc kích hoạt một luật khác. Protocol: là phần qui định việc áp dụng luật cho các packet chỉ thuộc một giao thức cụ thể nào đó. Ví dụ như IP, TCP, UDP … Address: là phần địa chỉ nguồn và địa chỉ đích. Các địa chỉ có thể là một máy đơn, nhiều máy hoặc của một mạng nào đó. Trong hai phần địa chỉ trên thì một sẽ là địa chỉ nguồn, một sẽ là địa chỉ đích và địa chỉ nào thuộc loại nào sẽ do phần Direction “->” qui định. Port: xác định các cổng nguồn và đích của một gói tin mà trên đó luật được áp dụng. Direction: phần này sẽ chỉ ra đâu là địa chỉ nguồn, đâu là địa chỉ đích. Ví dụ: alert icmp any any " any any (msg: “Ping with TTL=100’’;ttl: 100;). Phần đứng trước dấu mở ngoặc là phần Header của luật còn phần còn lại là phần Option. Chi tiết của phần Header: Hành động của luật ở đây là “alert”: một cảnh báo sẽ được tạo ra nếu như các điều kiện của gói tin là phù hợp với luật(gói tin luôn được log lại mỗi khi cảnh báo được tạo ra). Protocol của luật ở đây là ICMP tức là luật chỉ áp dụng cho các gói tin thuộc loại ICMP. Bởi vậy, nếu như một gói tin không thuộc loại ICMP thì phần còn lại của luật sẽ không cần đối chiếu. Địa chỉ nguồn ở đây là “any”: tức là luật sẽ áp dụng cho tất cả các gói tin đến từ mọi nguồn còn cổng thì cũng là “any” vì đối với loại gói tin ICMP thì cổng không có ý nghĩa. Số hiệu cổng chỉ có ý nghĩa với các gói tin thuộc loại TCP hoặc UDP thôi. Chi tiết của phần Option: Trong dấu đóng ngoặc chỉ ra một cảnh báo chứa dòng “Ping with TTL=100” sẽ được tạo khi tìm thấy điều kiện TTL=100. TTL là “Time To Live’’là một trường trong Header IP. Phần Header Như phần trên đã trình bày, Header của luật bao gồm nhiều phần. Sau đây, là chi tiết cụ thể của từng phần một. Hành động của luật (Rule Action) Là phần đầu tiên của luật, chỉ ra hành động nào được thực hiện khi mà các điều kiện của luật được thoã mãn. Một hành động được thực hiện khi và chỉ khi tất cả các điều kiện đều phù hợp. Có 5 hành động đã được định nghĩa nhưng ta có thể tạo ra các hành động riêng tuỳ thuộc vào yêu cầu của mình. Đối với các phiên bản trước của Snort thì khi nhiều luật là phù hợp với một gói tin nào đó thì chỉ một luật được áp dụng. Sau khi áp dụng luật đầu tiên thì các luật tiếp theo sẽ không áp dụng cho gói tin ấy nữa. Nhưng đối với các phiên bản sau của Snort thì tất cả các luật sẽ được áp dụng gói tin đó. Pass: Hành động này hướng dẫn Snort bỏ qua gói tin này. Hành động này đóng vai trò quan trọng trong việc tăng cường tốc độ hoạt động của Snort khi mà ta không muốn áp dụng các kiểm tra trên các gói tin nhất định. Ví dụ ta sử dụng các bẫy (đặt trên một máy nào đó) để nhử các hacker tấn công vào thì ta phải cho tất cả các gói tin đi đến được máy đó. Hoặc là dùng một máy quét để kiểm tra độ an toàn mạng của mình thì ta phải bỏ qua tất cả các gói tin đến từ máy kiểm tra đó. Log: Hành động này dùng để log gói tin. Có thể log vào file hay vào cơ sở dữ liệu tuỳ thuộc vào nhu cầu của mình. Alert: Gửi một thông điệp cảnh báo khi dấu hiệu xâm nhập được phát hiện. Có nhiều cách để gửi thông điệp như gửi ra file hoặc ra một Console. Tất nhiên là sau khi gửi thông điệp cảnh báo thì gói tin sẽ được log lại. Activate: sử dụng để tạo ra một cảnh báo và kích hoạt một luật khác kiểm tra thêm các điều kiện của gói tin. Dynamic: chỉ ra đây là luật được gọi bởi các luật khác có hành động là Activate. Protocols Là phần thứ hai của một luật có chức năng chỉ ra loại gói tin mà luật sẽ được áp dụng. Hiện tại Snort hiểu được các protocol sau : IP ICMP TCP UDP Nếu là IP thì Snort sẽ kiểm tra header của lớp liên kết để xác định loại gói tin. Nếu bất kì giao thức nào khác được sử dụng thì Snort sử dụng header IP để xác định loại protocol. Protocol chỉ đóng vai trò trong việc chỉ rõ tiêu chuẩn trong phần header của luật. Phần option của luật có thể có các điều kiện không liên quan gì đến protocol. Address Có hai phần địa chỉ trong một luật của Snort. Các địa chỉ này được dùng để kiểm tra nguồn sinh ra và đích đến của gói tin. Địa chỉ có thể là địa chỉ của một IP đơn hoặc là địa chỉ của một mạng. Ta có thể dùng từ any để áp dụng luật cho tất cả các địa chỉ. Địa chỉ được viết ngay theo sau một dấu gạch chéo và số bit trong subnet mask. Ví dụ: Địa chỉ 192.168.2.0/24 thể hiện mạng lớp C 192.168.2.0 với 24 bit của subnet mask. Subnet mask 24 bit chính là 255.255.255.0. Ta biết rằng : Nếu subnet mask là 24 bit thì đó là mạng lớp C. Nếu subnet mask là 16 bit thì đó là mạng lớp B. Nếu subnet mask là 8 bit thì đó là mạng lớp A. Nếu subnet mask là 32 bit thì đó là địa chỉ IP đơn. Trong hai địa chỉ của một luật Snort thì có một địa chỉ là địa chỉ nguồn và địa chỉ còn lại là địa chỉ đích. Việc xác định đâu là địa chỉ nguồn, đâu là địa chỉ đích thì phụ thuộc vào phần hướng (direction). Ví dụ như luật : alert tcp any any " 192.168.1.10/32 80 (msg: “TTL=100”; ttl: 100;) Luật trên sẽ tạo ra một cảnh báo đối với tất cả các gói tin từ bất kì nguồn nào có TTL = 100 đi đến web server 192.168.1.10 tại cổng 80. Ngăn chặn địa chỉ hay loại trừ địa chỉ Snort cung cấp cho ta kĩ thuật để loại trừ địa chỉ bằng cách sử dụng dấu phủ định (dấu !). Dấu phủ định này đứng trước địa chỉ sẽ chỉ cho Snort không kiểm tra các gói tin đến hay đi tới địa chỉ đó. Ví dụ như luật: alert icmp ![192.168.2.0/24] any -> any any (msg: “Ping with TTL=100”; ttl: 100;) Luật sẽ áp dụng ngăn chặn tất cả các gói tin ngoại trừ các gói tin có nguồn xuất phát từ mạng lớp C 192.168.2.0 Danh sách địa chỉ Ta có thể định rõ ra danh sách các địa chỉ trong một luật của Snort. Bằng hai dấu [] chỉ cần dùng khi có dấu ! đứng trước. Ví dụ như luật: alert icmp ![192.168.2.0/24, 192.168.8.0/24] any -> any any (msg: “Ping with TTL=100”; ttl: 100;) Luật sẽ áp dụng ngăn chặn tất cả các gói tin ngoại trừ các gói xuất phát từ hai mạng lớp C 192.168.2.0 và 192.168.8.0 Cổng (Port Number) Số hiệu cổng dùng để áp dụng luật cho các gói tin đến hoặc đi đến một cổng hay một phạm vi cổng cụ thể nào đó. Ví dụ như luật : alert tcp 192.168.2.0/24 23 -> any any (content: “confidential”; msg: ”Detected confidential”;) Ta có thể sử dụng số cổng nguồn là 23 để áp dụng luật cho tất cả các gói tin đến từ một server Telnet. Từ any cũng được dùng để đại diện cho tất cả các cổng. Chú ý là số hiệu cổng chỉ có ý nghĩa trong các giao thức TCP và UDP thôi. Nếu protocol của luật là IP hay ICMP thì số hiệu cổng không đóng vai trò gì cả. Bảng 2.1. Một vài dich vụ và port tương ứng Dịch vụ Giao thức sử dụng Port HTTP DNS SMTP TELNET FTP POP3 HTTPS TCP&UDP TCP&UDP TCP TCP TCP TCP TCP 80 53 25 23 20,21 110 443 Dãy cổng hay phạm vi cổng: Ta có thể áp dụng luật cho dãy các cổng thay vì chỉ cho một cổng nào đó. Cổng bắt đầu và cổng kết thúc phân cách nhau bởi dấu hai chấm “:”. Ví dụ: alert udp any 1024:2048 -> any any (msg: “UDP ports”;) Dấu phủ định cũng được áp dụng trong việc sử dụng cổng. Ví dụ : log udp any !53 -> any any log udp Luật sau sẽ log tất cả các gói tin ngoại trừ các gói tin xuất phát từ cổng 53. Hướng – Direction Chỉ ra đâu là nguồn đâu là đích, có thể là " hay ! hoặc 1. Trường hợp 1 là khi ta muốn kiểm tra cả Client và Server. Phần Option Phần Rule Option nằm ngay sau phần Rule Header và được bao bọc trong dấu ngoặc đơn. Nếu có nhiều option thì các option sẽ được phân cách với nhau bằng dấu chấm phẩy ”,”.Nếu nhiều option được sử dụng thì các option này phải đồng thời được thoã mãn tức là theo logic các option này liên kết với nhau bằng AND. Mọi option được định nghĩa bằng các từ khoá. Nói chung một option gồm 2 phần: một từ khoá và một tham số, hai phần này phân cách nhau bằng dấu hai chấm “:” Ví dụ : msg: “Detected confidented”; (msg: từ khóa, Detected confidented: là tham số.) Như phần trên đã trình bày, Option của luật bao gồm nhiều phần. Sau đây, là chi tiết cụ thể của từng phần: Từ khoá classtype Các luật có thể được phân loại và gán cho một số chỉ độ ưu tiên nào đó để nhóm và phân biệt chúng với nhau. Để hiểu rõ hơn về từ khoá này đầu tiên ta phải hiểu được file classification.config (được bao gồm trong file snort.conf sử dụng từ khoá include). Mỗi dòng trong file classification.config có cú pháp như sau: config classification: name, description, priority Trong đó: name: là tên dùng để phân loại, tên này sẽ được dùng với từ khoá classtype trong các luật Snort. description: mô tả về loại lớp này. priority: là một số chỉ độ ưu tiên mặc định của lớp này. Độ ưu tiên này có thể được điều chỉnh trong từ khoá priority của phần option trong luật của Snort. Ví dụ : config classification: DoS , Denial of Service Attack, 2 Biểu diễn trong luật: alert udp any any -> 192.168.1.0/24 6838 (msg:”DoS”; content: “server”; classtype: DoS;) alert udp any any -> 192.168.1.0/24 6838 (msg:”DoS”; content: “server”; classtype: DoS; priority: 1;) Trong câu lệnh thứ 2 thì ta đã ghi đè lên giá trị priority mặc định của lớp đã định nghĩa. Từ khoá content Một đặc tính quan trọng của Snort là nó có khả năng tìm một mẫu dữ liệu bên trong một gói tin. Mẫu này có thể dưới dạng chuỗi ASCII hoặc là một chuỗi nhị phân dưới dạng các kí tự hệ 16. Giống như virus, các tấn công cũng có các dấu hiệu nhận dạng và từ khoá content này dùng để tìm các dấu hiệu đó bên trong gói tin. Ví dụ: alert tcp 192.168.1.0/24 any -> ![192.168.1.0/24] any (content: “GET”; msg: “GET match”;) Luật trên tìm mẫu “GET” trong phần dữ liệu của tất cả các gói tin TCP có nguồn đi từ mạng 192.168.1.0/24 và đi đến các địa chỉ không thuộc mạng đó. Từ “GET” này rất hay được dùng trong các tấn công HTTP. Ví dụ: alert tcp 192.168.1.0/24 any -> ![192.168.1.0/24] any (content: “|47 45 54|”; msg: “GET match”;) Tuy nhiên khi sử dụng từ khoá content ta cần nhớ rằng: Đối sánh nội dung sẽ phải xử lý tính toán rất lớn và ta phải hết sức cân nhắc khi sử dụng nhiều luật có đối sánh nội dung. Ta có thể sử dụng nhiều từ khoá content trong cùng một luật để tìm nhiều dấu hiệu trong cùng một gói tin. Đối sánh nội dung là công việc rất nhạy cảm. Có 3 từ khoá khác hay được dùng cùng với từ khoá content dùng để bổ sung thêm các điều kiện để tìm kiếm là: offset : dùng để xác định vị trí bắt đầu tìm kiếm (chuỗi chứa trong từ khoá content ) là offset tính từ đầu phần dữ liệu của gói tin. Ví dụ: Tìm chuỗi “HTTP” bắt đầu từ vị trí cách đầu đoạn dữ liệu của gói tin là 4 byte: alert tcp 192.168.1.0/24 any " any any (content: “HTTP”; offset: 4; msg: “HTTP matched”;) dept : dùng để xác định vị trí mà từ đó Snort sẽ dừng việc tìm kiếm.Từ khoá này cũng thường được dùng chung với từ khoá offset vừa nêu trên. Ví dụ: alert tcp 192.168.1.0/24 any -> any any (content: “HTTP”; offset: 4; dept: 40; msg: “HTTP matched”;). Từ khoá này sẽ giúp cho việc tiêu tốn thời gian tìm kiếm khi mà đoạn dữ liệu trong gói tin là khá lớn. content-list : được sử dụng cùng với một file. Tên file (được chỉ ra trong phần tham số của từ khoá này) là một file text chứa danh sách các chuỗi cần tìm trong phần dữ liệu của gói tin. Mỗi chuỗi nằm trên một dòng riêng biệt. Ví dụ: alert tcp 192.168.1.0/24 any -> any any (content-list: “test”;msg: “This is my Test”;). Ta cũng có thể dùng kí tự phủ định ! trước tên file để cảnh báo đối với các gói tin không tìm thấy một chuỗi nào trong file đó. Từ khoá dsize Dùng để đối sánh theo chiều dài của phần dữ liệu. Rất nhiều tấn công sử dụng lỗi tràn bộ đệm bằng cách gửi các gói tin có kích thước rất lớn. Sử dụng từ khoá này, ta có thể so sánh độ lớn của phần dữ liệu của gói tin với một số nào đó. Ví dụ: alert ip any any " 192.168.1.0/24 any (dsize: > 6000; msg: “Goi tin co kich thuoc lon”;) CÁC CƠ CHẾ HOẠT ĐỘNG CỦA SNORT Sniffer mode: ở chế độc này snort sẽ lắng nghe và đọc các gói tin trên mạng sau đó sẽ trình bày kết quả trên giao diện hiển thị. Packet Logger mode : lưu trữ các gói tin trong các tập tin log. Network instruction detect system (NIDS) : đây là chế dộ họat động mạnh mẽ và được áp dụng nhiều nhất, khi họat động ở NIDS mode Snort sẽ phân tích các gói tin luân chuyển trên mạng và so sánh với các thông tin được định nghĩa của người dùng để từ đó có những hành động tương ứng như thông báo cho quản trị mạng khi xảy ra tình huống quét lỗi do các hacker /attacker tiến hành hay cảnh báo virus.. Inline mode: khi triển khai snort trên linux thì chúng ta có thể cấu hình snort để phân tích các gói tin từ iptables thay vì libpcap do đó iptable có thể drop hoặc pass các gói tin theo snort rule. DEMO GIỚI THIỆU KỊCH BẢN Mô tả kịch bản Công ty TNHH HOÀN MỸ là một công ty hoạt động trong lĩnh vực phân phối các sản phẩm hỗ trợ sức khỏe và làm đẹp cho khách hàng nên việc hoạt động kinh doanh của công ty chủ yếu thông qua Internet. Hệ thống mạng của công ty được xây dựng lớn nên cần phải đảm bảo được những yêu cầu về kỹ thuật cũng như hoạt động liên tục và mức độ bảo mật an toàn cao. Tuy nhiên bên cạnh sự phát triển nhanh chóng và đạt được những yêu cầu đặt ra mong muốn thì hệ thống cũng xảy ra nhiều rủi ro nếu như chúng ta không tuân thủ nghiêm ngặt các quy định như luật sở hữu, bản quyền phần mềm… Nên người quản trị cần phải tăng cường khả năng an toàn thông tin để khỏi bị mất mát dữ liệu do các lổ hổng bảo mật hay bị hacker, virus, trojan tấn công. Những yêu cầu về bảo mật của Công ty: Đảm bảo an toàn các giao dịch qua Internet. Giám sát được quá trình làm việc của nhân viên. Đảm bảo an toàn cho các Server chạy các ứng dụng phần mềm trong công ty, đảm bảo cho việc sao lưu, phục hồi dữ liệu, tránh trường hợp bị hacker tấn công vào Server Database. Mô hình mạng hạ tầng công ty. Hình 3.8. Mô hình mạng Công Ty Hoàn Mỹ Tình huống đặt ra Khi một nhân viên biểu hiện bất thường trong mạng hay người ngoài Internet xâm nhập và thăm dò mạng, quét tìm lỗi của hệ thống mạng công ty, xây dựng sơ đồ mạng bảo đảm tính sẵn sàng cho hệ thống, đối phó với các cuộc tấn công từ trong và ngoài như thế nào? Làm sao phát hiện kịp thời để có các phòng ngừa và ngăn chặn. Đặt ra giải pháp Xây dựng mô hình kết hợp với các hệ thống dò tìm và phát hiện xâm nhập IDS là phương pháp hiệu quả nhất để giúp người quản trị luôn luôn nắm được các trạng thái của mạng, chúng ta có thể chọn một trong hai mô hình NIDS và HIDS hoặc có thể kết hợp cả hai lại với nhau. Hình 3.9. Mô hình giải pháp kết hợp IDS Khi bị tấn công hệ thống Snort phát hiện ra xâm nhập và đưa ra cảnh báo cho người quản trị, như thông tin cuộc tấn công, lỗi của hệ thống, và tất cả thông tin được lưu vào hệ thống cơ sở dữ liệu. Yêu cầu Phần mềm IDS – Snort được triển khai trong hệ thống mạng trên 1 máy Windows Server 2003 SP2. Để có thể cài đặt được Snort, chúng ta cần cài đặt phần mềm WinPcap tương ứng với phiên bản Snort sẽ triển khai. Phần mềm cài Snort: Snort_2_9_1_Installer.exe Phần mềm cài Wincap: WinPcap_4_1_2.exe Chúng ta tiến hành cài đặt WinPcap trước khi cài đặt Snort. Theo mặc định phần mềm Snort được cài đặt tại C:\Snort THỰC HIỆN Cài đặt và cấu hình Hình 3.10. Mô hình Demo Download Snort: Download snort ở trang web www.Snort.org. Chọn phiên bản Snort_2_9_1_Installer tải về. Hình 3.11. Giao diện chính của trang www.snort.org Sau đó trở ra trang chủ và chọn Get Rules"Download Rules và tải về các tập (rules) mới nhất. Hình 3.12. Giao diện Download Rules Cài đặt Snort Trước tiên chúng ta có thể tải Winpcap từ www.iltiloi.com và Snort từ trang www.snort.org như đã trình bày. Trước và cài luôn Winpcap khi được yêu cầu để đảm bảo tính tương thích giữa Winpcap và Snort. Click vào tập tin chương trình Snort_Installer  để bắt đầu tiến trình cài đặt. Trên màn hình Installation Options có các cơ chế lưu trữ log file theo cơ sở dữ liệu SQL hay Oracle, tôi chỉ lưu trữ log trong Event Log nên sẽ chọn tùy chọn đầu tiên là “I do not plan to log to a database, or I am planing to log to one of the databse listed above” Hình 3.13. Chế độ màn hình đang Setup Snort Bây giờ chúng ta copy các rule được tạo sẵn (download từ www.snort.org ) sau đó giải nén và copy thư mục Rules vào thư mục cài đặt snort chứa trong C:Snort Hình 3.14. Thư mục Rule Hình 3.15. Thư mục Rule chứa thư mục giải nén trên Sau khi đã cài đặt Snort chúng ta cần phải thiết lập các tham số quan trọng là biến HOME_NET và PATH_RULE, classification,dynamicpreprocessor… mới có thể khởi động Snort và thực hiện các công việc tiếp theo. Khai báo các biến trong file Snort.conf tại foder C:\Snort\etc HOME_NET (trong ví dụ này HOME_NET là lớp 192.168.1.0/24) và ta bỏ hết chữ ip trong chữ “ipvar” Hình 3.16. Khai báo biến HOME_NET Sau đó ta tiếp tục khai báo biến cho RULE_PATH Hình 3.17. Khai báo biến RULE_PATH Tiếp tục khai báo cho biến có tên là include classification, và reference bằng cách thêm dòng c:\snort\etc\ Hình 3.18. Khai báo các biến include classification,reference Tiếp theo chúng ta khai báo dynamicpreprocessor, dynamicengine như sau: dynamicpreprocessor directory c:\snort\lib\snort_dynamicpreprocessor dynamicengine C:\Snort\lib\snort_dynamicengine\sf_engine.dll Hình 3.19. Khai báo các biến dynamicpreprocessor và dynamicengine Cuối cùng chạy lệnh để kiểm tra độ ổn định: Snort –l c:\snort\log –c c:\snort\etc\snort.conf –A console Hình 3.20. Kết quả sau khi thực thi dòng lệnh Như vậy chúng ta đã cấu hình xong Snort. Snort. Snort đã sẵn sàng hoạt động dưới các chế độ khác nhau. Sử dụng Snort: Chế độ Sniffer Packet: Để tiến hành Sniffer chúng ta cần chọn card mạng để snort đặt vào chế độ promicous, nếu máy tính của bạn có sử dụng nhiều card thì hãy sử dụng lệnh snort-W Hình 3.21. Số card mạng Vậy card mạng có số hiệu là 1. Bây giờ chúng ta tiến hành sniffer packet dùng lệnh: C:\snort\bin>snort –dev –ix (với x là số hiệu card mạng). Trong quá trình chạy Snort, chúng ta tiến hành Ping IP 192.168.1.100 vào máy Window Server 192.168.1.200) và đồng thời máy window truy cập vào trang www.mp3.zing.vn Hình 3.22. Bắt và phân tích gói tin Kết quả thu được như sau: Hình 3.23. Kết quả thu được Chế độ Packet Logger Chúng ta có thể lưu có gói dữ liệu vào file log để xem bằng lệnh: snort –dev –i1 –l C:\snort\log (dòng lệnh sẽ ghi log các thông tin dữ liệu tại tầng Datalink và TCP/IP Hình 3.24. Bắt và lưu gói dữ liệu vào file Log Đọc log đã ghi lại: snort –dvr C:\Snort\log\snort.log.NHÃN THỜI GIAN Hình 3.25. Kiểm thử file Log đã ghi lại Chế độ NIDS Một vài ví dụ: Tạo một cảnh báo với thông điệp kèm theo : Alert tcp any any -> any 23 (msg: "Telnet Connection => Attempt";) . Dò tìm các tiến trình quét mạng TCP NULL: Alert tcp any any -> detected"; > = 10.0.10.0/24 any (msg: "NULL scan flags: 0;) Dò tìm các tiến trình OS fingerprinting: Alert tcp any any -> 10.0.10.0/24 (msg: "O/S Fingerprint => detected"; flags: S12;) Tiến hành lọc nội dung : Alert tcp any $HOME_NET -> !$HOME_NET any (content: => "Hello"; msg:"Hello Packet";) Như vậy chúng ta đã tiến hành cài đặt và cấu hình snort để tiến hành bắt giữ các gói tin, xem nội dung của chúng nhưng vẫn chưa biến snort thực sự trở thành 1 hệ thống IDS – dò tìm xâm phạm trái phép. Vì một hệ thống như vậy cần có các quy tắc (rule) cùng những hành động cảnh báo cho quản trị hệ thống khi xảy ra sự trùng khớp của những quy tắc này. Trong phần tiếp theo,chúng ta sẽ tiến hành cấu hình để xây dựng 1 network IDS với Snort. Trong kịch bản thử nghiệm này, chúng ta sẽ tiến hành tạo ra 3 Rule ghi lại cảnh báo và hoạt động của người dùng. Sử dụng trình sọan thảo Notepad và nhập vào nội dung: alert tcp 192.168.1.0/24 any -> any any (content:"bom"; msg:"Canh bao co nguy hiem";SID:1000022;) alert icmp $HOME_NET any -> 192.168.1.0/24 any (msg:"Tim thay hanh dong Ping vao he thong";SID:1000102;) alert tcp $HOME_NET any -> 192.168.1.0/24 any (content:"tai lieu bao mat"; msg:"co nguoi xam pham bao mat mang";SID:1000023;) Để thử nghiệm 3 luật trên trước hết ta tạo ra 1 file Text có nội dung chứa từ “tài liệu bảo mật” tại máy 192.168.1.100/24 để chuẩn bị tiến hành cho rule 3) trên. Hình 3.26. Tạo file text co tên là “”tài liệu bảo mật” Ta tiến hành viết luật và chú ý một số phiên bản IDS yêu cầu phải thêm cả SID cho Rule và SID như thế nào thì còn tùy thuộc vào phiên bản Snort bạn đang sử dụng Hình 3.27. Viết luật 1) 2) 3) Sau khi viết rule xong, việc đầu tiên ta phải setup lại Snort để Snort cập nhật lại rule ta vừa tạo. Hình 3.28. Chạy Snort để cập nhật rule vừa khởi tạo Ngoài việc có thể theo dõi một cách chính xác và ghi lại tất cả những hoạt động của người sử dụng trong nội bộ hoặc người sử dụng trái phép bên ngoài thì người quản trị có thể sử dụng dòng lệnh để log những nhật ký của hệ thống: C:Snort\bin>snort -c C:\Snort\etc\snort.conf -l C:\Snort\log Thí nghiệm đối với Rule 1) ta truy cập vào web mà có từ “bom” Hình 3.29. Truy cập Website ->chọn Bom Thí nghiệm đối với Rule 2) ta ping từ máy client 192.168.1.100 -> 192.168.1.200/24 Hình 3.30. Máy 192.168.1.100 -> 192.168.1.200 Thí nghiệm đối với Rule 3) từ máy client 192.168.1.100/24 ta chia sẻ file text có tên là “tài liệu bảo mật”trên mạng, từ máy server chúng ta copy file đó về hoặc mở file đó ra đọc. Hình 3.31. Window server 2003 copy file text “tài liệu bảo mật” về máy Cuối cùng ta xem lại cảnh báo được IDS – Snort ghi lại như sau: Hình 3.32. Kết quả ghi lại khi thực hiện Ví dụ Tiếp theo sẽ tạo một luật có tên là:truycapmang.rules 3) alert tcp any any -> any any (content:"mp3.zing.vn"; msg:"co nguoi da dung trang giai tri!";SID:1000002; 4) alert ip 192.168.1.0/24 any -> 192.168.1.200 any (dsize: >100; msg:"Goi tin co kich thuoc lon";SID: 1002201;) Hình 3.33. Viết luật 3) và 4) Thí nghiệm luật 3) Vào trang web kích chọn trình duyệt www.mp3.zing.vn Hình 3.34. Vào trình duyêt mp3.zing.vn Kết quả ghi lại tại máy window server 2003 Hình3.35. Kết quả IDS_Ssnort ghi lại Thí nghiệm luật 4) tại máy chủ window server 192.168.1.200 ta truy cập vào mạng cùng một lúc gởi nhiều gói tin để phản hồi, và khi kích cỡ vượt quá ngưỡng mà luật đã qui định thì nó tạo ra cảnh báo. Hình 3.36. Window server 2003 gởi nhiều gói tin Kết quả ghi lại tại máy window server 2003 Hình 3.37. Kết quả thu được KẾT LUẬN Những phần nắm được: Đề tài cho ta thấy rõ được sự cần thiết của bảo mật, những hạn chế của phương pháp bảo mật hiện tại, đồng thời nói lên sự quan trọng của hệ thống phát hiện chống xâm nhập trái phép đối với công nghệ thông tin đang phát triển hiện nay. Hệ thống phát hiện xâm nhập mạng (IDS) tuy chỉ mới xuất hiện sau này nhưng hiện đóng vai trò không kém phần quan trọng. IDS giúp chúng ta khám phá, phân tích những nguy cơ tấn công mới. Từ đó vạch ra những phương án phòng chống. ở góc độ nào đó có thể tìm được thủ phạm gây ra cuộc tấn công. Bài báo cáo này giúp: Nắm bắt được những khái niệm cơ bản nhất về một hệ thống phát hiện xâm nhập. Triển khai được một hệ thống phát hiện xâm nhập phổ biến là Snort Nắm bắt được cơ chế viết luật cho Snort và thực thi Snort ở các chế độ như: Sniffer Packet, Packet Logger, NIDS… Những gì chưa đạt được Đề tài còn rất nhiều những thiếu sót. Phần lý thuyết chỉ tổng quát sơ lược tóm tắt chứ chưa đi sâu nghiên cứu vấn đề. Phần thử nghiệm thì tìm hiểu ở những chế độ đơn giản Sniffer Packet, Packet Logger, NIDS. Và chế độ cũng không kém phần quan trọng là Inline mode. Về vấn đề viết rule cho Snort để xử lý hệ thống thì những luật viết ra có phần vẫn còn đơn giản. Hướng mở rộng Sau khi nắm cơ bản về hệ thống phát hiện xâm nhập (IDS), ta có thể thực hiện nghiên cứu hệ thống phát hiện và ngăn chặn xâm nhập (IPS) và triển khai cho các hệ thống mạng của tổ chức. Nghiên cứu các sử dụng Snort để phát hiện các hình thức tấn công hiện tại và có thể phát triển lên các phương pháp phòng chống tiên tiến hơn ở một tương lai không xa. TÀI LIỆU THAM KHẢO Tài liệu tiếng Việt [1] Nguyễn Thúc Hải, Mạng máy tính và các hệ thống mở, NXB Giáo dục, 1999. [2] Nguyễn Ngọc Tuấn, Công nghệ bảo mật, NXB Thống Kê, 2005. Tài liệu tiếng Anh [3] Earl Carter, Introduction to Network Security, Cisco Secure Intrusion Detection system, Cisco Press, 2000. [4] Rafeeq Rehman, Intrusion Detection with Snort, NXB Prentice Hall, 2003. [5] Martin Roesch, Chris Green ,Snort User Manual, The Snort Project, 2003. [6] Christopher Kruegel, Fredrik Valeur, Giovanni Vigna, Computer security and Intrusion Detection, Alert Corelation, Challenges and Solution,Springer, 2005. [7] Rafeeq Rehman, Intrusion Detection with Snort, NXB Prentice Hall, 2003. Tài liệu Internet [8] https://help.ubuntu.com/10.04/serverguide/C/mysql.html [9] [10] [11] [12] [13] [14] [15]

Các file đính kèm theo tài liệu này:

  • docNoi dung KLTN-Kimtuyen.doc