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 (Phần 2)
5.2. Hệ thống định danh và xác thực
Trong quá trình làm việc từ xa tại máy chủ, người dùng MAB trải qua xác thực trong ba trường hợp sau đây.
Thiết lập kết nối với máy chủ điều khiển
Trước khi có được khả năng mở và tắt các đĩa được bảo vệ trên máy chủ từ máy tính ở xa, người dùng cần phải thiết lập kết nối có bảo vệ với máy chủ điều khiển nhờ sự giúp đỡ của giao diện quản trị từ xa. Ở giai đoạn thiết lập kết nối diễn ra việc sinh khóa, sau đó khóa chủ sẽ được mã hóa khi vận chuyển từ máy khách về máy chủ trong thời điểm mở đĩa được bảo vệ. Khi đó, để tránh tấn công kiểu “người trung gian”, nếu kẻ bất hảo nào đó có khả năng không chỉ chiếm đoạt mà còn thay đổi thông báo, mạo nhận mình là chủ thể xác thực tại máy chủ, khóa sẽ không được gửi đi trên mạng: tại máy khách và máy chủ, các khóa phiên đồng thời được sinh ra giống nhau theo lược đồ Diffie-Hellman.
Kết nối các đĩa được bảo vệ
Những thông tin xác thực cũng cần phải ngăn chặn khỏi sự tiếp cận của kẻ bất hảo trong khi truyền giữa các môđun khác nhau.
Người dùng nhập vào những thông tin xác thực (mật khẩu và khóa ngoài) tại trạm làm việc điều khiển. Những dữ liệu này được chuyển đến dịch vụ điều khiển dưới dạng mã. Sau đó chúng truyền đến bộ điều khiển gọi các hàm dịch vụ để lấy hàm tóm lược từ những thông tin xác thực. Bản tóm lược nhận được theo cách đó là khóa Kz mã hóa đầu đề. Tiếp đó, nhờ khóa này mà dịch vụ lần lượt duyệt tìm trong tất cả các thuật toán mã hóa được hỗ trợ bởi nhà cung cấp mật mã. Vì đầu đề được mã hóa toàn bộ nên không thể lấy được thông tin về thuật toán mã hóa từ nó. Cuối cùng, sau khi thuật toán cần thiết được tìm thấy, dịch vụ sẽ giải mã đầu đề và nhận được khóa Kd để giải mã dữ liệu. Khóa này sau đó tiếp tục nằm trong không gian địa chỉ của dịch vụ trong suốt quá trình làm việc của chương trình và được sử dụng mỗi khi cần phải mã hóa hay giải mã một khối dữ liệu.
Trong thành phần của “dịch vụ điều khiển”, hệ thống cũng có chủ thể xác thực của mình, nó liên hợp với các phương tiện thực hiện xác thực hệ điều hành Windows. Khi quyết định về truy cập (nối kết đĩa) được thực hiện, bộ điều khiển sẽ hoạt động, nó thu nhận bản tóm lược của mật khẩu người dùng và khóa mã hóa dữ liệu. Cần phải xem xét thủ tục chuyển thông tin xác thực, bởi vì trước tiên bản thân nó cũng là đối tượng tấn công của kẻ bất hảo.
Những ký tự được nhập vào trong quá trình xác thực tại máy tính ở xa không làm lộ mật khẩu (xác thực với liên lạc ngược được bảo vệ).
Trong thời gian xác thực, có thể có những tấn công từ phía kẻ bất hảo đến quản trị hệ thống làm việc. Trước tiên là tấn công lên mật khẩu nhờ “ngựa Tơ-roa”. Những phương pháp có khả năng khác thu nhận mật khẩu là chặn thu thông tin nhập vào từ bàn phím và tấn công lên mật khẩu nhờ chương trình gián điệp (chủ thể) tại mức lõi của hệ điều hành. Không thể có bảo vệ hoàn toàn chống lại kẻ bất hảo chiếm được quyền quản trị hệ thống, nhưng việc sử dụng cách kết hợp mật khẩu với khóa ngoài làm cho tấn công lên khóa mã hóa khóa chủ là không thể được về mặt thực hành. Ý nghĩa của việc kết hợp này là ở chỗ, kẻ bất hảo thậm chí sau khi đoán ra mật khẩu cũng không biết được điều gì nếu không có khóa cần thiết và ngay cả sau khi lấy cắp được khóa thì cũng sẽ chẳng đạt được gì nếu không biết mật khẩu.
Hệ thống cũng được tích hợp với kho lưu trữ được mã hóa các mật khẩu tin cậy với sự thay đổi mật khẩu tự động trong trường nhập dữ liệu nhằm làm cho mật khẩu không truy cập được đối với tấn công từ điển.
Mối đe dọa cơ bản là khả năng chặn thu các dữ liệu xác thực khi chúng được truyền qua mạng. Nó được khắc phục nhờ mã hóa đối xứng các dữ liệu xác thực, bởi vì sự trao đổi khóa mã hóa xảy ra khi thiết lập liên kết có bảo vệ của giao diện người quản trị ở xa với dịch vụ điều khiển.
Nếu việc truyền mật khẩu lên máy chủ thực hiện thành công, thì khả năng không thể truy cập nó trong quá trình vận chuyển và biến đổi tiếp theo được đảm bảo bằng sự cô lập các không gian địa chỉ giữa các chủ thể thành phần của môi trường và sự truyền tin chính xác từ một không gian địa chỉ này, sang một không gian địa chỉ khác. Mục đích cuối cùng của xác thực là đưa khóa mã hóa dữ liệu trực tiếp đến không gian địa chỉ của chủ thể, thực hiện các chức năng bảo vệ (dịch vụ mã hóa). Nó tiếp tục có mặt trong không gian địa chỉ này trong suốt thời gian làm việc.
Thu nhận truy cập đến các tệp trên đĩa được nối kết có bảo vệ
Trong hệ thống, vai của người dùng đĩa có bảo vệ được duy trì. Môi trường kết hợp một cách đơn trị người dùng như vậy với dữ liệu của mình. Để nhận được khả năng truy cập từ xa đến tệp trên đĩa có bảo vệ, người dùng thiết lập với máy chủ một kết nối có bảo vệ. Bộ điều khiển mạng trên máy chủ phong tỏa tất cả các gói tin đến mà không qua kết nối có bảo vệ.
Trên máy chủ, hai cặp khóa mã hóa phi đối xứng được sinh ra: Spub/Spr - khóa công khai/khóa bí mật của máy chủ, Cpub/Cpr - khóa công khai/khóa bí mật của máy khách. Sau đó trên máy chủ, cặp khóa Spr, Cpub được lưu trữ, còn trên máy khách - cặp khóa Spub, Cpr (sự phân phối khóa xảy ra trước nhờ các bộ nhận thực điện tử hay các vật mang tin thay đổi). Các bên tiến hành xác thực lẫn nhau, khi đó máy khách mã hóa các thông báo của mình bằng khóa Spub, còn máy chủ - bằng khóa Cpub. Trong quá trình xác thực, xảy ra sự trao đổi các khóa phiên - các khóa đối xứng, chúng được sử dụng để mã hóa tải tin của mạng.
Việc xác thực lẫn nhau loại trừ khả năng tấn công kiểu “người trung gian” trong giai đoạn xác thực.
Máy khách mã hóa gói tin chứa khóa phiên bằng khóa công khai của máy chủ (tương ứng, việc giải mã nó chỉ có thể là máy chủ) và bằng khóa bí mật của mình, vì máy chủ có khóa công khai của máy khách nên nó có thể tin tưởng rằng gói tin đã được gửi đến đích thực bởi máy khách hợp pháp. Việc xác thực lẫn nhau này loại trừ khả năng giả mạo máy chủ. Chủ thể muốn đóng giả làm chủ thể xác thực trên máy chủ, sẽ không thể làm được điều đó nếu không có khóa cần thiết.
Để cải thiện khả năng bền vững chống lại các tấn công từ chối phục vụ (DoS), ta cần kiểm soát số lượng yêu cầu đối với máy chủ tại cổng xác thực từ duy nhất một địa chỉ IP. Khi vượt quá ngưỡng nhất định, cổng này sẽ được phong tỏa đối với địa chỉ IP cụ thể bằng cách sử dụng khả năng của bộ điều khiển mạng để lọc các gói tin đi vào và đi ra.
5.3. Tháo rời đĩa cứng với thông tin mật
Phù hợp với chính sách an toàn được công bố, các dữ liệu trên đĩa cứng khi tháo rời ra để nối kết vào một máy tính khác (mà trên đó bản thân có các quyền quản trị) cần phải được bảo vệ để kẻ bất hảo không thể tấn công, truy nhập.
Ở đây có sự hỗ trợ kịp thời của mật mã. Đối với tấn công lên khóa mã hóa dữ liệu, nhờ chọn lựa trực tiếp, kẻ bất hảo buộc phải duyệt tìm 2n tổ hợp, trong đó n là độ dài khóa. Với độ dài khóa 128 bit thì bài toán này không thể hoàn thành được, kể cả việc sử dụng các tài nguyên tính toán của mạng toàn cầu.
Độ tin cậy của các thuật toán mã hóa không được chứng minh về mặt giải tích, vì vậy, thuật toán thường được coi là tin cậy nếu điều ngược lại không được chứng minh (có mặt những tổn thương). Trong trường hợp đó, thuật toán phải được biết đến khá rộng rãi để việc cố gắng phá vỡ nó có ý nghĩa. Các thuật toán mã hoá GOST 28147-89 và AES, được sử dụng trong MAB, là các chuẩn quốc gia của Nga và Mỹ tương ứng. Trong MAB cũng cài đặt các thuật toán khác như Blowfish, 3DES, RC5 mà cho đến nay vẫn chưa bộc lộ tổn thương nào trong chúng. Ngoài ra, trong trường hợp bộc lộ tổn thương của thuật toán mã hóa này hay thuật toán mã hóa khác thì vẫn còn có khả năng mã hóa lại các dữ liệu. Việc mã hóa lại được thực hiện nhờ các khối theo kích thước 64 bit và dữ liệu được bảo vệ trong suốt quá trình. Hệ thống cũng được bảo hiểm cho trường hợp sinh khóa mã hóa dữ liệu “yếu”. Các khóa mã hóa giả ngẫu nhiên được sinh ra phải trải qua sự kiểm tra về độ tin cậy.
5.4. Bảo vệ trao đổi dữ liệu giữa máy chủ và máy khách
Ngoài thông tin trên chính máy chủ, thì cả khi tải tin mạng giữa máy chủ và các máy khách cũng được bảo vệ. Như đã được nhắc đến ở trên, để nhận được khả năng truy cập dữ liệu trên máy chủ, máy khách ban đầu thiết lập với máy chủ một kết nối có bảo vệ. Sau đó trên máy khách được kích hoạt chủ thể - bộ điều khiển mạng của MAB, nó mã hóa tất cả các gói tin IP hướng đến máy chủ và giải mã tất cả các gói tin IP đi đến từ máy chủ. Trên máy chủ cũng vận hành một chủ thể tương tự, nhưng nó mã hóa trao đổi dữ liệu ngay với tập các máy khách (hình 5).
Như vậy, thay vì gửi gói tin trực tiếp cho bộ điều khiển của card điều hợp mạng, gói tin ban đầu lại hướng tới bộ điều khiển mạng của MAB.
Bộ điều khiển kiểm tra xem gói tin này có được phép hay không bằng cách lần lượt đối chiếu nó với tất cả các quy tắc trong danh sách của mình. Đối với gói tin IP, mỗi quy tắc cho ra một danh sách các địa chỉ IP nguồn được truy cập hay không được truy cập và điểm đến, dải cổng và các giao thức. Ngay khi bắt gặp một quy tắc cấm, gói tin hiện hành thì nó sẽ bị hủy.
Nếu gói tin là được phép thì bộ điều khiển nhờ có thư viện mật mã của chế độ lõi sẽ mã hóa gói tin đó bằng khóa phiên và thêm vào nó mã xác thực. Gói tin đã mã hóa được gửi đi bởi bộ điều khiển của MAB tới bộ điều khiển của card điều hợp mạng. Các khóa phiên khi đó đang có mặt tại các trang không thể tháo gỡ, thuộc không gian địa chỉ của các bộ điều khiển mạng của MAB trên máy chủ và máy khách.
Song, kẻ bất hảo có thể cố thử thực hiện tấn công trên cơ sở một số giả định đối với nội dung của các gói tin được gửi qua lại, ví dụ có thể đã biết rõ là gói tin IP đóng gói gói tin TCP, tương ứng sẽ có một số trường chuẩn của đầu đề gói tin TCP đã được biết trước. Để ngăn chặn mối đe dọa như vậy, cần phải tính đến việc thay đổi tự động khóa phiên theo khoảng thời gian nhất định, hay khi gửi qua lại một khối lượng thông tin nhất định. Trong trường hợp đó, việc trao đổi các khóa phiên có thể được thực hiện bởi các dịch vụ mạng trên máy khách và máy chủ đúng như khi thiết lập kết nối có bảo vệ.
5.5. Bảo vệ các đối tượng khỏi sử dụng lặp
Việc làm sạch các đối tượng không đúng lúc khỏi thông tin mật có thể dẫn đến hậu quả tổ chức kênh rò rỉ thông tin. Ngoài các phương tiện chuẩn làm sạch bộ nhớ, trong hệ thống còn xem xét trước sự bảo vệ chống lại hàng loạt tấn công có thể được liệt kê dưới đây.
Đọc dữ liệu từ các thư mục đối với các tệp tạm thời
Nhiều ứng dụng, thậm chí làm việc trên đĩa có bảo vệ cũng tạo ra các tệp tạm thời trong những thư mục trên các đĩa có bảo vệ, ví dụ trong thư mục Temp. Các tệp tạm thời này có thể chứa dữ liệu gây nên sự quan tâm đối với kẻ bất hảo. Để ngăn ngừa tấn công kiểu đó, thực hiện khả năng lưu giữ thư mục dành cho các tệp tạm thời trên các đĩa có bảo vệ.
Đọc dữ liệu từ tệp chưa kết thúc
Thực hiện khả năng xóa tệp chưa kết thúc trong khi hoàn thành công việc của hệ điều hành. Cách tiếp cận như vậy không thực hiện được trong trường hợp tắt nguồn nuôi, vì vậy nên tiến hành mã hóa tệp chưa kết thúc “song hành” trong quá trình làm việc của nó. Điều này dẫn đến sự sụt giảm năng suất của hệ thống. Hiện tại thì vẫn có khả năng bảo vệ chống lại tấn công như vậy - tăng khối lượng thiết bị nhớ thao tác và tránh sử dụng tệp chưa kết thúc.
Phục hồi các tệp bị loại bỏ bởi phương tiện của hệ điều hành
Hệ thống tệp sử dụng trong hệ thống Windows được thiết kế để sao cho khi có sự loại bỏ các tệp thì chúng chỉ được đánh dấu “loại bỏ”, nhưng thông tin chứa trong tệp vẫn còn nguyên trên đĩa, thậm chí cả khi đã dọn sạch “thùng rác”. Tồn tại nhiều phương tiện để phục hồi các tệp đã bị loại bỏ. Sự thực thì thông tin sẽ bị hủy từng phần hay toàn bộ chỉ khi hệ thống ghi đè lên chỗ của tệp đó bằng một tệp khác. Nhưng điều này cần được thực hiện lặp đi lặp lại vài lần. Như vậy, khi có thể tiếp cận vật lý đến máy tính và có các quyền quản trị thì có thể phục hồi thông tin của tệp sau khi đã loại bỏ nó.
Để ngăn ngừa mối đe dọa này, cần thực hiện khả năng loại bỏ tệp bằng cách ghi đè ngay lập tức vào các khối đã được giải phóng một dãy số được sinh ngẫu nhiên, trong khi đó việc ghi đè như vậy có thể được tiến hành lặp đi lặp lại bằng một số “hành trình”. Ngoài ra, có thể tiêu hủy tất cả các dữ liệu lưu trữ trên đĩa sau khi đã loại bỏ chúng bằng cách tương tự, kể cả các phần đuôi của tệp.
Có thể khẳng định rằng, hệ thống trên mỗi máy tính đều gìn giữ trạng thái an toàn, ngay cả khi có các hỏng hóc nguồn nuôi.
5.6. Thiết kế và soạn thảo cẩn thận phần mềm
Một hệ thống an toàn bất kỳ cần tương ứng với các chuẩn cài đặt được chấp nhận chung. Ngoài ra, luôn tồn tại vấn đề bổ sung hợp lý một chủ thể vào tập các chủ thể đã tồn tại.
Ngoài các bài toán liên hợp ngữ nghĩa theo danh sách liệt kê, theo dạng và độ dài tham số thì tất cả các chủ thể thực hiện các chức năng bảo vệ cần phải trải qua những thẩm định tương ứng với tập những cách thức đúng mực của các chương trình. Thông thường, mỗi cách thức như vậy bao gồm trong nó sự kiểm tra tính đúng đắn làm việc với bộ nhớ động - tràn bộ đệm, giao tác đọc/ghi tới bộ nhớ động sau khi đã giải phóng nó v.v., kiểm tra các mã gọi và đáp trả, phân tích tĩnh các bản nguồn của chương trình, các phương pháp phân tích động, kiểm tra tính cách ly của các chủ thể với nhau, tính đúng đắn làm việc với các biến toàn cục v.v. Ví dụ, tạo ra các kênh rò rỉ thông tin chỉ trong trường hợp khi thông tin sẽ được lưu giữ. Cho nên, cần phải đối phó với các thao tác lưu giữ bằng cách phân tích phần đảm bảo chương trình (phần mềm) và rút gọn các hoạt động ghi vào những đối tượng lưu trữ bên ngoài. Chương trình cần được bảo vệ bằng các dữ liệu ngẫu nhiên như là biện pháp bổ sung để kiểm tra tính đúng đắn.
Kết luận
Bài báo này xem xét một 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 với hệ thống người dùng cục bộ trên từng máy tính khi vắng mặt kiểm soát miền, đưa ra một chính sách an toàn đối với hệ thống như vậy và mô tả việc thực thi nó bởi các nhà thiết kế của Microsoft. Nhìn chung, chính sách an toàn đảm bảo được sự bảo vệ hệ thống đối với người dùng bình thường. Tuy nhiên, sự hiện diện ở kẻ bất hảo các quyền quản trị hay tiếp cận vật lý tới những máy tính nào đó trong hệ thống có thể trở thành nguồn đe dọa đến an toàn thông tin. Để khắc phục từng phần các đe dọa này, bài viết đã đề xuất một môi trường an toàn biến thể hóa (MAB) với chính sách an toàn, tăng thêm chính sách an toàn chuẩn của hệ điều hành Windows nhờ tích hợp các chức năng bảo vệ. Do trên thực tế thường không thể biện giải một cách hình thức về an toàn của hệ thống thông tin, cho nên việc thể hiện đúng đắn chính sách an toàn đưa ra đã được lập luận bằng cách khảo sát chủ động MAB.
Công nghệ được mô tả đã thể hiện thành công trong những hệ thống do các công ty của Nga và nước ngoài thiết kế .