Đề tài Xây dựng hệ thống phát hiện xâm nhập trên mạng (NIDS - Network Intrusion Detection System)

Ngày nay, công nghệ thông tin đã và đang phát triển một cách mạnh mẽ đem lại những lợi ích và ứng dụng vô cùng to lớn cho con người. Mạng máy tính ra đời, mở rộng và phát triển không ngừng tạo nên hệ thống mạng Internet toàn cầu. Ngày càng có nhiều người nhận ra lợi ích của việc nối mạng (để chia sẻ tài nguyên, có thể trao đổi và tìm kiếm thông tin hiệu quả, nhanh chóng, tiết kiệm thời gian và chi phí,.), Internet đã thực sự trở thành một phần không thể thiếu trong cuộc sống của con người, thông tin liên lạc qua Internet đã trở nên quen thuộc với hầu hết mọi người. Tuy nhiên, việc truyền thông trên mạng phải qua rất nhiều trạm trung gian, nhiều nút với nhiều người sử dụng khác nhau và không ai dám chắc rằng thông tin khi đến tay người nhận không bị thay đổi hoặc không bị sao chép. Chúng ta đã được nghe nhiều về vấn đề thông tin bị đánh cắp gây những thiệt hại nghiêm trọng hay những kẻ thường xuyên trộm tin của người khác, thậm chí ăn trộm mật khẩu và giả mạo nhằm phá hoại việc giao dịch. Thực tế cũng đã cho thấy số các vụ tấn công vào mạng ngày càng tăng, các kỹ thuật tấn công ngày càng mới và đa dạng. Chính vì thế mà vấn đề an toàn được đặt lên hàng đầu khi nói đến việc truyền thông trên mạng. Có rất nhiều cách để thực hiện an toàn trên mạng như: phương pháp kiểm soát lối vào, ngăn cản sự xâm nhập trái phép vào hệ thống cũng như kiểm soát tất cả các thông tin gửi ra bên ngoài hệ thống, hay sử dụng phương pháp mã hoá dữ liệu trước khi truyền, ký trước khi truyền,.

doc45 trang | Chia sẻ: tuandn | Ngày: 29/04/2013 | Lượt xem: 2715 | Lượt tải: 6download
Bạn đang xem nội dung tài liệu Đề tài Xây dựng hệ thống phát hiện xâm nhập trên mạng (NIDS - Network Intrusion Detection System), để tải tài liệu về máy bạn click vào nút DOWNLOAD ở trên
MỤC LỤC MỤC LỤC…………………………………………………………………………1 LỜi NÓI ĐẦU……………………………………………………………………..3 CHƯƠNG 1: TỔNG QUAN VỀ AN NINH MẠNG……………………………...4 Các mục tiêu cần bảo vệ………………………………………………..…..4 Các kiểu tấn công mạng……………………………………………………4 Các phương pháp bảo vệ…………………………………………………...6 CHƯƠNG 2: HỆ THỐNG PHÁT HIỆN XÂM NHẬP TRÁI PHÉP TRÊN MẠNG (NIDS)……………………………………………………………………………..8 2.1 Xâm nhập (Instrusion)……………………………………………………..8 2.1.1 Cách thức xâm nhập vào hệ thống…………………………………....8 2.1.2 Những lỗ hổng an ninh có thể xâm nhập……………………………..9 2.1.3 Những dấu hiệu xâm nhập thông thường…………………………...12 2.1.4 Một kịch bản xâm nhập điển hình…………………………………..13 2.2 Hệ thống phát hiện xâm nhập IDS (Instrusion Detection System)……….14 2.2.1 Định nghĩa, chức năng và nguyên lý làm việc………………………14 2.2.2 Vị trí…………………………………………………………………17 2.2.3 Phân loại…………………………………………………………….17 2.3 NIDS (Network-based IDS)………………………………………………28 2.3.1 Lí do lựa chọn NIDS………………………………………………...28 2.3.2 Kiến trúc và hoạt động………………………………………………29 2.3.3 Mô hình hệ thống NIDS…………………………………………….31 2.3.4 Triển khai và điều chỉnh hệ thống NIDS……………………………33 2.3.5 Đánh giá một hệ thống NIDS (value of NIDS)……………………..39 2.3.6 Tối ưu hoá giá trị của NIDS…………………………………………40 2.3.7 NIDS & Firewall…………………………………………………….42 2.3.8 Tổng kết……………………………………………………………..43 CHƯƠNG 3: THIẾT KẾ HỆ THỐNG NIDS……………………………………44 3.1 Mục đích………………………………………………………………….44 3.2 Phân tích và thiết kế chương trình………………………………………..44 TÀI LIỆU THAM KHẢO………………………………………………………..45 LỜI NÓI ĐẦU Ngày nay, công nghệ thông tin đã và đang phát triển một cách mạnh mẽ đem lại những lợi ích và ứng dụng vô cùng to lớn cho con người. Mạng máy tính ra đời, mở rộng và phát triển không ngừng tạo nên hệ thống mạng Internet toàn cầu. Ngày càng có nhiều người nhận ra lợi ích của việc nối mạng (để chia sẻ tài nguyên, có thể trao đổi và tìm kiếm thông tin hiệu quả, nhanh chóng, tiết kiệm thời gian và chi phí,...), Internet đã thực sự trở thành một phần không thể thiếu trong cuộc sống của con người, thông tin liên lạc qua Internet đã trở nên quen thuộc với hầu hết mọi người. Tuy nhiên, việc truyền thông trên mạng phải qua rất nhiều trạm trung gian, nhiều nút với nhiều người sử dụng khác nhau và không ai dám chắc rằng thông tin khi đến tay người nhận không bị thay đổi hoặc không bị sao chép. Chúng ta đã được nghe nhiều về vấn đề thông tin bị đánh cắp gây những thiệt hại nghiêm trọng hay những kẻ thường xuyên trộm tin của người khác, thậm chí ăn trộm mật khẩu và giả mạo nhằm phá hoại việc giao dịch. Thực tế cũng đã cho thấy số các vụ tấn công vào mạng ngày càng tăng, các kỹ thuật tấn công ngày càng mới và đa dạng. Chính vì thế mà vấn đề an toàn được đặt lên hàng đầu khi nói đến việc truyền thông trên mạng. Có rất nhiều cách để thực hiện an toàn trên mạng như: phương pháp kiểm soát lối vào, ngăn cản sự xâm nhập trái phép vào hệ thống cũng như kiểm soát tất cả các thông tin gửi ra bên ngoài hệ thống, hay sử dụng phương pháp mã hoá dữ liệu trước khi truyền, ký trước khi truyền,... Trong nội dung đề tài này chúng ta sẽ đi sâu tìm hiểu về hệ thống phát hiện xâm nhập trái phép trên mạng (NIDS-Network Intrusion Detection System). §Ò tµi: X©y dùng hÖ thèng ph¸t hiÖn x©m nhËp trªn m¹ng (NIDS - Network Intrusion detection System) CHƯƠNG 1: TỔNG QUAN VỀ AN NINH MẠNG Các mục tiêu cần bảo vệ Sự ra đời và phát triển của Internet là một bước ngoặt lớn trong lịch sử nhân loại. Hệ thống thông tin khổng lồ trên Internet được chia sẻ trên khắp thế giới. Tuy nhiên, đồng thời với lợi ích to lớn của nó, mạng Internet cùng với các công nghệ liên quan cũng cho thấy mặt hạn chế tất yếu là tính mất an toàn, dễ bị xâm phạm, tấn công. Hậu quả của các cuộc tấn công có thể chỉ là những phiền phức nhỏ nhưng cũng có thể làm suy yếu hoàn toàn hệ thống, các dữ liệu, thông tin quan trọng bị xóa, sự riêng tư bị xâm phạm,…Do đó, nhiệm vụ của chúng ta là phải tránh tối đa sự mất an toàn, hay nói một cách khác là phải bảo vệ sự an toàn cho hệ thống, suy nghĩ của chúng ta phải đi kịp với sự phát triển công nghệ. Các đối tượng cần đảm bảo an ninh bao gồm: Dữ liệu: Dữ liệu truyền đi trên mạng phải đáp ứng được các yêu cầu về: - Tính mật (Confidentiality): Đảm bảo thông tin không thể bị truy cập trái phép bởi những người không có thẩm quyền. - Tính toàn vẹn (Integrity): Đảm bảo thông tin không bị thay đổi trong quá trình truyền. - Tính sẵn sàng (Availability): Đảm bảo dữ liệu luôn sẵn sàng khi có yêu cầu truy cập. Tài nguyên: Tài nguyên bao gồm các thành phần phần cứng và phần mềm của hệ thống. Kẻ tấn công có thể lợi dụng các lỗ hổng an ninh như các lỗ hổng về hệ điều hành, mạng, ứng dụng. Nếu máy tính không có dữ liệu quan trọng thì vẫn rất cần được bảo vệ bởi vì kẻ tấn công có thể đột nhập và sử dụng nó làm tiền đề cho các cuộc tấn công khác. Danh tiếng: Như trên đã nói kẻ tấn công có thể dùng máy của một người sử dụng để tấn công nơi khác, gây tổn thất về uy tín của người sử dụng đó. Các kiểu tấn công mạng Có rất nhiều cách tấn công đã biết cũng như chưa biết, tuy nhiên hiện nay có thể chia làm 4 loại chính: Interruption (làm gián đoạn) Interception (ngăn chặn) Modification (sửa đổi) Fabrication (làm giả) Sau đây, chúng ta sẽ xem xét tổng quan về các kiểu tấn công đó: Tấn công làm gián đoạn (Interruption Attack) Điển hình cho kiểu tấn công này là tấn công từ chối dịch vụ DoS (Denial of Service). Đây là hành động mà kẻ tấn công lợi dụng đặc điểm hoặc lỗi an toàn thông tin của một hệ thống dịch vụ nhằm làm ngưng trệ hoặc ngăn cản người dùng truy nhập dịch vụ đó. Cuộc tấn công này không lấy mất thông tin của hệ thống, nó thường chỉ gây cho chương trình hoặc hệ thống bị đổ vỡ hoặc bị treo, tê liệt từng phần hoặc toàn bộ, buộc người quản trị dịch vụ đó phải tạm ngừng cung cấp dịch vụ và khởi động lại hệ thống. Việc ngừng hoạt động trong một thời gian nhất định của các hệ thống dịch vụ gây ra những thiệt hại đáng kể. Có hai kiểu tấn công từ chối dịch vụ dựa theo đặc điểm của hệ thống bị tấn công, thứ nhất là gây quá tải khiến cho hệ thống mất khả năng phục vụ cho người dùng thực sự, thứ hai là dựa vào lỗi an toàn thông tin của hệ thống để từ đó gây cho hệ thống bị treo, tê liệt. Với loại thứ nhất, việc gây quá tải được thực hiện bằng cách gửi rất nhiều yêu cầu dịch vụ giả. Để giải quyết một yêu cầu dịch vụ, hệ thống phải tốn một lượng tài nguyên nhất định (CPU, bộ nhớ, đường truyền…). Lượng tài nguyên là giới hạn, khi nhận được quá nhiều yêu cầu dịch vụ giả, hệ thống sẽ sử dụng toàn bộ tài nguyên để đáp ứng các yêu cầu đó và không còn tài nguyên để đáp ứng yêu cầu thực sự khác của người dùng, người dùng sẽ không thể truy nhập được vào hệ thống dịch vụ. Với loại tấn công từ chối dịch vụ thứ hai, kẻ tấn công lợi dụng kẽ hở an toàn thông tin của hệ thống, cố ý gửi các yêu cầu hoặc các gói tin không hợp lệ khiến cho hệ thống bị tấn công khi nhận được yêu cầu hay gói tin này. Việc xử lý không đúng hoặc không theo trình tự đã được thiết kế, dẫn đến sự sụp đổ cho chính hệ thống đó. Phần lớn các kẽ hở này xuất phát từ lỗi phần mềm. Khi kẻ tấn công gửi những thứ không nằm trong các khả năng đã dự tính, thì phần mềm dễ dàng bị lỗi, gây đổ vỡ hệ thống. Ví dụ điển hình cho lỗi này là kiểu tấn công Ping of Death vào năm 1995, gây treo hoặc đổ vỡ cho rất nhiều hệ thống. Ngoài ra, một số ít các kẽ hở lại xuất phát từ chính nguyên lý hoạt động của hệ thống, đặc biệt là nguyên lý của bộ giao thức mạng TCP/IP. Ví dụ điển hình của kiểu tấn công này là SYN flooding, gây cho hệ thống dịch vụ mất khả năng tiếp nhận kết nối TCP. Hiện tại chưa có biện pháp hữu hiệu nào để phòng chống tấn công từ chối dịch vụ, nhất là kiểu tấn công gây quá tải. Nhà cung cấp dịch vụ chỉ có thể hạn chế chứ khó có thể giữ cho dịch vụ của mình luôn sẵn sàng trước mọi cuộc tấn công từ chối dịch vụ. Biện pháp tốt nhất hiện nay để chống lại các cuộc tấn công từ chối dịch vụ, nhất là kiểu tấn công dựa vào lỗi an toàn thông tin của hệ thống, là các nhà cung cấp dịch vụ phải liên tục cập nhật phiên bản sửa lỗi phần mềm mới nhất cho hệ thống của mình. Đồng thời các nhà cung cấp dịch vụ phải xây dựng và quản trị hệ thống sao cho chúng ít có khả năng bị lợi dụng để phát động tấn công từ chối dịch vụ. Tấn công DoS thực hiện đồng thời từ nhiều địa chỉ khác nhau được gọi là tấn công DDoS (Distributed-DoS). Tấn công ngăn chặn (Interception Attack) Kiểu tấn công này sử dụng các bộ nghe trộm để bắt giữ password và các thông tin nhạy cảm khác được truyền qua lại trên mạng. Nhờ nghe trộm password kẻ tấn công có thể lấy được mật khẩu của người sử dụng, sau đó chúng truy nhập một cách chính quy vào hệ thống. Để hạn chế kiểu tấn công này, chúng ta thực hiện phân đoạn hệ thống mạng và sử dụng các Hub chuyển đổi. Tấn công làm thay đổi (Modification Attack) Kiểu tấn công này thực hiện sửa đổi, thay đổi thông tin/chương trình, ví dụ như sử dụng các đoạn mã nguy hiểm, Virus, Trojan gắn vào email hoặc các Web site,... Biện pháp bảo vệ trong trường hợp tấn công này đó là sử dụng các phần mềm chống virus, thực hiện lọc tại mail server, kiểm tra tính toàn vẹn dữ liệu. Tấn công giả mạo (Fabrication Attack) Tấn công giả mạo IP là kẻ tấn công tự đặt địa chỉ IP của mình trùng với một địa chỉ nào đó ở mạng bên trong. Khi đó, nó sẽ được đối xử như một máy bên trong tức là được làm mọi thứ để từ đó tấn công, lấy trộm, phá huỷ thông tin. Các phương pháp bảo vệ Với các kiểu tấn công đa dạng như đã trình bày ở trên, các phương pháp bảo vệ an ninh mạng cũng không ngừng được tạo ra, sửa đổi và phát triển cho phù hợp với từng hệ thống. Đó có thể là những phần mềm tích hợp trên hệ thống, những công cụ phần cứng hoặc kết hợp cả hai (phần cứng lẫn phần mềm), đó cũng có thể là những chính sách an ninh. Các phương pháp thông thường hiện nay bao gồm: Firewall Intrusion Detection System Policy Chúng ta xem xét tổng quan từng phương pháp: Firewall Firewall là sản phẩm cung cấp sự an toàn kết nối giữa mạng nội bộ với các mạng bên ngoài. Firewall giống như một hàng rào quanh hệ thống mạng, với một cặp các cổng được lựa chọn. Hàng rào này không có khả năng phát hiện một ai đó đang cố gắng xâm nhập vào hệ thống (như tìm ra một lỗ hổng ở bên dưới nó), hay phát hiện ai đó vào qua một cổng được phép. Mà nó chỉ đơn giản hạn chế việc truy cập đến các điểm được đại diện. Intrusion Detection System (IDS) IDS (hệ thống phát hiện xâm nhập trái phép) được tạo thành từ các thành phần phần cứng và phần mềm cùng hoạt động để tìm ra các sự kiện không mong muốn, từ đó có thể chỉ ra một cuộc tấn công sẽ xảy ra, đang xảy ra hoặc đã xảy ra. Policy Đưa ra tính riêng tư, các luật điều khiển, những việc phải làm nếu bị tấn công. CHƯƠNG 2: HỆ THỐNG PHÁT HIỆN XÂM NHẬP TRÁI PHÉP TRÊN MẠNG (NIDS) Xâm nhập (Instrusion) Trong phần này sẽ trình bày những khái niệm liên quan như xâm nhập (intrusion), kịch bản xâm nhập (intrusion scenario), sẽ tìm hiểu về bản chất, nguyên nhân, những dấu hiệu của việc xâm nhập vào hệ thống, trước khi đi sâu nghiên cứu và triển khai một hệ thống phát hiện xâm nhập. Một xâm nhập là một vài người (“hacker” hay “cracker”) cố gắng phá vỡ hay lạm dụng hệ thống. Hacker và cracker là hai từ dùng để chỉ những kẻ xâm nhập. Kẻ xâm nhập được chia thành hai loại: Outsiders: những kẻ xâm nhập từ bên ngoài hệ thống (xóa Web servers, chuyển tiếp các spam qua e-mail servers). Chúng có thể vượt qua firewall để tấn công các máy trong nội bộ mạng. Những kẻ xâm nhập có thể đến từ Internet, qua đường dây điện thoại, đột nhập vật lý hoặc từ các mạng thành viên được liên kết đến tổ chức mạng (nhà sản xuất, khách hàng,…). Insiders: những kẻ xâm nhập mà được sử dụng hợp pháp đến bên trong hệ thống (những người sử dụng được ủy quyền, hoặc giả mạo người dùng được ủy quyền ở mức cao hơn… ). Loại xâm nhập này chiếm 80%. Cách thức xâm nhập vào hệ thống Các cách thức chính mà những kẻ xâm nhập có thể đi vào hệ thống: Physical Intrusion (xâm nhập vật lý): nếu một kẻ xâm nhập truy cập vật lý vào một máy (chẳng hạn chúng có thể dùng bàn phím,…) chúng sẽ có thể xâm nhập vào cả hệ thống. System Intrusion (xâm nhập hệ thống): đây là một kiểu hacking. Giả sử rằng kẻ xâm nhập đã có một account người dùng được ủy quyền mức thấp trong hệ thống. Nếu hệ thống không có các biện pháp an toàn mới nhất, thì sẽ tạo cơ hội tốt cho kẻ xâm nhập lợi dụng để có được ủy quyền cao hơn (quyền người quản trị). Remote Intrusion (xâm nhập từ xa): đây là kiểu hacking liên quan đến kẻ xâm nhập cố gắng thâm nhập vào một hệ thống từ xa qua mạng. Kẻ xâm nhập đầu tiên không có một ủy quyền đặc biệt nào cả. Có một số dạng hacking này. Hệ thống NIDS nghiên cứu trong phạm vi đề tài này liên quan chính đến kiểu xâm nhập từ xa (Remote Intrusion). Những lỗ hổng an ninh có thể xâm nhập Phần mềm luôn luôn có lỗi (bug). Nhà quản trị hệ thống và người lập trình không bao giờ có thể xóa vết và khử mọi lỗ hổng có thể. Những kẻ xâm nhập chỉ cần tìm ra một lỗ hổng và xâm nhập vào hệ thống. Chi tiết về các lỗi hệ thống mà những kẻ xâm nhập có thể lợi dụng để thực hiện các mục đích của chúng như sau: Các lỗi phần mềm (Software bugs): Các lỗi phần mềm được khai thác trong các trình tiện ích trên server, trong các ứng dụng tại client, trong hệ điều hành và các ngăn xếp mạng. Các lỗi phần mềm có thể được chia thành các loại sau : Buffer overflows (tràn bộ nhớ) : hầu hết các lỗ hổng an ninh được biết đến đều do lỗi này. Ví dụ điển hình, một lập trình viên thiết lập 256 kí tự để lưu trữ một username đăng nhập. Người lập trình viên nghĩ rằng không ai có thể có tên dài hơn thế, nhưng một hacker thì sẽ nghĩ rằng điều gì xảy ra nếu mình gõ vào một username vượt quá số kí tự đó, những kí tự thừa ra sẽ đi đâu. Nếu hacker thử luôn, họ nhập vào 300 kí tự bao gồm cả code mà sẽ được thực hiện bởi server và như vậy là họ đã xâm nhập được vào hệ thống. Các hacker sẽ phát hiện những lỗi này theo một số cách. Một là source code cho rất nhiều các dịch vụ trên mạng. Hacker sẽ xem các code này để tìm ra các đoạn chương trình có lỗi tràn bộ nhớ. Hai là, hacker có thể nhìn vào chương trình để xem có lỗi đó tồn tại hay không, tuy vậy việc đọc mã assembly ở đầu ra là rất khó. Ba là hacker sẽ kiểm tra mọi nơi chương trình có đầu vào và cố gắng làm tràn nó với một dữ liệu ngẫu nhiên. Nếu chương trình bị lỗi thì đây là một cơ hội tốt để hacker thâm nhập vào. Lưu ý là vấn đề này phổ biến đối với những chương trình viết bằng C/C++, nhưng hiếm trong những chương trình viết bằng JAVA. Unexpected combinations (các kết hợp không được mong đợi) : các chương trình thường được xây dựng sử dụng nhiều lớp code bao gồm lớp dưới hệ điều hành như là lớp dưới cùng của các lớp. Kẻ xâm nhập có thể thường xuyên gửi đầu vào vô nghĩa đối với một lớp nhưng có ý nghĩa đối với nhiều lớp khác. Ngôn ngữ thông dụng nhất để xử lý đầu vào người dùng là PERL. Các chương trình viết bằng PERL sẽ thường xuyên gửi các đầu vào này đến các chương trình khác để ước lượng. Một kỹ thuật hacker phổ biến có thể đi vào như "| mail < /etc/passwd". Điều này được thực hiện bởi vì PERL yêu cầu hệ điều hành khởi động một chương trình thêm vào với đầu ra đó. Tuy nhiên, hệ điều hành chặn kí tự đường ống “|”, và khởi động chương trình mail, điều này có thể dẫn đến việc file password được gửi cho kẻ xâm nhập. Unhandled input (đầu vào không được xử lý): hầu hết các chương trình được viết để xử lý đầu vào hợp lệ. Đa số lập trình viên không xem xét đến trường hợp là điều gì sẽ xảy ra khi đầu vào được nhập không đúng theo đặc tả. Race condition : hầu hết các hệ thống ngày nay là đa nhiệm/đa luồng (multitasking/ multỉTheaded). điều này có nghĩa là chúng có thể thực hiện hơn một chương trình tại một thời điểm. Sẽ là nguy hiểm nếu hai chương trình cùng phải truy cập đến một cơ sở dữ liệu tại cùng một thời điểm. Giả sử hai chương trình A và B cùng muốn sửa đổi cùng một file. Muốn sửa đổi một file, chương trình trước tiên phải đọc file vào bộ nhớ, thay đổi nội dung trong bộ nhớ sau đó copy từ bộ nhớ ngược trở lại file. Race condition xảy ra khi chương trình A đọc file vào bộ nhớ sau đó thay đổi, và trước khi A thực hiện ghi lên file, chương trình B can thiệp vào và thực hiện đầy đủ đọc/ sửa đổi/ ghi lên file. Bây giờ chương trình A ghi bản copy của nó ngược trở ra file. Vì chương trình A bắt đầu với bản copy trước khi B tiến hành thay đổi nó nên mọi thay đổi của B lên file sẽ bị mất. Vì bạn cần phải thực hiện một chuỗi các sự kiện theo đúng một trật tự nào đó nên race condition là hiếm. Những kẻ xâm nhập thường xuyên phải cố gắng hàng ngàn lần trước khi thành công và hack vào hệ thống. Lỗi cấu hình hệ thống (System configuration bugs): Lỗi cấu hình hệ thống có thể chia thành các loại sau : Default configurations : đa số các hệ thống được gửi tới các khách hàng ở chế độ mặc định (cấu hình dễ sử dụng_easy to use). Thật không may mắn, easy-to-use cũng đồng nghĩa với easy-to-break-in. Hầu hết các máy UNIX hoặc WINNT được chuyển cho ban đều có thể bị hack dễ dàng. Lazy administrators: Một số lượng đáng ngạc nhiên các máy được cấu hình với password root/administrator rỗng. Đó là vì người quản trị quá lazy để cấu hình nó và muốn bật máy, chạy máy thật nhanh với việc làm phiền ít nhất. Không may là họ không bao giờ quay lại và điền password sau đó, nên kẻ xâm nhập sẽ dễ dàng truy cập vào hệ thống. Một điều đầu tiên mà kẻ xâm nhập sẽ làm trên một mạng là dò tìm tất cả các máy có password rỗng. Hole creation (việc tạo lỗ hổng) : hầu hết các chương trình có thể được định cấu hình để chạy trong chế độ không an toàn. Đôi khi một số nhà quản trị vô tình mở một lỗ hổng. Hầu hết các hướng dẫn về việc quản trị gợi ý rằng các nhà quản trị nên tắt mọi thứ mà hoàn toàn không cần thiết chạy trên máy để tránh các lỗ hổng bất ngờ. Trust relationships : kẻ xâm nhập thường lợi dụng các quan hệ tin cậy trên mạng. Một hệ thống mạng bao gồm các máy tin cậy lẫn nhau sẽ chỉ an toàn khi nó có kết nối yếu. Phá password (Password cracking): Really weak passwords: hầu hết mọi người dùng tên của họ, tên của bọn trẻ, con vật, hoặc nhãn hiệu xe làm password. Còn có những người không dùng password. Điều này dẫn đến một danh sách nhỏ hơn 30 khả năng cho kẻ xâm nhập có thể tự mình nhập đúng thông tin. Dictionary attacks (tấn công từ điển): không áp dụng được các biện pháp tấn công ở trên, kẻ xâm nhập có thể thực hiện bước tiếp theo là cố gắng “dictionary attack”. Trong kiểu tấn công này, kẻ xâm nhập sẽ dùng một chương trình để thử mọi từ có khả năng trong từ điển. Bằng cách lặp đi lặp lại việc log in vào hệ thống bằng tập hợp các password được mã hoá và cố gắng tìm ra. Những kẻ tấn công sẽ có một bản copy các từ điển tiếng Anh như là cơ sở dữ liệu (bao gồm tên và danh sách các password thông dụng). Brute force attacks : giống như dictionary attack, kẻ xâm nhập cố gắng thử tất cả các khả năng có thể gồm tập hợp các kí tự. Một password ngắn 4 kí tự gồm các chữ thường thì có thể dễ dàng bị phá chỉ trong vài phút. Password dài 7 kí tự, bao gồm cả chữ hoa chữ thường thì phải mất hàng tháng để phá. Những kẻ xâm nhập có thể lấy password theo các cách sau đây : Nghe trộm văn bản rõ (clear-text sniffing): một số giao thức (Telnet, FTP, HTTP) sử dụng password clear-text, có nghĩa là chúng không được mã hoá khi truyền trên đường dây giữa client và server. Một kẻ xâm nhập với một bộ phân tích giao thức sẽ giám sát đường dây và tìm kiếm những password như vậy. Không cần nhiều nỗ lực, kẻ xâm nhập đã có thể ngay lập tức sử dụng các password đó để log in vào hệ thống. Nghe trộm password được mã hoá: hầu hết các giao thức sử dụng một số loại mã hoá trên password, trong trường hợp này, kẻ xâm nhập sẽ phải sử dụng phép tấn công từ điển (dictionary) trên password để giải mã. Chú ý rằng bạn vẫn không được biết về sự hiện diện của kẻ xâm nhập vì chúng hoàn toàn chủ động và không truyền bất cứ tín hiệu nào trên đường dây. Việc phá password không đòi hỏi tín hiệu nào được gửi trên đường dây khi máy của kẻ xâm nhập đang được d