Chính sách an toàn và thực thi chúng trong các miền và nhóm làm việc của windows
Bài báo này sẽ phân tích hệ thống an toàn mạng, bao gồm các máy tính làm việc dưới sự điều khiển của hệ điều hành Windows cùng với hệ thống cục bộ những người dùng trên mỗi máy tính, cũng như xem xét các cách cải thiện hệ thống đó nhờ tích hợp những chức năng bảo vệ.
Một trong những thành phần quan trọng nhất của hệ thống an toàn thuộc hệ điều hành Windows là hệ thống kiểm tra và điều khiển truy cập theo vai trò và tùy chọn. Để mô tả hệ thống đó thường người ta sử dụng những mô hình hình thức. Còn để xây dựng những mô hình hình thức an toàn có thể biểu diễn hệ thống thông tin ở dạng tổ hợp các nội dung cơ bản là các chủ thể (s) và các đối tượng (o). Ví dụ về chủ thể là những người dùng và các quá trình, còn các đối tượng - dữ liệu, tệp, bảng hệ thống, máy in v.v...
Các mô hình điều khiển truy cập quy định sự truy cập của các chủ thể tới các đối tượng. Mô hình truy cập phổ biến nhất được gọi là mô hình tùy chọn (tự do), trong mô hình đó những người dùng bình thường có thể tham gia vào việc xác định vai trò của chính sách và gán những đặc trưng cho tính năng an toàn. Một khả năng khác được trao quyền cho hệ điều hành Windows - điều khiển theo vai trò, ví dụ truy cập đặc quyền. Trong chính sách theo vai trò, việc điều khiển truy cập được thực hiện nhờ các quy tắc. Đầu tiên, với mỗi vai trò chỉ ra tập những đặc quyền tới hệ thống và những quyền hạn là tập các quyền truy cập tới những đối tượng, tiếp đó gán cho mỗi người dùng một danh sách các vai trò được truy cập. Khái niệm cổ điển “chủ thể” được thay thế bởi các khái niệm “người dùng” và “vai trò”. Một ví dụ là vai siêu người dùng hầu như luôn có mặt trong mỗi hệ thống (nhóm nhà quản lý đối với hệ điều hành Windows).
Kinh nghiệm thực tiễn cho thấy rằng, việc khảo sát một cách hình thức độ an toàn của hệ thống thông tin hoạt động trong môi trường Windows thực tế là rất khó được thực hiện. Vì vậy, cần phải tìm hiểu độ an toàn của một hệ thống cụ thể bằng phương pháp nghiên cứu nó một cách chủ động.
1. Thực hiện chính sách an toàn trong các hệ thống Microsoft
Xét hệ thống an toàn của môi trường tính toán, bao gồm các máy tính dưới sự điều khiển của hệ điều hành Windows và được liên kết thành một mạng. Giả thiết rằng, có một máy tính làm chức năng máy chủ và có các máy khách làm việc với dữ liệu cục bộ của mình cũng như với dữ liệu trên máy chủ. Mạng có thể được tạo thành từ một hoặc nhiều mạng con, gồm các thiết bị dạng bộ chuyển mạch (switch) và bộ đấu dây tập trung (hub). Cũng giả thiết thêm rằng, trong mạng không có kiểm soát miền. Điều này có nghĩa là chính sách an toàn của hệ thống như vậy hợp thành từ những chính sách an toàn được thực hiện riêng rẽ trên mỗi máy tính.
Chúng ta sẽ mô tả ngắn gọn các đặc tính chủ yếu của chính sách an toàn thuộc một hệ thống như vậy. Trên mỗi máy tính có những người dùng được liên kết với nhau thành các nhóm. Mỗi người dùng là một thành viên của nhóm, được phân chia một tập quyền hạn cần thiết để hoạt động và đóng một vai trò nhất định (điều khiển truy cập theo vai trò) trên máy tính đó. Mỗi người dùng và mỗi nhóm đều có tên gọi để nhận thực bản ghi kiểm kê của họ.
Một người dùng được đặc trưng bởi một bộ mã định danh an toàn SID (Security IDentifier), được sinh ra khi hình thành bản ghi kiểm kê. SID được sử dụng để định danh các chủ thể (tạo ra các vạch dấu truy cập).
Trước khi bắt đầu làm viêc, người dùng hệ thống luôn trải qua sự xác thực trên máy tính cục bộ của mình. Nếu trong quá trình làm việc mà người dùng cần truy cập tới các tài nguyên tại máy tính ở xa (máy chủ), thì cũng sẽ phải trải qua xác thực trên máy chủ.
Hệ thống thẩm quyền an toàn cục bộ (Local Security Authority - LSA) thực hiện xác thực cục bộ, nó đảm bảo cho người dùng được phép truy cập vào hệ thống. Hệ thống đó cũng tạo ra các vạch dấu truy cập và điều khiển chính sách an toàn cục bộ.
Việc xác thực trên máy chủ được thực hiện bởi giao thức SMB (Simple Message Block) hoặc CIFS (Common Internet File System), nó được sử dụng để cho phép truy cập chung tới các tệp, thư mục, máy in, cổng nối tiếp và phương tiện liên lạc trong hệ điều hành Windows.
Trong quá trình đăng ký, hệ thống (thủ tục Winlogon) tạo ra vạch dấu truy cập của người dùng. Vạch dấu truy cập có quan hệ với tất cả các chủ thể (các quá trình, các dòng) được sinh ra từ tên của người dùng đó.
Các đối tượng trong hệ thống có nhãn mô tả bảo vệ, chứa danh sách điều khiển truy cập tuỳ chọn DACL (Discretionary Access Control List), trong đó có SID của chủ sở hữu đối tượng và hai chỉ dẫn tới hai danh sách kiểm soát truy cập DACL (Discretionary ACL) và SACL (System ACL). DACL và SACL chứa các danh sách cho phép và cấm truy cập của những người dùng và các nhóm, cũng như danh sách của những người dùng mà việc thử truy cập tới đối tượng đã cho buộc phải xác thực. Sự hiện diện DACL có nghĩa là trong hệ thống tồn tại một ma trận truy cập.
Với đối tượng được trù định sử dụng làm tài nguyên mạng, ngoài danh sách kiểm soát truy cập còn được quy định danh sách kiểm soát truy cập mạng.
Như vậy, việc kiểm tra quyền truy cập khi truy cập từ xa tới một tệp bao gồm kiểm tra quyền truy cập theo mạng, và chỉ trong trường hợp kết quả đạt mới tiến hành kiểm tra quyền truy cập cục bộ.
Theo mô tả hình thức, trên mỗi máy tính dưới sự điều khiển của Windows, bộ điều phối truy cập tiến hành giám sát truy cập thông qua sự kiểm tra để xem người dùng có hay không có quyền truy cập tới đối tượng và quyền thực hiện những thao tác nhất định tới đối tượng. Ngoài ra, trong hệ điều hành Windows có đảm bảo an toàn cho việc ứng dụng lặp đối với các vùng bộ nhớ thao tác, nhất là đối với các bộ đệm chứa hình ảnh được giải mã nhờ mật khẩu, còn trên mỗi máy tính sẽ thực hiện kiểm toán.
Hệ thống bảo vệ bản thân nó khỏi ràng buộc bên ngoài. Tất cả các tệp được sắp đặt trong thành phần của hệ điều hành Windows với phần mở rộng sys, dll, exe và ocx đều chịu sự bảo vệ và giám sát. Nếu như phát hiện ra một tệp bị thay đổi thì nó được thay thế bởi bản sao từ thư mục system32\dllcache. Cũng có những chương trình kiểm tra các tệp hệ thống, cho phép nhà quản trị kiểm tra trên mỗi máy tính sự đúng đắn của phiên bản tất cả các tệp hệ thống nhờ cơ chế chữ ký điện tử.
2. Nhược điểm của chính sách an toàn thực hiện bởi Microsoft
Nếu như lấy một máy tính không nối mạng dưới sự điều khiển của hệ điều hành Microsoft thì có thể coi trên đó được tạo ra một môi trường an toàn, ở đây không thể có khả năng khởi động một chương trình ứng dụng có tác động ngược với những quy tắc phân định truy cập tới các tài nguyên. Người ta gọi môi trường như vậy là môi trường chương trình cách ly. Trong một số tài liệu, môi trường đó còn được gọi là lõi an toàn.
Nếu trong một hệ thống tính toán trên máy tính như vậy đưa vào thứ bậc của các chủ thể và các đối tượng, chẳng hạn chủ thể và đối tượng của mức phần cứng - phần mềm, mức tải, mức lõi và mức người dùng, thì dễ nhận thấy rằng sự an toàn của môi trường được đảm bảo bởi điều sau đây: kẻ bất hảo tiềm tàng bình thường trên máy tính có khả năng hoạt động chỉ với các chủ thể và các đối tượng thuộc mức ứng dụng dưới sự kiểm soát của các chủ thể mức lõi và các mức thứ bậc khác.
Nhưng ngay cả máy tính cách ly như vậy cũng không được bảo vệ khỏi kẻ bất hảo có tiếp cận vật lý tới máy tính. Hậu quả là kẻ xấu có thể hủy hoại quá trình tạo ra môi trường an toàn thông qua thay đổi lưu lượng hệ thống hoặc lấy đĩa cứng và thực hiện truy cập trên máy tính khác để có các quyền quản trị.
Ngoài ra, các đặc trưng của hệ thống tệp được sử dụng trong Windows có thuộc tính như sau: các tệp bị loại bỏ chỉ được đánh dấu “loại bỏ”, nhưng thông tin chứa trong đó vẫn còn trên đĩa. Tồn tại nhiều cách phục hồi các tệp đã bị “xóa” theo cách như vậy. Sự thực thì thông tin sẽ bị xóa (một phần hoặc toàn bộ) chỉ khi hệ thống ghi đè tệp khác lên chỗ tệp đã bị loại bỏ. Nhưng điều này có thể diễn ra quá muộn. Bởi vậy, việc mở máy tính vào mạng dẫn đến sự xuất hiện những mối đe dọa mới.
Các giao thức NT LM không đảm bảo được sự xác thực lẫn nhau, tức là máy khách không thể có sự tin cậy là đang giao tác với một máy chủ “đúng”. Ví dụ, sự đánh tráo máy chủ có thể xảy ra trong trường hợp sử dụng các giao thức DNS (Domain Name Services) hoặc NetBIOS, khi hỏi tên máy tính chứ không phải hỏi địa chỉ mạng của nó. Tuy nhiên, trong các mạng cục bộ bao gồm các máy tính dưới sự điều khiển của hệ điều hành Windows 2000/XP/2003 với sự xác thực Kerberos, vấn đề xác thực lẫn nhau không còn đặt ra.
Tiếp theo, giao thức SMB không đảm bảo được tính mật cho các bản tin SMB khi truyền chúng từ máy khách tới máy chủ và ngược lại. Đôi khi giao thức đó cũng không đảm bảo được tính toàn vẹn dù đã có những điều chỉnh tương ứng. Trong trường hợp đó, khả năng lớn nhất của kẻ bất hảo là có thể chặn thu dữ liệu được truyền theo mạng.
Sự thực thì trong một mạng cục bộ, để thực hiện việc chặn thu có kết quả thì kẻ gian chỉ cần có các quyền quản trị trên một máy tính. Trong hệ thống thường không có bảo vệ khỏi những tấn công dạng “từ chối phục vụ” là những tấn công được tổ chức đơn giản nhất. Cần nhắc lại rằng, mục tiêu của bài báo này là cải thiện hệ thống an toàn thuộc hệ điều hành Windows nhờ giảm thiểu các nhược điểm đã được chỉ ra.
3. Môi trường an toàn biến thể hóa
Chúng ta sẽ gọi môi trường an toàn biến thể hóa (MAB) là hệ thống bao gồm các máy tính dưới sự điều khiển của hệ điều hành Windows, được liên kết thành mạng với sự bảo vệ tăng cường nhờ các phương tiện được đề xuất trong bài báo này.
Cơ sở để tạo MAB là hệ thống mã hóa dữ liệu “trong suốt” cả khi lưu trữ và xử lý trên máy tính cục bộ, cũng như khi truyền theo mạng. Trong quá trình làm hoạt động MAB, trên các hệ thống tệp FAT16/32 và NTFS có thể tạo ra các đĩa logic ảo được mã hóa, mà sự truy cập tới chúng được bảo vệ bởi mật khẩu. Đĩa có bảo vệ, được tạo ra nhờ MAB, về mặt “vật lý” là một tệp thông thường. Các bộ điều khiển (driver), là thành phần của MAB, cho phép hệ điều hành làm việc với dạng tệp, được gọi là tệp hình của đĩa hoặc tệp côngtenơ, giống như đĩa logic riêng rẽ. Trong quá trình ghi vào đĩa có bảo vệ thì các dữ liệu được mã hóa, còn trong quá trình đọc, chúng được giải mã rất nhanh.
Đĩa có bảo vệ ở trạng thái ngắt là một tệp thông thường trên đĩa cứng của máy tính. Tệp này gồm đầu đề chứa khoá mã hóa dữ liệu và thông tin bổ trợ về thuật toán mã hóa dữ liệu, về bản thân dữ liệu đã mã hóa v.v... Đầu đề cũng được mã hóa toàn bộ nhờ khóa ngoài. Cấu trúc của tệp và lược đồ kết nối được chỉ ra trên hình 1.
Hình 1: Cấu trúc của đĩa có bảo vệ
Để truy cập được tới thông tin, cần phải cho đĩa có bảo vệ hoạt động. Khi đó phải nhập mật khẩu và khóa ngoài. Làm việc với đĩa có bảo vệ cũng tương tự như với đĩa bình thường khác, tức là có thể tạo trên nó các thư mục và các tệp, kiểm tra bằng chương trình ScanDisk, định dạng bằng các phương tiện của Windows...
Ngoài ra, MAB cho phép thực hiện loại bỏ các tệp nhờ ghi nhanh vào các khối được giải phóng dãy các số ngẫu nhiên. Để có thể truy cập từ xa tới đĩa có bảo vệ, cần phải xác lập sự kết nối có bảo vệ với máy chủ. Sau khi xác lập sự kết nối có bảo vệ, tính mật và tính toàn vẹn của dữ liệu truyền giữa máy khách và máy chủ sẽ được đảm bảo nhờ cách mã hóa đối xứng.
4. Bổ sung yêu cầu vào chính sách an toàn
Tính năng bổ sung cho phép mở rộng danh sách các yêu cầu của chính sách an toàn đối với hệ điều hành Windows. Việc yêu cầu có mặt các khóa đặc biệt để vận hành đĩa có bảo vệ trên máy chủ và có thể truy cập từ xa tới nó có nghĩa là trong hệ thống xuất hiện một vai trò mới - những người dùng đĩa có bảo vệ Rz.
Khả năng truy cập của người dùng ở vai trò này được xác định bởi việc người dùng đó có các khóa cần thiết để truy cập tới đĩa có bảo vệ hay không.
Người dùng thực hiện vai trò này phải có khả năng bảo vệ các tài nguyên của mình không chỉ đối với những người dùng khác, mà còn có thể gây trở ngại cho nhà quản trị hệ thống khi muốn đọc chúng. Tính bí mật dữ liệu của người dùng sẽ được bảo vệ hoàn toàn trong cả trường hợp kẻ bất hảo có thể tiếp cận vật lý tới máy tính, lấy đĩa cứng và cho nó hoạt động trên một máy tính khác mà tại đó bản thân họ có quyền quản trị. Ngoài ra, một nhà quản trị hệ thống không thể truy cập từ xa tới máy tính ngay cả khi có quyền quản trị tương ứng.
Một bổ sung khác đối với chính sách an toàn là tính không cho phép sử dụng lặp các đối tượng, điều này xuất phát từ khả năng đã nêu ở trên về việc tiêu hủy nội dung của các tệp đã bị loại bỏ, hơn nữa sự tiêu hủy phải được thực hiện trên mỗi máy tính có chứa thông tin mật.
Xuất hiện những bổ sung vào chính sách an toàn có quan hệ với điều sau đây: sự hoạt động với dữ liệu được bảo vệ trên máy chủ thường được tiến hành theo mạng; khi có thiết lập liên kết thì máy khách và máy chủ phải trải qua quá trình xác thực lẫn nhau và bản thân liên kết phải được bảo vệ, tức là phải được đảm bảo tính mật và tính toàn vẹn của dữ liệu truyền đi. Ngoài ra, trong MAB phải có các cơ chế ngăn cản những tấn công dạng “từ chối phục vụ”. Nói cách khác, phải có khả năng phong tỏa các gói đi đến với những địa chỉ ID “không mong đợi”, đóng các cổng và các giao thức nhất định.
5. Thể hiện và đảm bảo thực thi chính sách an toàn đề ra
5.1. Cấu trúc của môi trường an toàn
Cần phải giải thích xem, những yêu cầu mới của chính sách an toàn được thực thi trong khuôn khổ của MAB đúng đắn đến mức nào và phải chăng việc thêm vào các môđun bảo vệ bổ sung không gây ra những tổn thương trong hệ thống an toàn của hệ điều hành Windows.
Môi trường được tạo ra, như đã nhắc đến ở trên, bao gồm các máy tính dưới sự điều khiển của hệ điều hành Windows và chương trình thể hiện những chức năng bảo vệ bổ sung mà cấu trúc của nó được mô tả trong mục này. Rõ ràng, bất kỳ những sự bổ sung nào đối với hệ thống thông tin phức tạp, thậm chí được tạo ra với những ý định tốt nhất, cũng có thể cho hiệu ứng phủ định nếu không thể hiện sự soát xét cần thiết. Vì vậy, các nhà thiết kế cần phải đảm bảo tính đúng đắn của những cơ chế đáp ứng khả năng thể hiện chính sách an toàn. Theo ý đồ của các nhà thiết kế, lược đồ được đề xuất cần phải tăng cường tính bảo vệ của hệ điều hành Windows và thể hiện chính sách an toàn đã công bố. Chúng ta thử luận giải cho luận điểm này bằng cách khảo sát chủ động môi trường nhận được, bởi vì như đã nói đến ở trên, điều này không thể thực hiện được theo cách hình thức. Cơ sở của việc khảo sát là phân tích các hệ thống con định danh, xác thực và ủy quyền, cả việc thể hiện và sử dụng đúng đắn những thành phần - chủ thể của chương trình từ phía các môđun gọi đến chúng và các liên kết của chúng với những phương tiện sử dụng để bảo vệ hệ điều hành Windows.
Vấn đề phức tạp nhất là sử dụng dự kiến các chủ thể, thể hiện các chức năng bảo vệ từ phía các môđun gọi đến chúng, có khả năng tiềm tàng ảnh hưởng đến hành vi của hệ thống bảo vệ với những yêu cầu và hồi đáp thông tin không chính xác. Những tình huống đặc biệt nguy hiểm là khi tác động qua lại được kích hoạt bởi các chủ thể bên ngoài xét theo quan hệ với hệ thống.
Người ta đã chỉ ra rằng, để các môđun bảo vệ làm việc chính xác cần phải bảo đảm sao cho cả các môđun và các chủ thể gọi đến chúng có được các tính chất đặc thù cần thiết. Cần phải đảm bảo rằng việc kích hoạt các chủ thể chỉ thực hiện từ các chủ thể đã được kiểm tra và cũng cần đảm bảo tính bất biến của các chủ thể - nguồn để sinh các chủ thể gọi đến và bản thân chủ thể - nguồn của môđun thể hiện các chức năng bảo vệ. Thực chất, yêu cầu này dẫn đến điều kiện khép kín của tất cả các chủ thể tham gia vào quá trình bảo vệ.
Chúng ta sẽ xem xét tỉ mỉ hơn các chủ thể MAB (hình 2).
Phần máy chủ: giao diện người dùng; dịch vụ điều khiển; dịch vụ mã hoá (môđun thể hiện các chức năng bảo vệ); bộ điều khiển thiết bị ảo; thư viện mật mã; dịch vụ mạng; bộ điều khiển mạng.
Phần máy khách: giao diện quản trị từ xa; giao diện kết nối mạng; dịch vụ mạng; bộ điều khiển mạng.
Từ mô tả hệ thống, hiển nhiên là tập hợp các chủ thể thực hiện chức năng trong thành phần MAB là khá tự chủ và không tác động đến các thành phần then chốt của hệ điều hành Windows. Mỗi thành phần được cô lập và hoạt động trong không gian địa chỉ ảo của mình. Khi đó mặc dù sự khép kín và cô lập các chủ thể thể hiện các chức năng bảo vệ là mục tiêu ưu tiên hệ thống vẫn còn là mở. Song tác động qua lại với những chủ thể bên ngoài được thực hiện chỉ còn nằm trong hai điểm xác định trước: qua hệ thống xác thực người dùng được xét đến dưới đây hay khi có ý định thực hiện đọc - ghi dữ liệu của tệp - ảnh.
(còn tiếp)