Tính phổ biến 8 Tính đơn giản 10 Tính hiệu quả 10 Mức độ rủi ro 9
Vào ngày 19-1-2001, Richard Berglind đăng tải một nghiên cứu rất thú vị lên trang danh sách thư bảo mật. Sự việc là ở chỗ khi một tệp tin được chọn để mã hoá bằng EFS, nhưng cuối cùng nó vẫn chưa được bảo mật. Thực ra một bản sao lưu của tệp tin đó đã được chuyển tới một thư mục tạm thời và được đổi tên thành efs0.tmp. Sau đó những dữ liệu từ tệp tin này được mã hoá
và thay thế cho tệp tin gốc. Tệp tin sao lưu sẽ tự động xoá sau khi kết thúc quá trình mã hoá.
Tuy nhiên, sau khi tệp tin sao lưu thay thế tệp tin gốc và tệp tin tạm thời được xóa bỏ, những khối cản vật lý trong hệ thống tệp tin, nơi các tệp tin tạm thời thường trú không bao giờ bị xoá sạch. Những khối này chứa dữ liệu gốc chưa mã hoá. Phương thức xoá tệp tin tạm thời cũng tương tự như cách xoá bất kỳ một tệp tin nào khác. Một mục nhập trong bảng tệp tin chủ được đánh dấu rỗng và các liên cung nơi lưu trữ các tệp được đánh dấu hiển thị, nhưng tệp tin vật lý và thông tin nó chứa đựng sẽ ở dạng văn bản gốc được lưu trên mặt đĩa vật lý. Khi các tệp tin mới được bổ xung vào vùng lưu trên đĩa, các thông tin của tệp sẽ dần bị ghi chèn; nhưng nếu tệp tin được mã hoá quá lớn, thì tệp tin này vẫn được lưu tới hàng tháng sau (tuỳ thuộc vào dung lượng đĩa).
Trở lại với nghiên cứu của Richard, hãng Microsoft khẳng định trường hợp này là do thiết kế đặc trưng cho tệp cá nhân dùng EFS để bảo mật, và chỉ ra những khoảng trắng của EFS sẽ giải thích mọi vấn đề rõ ràng. Hãng cũng gợi ý một số thủ thuật nhằm tránh những trường hợp như trên và rằng sẽ nghiên cứu kỹ hơn vấn đề này.
Cách thức hoạt động của chương trình này khi đọc các dữ liệu bị mã hoá dưới dạng EFS như thế nào? Một trình duyệt cấp thấp sẽ truy xuất dữ liệu một cách dẽ dàng, ví dụ như trình duyệt dskprobe.exe của Công cụ hỗ trợ có trên CD cài đặt Windows 2000. Trình duyệt này cho phép người sử dụng có thể dễ dàng truy cập máy chủ và truy xuất dữ liệu tệp tin đã bị mã hoá. Chúng ta sẽ tìm hiểu cách sử dụng trình duyệt dskprobe để đọc tệp tin efs0.tmp sau đây.
Đầu tiên, chạy chương trình dskprobe và mở một ổ đĩa vật lý thích hợp để truy xuất dữ liệu bằng cách chọn Drives/Physical Drive và click chuột phải vào một ổ thích hợp trong phần trên, góc trái cửa sổ hiển thị. Sau đó, click vào nhân Set Active gần ổ bạn chọn sau khi hiển thị trong phần “Handle 0” của hộp thoại.
Sau khi hoàn thành bước thứ nhất, kế tiếp bước thứ hai bạn phải định vị cung thích hợp chứa những dữ liệu muốn nhận dạng. Định vị các tệp trên một ổ đĩa vật lý là một công việc cực kỳ khó khăn, tuy nhiên bạn có thể sử dụng lệnh Tools/Search Sectors của trình duyệt dskprobe để hỗ trợ công việc tìm kiếm này. Trong ví dụ ở hình 6-3, chúng ta tìm kiếm chuỗi ký tự “efs0.tmp” trong các phần cung từ 0 đến điểm kết của đĩa. Bạn cũng nên click chọn mục Exhaustive Search, các kiểu chữ in hoa hay in thường (Ignore Case), và kiểu chữ Unicode. (Sử dụng ASCII thường không cho kết quả).
Bước ba khi hoạt động tìm kiếm kết thúc, nếu EFS đã được sử dụng để lập mã tệp trên đĩa đang được phân tích, và nếu tệp efs0.tmp không bị ghi đè do các thao tác hoạt động của đĩa, thì đầy đủ nội dung tìm kiếm sẽ hiển thị trên giao diện dskprobe. Công việc tìm kiếm chuỗi ký tự “efs0.tmp” sẽ thể
hiện các phần khác trên đĩa cũng chứa chuỗi ký tự đó. (một tệp có tên “efs0.log” cũng chứa tham chiếu đường dẫn đầy đủ tới tệp efs0.tmp). Một cách khác nhằm giúp bạn tìm luôn thấy chuỗi efs0.tmp thay vì tìm tệp chứa chuỗi đó là tìm luôn chuỗi “FILE∗” trên dòng đầu của giao diện dskprobe __máy sẽ chỉ ra phần chứa một tệp đó. Cả efs0.log và efs0.tmp dường như được tạo ra từ cùng một đường dẫn giống với đường dẫn của tệp đã được mã hoá, nhưng chúng không hiển thị trên một giao diện chuẩn mà chỉ hiển thị trên giao diện của dskprobe. Trong hình 6-3, chúng tôi đã chỉ ra một tệp efs0.tmp mẫu được phát hiện trong cung từ 21249 hiển thị trong dskprobe với nộ dung đầy đủ. (Một lần nữa, cần lưu ý chuỗi “FILE*” ở dòng đầu, đây là một tệp tin).
CHÚ Ý Kẻ tấn công có thể chạy chương trình dskprobe trên mạng thông qua một giao diện điều khiển từ xa hay một phiên Terminal Server, chứ không chỉ từ một bàn giao tiếp vật lý.
Khi tấn công bằng một trình duyệt cấp thấp không những kẻ tấn công không chỉ đơn giản xoá phần SAM hoặc thay đổi chật tự mọi thứ có trong đó, mà phải dò tìm những tệp đang được bảo mật dưới dạng EFS trong những môi trường dễ bị tấn công.
◙ Khóa tính năng Phục hồi file tạm lưu EFS
Khi cuốn sách đến tay bạn đọc, hãng Microsoft vẫn chưa có những biện pháp sữa chữa lỗi này. Tuy nhiên, hãng cũng có những phản hồi đối với Bugtraq đã đề cập ở phần trước. Microsoft cho biết, tệp sao lưu văn bản thuần tuý chỉ được tạo ra nếu một tệp đơn có trước đã được mã hoá. Nếu tệp được tạo ra trong thư mục đã được mã hoá thì ngay lập tức nó cũng được mã hoá, và sẽ không có một tệp sao lưu văn bản thuần tuý khác được tạo ra. Microsoft khuyến cáo điều này như một quy trình ưu đãi cho việc sử dụng EFS để bảo mật các dữ liệu nhạy cảm như đã trình bày trong phần “Bảo Mật Hệ Thống
Tệp Trong Windows 2000”. (Xem
http://www.microsoftft.com/technet/treeview/default.asp?url=TechNet/prodte chnol/windows2000serv/deploy/confeat/nt5efs.asp):
“Chúng tôi khuyến cáo các bạn tốt hơn hết là luôn khởi tạo một thư mục rỗng tiến hành mã hoá, sau đó tạo các tệp trực tiếp trong thư mục đó. Điều này sẽ đảm bảo các bit của tệp đó không bị lưu giữ ở bất kỳ nơi đâu trên đĩa. Việc làm này cũng tạo ra một sự thực thi tốt hơn khi EFS không cần tạo một bản sao lưu khác và sau đó lại xoá nó…”
Điểm cần lưu ý: thay vì mã hoá các tệp riêng biệt, hãy mã hoá một thư mục chứa tất cả dữ liệu bảo mật trước, và sau đó tạo các tệp nhạy cảm chỉ trong thư mục này.
Khai Thác Sự Uỷ Thác
Một trong những kỹ năng hiệu quả mà những kẻ tấn công hay dùng là tìm những máy uỷ thác trong miền (đối kháng cục bộ) mà đều hợp lệ trong các miền hiện thời khác. Điều này cho phép kẻ tấn công có thể nhảy cóc từ các máy chủ độc lập sang các mạch điều khiển miền và qua các đường biên an ninh rất dễ dàng. Chính những nhà quản trị hệ thống là người cho phép kẻ tấn công sử dụng cách này khi họ nhập vào một hộp độc lập với những máy uỷ thác khác trong miền điều khiển. Hệ điều hành Windows 2000 bảo vệ được ai trong những lỗi như vậy!
☻Những bí mật LSA – Alive và Well
Tính phổ biến 8 Tính đơn giản 10 Tính hiệu quả 10 Mức độ rủi ro 9
Như đã trình bày ở Chương 5, yếu điểm của Bí mật LSA là chìa khoá cho việc lợi dụng mối quan hệ tín nhiệm bên ngoài vì nó tiết lộ danh sách một vài người sử dụng cuối cùng truy cập vào hệ thống và các mật khẩu truy cập vào các chương mục dịch vụ.
Mặc dù hãng Microsoft đã đưa ra một biện pháp khắc phục cho lỗi Bí mật LSA sau khi tung ra Service Pack 3, nhưng rất nhiều dữ nhạy cảm vẫn có thể bị lấy cắp nhờ sử tiện ích lsadump2 từ Todd Sabin(xem http://razor.bindview.com/tools/desc/lsadump2 _readme.html)
Sau đây là một ví dụ khi lsadump2 khai thác một chương mục dịch từ một mạch điều khiển miền dùng Windows 2000. Mục vào cuối cùng cho thấy dịch vụ “BckpSvr” nhập vào hệ thống với mật khẩu của “password1234”.
C:\>lsadump2 $MACHINE.ACC 7D 58 DA 95 69 3E 3E 9E AC C1 B8 09 F1 06 C4 9E }x..i>>…….. 6A BE DA 2D F7 94 B4 90 B2 39 D7 77 j..-…..9.w TermServLicentingSignKey-12d4b7c8-77d5-11d5-11d1-8c24-00c04fa3080d . . . TS: InternetConnectiorPswd 36 00 36 2B 00 32 00 48 00 68 00 32 00 62 00 6.6.+ 2.H.h.2.b. 44 00 55 00 41 00 44 00 47 00 50 00 00 00 D.Ư.A.D.G.P… . . . SCBckpSvr 74 00 65 00 73 00 74 00 75 00 73 00 53 00 72 00 p.a.s.s.w.o.r.d. 31 00 32 00 33 00 34 00 1.2.3.4. Khi biết được mật khẩu dịch vụ, kẻ tấn công có thể sử dụng những tiện ích tiện ích như net user được cài đặt sẵn và Resource Kit nlnest/TRUSTED_DOMAINS để theo dõi trương mục đối tượng sử dụng và mối quan hệ tín nhiệm trên cùng hệ thống này (dễ dàng thực hiện nếu có đặc quyền của Administrator).
Khám phá này có thể tạo ra một đối tượng sử dụng có tên “bckp” (hoặc tương tự) và một hoặc nhiều mối quan hệ với những miền ngoài. Chúng ta sẽ có cơ hội thành công cao nếu sử dụng bkcp/password 1234 để đăng nhập vào những miền này.