Đồ án Tìm hiểu và xây dựng hệ thống phát hiện xâm nhập trên mạng IP

Mục lục

 

Lời nói đầu 5

Chương 1 7

Các kiến thức về mô hình mạng TCP/IP 7

1.Kiến thức chung về mạng máy tính 7

1.1. Mô hình OSI 7

1.1.1. Tầng vật lý. 8

1.1.2. Tầng liên kết dữ liệu. 8

1.1.3. Tầng mạng 9

1.1.4. Tầng giao vận 9

1.1.5. Tầng phiên 9

1.1.6. Tầng trình diễn 10

1.1.7. Tầng ứng dụng 10

1.2. Cấu trúc phân tầng trong giao thức TCP/IP 11

1.2.1. Tầng truy nhập mạng 13

1.2.2. Tầng liên mạng 13

1.2.3. Tầng giao vận 13

1.2.4. Tầng ứng dụng 14

2. Giao thức IP 14

2.1. Cấu trúc khối dữ liệu IP 15

2.2. Cấu trúc địa chỉ IP 17

2.3. Phân đoạn các khối dữ liệu 19

3. Giao thức TCP 19

3.1. Cấu trúc đoạn dữ liệu TCP 20

3.2. Mô hình hoạt động của TCP 22

4. Khuôn dạng dữ liệu của frame ethernet. 23

Chương 2 25

Tổng quan về an ninh mạng, các nguy cơ bị tấn công, và một số biện pháp phòng tránh. 25

1. Tổng quan về an ninh mạng 25

1.1. Đặt vấn đề 25

1.2. Tình hình thực tế 25

1.3. Các hình thức xâm phạm an toàn mạng và nhu cầu bảo vệ dữ liệu. 26

1.3.1. Bảo vệ dữ liệu 27

1.3.2. Bảo vệ các tài nguyên sử dụng trên mạng 27

1.3.3. Bảo vệ danh tiếng 27

2. Các mối đe dọa vào an ninh hệ thống: 27

2.1. Các tấn công vào phần cứng: 28

2.2. Tấn công trực tiếp 28

2.3. Các truy nhập không được phép 29

2.4. Quan hệ xã hội: 29

2.5. Lỗi hệ thống và các chương trình ẩn: 29

2.5.1. Lỗi của cơ chế xác thực 30

2.5.2. Lỗi trong các giao thức 30

2.5.4. Từ chối dịch vụ 30

3. Một số loại tấn công trên mạng 31

3.1. Ping of Death 31

3.2. Giả mạo IP (IP spoofing) 32

3.3. Giả mạo TCP (TCP spoofing) 32

3.4. Bắt cóc phiên (Session hijacking) 33

3.5. Tấn công bằng hàng loạt các gói SYN (SYN flood attack) 33

3.6. Tấn công bằng IP phân đoạn (IP frags attack) 33

3.7. LAND attack 34

4. Các mối đe dọa đối với dịch vụ thông tin 34

4.1. Tấn công từ chối dịch vụ (Denial of sevice) 34

4.2. Tấn công các giao thức dùng số tuần tự TCP 34

4.3. Tấn công các giao thức không xác thực 35

5. Một số các biện pháp phòng tránh 35

5.1. Các chiến lược bảo mật chung nhất 35

5.1.1. Quyền hạn tối thiểu 35

5.1.2. Bảo vệ theo chiều sâu 35

5.1.3. Điểm thắt 36

5.1.4. Điểm yếu nhất 36

5.1.5. Phối hợp chung 36

5.1.6. Phòng thủ đa dạng 36

5.1.7. Tính đơn giản 36

5.2. Một số biện pháp bảo mật bằng giao thức 37

NAT (Network Address Translation) 37

IPSec 38

5.3. Một số biện pháp bảo mật bằng hệ thống 38

5.3.1. Firewall 38

5.3.2. IDS (Intrusion Detection System) 39

5.3.3. VPN (Vitual Private Network) 40

Chương 3 45

Tổng quan về các hệ thống Intrusion Detection Systems 45

1. Phát hiện sự xâm phạm là gì 45

2. Tại sao phải sử dụng IDS. 45

2.1. Phát hiện các cuộc tấn công và các hành vi vi phạm an ninh mà không ngăn cản được bằng các biện pháp khác. 45

2.2. Phát hiện sớm dấu hiệu các cuộc tấn công khi nó mới mới bắt đầu xảy ra, nhằm có biện pháp ngăn chặn kịp thời. 46

2.3. Tăng độ mạo hiểm cho kẻ tấn công. 46

2.4. Giúp cho việc thiết kế bảo mật và quản trị có chất lượng 46

2.5. Cung cấp các thông tin hiệu quả về sự xâm nhập 46

2.6. Lập tài liệu về các nguy cơ có thể xảy ra với hệ thống 47

2.Phân loại các hệ thống IDS chính 47

3.1. Network Based IDS (NIDS ) 47

3.1.1. Ưu điểm của hệ thống NIDS 47

3.1.2. Nhược điểm của hệ thống NIDS 48

3.2. Host based IDS (HIDS) 48

3.2.1. Ưu điểm của hệ thống HIDS 49

3.2.2. Nhược điểm của Hệ thống HIDS 49

3.3. Application Based IDS (AIDS) 49

3.3.1. Ưu điểm của hệ thống AIDS 50

3.3.2. Nhược điểm của hệ thống AIDS 50

3.4. Sử dụng kết hợp HIDS và NIDS 50

2.Các kỹ thuật phân tích của các hệ thống IDS 51

2.1. Phát hiện sự lạm dụng(Misuse detection) 51

2.1.1. Ưu điểm 51

2.1.2. Nhược điểm. 51

2.2. Phát hiện sự bất thường(Anomaly Detection) 51

2.2.1. Ưu điểm 52

2.2.2. Nhược điểm 52

2.3. Giám sát (Target Monitoring ) 52

2.4. Thăm dò hành động lén lút 53

3. Hệ thống phát hiện xâm nhập dựa trên thống kê 53

3.1. Ưu điểm 53

3.2. Nhược điểm 53

Chương 4 55

Xây dựng 1 chương trình IDS 55

1. Mục đích : 55

1.1. Có khả năng ghi lại các hoạt động trên mạng 55

1.2. Dựng lại phiên làm việc giữa hai máy trên mạng 55

1.3. Phát hiện các hành vi bất thường để thông báo cho người quản trị. 55

1.4. Cho phép cấu hình một cách đơn giản 55

2. Thiết kế chương trình. 56

2.1. Cơ sở dữ liệu: 57

2.2. Module bắt các gói tin 57

2.3 Module phân tích các gói tin 58

2.3. Xây dựng lại phiên làm việc 59

2.4. So sánh với các cấu hình trong hệ thống 60

2.5. Module nhận các thông tin từ người sử dụng 61

3. Thiết kế chi tiết của chương trình 61

3.1. Cơ sở dữ liệu. 61

3.2. Thu bắt các gói tin 62

3.3. Xây dựng lại phiên làm việc 63

3.4. So sánh với các cấu hình trong hệ thống 63

4. Cài đặt chương trình 63

4.1. Các sơ đồ thuật toán của chương trình. 64

4.2. Các hàm sử dụng trong chương trình 66

4.2.1. Các hàm dùng để bắt gói tin. 66

4.2.2. Các hàm dùng để xử lý gói tin 67

4.2.3. Hàm xây dựng lại phiên làm việc 67

4.2.4. Kiểm tra Phiên 67

5. Các Form trong chương trình 68

5.1. Form Config 68

5.2. Form Packet Detail Information 69

5.3. Form Alert 70

6. Một số kết quả đạt được 70

7. Phương hướng phát triển trong tương lai 71

8. Lời kết 72

Phụ lục A 73

Phụ lục B 74

 

 

doc76 trang | Chia sẻ: maiphuongdc | Lượt xem: 2505 | Lượt tải: 2download
Bạn đang xem trước 20 trang tài liệu Đồ án Tìm hiểu và xây dựng hệ thống phát hiện xâm nhập trên mạng IP, để xem tài liệu hoàn chỉnh bạn click vào nút DOWNLOAD ở trên
ng hợp lệ. Khi gói này được tạo ra và truyền đến đích, nó sẽ bị phân mảnh trên đờng truyền. Khi các gói đến đích, chúng được tái hợp lại thành gói ban đầu, với độ lớn 65.536 byte và làm tràn vùng đệm trên nhiều hệ thống. 3.2. Giả mạo IP (IP spoofing) Trên nhiều mạng chuyên dùng, thông thường có một hệ thống tường lửa (firewall) hay bộ lọc gói dùng ngăn chặn việc trao đổi dữ liệu không được phép giữa mạng trong và mạng bên ngoài (Internet). Trong những mạng này, để giảm thiểu các quá trình xác thực khi truy nhập giữa các máy trong mạng nội bộ (mạng trong), một số máy của mạng trong có thể được đặt thành các máy “tin cậy” (trusted host). Điều này cho phép các dịch vụ đi từ máy “tin cậy” đến máy đích mà không cần qua bất cứ trình xác thực nào. Nếu kẻ tấn công bên ngoài giả mạo được địa chỉ IP nguồn là địa chỉ IP của các máy như vậy để gửi các gói vào mạng bên trong, thì hệ firewall hay bộ lọc gói đều cho phép chúng đi qua, vì địa chỉ nguồn của chúng là địa chỉ mạng trong. Phương pháp tấn công này được gọi là “giả địa chỉ IP”. Nhờ phương pháp này, kẻ tấn công có thể đột nhập được vào các máy có đặt chế độ tin cậy và các máy khác trong mạng chuyên dụng. 3.3. Giả mạo TCP (TCP spoofing) Một kết nối TCP được định nghĩa đầy đủ với 4 tham số: địa chỉ IP nguồn, số hiệu cổng TCP nguồn, địa chỉ IP đích, số hiệu cổng TCP đích. Phần đầu gói IP chứa địa chỉ IP nguồn và đích, loại giao thức vận chuyển (TCP=6, UDP=17, vv...). Phần đầu gói TCP có chứa số hiệu cổng nguồn, số hiệu cổng đích, các số tuần tự (sequence) và báo nhận (acknowledge) cũng như các cờ SYN, ACK, RST, FIN, .v.v. Khi một gói IP đi qua một giao diện mạng của hệ thống, ta có thể đọc được nội dung của gói đó, bao gồm cả các giá trị SEQ/ACK hiện thời của các gói trên kết nối đó. Khi bắt được một gói, hệ thống của người đột nhập (hacker) có thể tạo ra các gói dữ liệu IP giả có cùng địa chỉ IP nguồn và số hiệu cổng TCP nguồn cũng như các giá trị SYN/ACK cùng các cờ của TCP đặt trong gói sao cho hệ thống đích bị đánh lừa, ngộ nhận gói dữ liệu thu được là gói dữ liệu của bên phát thật. Đồng thời với việc này, hệ thống của hacker còn gửi gói TCP cho hệ thống nguồn với cờ FIN = 1 (kết thúc kết nối) hay cờ RST = 1 (khởi tạo lại, reset) để đánh lừa là hệ thống đích muốn kết thúc kết nối với hệ thống nguồn. Thông thường như vậy thì hệ thống của hacker đã đánh lừa được cả bên phát (hệ thống nguồn) và bên nhận (hệ thống đích). Sau khi bị lừa, bên phát kết thúc kết nối TCP với bên thu, trong khi bên thu lại tưởng hệ thống của hacker là bên phát và tiếp tục trao đổi dữ liệu. 3.4. Bắt cóc phiên (Session hijacking) Khi bên phát S và bên thu D thiết lập kết nối cũng như truyền dữ liệu, mối tin tưởng của S và D với nhau là: địa chỉ IP nguồn, địa chỉ TCP nguồn, địa chỉ IP đích, địa chỉ TCP đích, các giá trị SEQ/ACK. Nếu một hacker làm lẫn lộn các giá trị SEQ/ACK trong các gói từ S đến D thì D sẽ không còn tin tưởng các gói thật từ S đến nữa. Khi đó, hacker sẽ giả làm S, dùng đúng các giá trị SEQ/ACK của S để tiếp tục trao đổi dữ liệu với D. Phương thức của hacker là làm lẫn lộn các giá trị SEQ/ACK từ S đến D được thực hiện bằng cách chèn các gói dữ liệu vào đúng thời điểm gói từ S đến D, làm cho D chấp nhận gói dữ liệu giả này và cập nhật giá trị ACK của nó. 3.5. Tấn công bằng hàng loạt các gói SYN (SYN flood attack) Bình thường, khi một client muốn thiết lập một liên kết TCP với Server nó gửi một gói TCP với cờ SYN = 1, yêu cầu thiết lập kết nối. Khi server nhận được gói SYN, nó xác nhận với client bằng cách gửi gói SYN-ACK (SYN = 1 và ACK =1) cho client. Client khi nhận được gói này cũng xác nhận lại với Server bằng gói SYN-ACK và kết nối bắt đầu. Quá trình thiết lập kết nối này được gọi là bắt tay 3 bước. Khi tấn công sử dụng SYN, gói SYN đầu tiên được gửi tới cho server đã bị giả địa chỉ IP nguồn, hoặc được thay thế bằng một địa chỉ IP không tồn tại trên Internet, hoặc là địa chỉ IP của một máy tính khác. Kẻ tấn công sẽ gửi rất nhiều gói SYN tới server để làm cạn kiệt tài nguyên TCP (vùng đệm lưu các trạng thái kết nối). Khi nhận được các gói đồng bộ SYN này, server sẽ cấp phát tài nguyên để xử lý và theo dõi các kết nối mới này sau đó gửi lại các gói đồng bộ SYN-ACK. Trong trường hợp này, gói SYN-ACK được gửi tới cho một địa chỉ giả hay địa chỉ IP đã bị lừa. Vì là địa chỉ giả nên server sẽ không nhận được các gói SYN-ACK (bước 3) từ phía client để bắt đầu thiết lập kết nối. Server sẽ giả sử rằng gói SYN-ACK đã gửi đi bị thất lạc trên mạng và sẽ gửi lại vài gói SYN-ACK nữa (5 lần với Windows NT), đồng thời tăng giá trị time-out cho mỗi lần truyền lại (3, 6, 12, 24, 48 giây với Windows NT). Sau lần truyền lại gói SYN-ACK cuối cùng, server sẽ từ bỏ kết nối đó và giải phóng các tài nguyên đã cấp phát cho kết nối. Như vậy, tổng số thời gian chiếm giữ tài nguyên TCP cho kết nối đó là lớn và "vô nghĩa" (với Windows NT khoảng 189 giây). Với kiểu tấn công này, server sẽ bị cạn kiệt tài nguyên TCP và không có khả năng xử lý các kết nối TCP khác nữa. 3.6. Tấn công bằng IP phân đoạn (IP frags attack) Các router thường rất dễ bị tấn công (bị lừa) bởi phương pháp này. Thông thường, các router đều có các danh sách điều khiển truy nhập ACL (Access Control List). Danh sách này được thiết lập bởi người quản trị mạng, cho phép thiết lập các luật lọc gói trong router. Các gói IP có được qua hay không đều dựa vào danh sách này. Trong hoạt động bình thường của router, nếu phân đoạn IP đầu tiên được phép đi qua dựa trên ACL thì router sẽ chuyển gói đi đúng đích. Sau đó, nó sẽ tuần tự chuyển các phân đoạn IP tiếp theo mà không kiểm tra theo ACL. Trong phương thức tấn công dùng Overlapping Fragments, kẻ tấn công dùng các phân đoạn IP sau ghi đè lên phần cuối của phân đoạn đầu tiên, đánh lừa router để chấp nhận 3.7. LAND attack Kẻ tấn công gửi một gói đánh lừa đến cho một hệ thống với địa chỉ IP đích và địa chỉ IP nguồn trùng nhau, số hiệu cổng TCP đích và số hiệu cổng TCP nguồn trùng nhau. Khi nhận được gói này, theo phản ứng tự nhiên của một hệ TCP/IP, hệ thống bắt đầu trao đổi dữ liệu với chính nó. Một số hệ thống sẽ trở nên chậm chạp và không có phản ứng gì với các hoạt động khác khi gặp phải loại tấn công này. 4. Các mối đe dọa đối với dịch vụ thông tin Các dịch vụ thông tin là chỗ yếu nhất của toàn hệ thống. Chúng không được thiết kế để đảm bảo an ninh hệ thống cũng như tự bảo vệ chính nội dung thông tin mà chúng truyền tải. Phần lớn các dịch vụ thông tin không có cơ chế mã hóa nội dung thông tin được cung cấp trong các gói dữ liệu truyền trên mạng. Do vậy, một khi đã bị nghe trộm thì toàn bộ nội dung thông tin dễ dàng hiển thị hết trên màn hình của kẻ phá hoại. Các dịch vụ thông tin có thể kể ra là: Telnet, Web, E-Mail, Gopher, IRC, .v.v. Thêm nữa, các dịch vụ thông tin, bao gồm tiến trình phục vụ phía máy dịch vụ và tiến trình khách hàng phía máy người dùng, đều chỉ thiết kế với một cơ chế làm việc nhất định. Nếu chúng bị bắt buộc làm việc sai cơ chế, hay kẻ tấn công lợi dụng kẽ hở của cơ chế làm việc hoặc của bản thân giao thức dịch vụ, thì dịch vụ đó coi như đã bị tấn công, gây hiểm họa cho bản thân hệ thống đó cũng như các hệ thống khác có liên quan. Nhiều giao thức không có cơ chế xác thực đối với khách hàng, thí dụ: SMTP hay NFS là các kẽ hở an ninh đối với kẻ tấn công. 4.1. Tấn công từ chối dịch vụ (Denial of sevice) Đây là các cách tấn công nhằm vào các hệ thống dịch vụ mạng. Các tấn công chủ yếu vào các hệ thống TCP/IP như “Ping Of Death”, “SYN flooding”, “LAND attack”, .v.v. Mục đích của các tấn công này là làm chậm phản ứng hay làm tê liệt hoàn toàn hệ TCP/IP để hệ thống không còn khả năng đáp ứng dịch vụ mà người dùng yêu cầu. 4.2. Tấn công các giao thức dùng số tuần tự TCP Vì không đủ số ngẫu nhiên trong quá trình tạo “số tuần tự TCP ban đầu” cho một kết nối TCP nên có thể gây ra kẽ hở cho kẻ tấn công lừa địa chỉ nguồn. Các giao thức khác dựa trên số tuần tự đều có thể bị tấn công bằng cùng phương cách, bao gồm DNS và RPC. Kẻ tấn công có thể dùng nhiều thuật toán hay phương pháp tạo số tuần tự để đoán được các số tuần tự của TCP cũng như của các giao thức dịch vụ. 4.3. Tấn công các giao thức không xác thực Nhiều giao thức không có cơ chế xác thực như SMTP hay xác thực rất lỏng lẻo như NFS. Các giao thức này thường là mục đích tấn công hay là phương tiện tấn công của các hacker. Các hacker có thể giả các gói của các giao thức này để nói chuyện với hệ thống, và nếu tiến trình phục vụ của giao thức này có quyền hoặc một phần quyền của quản trị hệ thống trong hệ thống đó, thì hacker có thể lợi dụng khe hở này để đột nhập vào hệ thống. 5. Một số các biện pháp phòng tránh 5.1. Các chiến lược bảo mật chung nhất 5.1.1. Quyền hạn tối thiểu Nguyên tắc cơ bản nhất của chức năng bảo mật là cơ chế quyền hạn tối thiểu. Về cơ bản, nguyên tắc này là bất kỳ một đối tượng nào (người sử dụng, người điều hành, chương trình…) chỉ nên có những quyền hạn nhất định mà đối tượng đó cần phải có để có thể thực hiện được các nhiệm vụ của mình và chỉ như vậy mà thôi. Đây là nguyên tắc quan trọng để hạn chế sự phơi bầy hệ thống cho kẻ khác tấn công và hạn chế sự thiệt hại khi bị tấn công. Áp dụng nguyên tắc quyền hạn tối thiểu (least privilege), nên tìm cách để giảm quyền hạn cần dùng cho từng người sử dụng với từng công việc cụ thể. Ví dụ như không nên đưa cho người dùng mật khẩu của root (tài khoản quản trị cao nhất) khi mà công việc cần nhất của họ với hệ thống chỉ là khởi động lại máy in. Thay vào đó, nên viết một chương trình có quyền khởi động lại máy in để họ dùng mà thôi. Tuy nhiên, có rất nhiều vấn đề về an ninh mạng trên internet bị xem là thất bại khi áp dụng nguyên tắc quyền hạn tối thiểu này. Ví dụ chương trình sendmail được chạy với quyền của người quản trị hệ thống, tức là nó chuyển quyền thực tế về root khi chạy, nên rất nhiều cuộc tấn công khai thác điểm này để chiếm quyền điều khiển toàn bộ hệ thống. 5.1.2. Bảo vệ theo chiều sâu Tư tưởng của chiến lược này là hệ thống bảo mật gồm nhiều mức, sau mức bảo mật này thì có mức bảo mật khác, các mức bảo mật hỗ trợ lẫn nhau. Hệ thống càng “mật” khi các mức này được xây dựng theo các kĩ thuật bảo mật khác nhau, ngăn chặn được các kiểu tấn công khác nhau. Không nên chỉ phụ thuộc vào một chế độ an toàn dù nó có mạnh đến thế nào đi nữa. Sau khi xây dựng hệ thống firewall, xây dựng thêm hệ thống IDS thì khi kẻ xâm nhập có thể vượt qua firewall nhưng sẽ bị theo dõi. Hệ thống IDS sẽ bổ trợ cho firewall làm tăng tính an toàn cho hệ thống. 5.1.3. Điểm thắt Điểm thắt buộc những kẻ tấn công vào hệ thống phải thông qua một kênh hẹp mà người quản trị có thể điều khiển được. Ở đây, người quản trị có thể cài đặt các cơ chế giám sát, kiểm tra và điều khiển (cho phép hoặc không cho phép) các truy nhập vào hệ thống. Trong an ninh mạng, IDS nằm giữa hệ thống bên trong và Internet nhưng trước firewall như một nút thắt (giả sử chỉ có một con đường kết nối duy nhất giữa hệ thống bên trong với internet). Khi đó, tất cả những kẻ tấn công từ internet khi đi qua nút thắt này thì sẽ bị người quản trị theo dõi và phản ứng lại kịp thời. Yếu điểm của phương pháp này là không thể kiểm soát, ngăn chặn được những hình thức tấn công đi vòng qua điểm đó. 5.1.4. Điểm yếu nhất Những kẻ tấn công thông minh luôn tìm các điểm yếu nhất của hệ thống để tấn công vào đó. Chúng sẽ không bỏ nhiều thời gian và công sức để cố gắng vượt qua một firewall được xây dựng vững chắc trong khi có con đường vòng khác đang “rộng mở” hơn. Do đó, cần phải nhận ra được điểm yếu của hệ thống, từ đó có phương thức bảo vệ thích hợp với các đợt tấn công. Thường thì ta quan tâm đến những kẻ tấn công từ mạng hơn mà quên đi rằng còn có những kẻ tiếp cận hệ thống trực tiếp, vì vậy có thể nói rằng điểm yếu nhất trong hệ thống là an toàn về mặt vật lý. 5.1.5. Phối hợp chung Để đạt hiệu quả cao, hầu hết các hệ thống an toàn đòi hỏi phải có sự phối hợp chung của tất cả các thành phần trong hệ thống (người sử dụng, phần cứng bảo mật, phần mềm bảo mật, các cơ chế an toàn…) để tạo thành hệ bảo mật, giám sát và hỗ trợ lẫn nhau. 5.1.6. Phòng thủ đa dạng Hệ thống phòng thủ gồm nhiều module, cung cấp nhiều hình thức phòng thủ khác nhau. Do đó, module này lấp “lỗ hổng” của các module khác. Ngoài firewall, một mạng LAN hay một máy cục bộ cần sử dụng các module bảo vệ khác của ứng dụng, hệ điều hành, thiết bị phần cứng,... Sự đa dạng của các hệ thống mạng bên trong có thể làm tăng khả năng bảo vệ mạng. Nếu mạng bên trong bao gồm các hệ thống giống nhau thì khi có một lỗi chung trong hệ điều hành hoặc một chương trình ứng dụng có thể làm cho toàn bộ hệ thống bị tấn công theo cùng một phương pháp. Tuy nhiên, sự đa dạng cũng đồng nghĩa với sự phức tạp trong việc quản lý các hệ thống khác nhau, đồng thời tăng chi phí trang bị phần cứng, phần mềm. 5.1.7. Tính đơn giản Tính đơn giản cũng là một chiến lược bảo mật vì hai lý do: Đơn giản sẽ dễ hiểu, dễ kiểm soát và biết được rằng chúng có thực sự được bảo mật hay không. Sự phức tạp sẽ kèm theo những ngóc ngách, kẽ hở để đủ thứ có thể lọt vào. Vì vậy, đơn giản vẫn hơn. Hơn nữa, các chương trình phức tạp có khả năng bị nhiều lỗi hơn, và rất có thể đó lại là lỗi bảo mật. 5.2. Một số biện pháp bảo mật bằng giao thức NAT (Network Address Translation) Thông thường một gói tin truyền từ điểm nguồn đến điểm đích có thể phải qua rất nhiều nút mạng. Tuy nhiên hầu như không có nút nào trong các nút mạng này thay đổi nội dung của gói tin trừ các thông tin cần thiết như là địa chỉ IP đích, địa chỉ MAC. Nếu ta sử dụng cơ chế NAT trong mạng thì một số thông tin của gói tin IP sẽ bị thay đổi, chẳng hạn: IP nguồn, IP đích…Mặt khác, để đảm bảo việc trao đổi thông tin giữa các nút mạng thì các sự thay đổi này cần phải được lưu lại để phục vụ cho việc chuyển đổi ngược lại khi cần thiết. Tại sao phải dùng đến NAT ? Nếu ta kết nối vào Internet thông qua dial-up thì các ISP sẽ chỉ cung cấp cho ta một địa chỉ IP duy nhất, các gói tin gửi đi sẽ được reply nếu nó có đúng địa chỉ nguồn do ISP cung cấp. Trong trường hợp muốn dùng nhiều địa chỉ IP khác nhau trong mạng thì ta phải dùng đến cơ chế NAT. Theo đó trong mạng sẽ có một máy (máy multi-homed hoặc bộ định tuyến) chạy phần mềm NAT, có thể gọi máy tinh này là NAT box. Tất cả các gói tin gửi từ trong mạng ra ngoài sẽ phải qua NAT box và nó sẽ chịu trách nhiệm chuyển đổi địa chỉ IP nguồn (là địa chỉ không được chấp nhận ở mạng ngoài) thành địa chỉ hợp lệ mà ISP đã cung cấp. Khi gói tin đi vào mạng thì nó sẽ chỉ biết gửi thông tin cho NAT box. Như thế, theo quan điểm của máy bên ngoài, mỗi datagram đến từ NAT box và mỗi lời đáp cũng trả về cho NAT box. Bằng cách nào gói tin đến được đúng địa chỉ máy cần gửi trong mạng? Thực ra, NAT duy trì một bảng chuyển đổi, nó sẽ sử dụng để thực hiện việc ánh xa. Mỗi dòng trong bảng xác định 2 giá trị: địa chỉ IP của máy trên Internet và địa chỉ IP nội bộ của máy trong mạng. Để làm được điều này thì trong NAT box sẽ lưu lại trạng thái (state) của các gói tin tương ứng với từng máy trong mạng đã được gửi đi. Trạng thái này có thể là các port nguồn trong các dịch vụ đối với các dịch vụ hướng kết nối như TCP, và thông tin về Session đối với các dịch vụ không hướng kết nối như UDP. Vì thế, khi gói tin gửi cho NAT box thì nó sẽ tra bảng trạng thái mà nó đã lưu để chuyển đổi địa chỉ cho phù hợp với máy cần nhận trong mạng. Cơ chế này thường được áp dụng cho các ISP mà chỉ được cung cấp số ít địa chỉ IP trong khi có một số lượng lớn host. Ý nghĩa của việc dùng NAT trong bảo mật Với việc dùng NAT thì các máy bên trong mạng sẽ trở nên trong suốt với môi trường ngoài vì địa chỉ IP của nó không hợp lệ, vì thế việc tấn công vào một máy cụ thể nào đó trong mạng là điều khó khăn. Giới hạn của NAT NAT không biết về các thông tin tầng trên trong gói tin NAT thực hiện thay đổi địa chỉ IP nên không thực hiện được cơ chế authentication trong IPSec khi kết nối end-to-end. IPSec Với việc sử dụng NAT ta mới chỉ hạn chế được việc tấn công vào trong mạng chứ không đảm bảo được tính mật (secret) và xác thực (authentication) vì thông tin vẫn có thể bị nghe trộm. Vì vậy cần phải mã hoá thông tin. IPSec được thêm vào để tăng cường tính toàn vẹn, xác thực và mã hoá dữ liệu. IPSec kết nối End-to-End và tạo một đường hầm (tunnel) bảo mật trên đó. 5.3. Một số biện pháp bảo mật bằng hệ thống 5.3.1. Firewall Firewall là một thiết bị (phần cứng + phần mềm) nằm giữa mạng của một tổ chức, một công ty hay một quốc gia (mạng Intranet) và mạng Internet bên ngoài. Vai trò chính của nó là bảo mật thông tin, ngăn chặn sự truy nhập không mong muốn từ bên ngoài (Internet) và cấm truy nhập từ bên trong (Intranet) tới một số địa chỉ nhất định trên Internet. Firewall là một thiết bị bảo vệ, vì vậy nó phải là một thiết bị có độ an toàn rất cao. Nếu được xây dựng trên hệ thống máy tính thì firewall phải được xây dựng trên những hệ thống máy tính mạnh, có khả năng chịu lỗi cao. Ngoài ra hệ điều hành dùng trên máy tính này phải là những phiên bản an toàn, ổn định. Hình 3.3.1. Mô hình tổng quan Firewall Trong hình trên ta thấy tất cả các thông tin đi vào và ra khỏi mạng nội bộ đều phải qua firewall. Firewall chịu trách nhiệm loại bỏ các thông tin không hợp lệ. Để biết thông tin qua nó có hợp lệ hay không thì firewall phải dựa vào tập luật (rules) mà nó đặt ra. Chúng ta sẽ tìm hiểu kỹ hơn về vấn đề này trong phần sau. Firewall có thể ngăn chặn được nhiều kiểu tấn công nhưng không đủ để ngăn chặn tất cả các cách tấn công làm nguy hại đến hệ thống mạng cần bảo vệ. Vì thế ta phải kết hợp với các biện pháp khác để nâng cao độ an toàn cho mạng càng mạnh càng tốt. Trong phần tiếp theo ta sẽ đề cập chi tiết hơn về Firewall. 5.3.2. IDS (Intrusion Detection System) Như đã trình bày ở trên, Firewall hay IPSec chỉ là phương pháp với nhiệm vụ chủ yếu là phòng thủ, tức là chủ yếu ngăn chặn các loại hình tấn công từ bên ngoài vào và đảm bảo an toàn khi truyền dữ liệu tức là chống tấn công một cách thụ động. Ngày nay, các kiểu tấn công ngay từ bên trong mạng đã trở nên phổ biến và đặc biệt nguy hiểm. Chẳng hạn như việc phát tán các virus Trojan, truy cập và sử dụng trái phép tài nguyên mạng, hoạt động gián điệp… Những loại tấn công từ bên trong này quả thật là rất khó phát hiện và hậu quả mà nó gây ra cũng không phải là nhỏ. Vì những lý do trên nên để hệ thống an ninh mạng của ta được hoàn thiện thì cần phải có một hệ thống có khả năng phát hiện được các kiểu tấn công ngay từ trong mạng. Hệ thống đảm nhận chức năng này có tên là IDS. Intrusion Detection là quá trình theo dõi các sự kiện xảy ra trong hệ thống mạng máy tính và phân tích chúng để tìm ra những dấu hiệu của sự xâm phạm (intrusion) nhằm đảm bảo tính mật, tính toàn vẹn, tính sẵn sàng cho hệ thống. Những sự xâm phạm thường được gây ra bởi những kẻ tấn công (attackers) truy cập vào hệ thống từ Internet, những người dùng hợp pháp cố gắng truy cập đến những tài nguyên không thuộc thẩm quyền của mình hoặc sử dụng sai những quyền đã được cho phép. Các kỹ thuật dò tìm sự xâm phạm Một lần nữa ta phải khẳng định rằng việc xây dựng một hệ thống IDS không phải là chuyện đơn giản. Ví dụ như cần phải có một cơ sở dữ liệu lưu trữ các hành vi của từng người sử dụng trong mạng. Những hành vi này có thể là thói quen làm việc gì đó trên mạng, hay thường vào một site nào đó của một người dùng cụ thể. Khi có một hành động bất thường xảy ra (so với thói quen thường ngày) thì đòi hỏi IDS phải có sự theo dõi gắt gao cho tất cả các hành động của người sử dụng này và dĩ nhiên những thông tin này phải được lưu trong CSDL để nếu lần sau người này có truy cập vào mạng thì ta có cơ chế quản lý khác. Như vậy việc xây dựng và tổ chức một CSDL như thế này là rất khó. Tuy nhiên, một cách tổng quát, một hệ thống IDS thường dựa vào các cách sau để xác định sự xâm phạm: Quan sát các bất thường xảy ra trong hệ thống. Với cách này, hệ thống sẽ phân tích hàng loạt các đặc tính ban đầu (đặc tính ở trạng thái bình thường) của hệ thống và so sánh với phản ứng (đặc tính sẽ có) của hệ thống tương ứng với các giá trị (hành vi) nhận được. Việc cảnh báo sẽ được tiến hành nếu các đặc tính của hệ thống tính toán ra không phù hợp với đặc tính đã có. Quan sát sự bất thường của người sử dụng. Cách này thường dùng để xác định các xâm phạm từ bên trong mạng (bao gồm các thành viên trong mạng và các thành viên đã được xác thực). Quan sát một số tiến trình vượt quá mức đặc quyền cho phép. Cách này sẽ xác định các chuỗi lệnh thực thi nào sẽ thi hành các hành động không được phép trong hệ thống. Cách này thông thường được sử dụng để phát hiện dấu vết của virus. Một mô hình đơn giản của hệ thống IDS như sau: Hình 2.3.2. Mô hình đơn giản của hệ thống IDS DIRECTOR có thể coi là trái tim của hệ thống, nó chịu trách nhiệm phân tích các thông tin gửi từ AGENT lên với các thông tin có sẵn trong CSDL, và đưa ra cách xử lý thích hợp cho hệ thống và cấu hình. AGENT làm nhiệm vụ thu thập tất cả các thông tin như là việc đăng nhập hệ thống, các bản tin… và gửi lên cho DIRECTOR. Bộ phận cảnh báo chịu trách nhiệm thi hành các hành động cụ thể sau khi phát hiện ra sự xâm phạm trái phép, chẳng hạn như thiết lập lại cấu hình Firewall, loại bỏ các hành động trái phép đó. 5.3.3. VPN (Vitual Private Network) Một phương pháp đảm bảo an ninh trong việc truyền dữ liệu trên các môi trường không tin cậy là sử dụng công nghệ mạng riêng ảo (VPN – Vitual Private Network). VPN thiết lập một đường hầm an toàn để truyền dữ liệu đã được đóng gói bởi các giao thức bảo mật như IPSec, PPTP (Point-to-Point Tunneling Protocol) hay L2TP (Layer Two Tunneling Protocol). Hình3.3.3a Mô hình mạng sử dụng VPN Hình 3.3.3b. Tunnel trong IPSec Giao thức IPSec bao gồm 2 phần: Authentication Header (AH) và Encapsulating Security Payload (ESP). Authentication Header (AH) Authentication Header (AH) cung cấp cơ chế xác thực và tính toàn vẹn cho các gói tin IP truyền giữa 2 hệ thống. Điều này có thể thực hiện được bằng cách áp dụng hàm băm một chiều đối với gói tin IP để tạo mẫu thông điệp (message digest). Nếu bất cứ phần nào của datagram bị thay đổi trong quá trình truyền thì nó sẽ bị phát hiện bởi người nhận khi nó thực hiện cùng một hàm băm một chiều trên gói tin đó và so sánh giá trị của mẫu thông điệp mà người gửi cung cấp. Trên thực tế hàm băm một chiều cũng bao gồm việc dùng chung khoá mật giữa 2 hệ thống. Điều đó có nghĩa là tính xác thực đã được bảo đảm. Khi một mẫu thông điệp được dùng để xác thực thì AH đồng thời đạt được 2 mục đích: Xác nhận tính hợp lệ của người gửi vì người gửi biết khoá mật được dùng để tạo mẫu thông điệp đã được tính toán. Cho biết dữ liệu không bị thay đổi trong quá trình truyền. AH có định dạng như sau: Next Header Length Reserved Security Parameters Index Authentication Data 8 bits 8 bits 16 bits Hình 3.3.3c. Format of Authentication Header Phía người nhận sử dụng trường Security Parameters Index để kiểm tra giao thức xác thực và khoá xác thực (authentication protocol and authentication key). Sau đó, người nhận sử dụng khoá xác thực để thực hiện tính toán MD5. Xác thực MD5 được thực hiện trên tất cả các trường của gói tin IP mà không thay đổi trong quá trình truyền (các trường thay đổi như hop counter hay Ipv6 routing pointer được coi là có giá trị 0). Kết quả tính toán của người nhận sẽ được so sánh với giá trị trong trường Authentication Data. Nếu khác nhau thì gói tin này sẽ bị huỷ. Tunnel-Mode Hình 3.3.3d minh hoạ định dạng chế độ tunnel. Toàn bộ gói tin, bao gồm tất cả phần header của nó, được mã hoá. Một header mới được thêm vào để chuyển tiếp gói tin đi. Chú ý rằng đường hầm (tunnel) từ host này tới host kia giữa 2 mạng có thể gặp phải rắc rối nếu giữa chúng có một router firewall. Firewall này có thể muốn kiểm tra các thông tin chẳng hạn như địa chỉ IP nguồn, đích và các cổng có liên quan, có thể bị che bên trong thông điệp đã được mã hoá. New Main IP Header Other New IP Headers Encapsulating Security Payload Header Encrypted Datagram (Includes Original IP Header and Payload – e.g., TCP Segment, UDP Datagram, or ICMP message) Hình 3.3.3d. Tunnel-mode encryption Encapsulating Security Payload (ESP) IP Encapsulating Security Payload header được dùng để cài đặt cho chế độ mã hoá đường hầm (Tunnel-mode encryption). Định dạng của IP Encapsulating Security Payload header được chỉ ra trong hình 2.3.3.e Người nhận sẽ sử dụng Security Parameter Index để tìm thuật toán và khoá sử dụng. Phần còn lại của dữ liệu tùy thuộc vào sự lựa chọn thuật toán ở trên. Security Parameter Index (SPI) Opaque “Transform” Data Hình3.3.3.e An Encapsulating Security Payload header Khi sử dụng thuật toán CBC-DES thì định dạng của ESP header và phần còn lại của gói tin được chỉ ra trong hình 3.3.3.f như sau: Security Parameter Index (SPI) Initialization Vector Payload Data Padding Pad Length Payload Type Hình 3.3.3.f Header and payload when using CBC-DES Initialization Vector là một khối dữ

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

  • doc24801.doc
Tài liệu liên quan