Có thể Giảm thiểu thiệt hại hiệu ứng "vết dầu loang" ?
Hackers, các chuyên gia ứng phó sự cố và các chuyên gia đánh giá an toàn thông tin đều hiểu rằng, tài khoản quản trị Local Administrator dùng chung một mật khẩu để quản lý tất cả các máy tính, từ máy chủ cho đến máy trạm trong hạ tầng hệ thống của tổ chức là một trong những lỗ hổng phổ biến và nguy hiểm nhất hiện nay.
Tài khoản quản trị Local Administrator dùng chung một mật khẩu là rủi ro nằm trong danh sách Top những lỗ hổng Nguy hiểm nhất theo báo cáo của Verizon năm 2014/2015 "Data Breach Investigations Reports".
Theo số liệu đến từ các dự án đánh giá an toàn thông tin của DNA năm 2015, gần như tất cả các khách hàng mà DNA thực hiện đánh giá an toàn thông tin đều tồn tại lỗ hổng này, vì lý do đó DNA nghĩ rằng cần phải chia sẻ công khai, nhân rộng hướng xử lý lỗ hổng này với toàn cộng đồng Internet Việt Nam và các khách hàng của DNA.
Cơ sở hạ tầng hệ thống sử dụng công nghệ Microsoft vẫn là mục tiêu nằm trong danh sách dễ bị tổn thương và khai thác nhất đối với lỗ hổng này, do Active Directory thường được triển khai theo cách: Các chuyên gia IT sẽ chuẩn bị một file ISO "Image" dùng cài đặt hệ điều hành được thiết lập sẵn tài khoản và mật khẩu Local Administrator, sau đó tiến hành cài đặt file này trên tất cả các máy trạm của tổ chức.
Local Administrator Password Solution - Microsoft LAPS
Khi một kẻ tấn công chiếm được quyền kiểm soát một máy trạm bất kỳ trong hệ thống, "Local Administrator Password Hash" sẽ dễ dàng bị đánh cắp và lợi dụng để truy cập đến tất cả các máy trạm còn lại bằng cách sử dụng kỹ thuật khai thác Pass-the-Hash (PtH). Đây là phương pháp tấn công được mô tả chi tiết trong báo cáo của FireEye/Mandiant M-Trends 2015.
Thời gian gần đây, Microsoft đã phát hành một công cụ mới, gọi là "Local Administrator Password Solution (LAPS)"giúp giảm thiểu thiệt hại đối với kỹ thuật tấn công Pass-the-Hash.
LAPS sẽ thay đổi mật khẩu của mỗi tài khoản Local Administrator thành từng mật khẩu riêng biệt (unique value) tương ứng với từng máy trạm, ngăn chặn việc dùng chung một mật khẩu. LAPS cũng cung cấp phần mềm giúp cho quản trị viên có thể quản lý các tài khoản Local Administrators từ một máy chủ trung tâm Centralized Server.
Kể từ khi kỹ thuật tấn công Pass-the-Hash trở thành một phần không thể thiếu trong quá trình đánh giá an toàn thông tin và các sự cố an ninh, đây là lần đầu tiên chúng ta thấy được cách thức giảm thiểu rủi ro này, cách nó xử lý những vấn đề tiềm ẩn liên quan đến Pass-the-Hash, cũng như những ảnh hưởng của nó đối với giới Hackers, cả tốt và xấu.
Trước khi có giải pháp này, những chiến thuật đặc trưng thường dùng để giảm thiểu thiệt hại đối với Pass-the-Hash là vô hiệu hóa cơ chế xác thực truyền thống SMB, vô hiệu hóa tính năng Printer và File Sharing, hoặc tự tạo và quản lý thủ công tài khoản Local Administrator với từng mật khẩu riêng biệt cho tất cả các máy trạm, đây được xem là việc bất khả thi nếu tổ chức có số lượng máy trạm từ hàng trăm máy trở lên. Rõ ràng không một chiến thuật nào trong số này là lý tưởng và phù hợp với công tác quản trị hệ thống.
LAPS hoạt động như thế nào ?
LAPS có một cách tiếp cận khác biệt so với những chiến thuật trên. LAPS không ngăn chặn việc truy cập đến các máy tính khác bằng kỹ thuật Pass-the-Hash, thay vào đó nó tập trung vào việc giảm thiểu mức độ ảnh hưởng của Pass-the-hash bằng cách gán cho mỗi tài khoản Local Administrator một mật khẩu hoàn toàn riêng biệt. Giúp chúng ta quản lý mật khẩu Local Administrator của các máy trạm đã join domain. Những mật khẩu này sẽ được lưu trữ tập trung tại Active Directory và giới hạn truy cập chỉ dành cho những người dùng có đặc quyền thông qua cơ chế kiểm soát ACL.
Điều này giúp hạn chế hiệu ứng "vết dầu loang" sau khi một máy trạm bị chiếm quyền kiểm soát. Khi kẻ tấn công chiếm được quyền truy cập vào máy này, chúng sẽ không thể truy cập đến các máy còn lại trong hạ tầng mạng bằng tài khoản Local Admin trên máy đã bị kiểm soát.
Vậy có thực sự Microsoft đã cung cấp một giải pháp giảm nhẹ hiệu quả đối với tấn công Pass-the-Hash ?
Điều đầu tiên, DNA xác nhận giải pháp này có khả năng giúp giảm thiểu thiệt hại đối với các cuộc tấn công từ kỹ thuật Pass-the-Hash. Tuy nhiên nó đòi hỏi việc thay đổi một số cấu hình tương đối phức tạp trong môi trường Active Directory hiện hành của tổ chức. Vì lỗ hổng này khá phổ biến và tương đối nghiêm trọng, DNA khuyến nghị Quý khách hàng nên triển khai thực hiện giải pháp này sau khi đã thử nghiệm trên môi trường UAT hoặc Lab.
Thử nghiệm của DNA
Trong môi trường thử nghiệm, DNA có một máy chủ Windows Server 2008 R2 SP2 Domain Controller và hai máy trạm Windows 7 trong hệ thống. Ở kịch bản thử nghiệm này, nhân viên IT Helpdesk của DNA đã thiết lập tài khoản mặc định Local Administrator với tên gọi "administrator" dùng chung một mật khẩu để quản trị hai máy trạm.
DNADC: 192.168.112.10 - DNA Active Directory Domain Controller
RECEPTION: 192.168.112.151 - Máy trạm đã bị chiếm quyền kiểm soát
HELPDESK: 192.168.112.160 - Máy trạm của người dùng bình thường, chưa bị khai thác
Như hầu hết các chiến dịch tấn công Advanced Persistent Threat, đầu tiên DNA thực hiện chiếm quyền kiểm soát máyRECEPTION bằng một loại Malware riêng, leo thang đặc quyền và đạt được SYSTEM-level shell trên máy này.
Bước tiếp theo, DNA sẽ sử dụng công cụ gọi là mimikatz để dump các thông tin mã hashes của người dùng từ memory, bao gồm cả mã hash (highlight vàng) của tài khoản quản trị "Administrator" đã đề cập ở phần trên
Sau đó sử dụng module psexec_psh trong Metasploit để thực hiện tấn công thực thi mã từ xa (Remote Code Execution) bằng cách xác thực với đoạn hash đã đánh cắp được, đây chính là kỹ thuật Pass-the-Hash. Ở môi trường thực tế, DNA đã từng thực hiện đánh giá an toàn thông tin và sử dụng kỹ thuật này để chiếm quyền kiểm soát hơn 1200 máy trạm trong mạng lưới của khách hàng, do tất cả các máy này đều được quản trị bởi duy nhất một tài khoản Local Administrator dùng chung mật khẩu.
Từ đây, kẻ tấn công có thể sử dụng những công cụ khác để tiếp tục chiếm quyền kiểm soát các máy trạm khác trong mạng, những máy sử dụng cùng một tài khoản Local Administrator. Đến giai đoạn này, kẻ tấn công có thể chiếm quyền máy trạm của các quản trị viên và leo thang đặc quyền thành Domain Administrator.
Vậy làm thế nào để giảm thiểu được lỗ hổng này trong phần thử nghiệm của DNA ? Tiến hành triển khai giải pháp LAPS, sau khi triển khai mỗi tài khoản Local Administrator trên từng máy trạm sẽ có mật khẩu riêng biệt không trùng nhau (unique password). Trong phần này DNA sẽ hướng dẫn Quý khách hàng thiết lập LAPS cho tài khoản quản trị mặc định "administrator", được quản lý bởi Active Directory.
Triển khai cài đặt Local Administrator Password Solution LAPS
LAPS Requirement
LAPS yêu cầu .NET Framework 4.0 và PowerShell 2.0 hoặc phiên bản cao hơn. Trên các máy chủ chịu trách nhiệm quản lý tài khoản Local Administrator (LAPS Management Computer), chỉ hỗ trợ từ Windows Server 2003 SP1 trở lên. Trên các máy trạm (LAPS Client), chỉ hỗ trợ từ Windows Vista SP2 trở lên (Không hỗ trợ Windows XP). Máy chủ Active Directory cần cập nhật schema để hỗ trợ LAPS bằng cách thêm hai attributes là ms-Msc-AdmPwd và ms-Mcs-AdmPwdExpirationTime. Những thuộc tính này được sử dụng để lưu trữ Local Administrator password và thời gian hết hiệu lực của password.
Nhìn chung có hai việc chính cần thực hiện khi triển khai LAPS: Một là thay đổi schema của Domain để thêm các thuộc tính mới; hai là cài file MSI Group Policy extension (nằm trong gói cài đặt LAPS) lên tất cả các client cần quản lý. Lưu ý: Bắt buộc phải cập nhật tất cả các bản vá và SP mới nhất từ Microsoft cho AD, nếu không sẽ xảy ra lỗi khi sử dụng PowerShell để cập nhật schema (DNA đã thử nghiệm trên máy chủ Windows Server 2008 R2 SP2 và PowerShell 2.0).
1. Trên máy chủ DNA Domain Controller, thực thi file cài đặt 32-bit installer, LAPS.x86.msi và thực hiện theo hướng dẫn
2. Sau đó click Next và Accepting the License agreement. Tiến hành cài đặt Management Tools (không cần cài AdmPwd GPO Extension trên DC, nó dành cho LAPS Client). Sau khi cài đặt hoàn tất, vào menu Start chúng ta sẽ thấy xuất hiện ứng dụng LAPS UI
3. Tiếp theo, chúng ta cần mở Windows PowerShell với quyền Admin. Tại cửa sổ PowerShell, tiến hành load LAPS Module và thực thi lệnh Update-AdmPwdADSchema
A.1 Import-Module AdmPwd.PS ==> Load LAPS Module
A.2 Update-AdmPwdADSchema ==> Cập nhật Domain schema
Ghi chú: Nếu gặp thông báo lỗi "This assembly is built by a runtime newer than the current and cannot be loaded". Có nghĩa là chúng ta chưa cài .NET 4 và PowerShell 3.0 hoặc phiên bản cao hơn.
Khi hoàn thành các câu lệnh này, sẽ có ba thông báo "Success" như hình
4. Bước kế tiếp chúng ta cần thiết lập Security Permissions để giới hạn chỉ cho phép một nhóm tài khoản có thể xem được dữ liệu mật khẩu của LAPS bằng command Find-AdmPwdExtendedRights –Identity "*Your OU record". Mặc định cho thấy chỉ có nhóm Domain Admins là có quyền xem được các mật khẩu đã lưu.
5. Cuối cùng, chúng ta cần cấp quyền để các máy trạm có thể cập nhật được giá trị của ms-Msc-AdmPwd và ms-Mcs-AdmPwdExpireationTime trong Active Directory, tiếp tục load module AdmPwd.PS (nếu chưa load) và thực thi lệnh Set-AdmPwdComputerSelfPermission. Lưu ý, cần thực thi câu lệnh này cho mỗi OU mà chúng ta cần quản lý.
Đến lúc này, hạ tầng Active Directory đã được cấu hình để hỗ trợ LAPS, chỉ cần cài LAPS AdminPwd GPO Extension lên các máy tính cần quản lý và cấu hình GPO để enable LAPS là hoàn tất giai đoạn triển khai áp dụng giải pháp Local Administrator Password Solution. Đây là hình sử dụng LAPS UI để query mật khẩu Local Administrator của hai máy trạm RECEPTION và HELPDESK.
Góc nhìn của kẻ tấn công
DNA thấy rằng chiến thuật này đã giảm thiểu tương đối thiệt hại từ kỹ thuật tấn công Pass-the-Hash, khiến cho kẻ tấn công mất đi khả năng chiếm quyền hàng loạt máy tính trên diện rộng. Tuy nhiên, khi triển khai giải pháp LAPS đồng nghĩa đây cũng là nơi lưu trữ tập trung tất cả Cleartext Passwords. Nếu những máy chủ và hạ tầng hệ thống quan trọng nằm dưới sự bảo vệ của LAPS mà AD cấu hình không đúng cách thì những thông tin mà LAPS bảo vệ sẽ trở thành mối đe dọa tương đối phức tạp.
Tổng kết lại có ba điều quan trọng sau đây Quý khách hàng của DNA cần lưu ý khi triển khai áp dụng LAPS:
* Đảm bảo rằng các thuộc tính AD được cấu hình đúng cách, không lộ thông tin mật khẩu đến những người dùng không có thẩm quyền
* Đảm bảo rằng tất cả những tài khoản AD mà có quyền truy cập và xem dữ liệu LAPS phải là những tài khoản đặc quyền và được sử dụng đúng cách (Chỉ đăng nhập vào Domain Controllers, sử dụng mật khẩu mạnh và không chia sẻ cho người khác)
* Thực hiện rà soát đánh giá an toàn thông tin để đảm bảo cấu hình được áp dụng chính xác.
Cuối cùng, hãy xem DNA thực hiện lại cuộc tấn công mà DNA đã thực hiện trước khi áp dụng LAPS. Kết quả cho thấy mã hash riêng biệt (unique hash) mà DNA đoạt được thông qua mimikatz giờ đây chỉ dành cho duy nhất chính máy RECEPTION, vô hiệu hóa hoàn toàn khả năng truy cập đến các máy khác bằng Pass-the-Hash. Tuyệt vời !