Đặt vấn đề Sự bùng nổ thông tin và mạng máy tính đã dẫn đến yêu cầu cấp thiết phải có các biện pháp toàn diện nhằm đảm bảo An toàn, An ninh thông tin cho ngƣời dùng đích thực. Đến nay, nhiều biện pháp đã đƣợc đƣa ra và ứng dụng trong thực tế nhƣ: Mật mã hóa, mật khẩu, Tƣờng lửa và các phƣơng pháp vật lý, v. Tuy nhiên, mỗi Công nghệ đƣợc đƣa vào ứng dụng trong thực tế đều tồn tại một số sơ hở mà ngƣời ta thƣờng gọi là "lỗ hổng". Ngay cả các hệ điều hành nhƣ: Windows, Unix, Sun Solaris là những phần mềm đƣợc sử dụng rộng rãi nhất hiện nay đều có những lỗ hổng rất nguy hiểm.
Những kẻ truy cập trái phép (Intruders ) đã biết lợi dụng những lỗ hổng đó để lấy cắp thông tin, sửa đổi thông tin, làm mất thông tin hoặc làm chậm lại quá trình trao đổi thông tin của những ngƣời dùng hợp pháp tùy theo ý đồ của họ. Trong phạm vi một Đề tài luận văn Cao học, một học viên không thể tìm hiểu, nghiên cứu hết mọi vấn đề liên quan đến An toàn, An ninh của tất cả các Công nghệ An toàn, Bảo mật thông tin đƣợc. Nhận thấy hệ điều hành luôn là mục tiêu cần đƣợc ƣu tiên bảo vệ do mức độ quan trọng của nó. Vì vậy, trong khuôn khổ Đề tài luận văn, em đã chọn Đề tài "Nghiên cứu, tìm hiểu những vấn đề an ninh của hệ điều hành mạng" làm đề tài luận văn tốt nghiệp của mình.
Do các tài liệu mà em thu thập để nghiên cứu chƣa đầy đủ và cũng do trình độ năng lực còn nhiều hạn chế, chắc chắn trong báo cáo luận văn còn nhiều thiếu sót. Kính mong các thầy, cô góp ý chỉ bảo để luận văn của em có thể tiếp cận gần hơn với thực tiễn. Em xin chân thành cảm ơn. Mục tiêu của đề tài Mục tiêu của Đề tài luận văn là: - Nghiên cứu tổng quan về hệ điều hành.
- Tập trung nghiên cứu, đánh giá 3 hệ điều hành phổ biến hiện nay là Windows, Unix, Solaris. - Tìm hiểu hệ thống hóa các cơ chế an ninh, an toàn, cấu trúc, các cơ chế bảo vệ, bản chất các cơ chế xác thực, cơ chế mật khẩu của các hệ điều hành này Trên cơ sở đó, em đi sâu tìm hiểu, nghiên cứu và phân tích một số lỗ hổng và cuối cùng là thử nghiệm phần mềm mã nguồn mở nhằm khai thác lỗ hổng của hệ điều hành. LUAN VAN CHAT LUONG download : add luanvanchat@agmail. Đối tƣợng và phạm vi nghiên cứu - Đối tƣợng: Là các hệ điều hành máy tính.
- Phạm vi nghiên cứu: Tìm hiểu về các hệ điều hành đang đƣợc sử dụng rộng rãi nhất hiện nay ở Việt Nam. Đặc biệt là hệ điều hành Windows. Nội dung nghiên cứu Nội dung nghiên cứu của luận văn gồm 4 chƣơng: Chƣơng 1: Tổng quan về hệ điều hành Chƣơng 2: Tìm hiểu một vài hệ điều hành thông dụng nhất hiện nay và cơ chế An ninh, An toàn của chúng Chƣơng 3: Đi sâu tìm hiểu vấn đề An ninh, An toàn của hệ điều hành Windows Chƣơng 4: Thử nghiệm phần mềm mã nguồn mở nhằm khai thác lỗ hổng của hệ điều hành. Kết luận và hƣớng phát triển.
LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 3 CHƢƠNG 1: TỔNG QUAN VỀ HỆ ĐIỀU HÀNH Để hiểu hệ điều hành là gì, trƣớc tiên chúng ta phải hiểu chúng đƣợc phát triển nhƣ thế nào. Trong chƣơng này em khái quát về hệ điều hành; điểm lại lịch sử phát triển hệ điều hành. Đƣa ra 8 phân loại hệ điều hành. Tiếp đến, trình bày tiêu chuẩn đánh giá mức độ an toàn hệ điều hành; cơ chế An ninh, An toàn hệ điều hành.
Đi sâu các vấn đề an toàn hệ thống, mối đe dọa từ các chƣơng trình ảnh hƣởng đến hệ thống, xác thực thực thể, kiểm chứng, cài đặt ma trận quyền truy cập. Khái quát về hệ điều hành 1. Định nghĩa hệ điều hành Hệ điều hành là một tầng của hệ thống máy tính nằm giữa phần cứng và các chƣơng trình ngƣời dùng (hay các phần mềm ngƣời dùng). Hệ điều hành đƣợc xây dựng trực tiếp trên giao diện phần cứng và cung cấp giao diện giữa phần cứng máy tính và các chƣơng trình ngƣời dùng.
Thông thƣờng, các phần mềm ứng dụng sẽ không trực tiếp thực hiện trên phần cứng máy tính mà nó yêu cầu một hệ điều hành để chạy trên đó. Hệ điều hành là lớp phần mềm gần nhất đối với bất kỳ phần mềm ứng dụng nào đang đƣợc thực thi. Hệ điều hành cũng là chƣơng trình đầu tiên đƣợc chạy trên máy tính khi máy tính đƣợc khởi động. Hệ điều hành chia sẻ các đặc trƣng với cả phần cứng và phần mềm.
Hệ điều hành là phần mềm, nghĩa là nó là một chƣơng trình đã đƣợc biên dịch, liên kết và chạy trên máy tính. Tuy nhiên, nó lại giống phần cứng trong đó chỉ có một bản copy của hệ điều hành chạy trên máy tính và nó mở rộng các khả năng của phần cứng.1 Mô hình trừu tƣợng của hệ thống máy tính 1. Chức năng chính hệ điều hành 1. Quản lý chia sẻ tài nguyên Tài nguyên của hệ thống (CPU, bộ nhớ, thiết bị ngoại vi,.) vốn rất giới hạn, nhƣng trong các hệ thống đa nhiệm, nhiều ngƣời sử dụng có thể đồng thời yêu cầu LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 4 nhiều tài nguyên.
Để thỏa mãn yêu cầu sử dụng chỉ với tài nguyên hữu hạn và nâng cao hiệu quả sử dụng tài nguyên, hệ điều hành cần phải có cơ chế và chiến lƣợc thích hợp để quản lý việc phân phối tài nguyên. Ngoài yêu cầu dùng chung tài nguyên để tiết kiệm chi phí, ngƣời sử dụng còn cần phải chia sẻ thông tin (tài nguyên phần mềm) lẫn nhau, khi đó hệ điều hành cần đảm bảo việc truy xuất đến các tài nguyên này là hợp lệ, không xảy ra tranh chấp, mất đồng nhất,. Giả lập một máy tính mở rộng Hệ điều hành làm ẩn đi các chi tiết phần cứng, ngƣời sử dụng đƣợc cung cấp một giao diện đơn giản, dễ hiểu, dễ sử dụng và không phụ thuộc vào thiết bị phần cứng cụ thể. Thực tế, ta có thể xem hệ điều hành nhƣ là một hệ thống bao gồm nhiều máy tính trừu tƣợng xếp thành nhiều lớp chồng lên nhau, máy tính mức dƣới phục vụ cho máy tính mức trên.
Lớp trên cùng là giao diện trực quan nhất để điều khiển. Ngoài ra có thể chia chức năng của hệ điều hành theo bốn chức năng sau: Quản lý quá trình (process management) Quản lý bộ nhớ (memory management) Quản lý hệ thống lƣu trữ Giao tiếp với ngƣời dùng (user interaction) 1. Các thành phần của hệ điều hành Hệ điều hành gồm ba thành phần sau: - Bộ cấp phát tài nguyên (Resour allocator): Quản lý và cấp phát tài nguyên. - Chƣơng trình kiểm soát (Control program): Kiểm soát việc thực thi chƣơng trình và kiểm soát hoạt động của các thiết bị nhập/ xuất.
- Phần nhân: là chƣơng trình “lõi” của hệ điều hành, đƣợc thực thi trƣớc tiên và tồn tại trong bộ nhớ cho đến khi tắt máy (các chƣơng trình khác gọi là chƣơng trình ứng dụng). Bộ cấp phát tài nguyên Chƣơng trình kiểm soát Phần nhân Hình 1.2 Các thành phần của hệ điều hành 1. Các dịch vụ hệ điều hành - Thực hiện chƣơng trình - hệ thống có khả năng nạp một chƣơng trình vào bộ nhớ và thi hành nó. - Thực hiện nhập xuất - Từ chƣơng trình ngƣời dùng không thể thực hiện nhập xuất trực tiếp, hệ điều hành phải cung cấp các cách thức để thực hiện nhập xuất.
LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 5 - Các thao tác trên hệ thống file - chƣơng trình có khả năng đọc, ghi, tạo và xoá file. - Truyền thông - Trao đổi thông tin giữa các tiến trình đang thực hiện cùng lúc trên máy tính hay trên các hệ thống trên mạng. Thực hiện bằng cách thông qua bộ nhớ dùng chung hay qua các thông điệp. - Phát hiện lỗi - bảo đảm phát hiện lỗi trong CPU, bộ nhớ, thiết bị nhập xuất hoặc trong chƣơng trình ngƣời sử dụng.
Cấu trúc hệ điều hành 1. Cấu trúc đơn giản - Các hệ điều hành đơn giản thƣờng không có cấu trúc đƣợc định nghĩa tốt, thƣờng bắt đầu từ một hệ thống nhỏ, đơn giản và có giới hạn. - MS-DOS là một hệ điều hành có cấu trúc đơn giản, nó cung cấp những chức năng cần thiết nhất trong một không gian nhỏ nhất do sự giới hạn của phần cứng và không chia thành những đơn thể rõ rệt. - Các chƣơng trình ứng dụng có thể truy cập trực tiếp các thủ tục nhập xuất cơ bản và ghi trực tiếp lên màn hình hay bộ điều khiển đĩa.3 Cấu trúc đơn giản hệ điều hành 1.
Cấu trúc phân lớp - Hệ điều hành chia thành nhiều lớp. Lớp dƣới cùng là phần cứng, lớp trên cùng là giao tiếp với ngƣời sử dụng. LUAN VAN CHAT LUONG download : add luanvanchat@agmail.com 6 - Một lớp của hệ điều hành bao gồm một số cấu trúc dữ liệu và các hàm có thể đƣợc gọi bởi lớp ở phía trên và bản thân nó gọi những chức năng của lớp bên dƣới. Mỗi lớp cài đặt chỉ sử dụng những thao tác do lớp dƣới cung cấp.
Lớp 6: Chƣơng trình của ngƣời sử dụng Lớp 5: Driver thiết bị và bộ lập lịch Lớp 4: Bộ nhớ ảo Lớp 3: Kênh nhập xuất Lớp 2: Lập lịch CPU Lớp 1: Thông dịch các chỉ thị Lớp 0: Phần cứng 1. Nguyên lý thiết kế hệ điều hành - Hệ điều hành cần dễ viết, dễ sửa đổi, dễ nâng cấp (nên viết hệ điều hành băng ngôn ngữ cấp cao vì dễ viết và dễ sửa lỗi hơn là viết bằng ngôn ngữ Assembly). - Hệ điều hành cần dễ cài đặt, dễ bảo trì, không có lỗi và hiệu quả. - Hệ điều hành cần dễ sử dụng, dễ học, an toàn, có độ tin cậy cao và thực hiện nhanh.
- Hệ điều hành cần có tính khả chuyển cao (thực hiện đƣợc trên một nhóm các phần cứng khác nhau). - Hệ điều hành cần có chƣơng trình SYSGEN (System Generation) thu thập thông tin liên quan đến phần cứng để thiết lập cấu hình hệ điều hành cho phù hợp với mỗi máy tính. Phân loại hệ điều hành Có nhiều cách phân loại hệ điều hành, sau đây em xét một số phân loại hệ điều hành sau: 1. Hệ điều hành xử lý theo lô đơn giản - Khi một công việc chấm dứt, hệ thống sẽ thực hiện công việc kế tiếp mà không cần sự can thiệp của ngƣời lập trình, do đó thời gian thực hiện sẽ mau hơn.