Đố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 sẽ khám phá sâu về an ninh và an toàn của hệ điều hành Windows, tập trung vào các biện pháp bảo vệ và rủi ro tiềm ẩn Chương 4 sẽ tiến hành thử nghiệm phần mềm mã nguồn mở để phát hiện và khai thác các lỗ hổng trong hệ điều hành này, nhằm nâng cao nhận thức về các vấn đề bảo mật.
Kết luận và hướng phát triển.
TỔNG QUAN VỀ HỆ ĐIỀU HÀNH
Khái quát về hệ điều hành
Hệ điều hành là lớp phần mềm nằm giữa phần cứng và các chương trình người dùng, cung cấp giao diện kết nối giữa chúng Nó được xây dựng trên giao diện phần cứng và là yêu cầu cần thiết để các phần mềm ứng dụng có thể hoạt động Hệ điều hành là chương trình đầu tiên khởi động khi máy tính được bật, đóng vai trò quan trọng trong việc quản lý tài nguyên và thực thi các ứng dụng.
Hệ điều hành là phần mềm đã được biên dịch và chạy trên máy tính, chia sẻ đặc trưng với cả phần cứng và phần mềm Nó chỉ có một bản sao hoạt động trên máy tính, giúp mở rộng khả năng của phần cứng.
Hình 1.1 Mô hình trừu tƣợng của hệ thống máy tính 1.1.2 Chức năng chính hệ điều hành
1.1.2.1 Quản lý chia sẻ tài nguyên
Trong các hệ thống đa nhiệm, tài nguyên như CPU, bộ nhớ và thiết bị ngoại vi rất hạn chế, nhưng nhiều người dùng có thể đồng thời yêu cầu sử dụng chúng Để đáp ứng nhu cầu này với tài nguyên có giới hạn và nâng cao hiệu quả sử dụng, hệ điều hành cần triển khai các cơ chế và chiến lược quản lý phân phối tài nguyên một cách hợp lý.
Người sử dụng không chỉ cần chia sẻ tài nguyên để tiết kiệm chi phí mà còn phải chia sẻ thông tin về tài nguyên phần mềm Do đó, hệ điều hành cần đảm bảo việc truy xuất các tài nguyên này là hợp lệ, tránh xảy ra tranh chấp và duy trì tính đồng nhất.
1.1.2.2 Giả lập một máy tính mở rộng
Hệ điều hành ẩn đi các chi tiết phần cứng, mang đến cho người sử dụng một giao diện đơn giản, dễ hiểu và dễ sử dụng, đồng thời không phụ thuộc vào thiết bị phần cứng cụ thể.
Hệ điều hành có thể được hiểu như một hệ thống nhiều lớp, trong đó các máy tính trừu tượng ở các mức thấp hơn hỗ trợ cho các máy tính ở mức cao hơn Lớp trên cùng chính là giao diện người dùng, cung cấp trải nghiệm trực quan nhất để điều khiển hệ thống.
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.1.3 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à thành phần cốt lõi của hệ điều hành, được khởi động đầu tiên và duy trì trong bộ nhớ cho đến khi máy tính tắt Các chương trình khác, gọi là ứng dụng, hoạt động dựa trên phần nhân này.
Bộ cấp phát tài nguyên Chương trình kiểm soát
Hình 1.2 Các thành phần của hệ điều hành
1.1.4 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 quá trình nhập xuất, người dùng không thể thao tác trực tiếp từ chương trình Do đó, hệ điều hành cần cung cấp các phương thức hỗ trợ để thực hiện các thao tác nhập xuất một cách hiệu quả.
- 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 là quá trình trao đổi thông tin giữa các tiến trình hoạt động đồng thời trên máy tính hoặc trong các hệ thống mạng Quá trình này được thực hiện thông qua bộ nhớ dùng chung hoặc thông 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
1.1.5 Cấu trúc hệ điều hành 1.1.5.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 đơn giản, cung cấp các chức năng thiết yếu trong không gian hạn chế do phần cứng Hệ điều hành này không chia thành các đơn thể rõ ràng.
Các chương trình ứng dụng có khả năng truy cập trực tiếp vào các thủ tục nhập xuất cơ bản, cho phép ghi dữ liệu trực tiếp lên màn hình hoặc bộ điều khiển đĩa.
Hình 1.3 Cấu trúc đơn giản hệ điều hành
- 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
Một lớp trong hệ điều hành bao gồm các cấu trúc dữ liệu và hàm có thể được gọi từ lớp trên, đồng thời cũng gọi các chức năng từ lớp dưới Mỗi lớp cài đặt chỉ sử dụng các thao tác được cung cấp bởi lớp bên dưới.
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.1.6 Nguyên lý thiết kế hệ điều hành
Hệ điều hành cần được thiết kế để dễ viết, dễ sửa đổi và dễ nâng cấp Việc sử dụng ngôn ngữ lập trình cấp cao để phát triển hệ điều hành mang lại lợi ích lớn hơn so với việc viết bằng ngôn ngữ Assembly, vì ngôn ngữ cấp cao giúp đơn giản hóa quá trình lập trình và sửa lỗi.
- 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 yêu cầu chương trình SYSGEN (System Generation) để thu thập thông tin phần cứng, nhằm thiết lập cấu hình hệ điều hành phù hợp với từng 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.2.1 Hệ điều hành xử lý theo lô đơn giản
Khi một công việc kết thúc, hệ thống tự động chuyển sang công việc tiếp theo mà không cần sự can thiệp của lập trình viên, giúp rút ngắn thời gian thực hiện Chương trình giám sát thường trực được thiết kế để theo dõi quá trình thực hiện dãy công việc một cách tự động và luôn ở trong bộ nhớ chính.
- Hệ điều hành theo lô thực hiện các công việc lần lƣợt theo những chỉ thị định trước
1.2.2 Hệ điều hành xử lý theo lô đa chương
- Đa chương làm gia tăng khai thác CPU bằng cách tổ chức các công việc sao cho CPU luôn luôn phải trong tình trạng làm việc
Hệ điều hành lưu trữ một phần công việc trong bộ nhớ, cho phép CPU thực hiện lần lượt các phần này Khi đang xử lý, nếu có yêu cầu truy xuất thiết bị, CPU vẫn tiếp tục thực hiện các công việc tiếp theo mà không bị gián đoạn.
- Mô hình tổ chức của bộ nhớ cho hệ điều hành đa chương:
Hình 1.4 Bộ nhớ cho hệ điều hành đa chương
- Các đặc trương của hệ điều hành đa chương:
Việc nhập xuất phải thực hiện thường xuyên bởi hệ thống
Quản lý bộ nhớ - hệ thống phải cấp phát bộ nhớ cho các công việc
Lập lịch CPU - hệ thống phải chọn giữa các công việc nào thật sự đƣợc chạy
Cấp phát các thiết bị
1.2.3 Hệ điều hành đa nhiệm
Hệ điều hành đa nhiệm là sự phát triển tự nhiên của hệ điều hành đa chương, cho phép thực hiện nhiều công việc đồng thời Nhờ vào cơ chế chuyển đổi CPU, hệ điều hành này có thể xử lý nhiều tác vụ một cách nhanh chóng, với thời gian chuyển đổi cực kỳ ngắn.
- Hệ điều hành đa nhiệm đƣợc phát triển để cung cấp việc sử dụng bên trong của một máy tính có giá trị hơn
Một chương trình khi được thực thi sẽ trở thành một tiến trình Trong quá trình thực hiện tiến trình, nó cần thực hiện các thao tác nhập xuất, và trong thời gian đó, CPU sẽ xử lý một tiến trình khác.
Hệ điều hành đa nhiệm cho phép nhiều người dùng chia sẻ máy tính một cách đồng bộ, nhờ vào thời gian chuyển đổi nhanh chóng Điều này tạo cảm giác rằng các tiến trình đang được thực hiện đồng thời.
Hệ điều hành đa nhiệm phức tạp hơn hệ điều hành đa chương, yêu cầu bổ sung các chức năng như quản trị và bảo vệ bộ nhớ cũng như khả năng sử dụng bộ nhớ ảo.
- Hệ điều hành đa nhiệm hiện nay rất thông dụng
1.2.4 Hệ điều hành tương tác
Hệ điều hành đóng vai trò quan trọng trong việc tạo ra cơ chế giao tiếp trực tiếp giữa người dùng và hệ thống Sau khi hoàn thành một lệnh, hệ điều hành sẽ xác định lệnh tiếp theo từ người sử dụng thông qua bàn phím.
- Hệ thống cho phép người sử dụng truy cập dữ liệu và mã chương trình một cách trực tiếp
1.2.5 Hệ điều hành giao diện bàn giấy (Desktop)
Hệ điều hành này sở hữu giao diện người dùng tương tự như một bàn làm việc, hiển thị nhiều biểu tượng chương trình và công cụ làm việc trên màn hình.
Hệ điều hành có đặc điểm là:
Cài đặt trên máy tính cá nhân - hệ thống máy tính đƣợc thiết kế cho một người sử dụng đơn lẻ
Các thiết bị hỗ trợ đắc lực là thiết bị nhập xuất - bàn phím, mouse, màn hình, máy in
Thuận tiện cho người dùng và đáp ứng nhanh
Có thể kế thừa kỹ thuật để phát triển hệ điều hành lớn hơn
- Một số hệ điều hành khác nhau sử dụng bàn giấy hiện nay (Windows, UNIX, Linux)
Ngoài các hệ thống tín chỉ với một bộ xử lý, còn có các hệ thống đa bộ xử lý chia sẻ chung hệ thống đường truyền dữ liệu, đồng hồ, bộ nhớ và các thiết bị ngoại vi.
- Thuận lợi của hệ thống xử lý song song:
Xử lý nhiều công việc cùng lúc thật sự tăng độ tin cậy
Hệ thống xử lý song song được chia thành hai loại chính: đa xử lý đối xứng và đa xử lý không đối xứng Đối với đa xử lý đối xứng, mỗi bộ xử lý chạy một bản sao hệ điều hành, cho phép nhiều tiến trình hoạt động đồng thời mà không gây hỏng hóc Hầu hết các hệ điều hành hiện nay đều hỗ trợ loại hình này Ngược lại, trong đa xử lý không đối xứng, mỗi bộ xử lý được gán cho một nhiệm vụ cụ thể, trong khi bộ xử lý chủ đảm nhiệm việc lập lịch và phân phối công việc cho các bộ xử lý phụ, thường được áp dụng trong các hệ thống quy mô lớn.
- Kiến trúc hệ thống đa bộ xử lý đối xứng
Hình 1.5 Kiến trúc hệ thống đa bộ xử lý đối xứng 1.2.7 Hệ thống phân tán
- Hệ thống thực hiện phân tán việc tính toán giữa các bộ xử lý
- Mỗi bộ xử lý có vùng nhớ riêng; các bộ xử lý truyền thông với nhau qua hệ thống mạng tốc độ cao
- Thuận lợi của hệ thống phân tán:
Tăng tốc độ tính toán
In a network infrastructure system, it is essential to consider the types of networks involved, such as Local Area Networks (LAN) or Wide Area Networks (WAN) Additionally, the architecture may be based on a Client-Server model or a Peer-to-Peer configuration.
- Mô hình hệ thống Client- Server:
Hình 1.6 Mô hình Clinet-Server
- Máy trợ lý cá nhân kỹ thuật số (PDAs) (personal digital assistant - PDA)
- Vấn đề cần giải quyết:
Bộ nhớ bị giới hạn
Màn hình hiển thị nhỏ.
Lịch sử phát triển hệ điều hành
Vào giữa thập niên 1940, Howard Aiken tại Harvard và John Von Neumann ở Princeton đã phát triển thành công máy tính sử dụng ống chân không Những máy tính này có kích thước lớn, với hơn 10.000 ống chân không, nhưng tốc độ xử lý của chúng chậm hơn nhiều so với các máy tính giá rẻ hiện nay.
Mỗi máy được phát triển bởi một nhóm thực hiện tất cả các công đoạn từ thiết kế, xây dựng, lập trình đến quản lý Lập trình được thực hiện bằng ngôn ngữ máy tuyệt đối, thường thông qua bảng điều khiển để thực hiện các chức năng cơ bản Vào thời điểm này, ngôn ngữ lập trình và hệ điều hành vẫn chưa được biết đến.
Vào đầu thập niên 1950, phiếu đục lỗ ra đời và có thể viết chương trình trên phiếu thay cho dùng bảng điều khiển
Sự ra đời của thiết bị bán dẫn vào giữa thập niên 1950 đã làm thay đổi đáng kể bức tranh công nghệ, giúp máy tính trở nên đáng tin cậy hơn và có thể được sản xuất để cung cấp cho khách hàng Lần đầu tiên, sự phân chia rõ ràng giữa các vai trò như thiết kế, xây dựng, vận hành, lập trình và bảo trì đã xuất hiện Để thực hiện một chương trình, lập trình viên sẽ viết mã trên giấy bằng hợp ngữ hoặc FORTRAN, sau đó đục lỗ trên phiếu và đưa vào máy tính, với kết quả cuối cùng được in ra từ máy in.
Hệ thống xử lý theo lô được phát triển để lưu trữ các yêu cầu cần thực hiện lên băng từ, sau đó đọc và thực thi chúng theo thứ tự Kết quả sẽ được ghi lên băng từ xuất và cuối cùng, người sử dụng sẽ mang băng từ này đi in.
Hệ thống xử lý theo lô, được điều khiển bởi một chương trình đặc biệt, là nền tảng cho sự phát triển của hệ điều hành hiện đại Trong giai đoạn này, ngôn ngữ lập trình chủ yếu được sử dụng là FORTRAN và hợp ngữ.
Trong giai đoạn này, máy tính trở nên phổ biến trong cả khoa học và thương mại, với sự ra đời của máy IBM 360 - máy tính đầu tiên sử dụng mạch tích hợp (IC) Sự phát triển này đã dẫn đến việc giảm kích thước và giá cả của các hệ thống máy tính, làm cho chúng trở nên phổ biến hơn Đồng thời, số lượng thiết bị ngoại vi cũng gia tăng, khiến cho thao tác điều khiển trở nên phức tạp hơn.
Hệ điều hành được phát triển để quản lý và điều phối các hoạt động của thiết bị, đồng thời giải quyết các yêu cầu tranh chấp Chương trình này bao gồm hàng triệu dòng mã và được thực hiện bởi hàng ngàn lập trình viên.
Hệ điều hành đã giới thiệu khái niệm đa chương, cho phép CPU không phải chờ đợi khi thực hiện các thao tác nhập xuất Bộ nhớ được chia thành nhiều phần, mỗi phần đảm nhận một công việc khác nhau, giúp CPU xử lý các công việc còn lại trong khi một công việc đang chờ thực hiện nhập xuất Tuy nhiên, khi có nhiều công việc cùng tồn tại trong bộ nhớ, cần có cơ chế bảo vệ để ngăn chặn sự ảnh hưởng lẫn nhau giữa các công việc Hệ điều hành cũng thiết lập thuộc tính spool để quản lý hiệu quả các tác vụ.
Giai đoạn này chứng kiến sự xuất hiện của hệ điều hành chia sẻ thời gian, đặc biệt là CTSS của MIT, cùng với sự ra đời của các hệ điều hành lớn như MULTICS và UNIX Ngoài ra, hệ thống máy mini như DEC PDP-1 cũng bắt đầu xuất hiện trong thời kỳ này.
Giai đoạn này chứng kiến sự ra đời của máy tính cá nhân, đặc biệt là IBM PC với hệ điều hành MS-DOS và sau này là Windows Đồng thời, các hệ điều hành tương tự UNIX như Linux cũng phát triển mạnh mẽ trên nhiều nền tảng khác nhau Bên cạnh đó, đầu thập niên 90 còn đánh dấu sự phát triển đáng kể của hệ điều hành mạng và hệ điều hành phân tán.
Một số tiêu chuẩn đánh giá mức độ an toàn hệ điều hành
Tất cả các hệ điều hành đều không giống nhau, và ngày nay, an toàn hệ điều hành ngày càng được chú trọng Bộ Quốc phòng Mỹ đã đề xuất một số tiêu chuẩn để đánh giá mức độ an toàn của các hệ điều hành, bao gồm những nội dung cơ bản quan trọng.
- Chính sách an toàn: Nhất thiết phải có chính sách an toàn một cách rõ ràng và hệ thống thực thi đƣợc xác định
Nhận biết là quá trình xác định duy nhất và đáng tin cậy cho mỗi chủ thể, giúp thuận lợi trong việc kiểm tra các yêu cầu khai thác từ cả chủ thể và khách thể.
Mỗi khách thể cần được gán một "tiêu chí" rõ ràng, nhằm xác định cấp độ an toàn của nó, điều này sẽ giúp dễ dàng hơn trong việc so sánh và đánh giá.
Hệ thống cần đảm bảo tính có thể kiểm tra bằng cách ghi chép đầy đủ, thường xuyên và an toàn các hoạt động Điều này bao gồm việc đưa khách hàng mới vào hệ thống, quản lý sự phân phối và thay đổi cấp an toàn của các chủ thể hoặc khách thể, đồng thời ngăn chặn các ý đồ khai thác khác.
- Giải pháp đảm bảo: Hệ thống nhất thiết phải bao hàm cơ chế thực thi tính an toàn, đồng thời có thể đánh giá tính hữu hiệu của nó
Bảo hộ liên tục là cơ chế thực thi an toàn quan trọng, cần thiết để ngăn chặn sự biến đổi trước khi được phê duyệt.
Dựa trên 6 yêu cầu của "chuẩn tắc đánh giá hệ thống máy tính tin cậy", tính an toàn của hệ thống máy tính được phân chia thành 8 mức khác nhau, thuộc 4 cấp độ A, B, C, D.
Cấp D là mức bảo hộ an toàn thấp nhất, tương tự như một căn phòng có cửa lớn mở rộng, cho phép bất kỳ ai tự do ra vào mà không có sự tin cậy Hệ điều hành ở cấp này rất dễ bị tổn hại do không có giải pháp bảo vệ phần cứng, và không có hạn chế nào trong việc khai thác dữ liệu, cho phép mọi người truy cập vào hệ thống mà không cần tài khoản Các hệ điều hành tiêu biểu thuộc cấp này bao gồm DOS, Windows và Macintosh System 7.1 của Apple.
Cấp C: Cấp C có 2 mức an toàn C1 và C2
Mức C1, hay còn gọi là hệ thống bảo vệ an toàn mạng máy tính tuyển chọn, cung cấp một mức độ bảo vệ nhất định cho phần cứng, tuy nhiên vẫn có khả năng bị tổn hại Tất cả tài khoản và mật khẩu của thuê bao phải được đăng ký, cho phép hệ thống xác định tính hợp pháp của thuê bao và quyền truy cập vào tài nguyên hệ thống Điểm yếu của mức C1 là khả năng cho phép thuê bao khai thác trực tiếp tài khoản gốc của hệ điều hành, dẫn đến việc không kiểm soát được mức độ khai thác của thuê bao khi vào hệ thống, do đó có thể khiến dữ liệu trong hệ thống di chuyển tự do.
Mức 2: Cần thoải mãn các yêu cầu sau:
- Dễ dàng truy nhập an toàn (Secure login facility): Chỉ cần một user ID và một password
Điều khiển truy nhập tùy ý (Discretionary Access Control - DAC) cho phép mỗi người dùng quyết định mức độ truy cập mà người khác có thể có đối với các tệp tin của mình.
- Kiểm soát (Auditing): Hệ điều hành phải phát hiện và ghi lại tất cả các sự kiện liên quan đến tính an toàn của hệ thống
Bảo vệ bộ nhớ là yếu tố quan trọng trong hệ thống máy tính, đảm bảo rằng bộ nhớ được bảo vệ khỏi việc truy cập không hợp lệ Trước khi tái sử dụng bộ nhớ, toàn bộ nội dung cần được khởi tạo lại, nhằm ngăn chặn việc mất mát dữ liệu từ các bản ghi trước đó.
Hệ điều hành WindowsNT và Novell-Netware đƣợc xếp ở mức an toàn C2 còn hệ điều hành Unix đƣợc xếp ở mức an toàn C1
Cấp B: Còn gọi là cấp bảo vệ ủy quyền Nó chứa tất cả các yêu cầu có trong cấp C Cấp B còn có 3 mức: Mức B1, B2 và mức B3
Mức B1 là tiêu chí bảo vệ an toàn đầu tiên trong hệ thống, nhằm duy trì an toàn ở nhiều cấp độ như bí mật và tuyệt mật Mức này quy định rằng khi một đối tượng bị khống chế trong quá trình khai thác mạng, hệ thống sẽ không cho phép đối tượng đó thay đổi quyền hạn của mình.
Hệ thống máy tính đạt tiêu chuẩn an toàn mức B1 phụ thuộc vào hệ điều hành sử dụng Chủ yếu, các cơ quan chính phủ và nhà cung cấp hệ thống là những đơn vị sở hữu các hệ thống máy tính này.
Mức B2, hay còn gọi là bảo vệ cấu trúc, yêu cầu tất cả các đối tượng trong hệ thống phải được đánh dấu và thiết bị như đĩa từ, băng từ và trạm đầu cuối cần nhận ít nhất một mức an toàn Điều này tạo ra sự phân chia thông tin giữa các đối tượng có mức an toàn tương đối cao và những đối tượng có mức an toàn thấp hơn.
Mức B3, hay còn gọi là bảo vệ an toàn khu vực, áp dụng phương thức lắp đặt phần cứng nhằm tăng cường an ninh khu vực Để đạt được mức độ bảo vệ này, yêu cầu người dùng phải thuê bao thông qua một đường kết nối đáng tin cậy với hệ thống.
Cấp A là cấp bảo vệ xác minh cao nhất, thường được gọi là an toàn được kiểm chứng, bao gồm mức A và A1 Đây là cấp thiết kế nhận dạng với các yếu tố khống chế và quá trình nhận dạng chính xác Cấp A không chỉ bao gồm tất cả các đặc tính của các cấp thấp hơn mà còn yêu cầu thiết kế từ góc độ số học và phải trải qua quy trình nhận dạng.
Cơ chế an ninh, an toàn của hệ điều hành
Mỗi hệ điều hành đều tích hợp một hệ thống an toàn sẵn có, mặc dù cách cài đặt có thể khác nhau Hệ thống an toàn này được tổ chức thành ba mức khác nhau, đảm bảo bảo vệ thông tin và tài nguyên của người dùng.
- An toàn truy nhập mạng
- An toàn file và thƣ mục
1.5.1 An toàn truy nhập mạng
An toàn truy nhập hệ thống là bước đầu tiên mà người dùng cần vượt qua để tiếp cận mạng Chức năng của an toàn truy nhập mạng bao gồm việc kiểm soát và xác thực người dùng, bảo vệ thông tin nhạy cảm, và ngăn chặn các mối đe dọa từ bên ngoài.
Xác thực tính chân thực của người dùng
Xác định thời gian mà người dùng truy cập vào mạng
Xác định trạm làm việc mà người dùng truy cập vào mạng từ đó
Xác định người lạ mặt
Ngày mãn hạn của khoản mục người dùng
Vô hiệu hóa khoản mục
An toàn truy cập mạng đảm bảo trả lời các câu hỏi quan trọng của người dùng, bao gồm: ai là người truy cập, thời điểm truy cập mạng, địa điểm truy cập và phương thức truy cập.
Việc xác thực người dùng đối với hệ thống là rất cần thiết, nhưng xác thực hệ thống với người dùng cũng quan trọng không kém Chẳng hạn, trong một phòng công cộng, người dùng có thể truy cập hệ thống qua các terminal Khi họ đến một terminal, giao diện sẽ hiển thị thông báo đăng nhập, và người dùng nhập tên và mật khẩu Nếu có ai đó tạo ra một chương trình giả mạo thông báo đăng nhập giống hệt giao diện thật, người dùng kế tiếp có thể bị lừa và nhập thông tin đăng nhập của mình Chương trình này sẽ lưu lại tên và mật khẩu trước khi cho phép người dùng đăng nhập, hoặc có thể thoát ngay lập tức, khiến người dùng nghĩ rằng có sự cố và đăng nhập lại Điều này cho thấy hệ thống đã không xác thực được người dùng một cách hiệu quả.
1.5.2 An toàn truy nhập hệ thống
Xác định quyền hạn người dùng đối với người dùng và quyền hạn của người dùng đối với các thiết bị và các thao tác hệ thống
Người dùng có quyền tạo, xem, sửa và xóa các khoản mục của mình trong hệ thống Mỗi hệ điều hành đều có một khoản mục đại diện cho người quản trị mạng, người nắm giữ quyền cao nhất Người quản trị mạng có trách nhiệm tạo ra các khoản mục người dùng khác và phân quyền cho họ.
Các thao tác với khoản mục:
Tạo khoản mục người dùng, nhóm người dùng
Xóa khoản mục người dùng, nhóm người dùng
Xem thông tin về khoản mục người dùng, nhóm người dùng
Xem, thêm, bớt thành viên của nhóm người dùng
Vô hiệu hóa khoản mục
Các thao tác đối với thiết bị nhƣ:
Truy nhập vào mạng từ máy chủ
Backup và khôi phục dữ liệu
1.5.3 An toàn truy nhập file và thƣ mục
Mạng máy tính cho phép người dùng chia sẻ file và thư mục trên máy chủ, giúp truy cập từ bất kỳ máy trạm nào Người dùng có thể tiếp cận các file chương trình, file dữ liệu và file hệ thống, tuy nhiên nhu cầu truy cập khác nhau do chức năng quyền hạn của mỗi người Do đó, các hệ điều hành mạng thiết lập cơ chế gán quyền truy cập cho từng người dùng đối với các file và thư mục chung.
Đối tƣợng đƣợc gán quyền
Đối tƣợng để gán quyền
An toàn và bảo mật hệ thống
Hệ thống được coi là an toàn khi tài nguyên được sử dụng đúng quy ước trong mọi tình huống, tuy nhiên, thực tế cho thấy điều này hiếm khi đạt được An toàn thường bị vi phạm do các nguyên nhân vô tình hoặc cố ý Việc ngăn chặn các hành vi phá hoại cố ý là rất khó khăn và gần như không thể đạt hiệu quả hoàn toàn Để đảm bảo an toàn hệ thống ở mức cao, cần phải chống lại các tác hại từ môi trường bên ngoài như hỏa hoạn, mất điện, và phá hoại thông qua hai cấp độ: vật lý (bằng cách trang bị các thiết bị an toàn cho vị trí hệ thống) và nhân sự (lựa chọn cẩn thận nhân viên làm việc trong hệ thống) Nếu an toàn môi trường được duy trì tốt, an toàn của hệ thống sẽ được bảo đảm nhờ vào các cơ chế của hệ điều hành, với sự hỗ trợ từ phần cứng.
Cần lưu ý rằng, mặc dù hệ thống bảo vệ có thể đạt độ tin cậy tối đa, nhưng các cơ chế an toàn chỉ có khả năng giảm thiểu rủi ro và không thể đảm bảo an toàn tuyệt đối.
1.6.2 Kiểm định danh tính (Authentication) Để đảm bảo an toàn, hệ điều hành cần giải quyết tốt vấn đề chủ yếu là kiểm định danh tính (authentication) Hoạt động của hệ thống bảo vệ phụ thuộc vào khả năng xác định các tiến trình đang xử lý Khả năng này, đến lƣợt nó, lại phụ thuộc vào việc xác định được người dùng đang sử dụng hệ thống để có thể kiểm tra người dùng này đƣợc cho phép thao tác trên những tài nguyên nào
Cách phổ biến nhất để xác thực danh tính người dùng là sử dụng password Khi người dùng muốn truy cập tài nguyên, hệ thống sẽ so sánh password nhập vào với password lưu trữ; nếu khớp, người dùng sẽ được phép sử dụng tài nguyên Password có thể bảo vệ từng đối tượng trong hệ thống, và ngay cả một đối tượng cũng có thể có nhiều password khác nhau tương ứng với các quyền truy xuất khác nhau.
Mặc dù cơ chế mật khẩu dễ hiểu và dễ sử dụng, nhưng nó có một điểm yếu nghiêm trọng là khả năng bảo mật không hoàn hảo Nhiều tác nhân xấu có thể đoán ra mật khẩu của người khác thông qua nhiều phương pháp khác nhau.
Phương pháp cải thiện an toàn cho mật khẩu hiệu quả nhất hiện nay là kiểm tra mật khẩu chủ động (Proaction password checking) Trong phương pháp này, người dùng được tự do chọn mật khẩu, nhưng hệ thống sẽ kiểm tra tính an toàn của mật khẩu ngay tại thời điểm lựa chọn Nếu mật khẩu đáp ứng tiêu chuẩn an toàn, nó sẽ được chấp nhận; ngược lại, mật khẩu không đạt yêu cầu sẽ bị loại bỏ Quá trình kiểm tra này dựa trên nguyên tắc rằng với sự hướng dẫn đầy đủ từ hệ thống, người dùng có thể chọn mật khẩu dễ nhớ từ một không gian mật khẩu rộng lớn, giúp giảm thiểu nguy cơ bị tấn công từ điển.
1.6.3 Mối đe dọa từ các chương trình
Trong môi trường mà các chương trình được phát triển bởi một người và sử dụng bởi người khác, có thể xảy ra tình trạng sử dụng sai mục đích, dẫn đến những hậu quả không thể lường trước Hai ví dụ điển hình cho vấn đề này là
Khi người dùng X cho phép một chương trình do Y viết hoạt động dưới danh nghĩa của mình, chương trình này có thể trở thành một ô con ngựa thành Troy Điều này xảy ra khi các đoạn lệnh trong chương trình có khả năng thao tác trên các tài nguyên với quyền hạn tương ứng của người dùng X.
X (mà cú thể người Y vốn bị cấm!), nhiều chương trỡnh như thế đó ô lợi dụng hoàn cảnh ằ để gõy ra cỏc tỏc hại đỏng tiếc
Một mối đe dọa nghiêm trọng trong lĩnh vực lập trình xuất phát từ sự vô tình hoặc ý đồ xấu của các lập trình viên Trong quá trình phát triển phần mềm, họ có thể để lại các lỗ hổng (Trap-door) mà chỉ riêng họ mới có thể khai thác, dẫn đến việc xâm nhập và phá hoại hệ thống, chẳng hạn như làm tròn số lẻ trong tài khoản để thu lợi riêng Việc phát hiện và khắc phục những vấn đề này rất khó khăn, vì nó đòi hỏi phải phân tích mã nguồn để tìm ra các điểm yếu.
1.6.4 Miền bảo vệ 1.6.4.1 Khái niệm
Hệ thống máy tính được cấu trúc như một tập hợp các đối tượng, bao gồm cả phần cứng (như CPU, bộ nhớ, ổ đĩa) và phần mềm (như tệp tin, chương trình, semaphore) Mỗi đối tượng có một định danh duy nhất để phân biệt và chỉ có thể được truy xuất thông qua các thao tác được định nghĩa rõ ràng Các thao tác này được xác định cụ thể dựa trên từng loại đối tượng Hệ điều hành quản lý việc truy xuất tài nguyên bằng cách cho phép các tiến trình chỉ truy cập vào những tài nguyên mà chúng có quyền sử dụng và cần thiết cho nhiệm vụ hiện tại, theo nguyên tắc "need-to-know", nhằm giảm thiểu lỗi truy xuất trong hệ thống.
Mỗi tiến trình trong hệ thống hoạt động trong một miền bảo vệ, xác định các tài nguyên mà chúng có thể sử dụng và các thao tác hợp lệ mà chúng có thể thực hiện Miền bảo vệ đóng vai trò quan trọng trong việc quản lý quyền truy cập và bảo vệ tài nguyên trong hệ thống.
Ví dụ:
1.6.4.2 Cấu trúc của miền bảo vệ
Quyền truy xuất (access right) là khả năng thao tác trên một đối tượng Một miền bảo vệ bao gồm một tập hợp các quyền truy xuất, trong đó mỗi quyền được xác định bởi cặp thứ tự .
Các miền bảo vệ khác nhau có thể giao nhau một số quyền truy xuất:
Hình 1.7 Hệ thống với 3 miền bảo vệ
Mối liên kết giữa một tiến trình và một miền bảo vệ có thể tĩnh hay động:
Liên kết tĩnh yêu cầu tiến trình hoạt động trong một miền bảo vệ cụ thể suốt thời gian sống của nó, với việc xác định tất cả các quyền truy xuất ngay từ đầu Điều này có thể dẫn đến việc tiến trình có dƣ quyền trong một giai đoạn nào đó, vi phạm nguyên lý need-to-know Để tôn trọng nguyên lý này, cần có khả năng cập nhật nội dung miền bảo vệ, phản ánh các quyền tối thiểu của tiến trình tại mỗi thời điểm.
Liên kết động cho phép tiến trình chuyển đổi giữa các miền bảo vệ trong suốt thời gian sống của nó Để tuân thủ nguyên lý need-to-know, thay vì chỉnh sửa nội dung của miền bảo vệ hiện tại, có thể tạo ra các miền bảo vệ mới với nội dung thay đổi theo từng giai đoạn xử lý và chuyển tiến trình đến miền bảo vệ phù hợp vào thời điểm cần thiết.
Một miền bảo vệ có thể đƣợc xây dựng cho:
Trong trường hợp này, quyền truy cập vào các đối tượng được xác định bởi danh tính của người sử dụng, và miền bảo vệ sẽ được điều chỉnh khi người sử dụng thay đổi.
Kết luận chương 1
Một hệ thống máy tính bao gồm phần cứng, hệ điều hành và ứng dụng, trong đó hệ điều hành đóng vai trò quan trọng giúp người dùng sử dụng máy tính một cách hiệu quả và đơn giản Các loại hệ điều hành phổ biến hiện nay là hệ điều hành đa nhiệm và phân tán Để đáp ứng nhu cầu của người dùng, hệ điều hành cần được thiết kế dễ sửa lỗi, dễ cài đặt và bảo trì, đồng thời phải đảm bảo không có lỗi, dễ sử dụng và học hỏi, có độ tin cậy cao và thực hiện nhanh chóng Ngoài ra, việc phát triển hệ điều hành cũng cần chú trọng đến vấn đề an toàn thương mại điện tử, một mối quan tâm hàng đầu của cá nhân và tổ chức trong thời đại hiện nay.
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 này, em tìm hiểu một vài hệ điều hành thông dụng đó là: Micrisoft Windows, UNIX, Sun Solaris
Với Microsoft Windows: Giới thiệu, cung cấp tổng quan hệ thống bảo mật qua các phiên bản
Với UNIX: Giới thiệu, mô tả cấu trúc từ đó phân tích cơ chế mật khẩu
Với Sun Solaris: Giới thiệu và đánh giá khả năng an toàn của của Solaris
2.1 Hệ điều hành Microsoft Windows
Microsoft Windows là hệ điều hành độc quyền của Microsoft, lần đầu ra mắt vào tháng 11 năm 1985 Phiên bản đầu tiên mang tên Windows đã giới thiệu giao diện đồ họa (GUI), nhằm thu hút sự chú ý và cạnh tranh với Apple Computers trong bối cảnh công nghệ đang phát triển mạnh mẽ.
Windows được phát triển ban đầu cho các máy tính tương thích với IBM dựa trên kiến trúc x86 của Intel Hầu hết các phiên bản Windows hiện nay vẫn được xây dựng cho kiến trúc này, mặc dù Windows NT đã được thiết kế như một hệ thống đa kiến trúc cho cả bộ xử lý Intel và MIPS, và sau đó mở rộng sang các cấu trúc PowerPC và DEC Alpha Sự phổ biến của Windows đã làm tăng sự thịnh hành của bộ xử lý Intel, tạo nên mối quan hệ chặt chẽ giữa hai công nghệ này, dẫn đến thuật ngữ "Wintel" được sử dụng để chỉ các máy tính cá nhân chạy Windows.
Từ khi ra mắt, Microsoft Windows đã nhanh chóng chiếm ưu thế trên thị trường máy tính cá nhân toàn cầu, với khoảng 90% máy tính được cài đặt hệ điều hành này vào năm 2004 Là phần mềm nguồn đóng có bản quyền, Microsoft kiểm soát hoàn toàn việc phân phối, tạo nên vị trí độc quyền trong lĩnh vực máy tính cá nhân Mỗi phiên bản hệ điều hành mới của Windows đều được phát triển dựa trên nền tảng của phiên bản đầu tiên.
2.1.1 Miêu tả về hệ điều hành Windows
Hệ điều hành đa nhiệm cho phép xử lý nhiều chương trình đồng thời, giúp nâng cao hiệu suất làm việc Mỗi chương trình được biểu thị bằng các biểu tượng (icon), đại diện cho các đối tượng như thư mục hồ sơ, thư mục nghe nhạc, và nhiều hơn nữa.
Trình tổng hợp ứng dụng bao gồm các công cụ như trình thảo văn bản, phần mềm đồ họa và nhiều ứng dụng hữu ích khác như lịch, đồng hồ, máy tính, bảng tính, trình duyệt web và trò chơi, mang đến trải nghiệm toàn diện cho người dùng.
Kể từ khi ra mắt, Windows đã nhanh chóng thu hút người dùng và đạt được thành công lớn cho Microsoft nhờ vào giao diện dễ sử dụng, đồ họa cao và sự tương thích với nhiều sản phẩm phần cứng và phần mềm Sự phổ biến của Windows được củng cố bởi sự phát triển đa dạng các ứng dụng như Internet Download Manager và Nero Tuy nhiên, mặc dù được ưa chuộng, Windows không được các chuyên gia máy tính đánh giá cao bằng các hệ điều hành dựa trên Unix như Ubuntu, do tốc độ xử lý chậm hơn nhiều Chẳng hạn, Google sử dụng hệ thống dựa trên Unix thay vì Windows, và các ứng dụng như Latex thường có hiệu suất cao hơn so với MS Word trên Windows.
Chương trình giả lập cho phép người sử dụng chạy các chương trình ứng dụng của Windows mà không cần có Windows
Wine - phần mềm mã nguồn mở có chức năng tương đương của các hàm Windows API, cho phép vài chương trình ứng dụng Windows chạy trên nền x86
UNIX, bao gồm cả Linux
Cedega, trước đây được biết đến với tên gọi WineX, là một sản phẩm thuộc nhánh Wine do TransGaming Technologies sở hữu, được phát triển đặc biệt để chạy các trò chơi được thiết kế cho Microsoft Windows trên hệ điều hành Linux.
Mono và CLI chung mã nguồn - hệ thống tương đương với cơ sở Microsoft.NET
ReactOS - hệ điều hành mã nguồn mở được phát triển với mục tiêu là tương thích với các chương trình và trình điều khiển thiết bị của Windows NT
Freedows and Alliance OS aimed to create an ambitious project that sought to replicate Windows while adding numerous beneficial features; however, it ultimately faced failure.
Dự án David là một sáng kiến đầy tham vọng, gây ra nhiều tranh cãi, nhằm mục đích giả lập hoàn toàn để các chương trình Windows có thể hoạt động trên các hệ điều hành khác.
CrossOver Office của Codeweavers, cũng giả lập đƣợc hoàn toàn để các chương trình Windows có thể chạy trên các hệ điều hành khác
Captive NTFS - một phần mềm gói, dạng nguồn mở có tính tương thích cao hơn cho hệ NTFS
E/OS - với mục tiêu có thể chạy bất kì chương trình thuộc hệ điều hành nào mà không cần phải cài đặt thêm hệ điều hành đó
2.1.3 Quá trình phát triển của hệ điều hành Windows
Hình 2.1 Phiên bản hệ điều hành Windows
Windows là hệ điều hành phổ biến nhất thế giới, với sự ra mắt phiên bản đầu tiên vào năm 1985 Qua nhiều năm, Windows đã trải qua nhiều thay đổi và cải tiến đáng kể Hãy cùng khám phá quá trình phát triển ấn tượng của hệ điều hành này.
Môi trường làm việc 16 bit Dùng trong những máy vi tính cá nhân (personal computer)
Các phiên bản đầu tiên của Windows chủ yếu chỉ là giao diện đồ họa, vì chúng dựa vào hệ điều hành MS-DOS để thực hiện các dịch vụ hệ thống tập tin và quản lý tiến trình.
Các phiên bản Windows 16 bit đã phát triển thành các tập tin có khả năng chạy độc lập và tự động cung cấp chương trình điều khiển thiết bị cho các phần cứng như bo mạch đồ họa, máy in, chuột, bàn phím và âm thanh.
Khác với DOS, Windows cho phép người dùng chạy nhiều chương trình đồ họa đồng thời Hệ điều hành này sử dụng bộ nhớ ảo theo đoạn, giúp giao diện người dùng đồ họa (GUI) thực thi các chương trình lớn hơn dung lượng bộ nhớ thực Các đoạn mã và tài nguyên được nạp vào và giải phóng khi không còn cần thiết hoặc khi bộ nhớ còn lại thấp, trong khi các đoạn dữ liệu được đưa vào bộ nhớ khi một chương trình nhường quyền điều khiển cho bộ xử lý.
Các hệ điều hành này gồm có Windows 1.0, (1985), Windows 2.0 (1987) và Windows/286 (gần giống Windows 2.0)
Môi trường làm việc 16/32 bit Dùng trong các máy vi tính hệ Intel Pentium
Windows/386 ra mắt với hạt nhân hoạt động trong chế độ bảo vệ cùng một trình theo dõi máy ảo Trong phiên làm việc, hệ điều hành này cung cấp các thiết bị ảo như đĩa, bo mạch đồ họa, bàn phím, chuột, bộ định thời và bộ điều khiển ngắt Người dùng có thể làm việc tạm thời với nhiều môi trường MS-DOS trong các cửa sổ riêng, mặc dù các ứng dụng đồ họa yêu cầu chuyển về chế độ toàn màn hình.
Hệ điều hành UNIX
Vào năm 1965, Viện Công nghệ Massachusetts (MIT) và Phòng thí nghiệm Bell của AT&T đã khởi động dự án Multics (MULTiplexed Information and Computing Service) nhằm phát triển một hệ điều hành đa người dùng, có khả năng tính toán và lưu trữ cao trên một mạng lưới máy tính kết nối Mặc dù dự án này đã đạt được một số thành công, nhưng cũng bộc lộ nhiều khiếm khuyết khó khắc phục.
Năm 1969, Ken Thompson và Dennis Ritchie tại phòng thí nghiệm Bell đã phát triển hệ điều hành đa - bài toán UNICS (UNiplexed Information and Computing Service) từ dự án Multics trên máy PDP-7 Tên gọi UNICS xuất phát từ một câu đùa của đồng nghiệp Ken Thompson và Dennis Ritchie đã thực hiện những khởi thảo đầu tiên về hệ thống file trong UNICS Đến năm 1970, hệ điều hành này được viết lại bằng Assembler cho máy PDP-11/20 và được đổi tên thành UNIX.
Năm 1973, Riche và Thompson đã viết lại nhân của hệ điều hành UNIX bằng ngôn ngữ C, giúp hệ điều hành này dễ dàng cài đặt trên nhiều loại máy tính khác nhau Tính chất này được gọi là tính khả chuyển (portable) của UNIX.
1971, hệ điều hành đƣợc thể hiện trên ngôn ngữ B (mà dựa trên ngôn ngữ B, Ritche đã phát triển thành ngôn ngữ C)
Hãng AT&T phổ biến chương trình nguồn UNIX tới các trường đại học, các công ty thương mại và chính phủ với giá không đáng kể
Năm 1982, AT&T cho ra mắt hệ thống UNIX-3, đánh dấu phiên bản UNIX thương mại đầu tiên Đến năm 1983, AT&T tiếp tục phát hành Hệ thống UNIX-4 phiên bản đầu tiên, trong đó tích hợp trình soạn thảo vi và thư viện quản lý màn hình phát triển từ Đại học California, Berkeley.
Trong giai đoạn 1985-1987, các phiên bản UNIX-5 phiên bản 2 và 3 lần lượt được phát hành, với khoảng 100.000 bản UNIX được phổ biến toàn cầu, từ máy vi tính cá nhân đến các hệ thống lớn Đến đầu thập kỷ 1990, UNIX-5 phiên bản 4 ra đời như một chuẩn của UNIX, kết hợp các phiên bản trước đó như AT&T UNIX-5 phiên bản 3, Berkley Software Distribution (BSD), XENIX của Microsoft và SUN OS.
Có thể tìm thấy các nội dung liên quan tới một số phiên bản mới của UNIX tại địa chỉ website http://problem.rice.edu/
Các nhóm nhà cung cấp khác nhau về UNIX đang hoạt động trong thời gian hiện nay đƣợc kể đến nhƣ sau:
Unix International (UI) là một tổ chức tập hợp các nhà cung cấp, chuyên chuyển nhượng hệ thống UNIX-5 và cung cấp bản AT&T theo yêu cầu và thông báo phát hành mới Tổ chức này cũng thực hiện các điều chỉnh liên quan đến bản quyền Giao diện đồ họa người dùng được sử dụng là Open Look.
Open Software Foundation (OSF) được hỗ trợ bởi IBM, DEC, HP nhằm phát triển một phiên bản UNIX cạnh tranh với hệ thống UNIX-5 phiên bản 4 Phiên bản này được gọi là OSF/1 và đi kèm với giao diện đồ họa người dùng MOTIF.
The Free Software Foundation (FSF), founded by Richard Stallman in 1984, is a community dedicated to promoting the release of free software based on a UNIX-like operating system.
Bảng sau đây liệt kê một số cài đặt UNIX khá phổ biến (thường thấy có chữ X ở cuối tên gọi của Hệ điều hành):
Bảng 2.1 Liệt kê một số cài đặt UNIX
Tên hệ Nhà cung cấp Nền phát triển
AIX International Business Machines AT&T System V
A/UX Apple Computer AT&T System V
Dynix Sequent BSD (Berkeley SoftWare Distribution)
HP-UX Hewlett-Packard BSD
Irix Silicon Graphics AT&T System V
Tên hệ Nhà cung cấp Nền phát triển
OSF/1 Digital Equipment Corporation BSD SCO UNIX Santa Cruz Operation AT&T System V Solaris Sun Microsystems AT&T System V
SunOS Sun Microsystems BSD UNIX
Ultrix Digital Equipment Corporation BSD UNIX
XENIX MicroSoft AT&T System III-MS
2.2.2 Một số đặc trƣng của hệ điều hành UNIX
Hệ điều hành được phát triển trên ngôn ngữ bậc cao, giúp dễ đọc, dễ hiểu và dễ dàng điều chỉnh cho các máy mới Giao diện người dùng của UNIX là một bước tiến lớn so với các hệ điều hành trước, cung cấp các dịch vụ mà người dùng mong muốn Hệ thống này tuân thủ nguyên tắc xây dựng các chương trình phức tạp từ những mô-đun đơn giản, bắt đầu từ các mô-đun cơ bản của nhân và phát triển thành toàn bộ hệ điều hành UNIX sử dụng một hệ thống File có cấu trúc, cho phép dễ dàng bảo quản và sử dụng hiệu quả, với định dạng đơn giản của File là dòng các byte, hỗ trợ việc truy cập và thao tác dữ liệu Ngoài ra, hệ điều hành còn có kết nối đơn giản với thiết bị ngoại vi thông qua các file thiết bị đã được tích hợp sẵn trong hệ thống File, tạo điều kiện thuận lợi cho người dùng.
- Là hệ điều hành đa người dùng, đa quá trình, trong đó mỗi người dùng có thể thực hiện các quá trình của mình một cách độc lập
Mọi thao tác vào - ra của hệ điều hành đều diễn ra thông qua hệ thống File, trong đó mỗi thiết bị vào - ra tương ứng với một file riêng biệt Người dùng chỉ cần làm việc với file đó mà không cần quan tâm đến tên cụ thể của file liên quan đến thiết bị trong hệ thống.
Che khuất cấu trúc máy giúp người dùng có tính độc lập tương đối với dữ liệu và phần cứng, tạo điều kiện thuận lợi cho lập trình viên khi phát triển các chương trình chạy trên hệ điều hành UNIX, ngay cả khi có sự khác biệt lớn về phần cứng.
2.2.3 Cấu trúc hệ điều hành UNIX
UNIX bao gồm ba thành phần chính: Shells (các lớp vỏ), kernel (nhân hay lõi) và hệ thống file Mặc dù có nhiều hệ điều hành UNIX khác nhau như SCO UNIX, IBM UNIX, và AT&T UNIX, chúng vẫn chia sẻ một cấu trúc chung.
Các hệ điều hành mã nguồn mở Linux, chẳng hạn nhƣ Red Hat, Slackware, cũng có cấu trúc giống nhƣ UNIX
Kernel là trung tâm của hệ điều hành, hoạt động như một ngôn ngữ bậc thấp, thấp hơn phần vỏ (shell) Nó chịu trách nhiệm điều hành các tiến trình và quản lý việc sử dụng bộ nhớ, hệ thống file, cũng như các thiết bị phần cứng và phần mềm.
Shell là một ngôn ngữ lập trình bậc cao hơn so với kernel, phục vụ hai mục đích chính Thứ nhất, nó hoạt động như một bộ dịch lệnh, giúp người dùng kiểm tra tính chính xác của các lệnh như cat, who, ls Thứ hai, Shell cho phép người dùng sử dụng nó như một ngôn ngữ lập trình mạnh mẽ, mở ra nhiều khả năng lập trình và tự động hóa.
Lập trình shell cho phép thực hiện các chức năng cụ thể, tương tự như lập trình ứng dụng trong các ngôn ngữ lập trình tuần tự Shell có thể được xem như một thư viện các hàm con, giống như các thư viện liên kết trong ngôn ngữ C.
Hệ điều hành Sun Solaris
Hệ điều hành Solaris là nền tảng tin cậy cho nhiều công ty hàng đầu thế giới, nhờ vào độ ổn định cao, tính an toàn và khả năng mở rộng Solaris không chỉ đáp ứng nhu cầu hiện tại mà còn sẵn sàng thích ứng với những sản phẩm công nghệ mới trong tương lai.
Trong bối cảnh thành công ngày càng phụ thuộc vào sự phát triển nhanh chóng của mạng, hệ điều hành Solaris cung cấp khả năng và nền tảng thiết yếu cho các doanh nghiệp muốn mở rộng hoạt động Với tính linh hoạt và sức mạnh vượt trội, Solaris giúp doanh nghiệp đạt được mục tiêu kinh doanh Các khóa học về hệ điều hành Solaris của Sun Microsystems trang bị cho người học kiến thức và kỹ năng cần thiết, tạo nền tảng vững chắc cho sự nghiệp trong lĩnh vực máy chủ Unix, mạng Intranet/Internet và các dịch vụ trực tuyến.
Vào năm 2004, Sun Microsystems đã công bố hệ điều hành Solaris 10, nổi bật với 600 tính năng mới và khả năng đa nền tảng, hoàn toàn miễn phí Quan điểm của Sun về hệ điều hành không phụ thuộc vào nhà cung cấp đã thu hút sự chú ý trong ngành công nghệ.
Hệ điều hành Solaris 10 đã được Sun Microsystems, Inc giới thiệu vào ngày 15/12/2004 tại Hà Nội, đánh dấu một sự kiện được mong đợi lâu nay Ông Lionel Lim, Phó Chủ tịch kiêm Tổng Giám đốc điều hành Sun Microsystems tại khu vực Nam Á, đã chia sẻ thông tin quan trọng về sản phẩm này.
10 sẽ giúp doanh nghiệp toàn cầu giảm thiểu lãng phí tài nguyên hệ thống tính toán bằng cách loại bỏ công nghệ không đạt yêu cầu và thiếu tính bảo mật Điều này tạo ra một bước tiến mới trong tốc độ xử lý và khả năng khai thác tài nguyên, đồng thời đảm bảo mức độ bảo mật tương đương với tiêu chuẩn quốc phòng.
Solaris 10 là hệ điều hành Unix nhanh nhất mà Sun đã từng cung cấp, nhanh hơn 40% so với Solaris 9 trong tốc độ xử lý của máy chủ Web trên cả SPARC và x86 Sun có kế hoạch phát triển Solaris 10 trên các hệ thống sử dụng bộ xử lý SPARC, x86, AMD64 và EM64T Solaris 10 là nền tảng cho các hệ thống từ nhiều nhà cung cấp khác nhau nhƣ Dell, Fujitsu, Fujitsu Siemens Computers, IBM và HP
Cung cấp một tập hợp đầy đủ các chức năng an toàn và mô tả bốn mức bảo vệ trong Solaris TM :
- Mức 1: Bao gồm các tính năng và công cụ giúp những người quản trị kiểm soát chặt chẽ những người đăng nhập hệ thống
- Mức 2: Mô tả các công cụ cho phép những người quản trị thiết lập giải pháp an toàn tổng thể cho hệ thống
Level 3 includes secure distributed services and developer platforms, highlighting how Solaris supports various authentication and encryption mechanisms.
- Mức 4: Mô tả các công cụ điều khiển truy nhập tới mạng vật lý
2.3.3 Nhu cầu cấp thiết đảm bảo an ninh, an toàn
Trong bối cảnh hiện đại, các trung tâm dữ liệu độc lập đang giảm dần do nhu cầu an toàn tập trung, trong khi các môi trường tính toán phân tán hiệu suất cao và tiết kiệm chi phí ngày càng gia tăng Sự kết nối giữa các tổ chức thương mại, cá nhân và chính phủ toàn cầu mở rộng, tạo ra một cộng đồng người dùng có khả năng truy cập tài nguyên nội bộ của công ty Tuy nhiên, sự gia tăng này cũng đi kèm với những người dùng thông thạo hơn, trong đó một số đã lợi dụng kiến thức của mình cho mục đích không chính đáng Mặc dù có nhiều hacker nổi tiếng được công khai, nhưng phần lớn các hành vi xâm phạm máy tính vẫn chưa được phát hiện Những xu hướng này đã dẫn đến sự thay đổi căn bản trong yêu cầu an toàn cho các kết nối toàn cầu.
An toàn thông tin là vấn đề cốt lõi cho các công ty muốn tận dụng lợi ích từ hệ thống phân tán toàn cầu mà không làm tổn hại đến tính bí mật và toàn vẹn của dữ liệu nhạy cảm Do đó, quản trị viên hệ thống và mạng cần lựa chọn sản phẩm phù hợp với các yêu cầu an toàn và khả năng thay đổi của họ.
Giải pháp Solaris của Sun cung cấp một bộ tính năng an toàn toàn diện, đáp ứng đa dạng yêu cầu của các môi trường tính toán tập thể hiện nay.
Nó cung cấp các công cụ tự động giúp đơn giản hóa việc cấu hình trạng thái an toàn của hệ thống, đồng thời thông báo những điểm có nguy cơ mất an toàn.
• Nó cung cấp các dịch vụ file và thƣ mục đƣợc phân phối an toàn và cơ sở cho việc phát triển các ứng dụng an toàn
• Nó đáp ứng các chuẩn quan trọng của Mỹ và quốc tế cũng nhƣ các tính năng an toàn Internet gần đây nhất
Cuối cùng, các sản phẩm từ nhóm thứ ba đã bổ sung cho những giải pháp mà Sun đã cung cấp trước đó, mang lại cho các tổ chức một hệ thống bảo vệ toàn diện nhằm ngăn chặn các vi phạm an toàn có thể xảy ra.
2.3.4 Solaris: Một giải pháp an toàn
Solaris của Sun cung cấp giải pháp bảo vệ đa chiều chống lại xâm nhập trái phép, đảm bảo an toàn cho hệ thống và mạng Sơ đồ bảo vệ bốn mức của Solaris giúp các quản trị viên dễ dàng kiểm soát và quản lý an ninh hiệu quả.
• Điều khiển người có thể đăng nhập vào hệ thống
• Điều khiển khả năng truy nhập tài nguyên hệ thống để tự động ghi chép của những người dùng và các chương trình
Thực thi các dịch vụ tệp và thư mục một cách an toàn là yếu tố quan trọng, giúp tạo ra nền tảng vững chắc cho việc phát triển các ứng dụng và dịch vụ bảo mật.
• Điều khiển truy nhập tới mạng vật lý
Sau đây mô tả chi tiết hơn về bốn hướng an toàn Solaris
2.3.5 Điều khiển đăng nhập trên Solaris (Mức 1)
Mức thứ nhất của điều khiển an toàn Solaris cung cấp các tính năng và công cụ cho phép giám quản kiểm soát chặt chẽ quyền truy cập vào hệ thống Mục tiêu chính là sử dụng mật khẩu để xác thực danh tính người dùng, đảm bảo rằng chỉ những cá nhân đáng tin cậy mới có quyền đăng nhập Tuy nhiên, hệ thống không thể xác định liệu mật khẩu có đang được sử dụng bởi người không phải chủ sở hữu hay không, điều này nhấn mạnh tầm quan trọng của việc bảo vệ mật khẩu Solaris cung cấp nhiều tính năng quản lý mật khẩu, giúp tạo, sử dụng và lưu trữ mật khẩu một cách an toàn.
Kết luận chương 2
Hệ điều hành Windows là một hệ điều hành đa nhiệm, cho phép xử lý nhiều chương trình cùng lúc thông qua các biểu tượng đại diện cho các đối tượng như thư mục hồ sơ và thư mục nghe nhạc Sử dụng giao tiếp người dùng đồ họa (GUI), Windows cung cấp một môi trường trực quan và sinh động với đồ họa dựa trên màn hình ảnh nhị phân Để tương tác với người dùng, Windows sử dụng các điều khiển chung như hộp văn bản, nút nhấn, nút chọn, hộp danh sách và hộp chọn, giúp đơn giản hóa việc giao tiếp Ứng dụng trên Windows thường chiếm một cửa sổ hình chữ nhật, với thanh tiêu đề ở trên cùng và các chức năng được liệt kê trong thực đơn lựa chọn hoặc dưới dạng thanh công cụ, giúp tiết kiệm thời gian cho người dùng Khi cần cung cấp hoặc lấy thông tin, ứng dụng sẽ hiển thị hộp thoại chứa các điều khiển chung, trong đó có các hộp thoại chuẩn như Open Files.
Unix hay UNIX là một hệ điều hành máy tính viết vào những năm 1960 và
Hệ điều hành UNIX được phát triển vào năm 1970 bởi một nhóm nhân viên tại AT&T Bell Labs, bao gồm Ken Thompson, Dennis Ritchie và Douglas McIlroy Hiện nay, UNIX đã phân nhánh thành nhiều phiên bản khác nhau, bao gồm nhánh của AT&T, các nhà phân phối thương mại và tổ chức phi lợi nhuận UNIX có khả năng chạy trên nhiều loại máy tính, từ máy tính cá nhân đến máy chủ dịch vụ, và là một hệ điều hành đa nhiệm lý tưởng cho các ứng dụng nhiều người dùng Được viết bằng ngôn ngữ lập trình C, UNIX hỗ trợ các ứng dụng mạng và nhiều môi trường lập trình khác nhau Mặc dù có hàng trăm lệnh và tùy chọn phong phú, UNIX vẫn là một thách thức cho người mới bắt đầu Sự phát triển của các shell UNIX đã giúp hệ điều hành này trở nên phổ biến hơn trong lĩnh vực điện toán.
Hệ điều hành Solaris là nền tảng vững chắc cho nhiều công ty hàng đầu thế giới, nổi bật với độ ổn định, an toàn và khả năng mở rộng Solaris đáp ứng nhu cầu hiện tại và sẵn sàng cho các sản phẩm tương lai Giải pháp Solaris của Sun cung cấp một bộ tính năng an toàn toàn diện, phù hợp với các yêu cầu đa dạng của môi trường tính toán tập thể hiện nay, với bốn mức bảo vệ khác nhau.
Mức 1: Bao gồm các tính năng và công cụ giúp những người quản trị kiểm soát chặt chẽ những người đăng nhập hệ thống
Mức 2: Mô tả các công cụ cho phép những người quản trị thiết lập giải pháp an toàn tổng thể cho hệ thống
Mức 3: Gồm các dịch vụ phân tán an toàn (Secure Distributed Services) và những nền tảng phát triển (Developers Platforms), mô tả cách Solaris hỗ trợ các cơ chế xác thực và mã hoá khác nhau
Mức 4: Mô tả các công cụ điều khiển truy nhập tới mạng vật lý.
ĐI SÂU TÌM HIỂU VẤN ĐỀ AN NINH, AN TOÀN CỦA HỆ ĐIỀU HÀNH WINDOWS
Khái quát về an ninh, an toàn mạng làm việc trong môi trường Windows
Microsoft Windows NT (WinNT) là hệ điều hành đa nhiệm, thiết kế cho cả máy chủ và máy trạm trong môi trường mạng cục bộ (LAN) và mạng diện rộng (WAN) Windows NT bao gồm hai sản phẩm chính: Windows NT Workstation dành cho máy trạm và Windows NT Server dành cho máy chủ.
Windows NT Server là hệ điều hành máy chủ của Windows NT, được thiết kế để quản lý mạng cục bộ và mạng diện rộng, đồng thời hỗ trợ các ứng dụng.
Windows NT Workstation là hệ điều hành tối ưu cho hiệu năng, bảo mật và tính năng mạng, phù hợp cho máy tính để bàn và xách tay Nó có thể được sử dụng cho máy tính đơn lẻ, máy trạm trong mạng ngang hàng hoặc máy trạm trong môi trường Windows NT Server Ngoài ra, Windows NT Workstation cũng cho phép truy cập vào các ứng dụng chủ Microsoft BackOffice, bao gồm các ứng dụng liên quan đến truyền thông, cơ sở dữ liệu và Internet.
Windows NT sở hữu kiến trúc mô-đun, bao gồm các phần mềm độc lập nhỏ gọn hoạt động đồng bộ để thực hiện các tác vụ hệ thống Mỗi thành phần trong hệ thống cung cấp các chức năng cụ thể và giao diện tương tác với các phần khác, cho phép chúng gọi lẫn nhau để thực hiện nhiệm vụ.
Khi thiết kế hệ điều hành Windows NT, các chuyên gia đã tập trung vào nhu cầu của người sử dụng với các mục tiêu chính như tính tương thích, độ tin cậy, khả năng chuyển đổi, tính linh hoạt, hiệu suất cao, khả năng mở rộng và xử lý phân tán.
3.1.2 Hệ thống bảo mật Windows NT
Hệ bảo mật NT là phương pháp quản lý quyền truy cập của người dùng vào hệ thống, trong đó Windows NT áp dụng các cơ chế kiểm soát truy cập tùy ý (Discretionary Access Control).
Controls - DAC cho phép quản lý quyền truy cập của người dùng một cách chính xác Mức độ truy cập có thể được điều chỉnh tùy theo từng khu vực khác nhau.
Hệ bảo mật Windows NT hoạt động tương tự như hệ thống bảo vệ và khoá thẻ, trong đó một chốt bảo vệ tại cửa sẽ xác thực người dùng và cấp quyền truy cập Sau khi được xác thực, người dùng sẽ nhận được một khoá thẻ để truy cập các tài nguyên bảo mật trên hệ thống.
Windows NT áp dụng tính năng thẩm định quyền "hai chiều", trong đó người sử dụng cần có quyền truy cập vào một tài nguyên, và sau đó tài nguyên đó phải cho phép quyền truy cập đó.
Trong bối cảnh hệ thống, tài khoản người sử dụng đóng vai trò quan trọng, tương tự như hồ sơ cá nhân của nhân viên trong môi trường Windows NT Mỗi tài khoản chứa thông tin chi tiết về người dùng và quyền hạn của họ trên hệ thống, được xác định bởi một mã định danh bảo mật duy nhất (SID).
Khi người sử dụng đăng nhập vào máy tính Windows NT với tài khoản và mật khẩu hợp lệ, một thẻ bài truy cập bảo mật (Security Access Token) sẽ được tạo ra, chứa SID của người sử dụng và các ID nhóm mà họ thuộc về Khi truy cập tài nguyên trên hệ thống, thông tin trong thẻ bài truy cập sẽ được đối chiếu với dữ liệu lưu giữ của tài nguyên để xác định quyền truy cập Tính năng thẩm định hai chiều đảm bảo rằng mọi tài nguyên đều có danh sách người sử dụng được phép truy cập, và các mục trong danh sách này sẽ được so sánh với thẻ bài truy cập Điều này góp phần vào tính năng an toàn cao của Windows NT nhờ vào cấu trúc và thiết kế hệ thống.
3.1.3 Cấu trúc hệ điều hành Windows NT Để đảm bảo và duy trì tính hiệu quả và tính tích hợp, Windows NT sử dụng hai chế độ: Chế độ người dùng (user mode) và chế độ nhân (kernel mode)
Sơ đồ dưới đây minh họa cấu trúc của Windows NT, được chia thành hai phần riêng biệt: phần thành phần của user mode và phần thành phần của kernel mode.
Hình 3.1 Sơ đồ cấu trúc Windows NT
*Chế độ người dùng (User mode)
User mode có ít đặc quyền hơn kernel mode và không thể truy cập trực tiếp vào phần cứng, với mã chương trình chỉ tác động đến không gian địa chỉ của nó Trong chế độ này, các ứng dụng sử dụng các giao diện lập trình ứng dụng (API) do hệ điều hành xác định để yêu cầu dịch vụ hệ thống Khi một ứng dụng khởi động, một tiến trình xử lý (process) của Windows NT được tạo ra, và mỗi tiến trình được coi như một đối tượng, bao gồm một chương trình thực thi (EXE, COM), một tập hợp địa chỉ bộ nhớ ảo và một hoặc nhiều luồng xử lý.
Microkernel Hardware Abstraction Layer (HAL)
Một số đặc điểm của các tiến trình xử lý ở user mode
1 Không truy nhập một cách trực tiếp vào phần cứng Để đảm bảo tránh sự truy nhập của các ứng dụng hoạt động không bình thường hoặc của người dùng không có quyền, các tiến trình xử lý của user mode không thể truy nhập một cách trực tiếp tới phần cứng Các yêu cầu truy nhập phần cứng đƣợc bảo đảm bởi một thành phần của kernel
Đăng nhập và sử dụng dịch vụ
Hiện nay, việc truy cập vào hệ thống yêu cầu đăng nhập bắt buộc, tuân thủ nguyên tắc bảo mật C2 Sự nhận diện xác thực này là nền tảng của hệ an toàn, đảm bảo yêu cầu an toàn thống nhất trong toàn bộ hệ điều hành và là bước đầu tiên mà người sử dụng trải nghiệm trong quá trình đăng nhập.
Trong quá trình đăng nhập, người dùng cần thực hiện hai bước chính: xin giấy ủy nhiệm và thẩm định quyền Đầu tiên, người dùng nhập đầy đủ thông tin như tên người sử dụng, mật khẩu và tên vùng để xin giấy ủy nhiệm Thông tin này sẽ được so sánh với dữ liệu đã lưu trong hệ thống Nếu thông tin chính xác, người dùng sẽ được thẩm định quyền và truy cập vào hệ thống; ngược lại, nếu sai, quyền truy cập sẽ không được cấp.
Mô tả bảo mật (Security Descriptor)
Cho phép mọi User đƣợc đọc Cho phép John Đọc,Ghi Cho phép Tim Đọc,Ghi
Mức độ an toàn thông tin người dùng và quy trình thẩm định quyền truy cập sẽ ảnh hưởng trực tiếp đến việc người dùng có thể đăng nhập hay không Việc từ chối truy cập ACE cho thấy tầm quan trọng của việc bảo vệ dữ liệu cá nhân và đảm bảo an ninh khi thực hiện các giao dịch trực tuyến.
Mặc dù tài nguyên mạng được bảo vệ ở nhiều mức độ khác nhau, việc truy cập vào một khu vực hoặc máy tính cụ thể trong Windows NT vẫn yêu cầu phải thông qua cơ chế bảo mật đăng nhập.
Khi đăng nhập vào Windows NT, người dùng cần cung cấp tên, mật khẩu và tên vùng để xác nhận danh tính và quyền hạn truy cập tài nguyên hệ thống Đối với Windows NT Server hoặc Windows NT Workstation, người dùng phải nhấn tổ hợp phím CTRL+ALT+DEL để mở hộp thoại Logon Information và nhập thông tin cá nhân vào đó.
3.2.1.1 Biến đổi mật khẩu người dùng
Mật khẩu người dùng trong Windows NT thường có độ dài từ 3 đến 14 ký tự, sử dụng các ký tự trong bảng mã ASCII.
Mật khẩu được người dùng tự chọn và khai báo với hệ thống ngay từ lần đăng ký đầu tiên, thường kết hợp với tên người dùng (username) hoặc nhận dạng người dùng (userid).
Mật khẩu được hệ thống chuyển đổi thành giá trị băm để xác thực người dùng Nếu mật khẩu có ít hơn 14 ký tự, các số 0 sẽ được thêm vào để đủ 14 ký tự Mật khẩu sau đó được chuyển đổi thành mã ASCII mở rộng, chia thành hai phần 7 ký tự 8 bit Phần đầu tiên, gồm 56 bits, được sử dụng làm khoá DES với mã 8 ký tự đặc biệt (magic number) để tạo ra bản mã đầu tiên 56 bits còn lại được dùng làm khoá DES thứ hai, kết hợp với bản mã đầu tiên, tạo ra một bản mã 16 ký tự (128 bit) gọi là giá trị băm DES của mật khẩu.
Mật khẩu còn có thể đƣợc băm bằng MD4 để có một bản mã 16 ký tự (128bits) gọi là giá trị băm MD4 của mật khẩu
Windows NT lưu trữ cả giá trị băm DES và MD4 của mật khẩu thành một giá trị băm 32 ký tự (dạng hexa) trong cấu trúc SAM (Security Account Manager) Mật khẩu trong hệ thống Windows NT và Windows 9x được mã hóa bảo mật bằng MD4, trong khi các phiên bản mới hơn sử dụng các thuật toán mã hóa tốt hơn như MD5 và SHA.
Hình 3.3 Sơ đồ biến đổi mật khẩu trong Windows NT
3.2.1.2 Lưu trữ dữ liệu mật khẩu
Giá trị băm của mật khẩu và thông tin người dùng được lưu trữ trong CSDL SAM (Security Account Manager) trong registry hệ thống, chỉ có quản trị viên mới có quyền truy cập SAM không chỉ là một cơ sở dữ liệu mà còn là một hệ thống độc lập cung cấp công cụ truy xuất thông tin an toàn cho các hệ thống con khác Hệ thống này bao gồm các LSA (Local SAM) phân tán trên các máy chủ và máy trạm trong mạng Bài viết này sẽ phân tích chi tiết về SAM trên máy chủ quản lý truy cập mạng mà chưa đề cập đến các thành phần khác.
3.2.1.3 Truy cập CSDL mật khẩu SAM
Nếu bạn có quyền truy cập của quản trị viên hệ thống hoặc quyền siêu người dùng, có nhiều công cụ cho phép bạn xem xét và thu thập thông tin từ các thiết bị, các thành phần của hệ điều hành mạng, đặc biệt là SAM Dưới đây là một số công cụ đáng chú ý trong lĩnh vực này.
1 Sử dụng các tiện ích quản trị mạng Chẳng hạn chương trình pwdump.exe có thể tải về từ nhiều địa chỉ địa chỉ internet khác nhau, chẳng hạn nhƣ tại http://www.nmnrc.org/files/nt Chương trình này dùng các hàm đăng ký chuẩn của
Để truy cập SAM và ghi lại các userid cùng với mật khẩu tương ứng vào một file, cần có quyền quản trị hệ thống.
2 Sử dụng các tiện ích lưu trữ vì mục đích an toàn mà hệ thống cung cấp
Một phương pháp khác để thu thập dữ liệu người dùng là đọc bản sao của SAM, cụ thể là SAM.SAV, được tạo ra khi quản trị viên hệ thống khởi tạo đĩa khởi động khẩn cấp (Emergency Disk) Nếu có dưới 14 ký tự, hãy điền 0 và chia thành 2 nhóm 7 ký tự ASCII.
128 bits (Giá trị băm DES)
Giá tr ị b ăm củ a m ật kh ẩu ( 32 k ý tự)
Quá trình cài đặt Windows NT có thể để lại một bản sao của cơ sở dữ liệu mật khẩu trong thư mục \WINNT\REPAIR, trong khi SAM chỉ chứa các tài khoản của quản trị viên hệ thống và tài khoản khách Bản sao dự phòng này cũng được tạo ra khi sử dụng tiện ích Repair Disk Utility (rdisk) với tham số /s để lưu trữ thông tin cấu hình hệ thống Bản sao của SAM, mang tên Sam._, được lưu trong thư mục WINNT\REPAIR, và hầu hết các quản trị viên hệ thống thường không xóa tập tin này sau khi sử dụng rdisk để sao lưu nó ra đĩa mềm Để sử dụng, Sam._ cần được giải nén.
Phân quyền đối với thƣ mục, tệp
Giai đoạn thứ hai của tính năng thẩm định quyền "hai chiều" trong hệ thống mạng an toàn tập trung vào việc cấp quyền cho một đối tượng cụ thể.
Trong các hệ điều hành của Microsoft, các đối tượng như tệp, cổng truyền thông và xâu thi hành có thể được phân quyền riêng lẻ hoặc theo nhóm Mỗi đối tượng có các kiểu permission khác nhau để cấp hoặc từ chối quyền truy cập Đặc biệt, đối tượng cần phân quyền thường là thư mục và tệp, với các permission bao gồm Read, Write và Execute Thư mục hoạt động như "thùng chứa" lưu trữ tệp, do đó, permission được gán cho chúng rất quan trọng trong việc quản lý quyền truy cập.
Các đối tượng tệp chứa trong "thùng chứa" đều thừa kế quyền truy cập từ nó Để hiểu rõ về tính năng phân quyền của thư mục và tệp, chúng ta cần nghiên cứu các hệ thống tệp mà các hệ điều hành Microsoft hỗ trợ cùng với các quyền truy cập tương ứng của chúng.
Trong hệ bảo mật Windows NT, cần phân biệt rõ giữa điều khiển truy cập và quyền tài khoản người sử dụng Hệ thống bảo mật tài khoản người sử dụng có chức năng định danh và xác thực người dùng, trong khi điều khiển truy cập quy định những người dùng nào được phép tương tác với các đối tượng trong hệ thống.
Đối tượng thư mục và tệp có một dấu mô tả bảo mật để xác định các thuộc tính bảo mật của chúng Dấu mô tả bảo mật này bao gồm các thông tin quan trọng liên quan đến quyền truy cập và bảo vệ dữ liệu.
ID bảo mật của người sử dụng sở hữu đối tượng, thường là những người tạo ra đối tƣợng và đƣợc gọi là chủ nhân (owner)
ACL (Access Control List - danh sách điều khiển truy cập), lưu giữ thông tin về những người sử dụng và nhóm nào có thể truy cập đối tượng
ACL hệ thống, có liên quan đến hệ kiểm toán
ACL là yếu tố quan trọng trong quản lý quyền truy cập, bao gồm danh sách người dùng và nhóm có quyền truy cập vào các đối tượng như thư mục và tệp Mỗi đối tượng đều có ACL riêng, cho phép chủ sở hữu tạo mục trong ACL thông qua các công cụ như File Manager hoặc bằng cách thiết lập thuộc tính cho tệp và thư mục trong Windows NT 4.0 Ngoài ra, Network và Services trong Control Panel cũng là các tiện ích hữu ích để thiết lập quyền truy cập.
Người sử dụng có thể sở hữu nhiều mục trong danh sách kiểm soát truy cập (ACL) của một đối tượng, cho phép họ có các mức truy cập khác nhau Chẳng hạn, một người sử dụng có thể nhận giấy phép Read cho một tệp dựa trên tài khoản cá nhân, trong khi cùng lúc đó, họ có thể có giấy phép Read/Write nhờ vào tư cách thành viên trong một nhóm Mỗi giấy phép này được ghi rõ trong các mục riêng biệt trong ACL.
Khi người dùng truy cập một đối tượng, họ có quyền truy cập nhất định như Read hoặc Read/Write Hệ thống SRM sẽ đối chiếu thông tin trong thẻ bài truy cập của người dùng với các mục trong danh sách kiểm soát truy cập (ACL) Thẻ bài truy cập chứa ID bảo mật và danh sách nhóm của người dùng SRM sẽ tìm kiếm trong ACL cho đến khi tìm thấy đủ giấy phép để cấp quyền truy cập Nếu không đủ giấy phép, quyền truy cập sẽ bị từ chối.
Nếu SRM phát hiện các mục dành cho người sử dụng, nó sẽ xem xét từng mục để đánh giá xem các mục đó có thể cấp giấy phép phù hợp cho người sử dụng nhằm sử dụng đối tượng hay không.
3.3.1 Các hệ thống tệp đƣợc các hệ điều hành Microsoft hỗ trợ
Hệ điều hành yêu cầu quản lý dữ liệu hiệu quả, bao gồm việc xác định loại đĩa tương thích, cách chia đĩa thành các phần nhỏ, và phương thức lưu trữ dữ liệu và tệp Bài viết này sẽ cung cấp cái nhìn tổng quan về khả năng hỗ trợ các hệ thống tệp của các hệ điều hành Microsoft, như được liệt kê trong bảng 3.1 Các hệ thống tệp này có nhiều tính năng khác nhau, bao gồm độ dài tên tệp, tính năng bảo mật, dung lượng tối đa của tệp và phân hoạch.
Bảng 3.1 Hệ thống tệp đƣợc hệ điều hành Windows hỗ trợ
Các hệ điều hành Hỗ trợ các hệ thống tệp
Windows Server 2003, Windows 2008, Windows vista, Windows 7; 8
Windows NT File System (NTFS), New Technology File System
Windows NT, Microsoft Windows CD-ROM File System (CDFS) OS/2, Windows NT High Perfomance File System (HPFS)
CDFS là hệ thống tệp chỉ đọc được thiết kế để truy cập dữ liệu từ ổ CD-ROM, tuy nhiên, tính chất read-only của nó đã hạn chế phạm vi ứng dụng của hệ thống này.
FAT có ba phiên bản chính: FAT 12, FAT 16 và FAT 32, thường được gọi là bảng định vị file trên đĩa Các phiên bản này hỗ trợ quy ước tên tệp 8.3, với tối đa 8 ký tự trước dấu chấm và 3 ký tự sau dấu chấm Ngoài ra, FAT cũng hỗ trợ quy ước đặt tên dài cho tệp và thư mục, mang lại sự linh hoạt hơn trong việc quản lý file.
Trong hệ thống tệp FAT, mỗi tệp và thư mục được xác định bởi một mục nhập FAT tại cấp gốc, chỉ định số bắt đầu cho tệp hoặc thư mục đó Nếu tệp lớn hơn một cụm sector đơn lẻ, cụm này sẽ chỉ đến cụm kế tiếp FAT không tối ưu hóa vị trí của tệp, do đó, cụm sector tiếp theo sẽ là cụm khả dụng tiếp theo trên đĩa, bất kể vị trí của cụm trước đó Cụm sector cuối cùng mà tệp chiếm dụng sẽ có dấu hiệu End of File.
Thư mục gốc của FAT chỉ có thể chứa tối đa 512 mục nhập, bao gồm cả tệp và thư mục con Thư mục con là một tệp liệt kê các tệp và thư mục con khác bên trong nó, với một dấu hiệu cho biết đây là thư mục con Mỗi thư mục con có khả năng chứa số lượng tệp và thư mục con không giới hạn.
Hệ thống tệp FAT có giới hạn về số lượng mục nhập, với MS-DOS ban đầu chỉ hỗ trợ tối đa 4096 mục Tuy nhiên, các phiên bản Windows như 95, 98 và NT đã mở rộng khả năng này, cho phép hỗ trợ nhiều mục nhập hơn.
Một số phương pháp tấn công mật khẩu trong Windows
Phương pháp phổ biến nhất để tìm mật khẩu là "Đoán mật khẩu" Tấn công này dựa trên việc thu thập thông tin từ hệ thống chủ, như tên người dùng và mã mật khẩu, để tạo ra các mật khẩu khả thi Sau đó, các thuật toán được sử dụng để băm các mật khẩu này và so sánh với các giá trị băm trong cơ sở dữ liệu mật khẩu đã bị rò rỉ Nếu có sự trùng khớp, điều đó có nghĩa là một mật khẩu đã được đoán đúng.
Hiện nay, có hai phương pháp phổ biến để đoán mật khẩu: phương pháp vét cạn và phương pháp từ điển Cả hai phương pháp này cho phép tìm ra nhiều mật khẩu của người dùng trên một hệ thống cùng một lúc.
Các phương pháp đoán từ điển được ưa chuộng nhờ vào tính vững chắc của các thuật toán mã hóa mật khẩu như DES, RSA, MD4, và MD5 Dù biết bản mã, việc giải mã để tìm bản rõ gần như không khả thi Do đó, người ta thường chọn cách "thử và sai", đưa ra các giả thuyết và kiểm tra cho đến khi tìm ra kết luận chính xác Tuy nhiên, để đạt được sự đơn giản trong giải mã, cần chấp nhận việc tiêu tốn không gian bộ nhớ và thời gian thực hiện chương trình.
Ngày nay, với sự phát triển của các hệ thống mạng máy tính có tốc độ tính toán nhanh chóng, việc tấn công vét cạn các hệ mã hiện đại đã trở thành khả thi.
Hệ mã dòng RC4 với độ dài khóa 40 bít có thể bị tấn công trong khoảng 200 ngày trên máy tính PC với bộ xử lý Pentium 100MHz Tuy nhiên, nếu sử dụng 10 máy tính Pentium 1GHz, thời gian giải quyết có thể rút ngắn xuống còn 5 ngày Hơn nữa, nếu áp dụng các nghiên cứu về xác suất thống kê, thời gian thực hiện việc thử và sai có thể được giảm thiểu hơn nữa.
Phương pháp này thường được áp dụng khi không gian mật khẩu không quá lớn Ý tưởng chính là xác định một tập hợp ký tự, được coi là phạm vi của mật khẩu người dùng với độ dài n ký tự Từ đó, chúng ta có thể tạo ra k^n mật khẩu hợp lệ có độ dài k Số phép thử tối đa cần thực hiện để so sánh mật khẩu là k^n.
Giả sử mật khẩu chỉ bao gồm các chữ cái (cả hoa và thường) với độ dài 8 ký tự, thì không gian mật khẩu sẽ có 8^52 phần tử, đồng nghĩa với số phép thử tối đa là 8^52 Điều này đảm bảo rằng chúng ta sẽ tìm ra được một mật khẩu đúng.
Giới hạn các giá trị có thể tạo thành mật khẩu thường dựa vào thói quen của con người, như việc sử dụng tên đầy đủ và ngày sinh để tạo ra các ký tự Người dùng thường chọn mật khẩu phản ánh thông tin cá nhân và các ký tự phổ biến trong ngôn ngữ họ sử dụng Tính “dễ nhớ” của mật khẩu cũng là yếu tố quan trọng Trong một hệ thống mã hóa, nếu biết cấu trúc và một số cặp bản rõ và bản mã, có thể thực hiện tấn công vét cạn Hầu hết phần mềm mã hóa trên máy tính hiện nay có độ dài khóa mã hạn chế do quy định xuất khẩu của Mỹ.
MS-Office 97/2000 sử dụng thuật toán mã hóa RC4 với độ dài khóa 40 bit, trong khi phiên bản quốc tế của Netscape cũng áp dụng RSA với độ dài tương tự Một điểm quan trọng cần lưu ý là theo tính toán xác suất, khoảng 90% các phần tử trong một tập hợp ngẫu nhiên có số bit 1 gần bằng số bit 0 Điều này có ý nghĩa quan trọng trong việc tấn công các hệ thống mã hóa hiện đại, đặc biệt là trong việc tấn công các hệ thống mật khẩu.
3.5.2 Phương pháp tấn công từ điển
Phương pháp tấn công từ điển tương tự như tấn công vét cạn, nhưng điểm khác biệt nằm ở cách tạo ra mật khẩu để so sánh Thay vì tạo ra tất cả các mật khẩu có thể, phương pháp này tận dụng xu hướng của người dùng trong việc chọn các mật khẩu dễ đọc và dễ nhớ, thường là những từ có ý nghĩa hoặc có thể đánh vần, để tạo ra danh sách các từ thông dụng.
Người dùng có thể áp dụng các từ trong từ điển ngôn ngữ thông thường và từ chuyên môn thông qua một loạt phép toán biến đổi mà họ thường thực hiện.
Bằng cách sử dụng các chữ cái đầu của mỗi từ và viết hoa chúng, chúng ta có thể tạo ra một "từ điển mật khẩu" Thay vì tạo mật khẩu ngẫu nhiên, chúng ta sẽ lấy từng từ trong từ điển này để thử nghiệm.
Khi không gian mật khẩu được thu gọn, xác suất đoán trúng mật khẩu sẽ cao hơn so với phương pháp truyền thống Phương pháp cải tiến này nhằm tăng tốc độ tìm kiếm, giúp thuật toán đạt hiệu quả cao hơn Để hiểu rõ hơn về cách tạo lập từ điển mật khẩu, chúng ta hãy xem xét một ví dụ cụ thể.
Từ thông tin người dùng ta có:
Họ và tên: Nguyen Ky Tuan - Ngày tháng năm sinh: 30/9/1989 - Nơi cƣ trú: Vinh Phuc
Ta có thể tạo đƣợc một số mật khẩu sau:
Các từ đơn Nguyen; Ky; Tuan; Vinh; Phuc Các từ đơn chữ thường nguyen; ky; tuan; vinh; phuc Các từ đơn chữ hoa NGUYEN; KY; TUAN; VINH; PHUC
Chữ cái đầu của 2 từ đầu, từ thứ 3 NKTuan; VP Chữ cái đầu của 2 từ đầu, từ thứ 3, ngày tháng năm sinh NKTuan300989
Sự phong phú và độ chính xác của các mật khẩu giả định trong từ điển mật khẩu phụ thuộc vào hai yếu tố chính: độ đầy đủ thông tin của tập hợp các từ khởi tạo đầu vào và độ chính xác cùng xác suất cao của quy luật tạo từ điển mà chúng ta áp dụng.
Các biện pháp tấn công mật khẩu đều gặp phải một hạn chế chung, đó là không phù hợp với tấn công trực tuyến do số lượng phép thử lớn hơn nhiều so với giới hạn tối đa mà hệ thống cho phép (thường là 3 lần) Để thực hiện các biện pháp tấn công này, dữ liệu đầu vào thiết yếu mà chúng ta cần từ hệ thống là các bản mã mật khẩu mà nó lưu trữ.
Tìm mật khẩu trong Windows NT
Hệ điều hành NT không cho phép thực hiện mã lệnh từ xa trong không gian bộ xử lý của hệ thống Tất cả các tệp thực thi như COM và EXE được gọi và kích hoạt từ một hệ khách sẽ được nạp vào bộ nhớ chính và CPU của hệ khách đó.
Quyền đăng nhập vào các dịch vụ hệ thống trên NT Server bị giới hạn cho một số tài khoản điều hành, không áp dụng cho các trạm làm việc Do đó, để tấn công hệ thống, cần tìm cách xâm nhập vào các tài khoản này.
Microsoft đã hạn chế quyền truy cập mã nguồn của NT, điều này khiến việc khai thác tràn vùng đệm từ xa chỉ xảy ra trên một số hệ thống mã nguồn mở như Linux, không thể xảy ra trên Windows NT.
Mặc dù Windows NT được thiết kế với các đặc điểm bảo mật nhằm tương thích với phiên bản trước và tính tiện dụng, nhưng vẫn tồn tại một số lỗ hổng có thể bị khai thác Các virus như ILOVEYOU và CODERED đã lợi dụng những lỗ hổng này để tấn công thành công nhiều hệ thống.
Một trong những ưu điểm của Windows NT cũng chính là một lỗ hổng về tính an toàn, đó là giao diện đơn giản của hệ điều hành này Điều này khiến cho những người quản trị chưa có kinh nghiệm thường xem nhẹ các tính năng bảo mật Hệ quả là trong một mạng NT, ta thường gặp ít nhất một máy chủ hoặc một workstation có mật khẩu tài khoản Administrator dễ đoán.
Để tấn công hệ thống Windows NT, bước đầu tiên là xác định tài khoản Administrator bằng cách đoán mật khẩu.
Cơ sở để đoán được mật khẩu là danh sách người dùng hợp lệ của hệ thống
Chúng ta có thể tận dụng một số tiện ích có sẵn trong hệ điều hành để truy xuất danh sách tên người dùng Câu lệnh "net use" cho phép người dùng nặc danh kết nối và truy cập vào một số tài nguyên nhất định mà không cần cung cấp thông tin ủy quyền.
VD: net use \\192.168.202.33\IPS$ ""/user:""
Lệnh này kết nối với phần dùng chung IPC$ tại địa chỉ IP 192.168.202.33 dưới dạng người dùng nặc danh với mật khẩu rỗng Nếu kết nối thành công, chúng ta sẽ có một kênh mở để thử nghiệm các kỹ thuật thu thập thông tin về mạng, phần dùng chung, người dùng và nhóm.
+ Một số tiện ích có sẵn trên Internet như chương trình dumpacl của Somarsoft (http://38.15.19.115) cho phép chúng ta lấy thông tin người dùng từ một địa chỉ IP
VD: dumpacl /computer =\\192.168.202.33 /rpt=useronly /saveas=tvs /outfile c:\temp\users.txt
Nội dung file vừa lấy đƣợc (users.txt) có dạng:
Các chương trình sid2user và user2sid là công cụ hữu ích để tra cứu SID (security identifier) trên hệ thống Windows NT từ tên người dùng và ngược lại Bạn có thể tải các tiện ích này tại địa chỉ http://www.chem.msu.su:8080/~rudnyi/NT.
Kết luận chương 3
Windows NT là hệ điều hành mạng cao cấp của Microsoft, nổi bật với cơ chế bảo vệ dữ liệu gọi là fault tolerance Cơ chế này cho phép hệ thống tiếp tục hoạt động và bảo toàn dữ liệu ngay cả khi một phần của hệ thống gặp sự cố Trong Windows NT, fault tolerance bao gồm nhiều biện pháp bảo vệ khác nhau nhằm đảm bảo tính ổn định và an toàn cho dữ liệu.
Chống cúp điện bất thường
Cung cấp khả năng bảo vệ hệ thống đĩa (fault tolerance disk subsystem)
Cung cấp khả năng sao chép dự phòng (backup) từ băng từ
Khả năng bảo vệ hệ thống đĩa của Windows NT được thực hiện thông qua RAID (Mảng Đĩa Dự Phòng Giá Rẻ), bao gồm nhiều biện pháp nhằm bảo vệ dữ liệu Để quản lý quyền truy cập, mỗi đối tượng trong Windows NT có một danh sách an toàn (Access Control List - ACL) Danh sách này bao gồm các phần tử riêng biệt gọi là Access Control Entry (ACE), trong đó mỗi ACE chứa một SecurityID (SID) đại diện cho người sử dụng hoặc nhóm SID là một mã số duy nhất trong hệ thống Windows NT, giúp nhận diện người dùng hoặc nhóm giữa các máy tính trong mạng.
NTFS là viết tắt của ¨New Technology File System¨ (Hệ thống tập tin công nghệ mới)
NTFS là hệ thống tập tin tiêu chuẩn được sử dụng trong các phiên bản Windows NT và các phiên bản kế tiếp như Windows 2000, Windows XP, Windows Server 2003, Windows Server 2008, Windows Vista, Windows 7, và Windows 8, 8.1.
NTFS là hệ thống tập tin thay thế cho FAT, được ưa chuộng trong các hệ điều hành Windows của Microsoft So với FAT và HPFS, NTFS mang lại nhiều cải tiến đáng kể, bao gồm hỗ trợ siêu dữ liệu tốt hơn và ứng dụng các cấu trúc dữ liệu tiên tiến, giúp nâng cao hiệu suất, độ tin cậy và tối ưu hóa không gian ổ đĩa Ngoài ra, NTFS còn có những tính năng mở rộng như danh sách kiểm soát truy cập bảo mật (ACL) và bản ghi hệ thống tập tin.
Vấn đề mật khẩu truy nhập hệ thống vẫn còn nhiều khía cạnh cần nghiên cứu, đặc biệt là trong việc lưu trữ và sử dụng khoá Các phương pháp tấn công nhằm tìm mật khẩu từ các mã mật khẩu cũng cần được tiếp tục khai thác, bao gồm việc xây dựng từ điển mật khẩu và cải thiện tốc độ xử lý của thuật toán thử và sai.
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
Đánh giá an ninh
Một cuộc thử nghiệm xâm nhập, hay còn gọi là đánh giá an ninh, có thể có nhiều hình thức khác nhau, nhưng sự khác biệt chủ yếu phụ thuộc vào môi trường và mục tiêu cụ thể Hình ảnh dưới đây minh họa các bước thông thường trong quy trình thực hiện một cuộc thử nghiệm xâm nhập.
Hình 4.1 Minh họa các bước thông thường một cuộc thử nghiệm xâm nhập
Để thực hiện một đánh giá an ninh hiệu quả, bước đầu tiên là xác định mục tiêu rõ ràng cho quá trình này Sau đó, cần thăm dò và tìm hiểu một cách chi tiết về hệ thống, bao gồm cả thông tin trực tuyến và ngoại tuyến, nhằm nắm bắt đầy đủ các yếu tố liên quan.
Bước 3: Khám phá mục tiêu Quét và tìm điểm yếu trong 1 dải IP để tìm hiểu
Bước 4: Khai thác điểm yếu Sử dụng thông tin về các lỗ hổng để khai thác mục tiêu ở mức hệ điều hành hay ứng dụng
Bước 5: Tấn công vét cạn Kiểm tra tất cả các mật khẩu yếu điểm để chiếm quyền truy cập
Bước 6: Sử dụng kỹ nghệ xã hội khai thác điểm yếu của con người như thư điện tử lừa đảo, mã độc USB
Bước 7: Chiếm quyền điều khiển Truy xuất dữ liệu của mục tiêu
Bước 8: Chuyển hướng Tiếp tục khai thác dải mạng
Bước 9: Thu thập chứng cứ Bước 10: Báo cáo về cách xâm nhập và thông tin mất mát
Bước 11: Sửa lỗi và chỉ ra các yếu điểm có thể bị lợi dụng xâm nhập vào hệ thống.
Một số lỗ hổng trên họ hệ điều hành Windows
Các lỗ hổng nghiêm trọng trong Internet Explorer có thể cho phép thực thi mã từ xa khi người dùng truy cập vào các trang web được thiết kế đặc biệt Kẻ tấn công khai thác thành công những lỗ hổng này có thể chiếm quyền truy cập giống như người dùng hiện tại Người dùng với tài khoản có quyền hạn thấp có thể ít bị ảnh hưởng hơn so với những người dùng có quyền quản trị.
4.2.1.2 Phần mềm bị ảnh hưởng
4.2.2 Lỗ hổng MS12_020 4.2.2.1 Mô tả
Lỗ hổng bảo mật riêng tư trong Remote Desktop Protocol (RDP) cho phép thực thi mã từ xa và tấn công từ chối dịch vụ (DoS) nếu kẻ tấn công gửi chuỗi gói RDP được thiết kế đặc biệt đến hệ thống bị ảnh hưởng Theo mặc định, RDP không được kích hoạt trên bất kỳ hệ điều hành Windows nào, do đó các hệ thống chưa kích hoạt RDP sẽ không gặp nguy cơ.
4.2.2.2 Phần mềm bị ảnh hưởng
Windows XP Service Pack 3 Windows XP Professional x64 Edition Service Pack 2 Windows Server 2003 Service Pack 2
Windows Server 2003 x64 Edition Service Pack 2 Windows Server 2003 with SP2 for Itanium-based Systems Windows Vista Service Pack 2
Windows Vista x64 Edition Service Pack 2, along with Windows Server 2008 for both 32-bit and x64-based systems, and Itanium-based systems, all feature Service Pack 2 Additionally, Windows 7 is available for both 32-bit and x64-based systems, with each version also offering Service Pack 1.
Windows Server 2008 R2 for x64-based Systems and Windows Server 2008 R2 for x64-based Systems Service Pack 1
Windows Server 2008 R2 for Itanium-based Systems and Windows Server
2008 R2 for Itanium-based Systems Service Pack 1
4.2.3 Lỗ hổng MS13_071 4.2.3.1 Mô tả lỗi
Lỗ hổng này có thể dẫn đến việc thực thi mã từ xa nếu người dùng tự áp dụng một chủ đề Windows trên hệ thống của mình Để cuộc tấn công thành công, người dùng cần bị thuyết phục mở tập tin hoặc áp dụng các chủ đề, chứ không thể bị ép buộc làm như vậy.
4.2.3.2 Phần mềm bị ảnh hưởng
Windows XP Windows Vista Windows Server 2003 Windows Server 2008
4.2.4 Lỗ hổng MS12_027 4.2.4.1 Mô tả
Các lỗ hổng bảo mật có thể cho phép thực thi mã từ xa khi người dùng truy cập vào trang web chứa nội dung được thiết kế để khai thác lỗ hổng Tuy nhiên, kẻ tấn công không thể ép buộc người dùng truy cập vào trang web đó; thay vào đó, họ cần thuyết phục người dùng nhấp vào liên kết trong email hoặc tin nhắn để dẫn đến trang web độc hại Ngoài ra, các tệp tin độc hại có thể được gửi dưới dạng tệp đính kèm email, nhưng kẻ tấn công cũng phải thuyết phục người dùng mở tệp đính kèm để khai thác lỗ hổng.
4.2.4.2 Phần mềm bị ảnh hưởng
Microsoft Office versions 2003, 2007, and 2010 (excluding x64-based editions) are compatible with Microsoft SQL Server 2000 Analysis Services and Microsoft SQL Server 2000 (excluding Itanium-based editions) Additionally, Microsoft SQL Server 2005 is supported, with the exception of the Microsoft SQL Server 2005 Express Edition.
The article highlights various Microsoft software products, including the 2005 Express Edition with Advanced Services, Microsoft SQL Server 2008 and its R2 version, as well as multiple iterations of Microsoft BizTalk Server and Commerce Server from 2002 to 2009 Additionally, it mentions Microsoft Visual FoxPro versions 8.0 and 9.0, along with the Visual Basic 6.0 Runtime.
4.2.5 Lỗ hổng MS10_046 4.2.5.1 Mô tả
Một lỗ hổng nghiêm trọng trong Windows Shell đã được công bố, cho phép thực thi mã từ xa khi một biểu tượng phím tắt đặc biệt được hiển thị Kẻ tấn công có thể khai thác lỗ hổng này để đạt được quyền truy cập tương tự như người dùng địa phương Tuy nhiên, người dùng có tài khoản với quyền hạn thấp hơn trên hệ thống có thể ít bị ảnh hưởng hơn so với những người dùng có quyền quản trị.
Lỗi bảo mật nghiêm trọng trong các tập tin "shortcut" định dạng *.Ink trên Windows cho phép tin tặc nhúng mã độc Những tập tin này thường xuất hiện trên giao diện desktop hoặc trong trình đơn Start Khi người dùng mở tập tin shortcut hoặc truy cập vào thư mục chứa chúng, mã độc sẽ được tự động thực thi, gây nguy hiểm cho hệ thống.
Bản vá lỗi này cung cấp phiên bản mới của tập tin Shell32.dll, một thành phần quan trọng trong Windows, chứa nhiều hàm Windows Shell API Việc cập nhật hoặc lỗi Shell32.dll có thể dẫn đến tình trạng "Màn hình xanh chết chóc" (BSOD) trên máy tính.
4.2.5.2 Phần mềm bị ảnh hưởng
Windows XP Service Pack 3 Windows XP Professional x64 Edition Service Pack 2 Windows Server 2003 Service Pack 2
Windows Server 2003 x64 Edition Service Pack 2 and Windows Server 2003 with SP2 for Itanium-based Systems enhance system performance and security Additionally, Windows Vista Service Pack 1 and Service Pack 2, along with Windows Vista x64 Edition Service Pack 1 and Service Pack 2, provide crucial updates that improve functionality and stability for users.
Windows Server 2008 for 32-bit Systems and Windows Server 2008 for 32-bit Systems Service Pack 2
Windows Server 2008 for x64-based Systems and Windows Server 2008 for x64-based Systems Service Pack 2
Windows Server 2008 for Itanium-based Systems and Windows Server 2008 for Itanium-based Systems Service Pack 2
Windows 7 for 32-bit Systems Windows 7 for x64-based Systems Windows Server 2008 R2 for x64-based Systems Windows Server 2008 R2 for Itanium-based Systems
Giải pháp với công cụ Metasploit
Metasploit là công cụ khai thác lỗ hổng hệ điều hành, được sử dụng để kiểm tra và tấn công các dịch vụ Được phát triển bằng ngôn ngữ Perl và các thành phần bằng C, assembler và Python, Metasploit tương thích với hầu hết các hệ điều hành như Unix và Windows.
Metasploit là giải pháp bảo mật toàn diện cho các chương trình an ninh và kiểm tra thâm nhập, phù hợp với quy mô từ trung bình đến lớn Thử nghiệm thâm nhập chi tiết giúp đánh giá tình trạng sử dụng ứng dụng trong các cuộc tấn công hiện đại Hơn nữa, Metasploit còn hỗ trợ nâng cao chương trình bảo mật doanh nghiệp một cách hiệu quả.
4.3.3 Cài đặt phần mềm Mestasploit
Tải gói cài đặt của Metasploit, ở đây ta có 2 phiên bản là Pro và Community
Ta chọn phiên bản Community miễn phí và dùng cho nghiên cứu
Sau khi tải về gói cài đặt của Metasploit Community ta cài đặt nhƣ những phần mềm khác
Cổng của dịch vụ Metasploit sẽ sử dụng, mặc định là 3790:
Quá trình cài đặt của Metasploit:
Tiến trình hoàn tất, chọn Finish và truy cập đến giao diện web của chương trình:
Sau khi Finish trình duyệt web mở lên và đi tới giao diện
Hình 4.2 Giao diện chương trình Metasploit Console
Demo khai thác khai thác lỗ hổng MS10_046 trên hệ điều hành Windows 7
Thông tin Hệ điều hành IP
Victim Windows 7 (Chạy trên Virtualbox) 10.0.2.15
Hai máy ở trạng thái online
- Các bước chính để khai thác lỗ hổng này:
Sử dụng mã lỗi ms10_046
Thiết lập optinons payload, lhost, srvhost
Tiến hành khai thác, gõ exploit
Copy url: chuyển sang máy victim
Duyệt Web trên máy nạn nhân
Quay lại máy của attacker chúng ta đã thấy meterpreter bắt đƣợc sessions 1 Của Victim
Kết nối sesions lấy thông tin máy Victim;
Khai thác thông tin sau khi xâm nhập (xem thông tin hệ thống; thông tin ổ đĩa; tạo, xóa thƣ mục; trộm, gửi, xóa tài liệu)
Kết luận: Để phòng tránh lỗ hổng này bằng cách:
- Sử dụng trình duyệt an toàn hơn
- Tiến hành cập nhật bản vá KB286198
Kết luận chương 4
Trong quá trình nâng cao an ninh hệ thống, việc quét lỗi bảo mật bằng các chương trình như Nessus hay Nexpose là cần thiết, nhưng không thể thiếu thử nghiệm khai thác để đánh giá khả năng chống đỡ của hệ thống trước các cuộc tấn công Đây là phương pháp hợp lệ mà các hacker thiện chí thường sử dụng để phát hiện lỗ hổng mạng, cung cấp cảnh báo về bảo mật và giải pháp khắc phục, với công cụ phổ biến Metasploit Để bảo vệ hệ thống khỏi các lỗ hổng, việc cập nhật kịp thời các bản vá là rất quan trọng, giúp giảm thiểu và ngăn chặn các cuộc tấn công từ bên ngoài.
KẾT LUẬN VÀ HƯỚNG PHÁT TRIỂN CỦA LUẬN VĂN
Kết luận
Mặc dù còn nhiều hạn chế, em đã nỗ lực đạt được các mục tiêu và có những đóng góp đáng kể trong luận văn Cụ thể, em đã nghiên cứu tổng quan về hệ điều hành, phân tích các cơ chế an ninh và an toàn của hệ điều hành, tập trung vào ba hệ điều hành phổ biến: Windows, UNIX và Solaris Nghiên cứu này bao gồm các cơ chế bảo vệ, xác thực và mật khẩu của các hệ điều hành này, đồng thời hệ thống hóa các vấn đề an toàn và điểm yếu có thể dẫn đến lỗ hổng bị khai thác Em cũng đã hoàn thành việc nghiên cứu cấu trúc chung của các hệ thống và thu thập tài liệu về các biện pháp tấn công phổ biến Các phương pháp mã hóa như DES, MD4, MD5, RC4, RSA được áp dụng rất cao, làm cho việc tấn công trở nên khó khăn Tài liệu thu thập đề xuất hai phương pháp tấn công mật khẩu: tấn công từ điển và tấn công vét cạn, yêu cầu thuật toán tinh vi và thời gian lớn Cuối cùng, em đã nghiên cứu và thử nghiệm phần mềm khai thác lỗ hổng của hệ điều hành.
Hướng phát triển của đề tài
- Mở rộng nghiên cứu các vấn đề vận hành các hệ điều hành một cách an toàn và hiệu quả
- Nghiên cứu, phân tích, đề xuất các giải pháp khắc phục các “lỗ hổng” của các hệ điều hành máy tính khác.