Tầm Quan Trọng của Việc Loại Bỏ PowerShell 2.0 khỏi Windows 11
Microsoft đã công bố một thay đổi đáng kể cho người dùng Windows 11: việc loại bỏ Windows PowerShell 2.0, một nền tảng scripting cũ, khỏi các bản dựng sắp tới. Động thái này, lần đầu tiên được tiết lộ trong bản dựng Windows 11 Insider Preview Build 27891 phát hành cho kênh Canary, là một phần trong nỗ lực không ngừng của công ty nhằm tăng cường bảo mật hệ thống và hợp lý hóa hệ điều hành.
Nguyên Nhân và Lịch Sử PowerShell 2.0
PowerShell 2.0, được giới thiệu lần đầu vào năm 2009, từ lâu đã được coi là lỗi thời. Trong nhiều năm qua, Microsoft đã phát triển các phiên bản PowerShell an toàn hơn và giàu tính năng hơn. Tuy nhiên, phiên bản 2.0 cũ vẫn tồn tại trong Windows vì lý do tương thích.
Việc loại bỏ PowerShell 2.0 đánh dấu một bước tiến quan trọng trong chiến lược bảo mật của Microsoft. Mặc dù từng là một công cụ mạnh mẽ, PowerShell 2.0 lại thiếu các cơ chế bảo mật quan trọng được tích hợp trong các phiên bản sau này, khiến nó trở thành một điểm yếu tiềm tàng trong hệ thống phòng thủ của Windows.
Rủi Ro Bảo Mật của PowerShell 2.0
Các chuyên gia bảo mật và kỹ sư của Microsoft đã nhiều lần nhấn mạnh rằng PowerShell 2.0 thiếu các tính năng bảo mật hiện đại, khiến nó trở thành một vectơ tiềm năng cho các cuộc tấn công mạng và khai thác phần mềm độc hại. Sự hiện diện liên tục của nó gây ra những rủi ro không cần thiết, đặc biệt khi các tác nhân đe dọa thường nhắm mục tiêu vào các thành phần cũ hơn, kém an toàn hơn.
Các phiên bản PowerShell hiện đại (ví dụ: PowerShell 5.1 và PowerShell 7.x) đã tích hợp nhiều cải tiến bảo mật đáng kể mà PowerShell 2.0 không có. Những tính năng này bao gồm:
- Antimalware Scan Interface (AMSI) Integration: AMSI cho phép các giải pháp chống phần mềm độc hại trên hệ thống quét trực tiếp các script PowerShell trong bộ nhớ trước khi chúng được thực thi. Điều này giúp phát hiện và ngăn chặn các kỹ thuật tấn công không cần tệp (fileless malware) hoặc các script độc hại được ngụy trang. PowerShell 2.0 không hỗ trợ AMSI, khiến nó dễ bị tổn thương trước các cuộc tấn công tinh vi vượt qua các cơ chế bảo mật truyền thống.
- Script Block Logging: Tính năng này ghi lại toàn bộ nội dung của các khối script được thực thi, bao gồm cả những phần được giải mã hoặc tạo ra trong thời gian chạy. Nhật ký này cung cấp khả năng hiển thị sâu rộng về hoạt động của PowerShell, hỗ trợ điều tra pháp y và phát hiện các hành vi đáng ngờ. PowerShell 2.0 thiếu khả năng ghi nhật ký chi tiết này, gây khó khăn cho việc theo dõi các cuộc tấn công dựa trên script.
- Constrained Language Mode: Chế độ ngôn ngữ hạn chế được thiết kế để giảm thiểu khả năng của PowerShell như một công cụ khai thác bằng cách hạn chế quyền truy cập vào các tính năng nguy hiểm, bao gồm quyền gọi các API Windows không an toàn hoặc tải các module không được phép. Điều này đặc biệt hữu ích trong các môi trường có yêu cầu bảo mật cao. PowerShell 2.0 hoạt động ở chế độ Full Language Mode mặc định, cho phép khai thác đầy đủ các khả năng của nó mà không có các giới hạn bảo mật này.
- Code Signing Policy Enforcement: Các phiên bản PowerShell mới hơn có khả năng thực thi các chính sách ký mã (code signing policies) một cách mạnh mẽ hơn, đảm bảo rằng chỉ các script được ký bởi các nhà phát hành đáng tin cậy mới được phép chạy. Mặc dù PowerShell 2.0 có hỗ trợ ký mã, nhưng các cơ chế thực thi và khả năng kiểm soát trong các phiên bản sau này đã được cải thiện đáng kể.
Sự thiếu vắng của các tính năng này trong PowerShell 2.0 đã biến nó thành một lỗ hổng tiềm tàng, cho phép các tác nhân đe dọa dễ dàng thực hiện các kỹ thuật bypass (vượt qua) phần mềm diệt virus và các biện pháp kiểm soát bảo mật khác, từ đó cài đặt phần mềm độc hại hoặc thực hiện các hành động độc hại trên hệ thống.
Thông Báo và Lộ Trình Triển Khai
Trong ghi chú phát hành cho Windows 11 Insider Preview Build 27891, Microsoft đã xác nhận rằng PowerShell 2.0 hiện đã bị loại bỏ và không còn tồn tại trong các bản dựng kênh Canary mới nhất. Công ty tuyên bố: “Thông tin chi tiết hơn sẽ được chia sẻ trong những tháng tới về việc loại bỏ Windows PowerShell 2.0 trong một bản cập nhật sắp tới cho Windows 11.”
Điều này báo hiệu rằng việc loại bỏ này sẽ sớm được mở rộng đến tất cả các phiên bản Windows 11 được hỗ trợ, không chỉ giới hạn trong các bản dựng Insider. Cách tiếp cận theo từng giai đoạn của Microsoft nhằm mục đích giảm thiểu sự gián đoạn trong khi vẫn đảm bảo rằng Windows 11 duy trì bảo mật và cập nhật.
Ảnh Hưởng Đối Với Người Dùng và Quản Trị Viên CNTT
Việc loại bỏ PowerShell 2.0 sẽ có ảnh hưởng đáng kể đến các quản trị viên CNTT và người dùng phụ thuộc vào các script cũ. Microsoft đã hứa sẽ cung cấp hướng dẫn và thời gian biểu bổ sung cho việc loại bỏ hoàn toàn PowerShell 2.0 trong những tháng tới. Người dùng trên kênh Insider Canary sẽ là những người đầu tiên trải nghiệm sự thay đổi này, đóng vai trò là sân thử nghiệm trước khi triển khai rộng rãi hơn.
Các quản trị viên hệ thống cần chủ động kiểm tra và cập nhật các script PowerShell hiện có trong môi trường của mình. Bất kỳ script nào được viết dành riêng cho PowerShell 2.0 hoặc sử dụng các cú pháp/module chỉ có trong phiên bản đó đều có thể gặp lỗi hoặc không hoạt động sau khi PowerShell 2.0 bị gỡ bỏ. Việc di chuyển sang các phiên bản PowerShell hiện đại như PowerShell 5.1 (được cài đặt sẵn trên hầu hết các phiên bản Windows hiện đại) hoặc PowerShell 7.x (phiên bản đa nền tảng, mã nguồn mở) là điều cần thiết.
Các Bước Chuẩn Bị và Giải Pháp Thay Thế
Để đảm bảo quá trình chuyển đổi suôn sẻ và duy trì khả năng hoạt động của hệ thống, người dùng và quản trị viên CNTT nên thực hiện các bước sau:
Kiểm Tra Phiên Bản PowerShell Hiện Có
Trước tiên, hãy xác định phiên bản PowerShell đang chạy trên các hệ thống Windows 11. Điều này có thể được thực hiện bằng cách mở PowerShell và chạy lệnh sau:
$PSVersionTable.PSVersionNếu kết quả trả về cho thấy phiên bản chính (Major) là 2, hoặc nếu bất kỳ script nào của bạn có yêu cầu rõ ràng về phiên bản 2.0 (ví dụ: `#Requires -Version 2.0`), thì chúng sẽ bị ảnh hưởng bởi thay đổi này.
Cập Nhật và Di Chuyển Sang Phiên Bản PowerShell Hiện Đại
Hầu hết các hệ thống Windows 10 và Windows 11 đều có PowerShell 5.1 được cài đặt sẵn. Đây là phiên bản tương thích ngược tốt nhất với các script cũ và đã tích hợp các tính năng bảo mật mới như AMSI và Script Block Logging.
Đối với các môi trường yêu cầu hiệu suất cao hơn, khả năng đa nền tảng, và các tính năng phát triển mới nhất, việc cài đặt và di chuyển sang PowerShell 7.x (PowerShell Core) là lựa chọn được khuyến nghị. PowerShell 7.x có thể chạy song song với PowerShell 5.1, cho phép quản trị viên dần dần chuyển đổi các script của họ.
Để cài đặt PowerShell 7.x, người dùng có thể tải trình cài đặt từ trang GitHub chính thức của PowerShell hoặc thông qua Windows Package Manager (winget):
winget install --id Microsoft.PowerShell --source wingetTối Ưu Bảo Mật Với Các Tính Năng Mới
Sau khi di chuyển sang phiên bản PowerShell hiện đại, hãy đảm bảo rằng các tính năng bảo mật nâng cao được kích hoạt và cấu hình đúng cách trong môi trường của bạn:
- Kích hoạt AMSI: Đảm bảo rằng phần mềm chống phần mềm độc hại của bạn được tích hợp và hoạt động đúng cách với AMSI để quét các script PowerShell.
- Cấu hình Script Block Logging: Bật ghi nhật ký khối script trong GPO (Group Policy Object) để thu thập thông tin chi tiết về việc thực thi script. Điều này cực kỳ quan trọng cho việc phát hiện và phản ứng sự cố.
- Sử dụng Constrained Language Mode: Đối với các hệ thống có nguy cơ cao hoặc người dùng không cần toàn bộ chức năng của PowerShell, hãy cân nhắc áp dụng Constrained Language Mode thông qua AppLocker hoặc Device Guard để hạn chế khả năng của PowerShell.
Các Cập Nhật Khác Trong Build 27891
Cùng với việc loại bỏ PowerShell 2.0, Build 27891 còn giới thiệu một loạt các bản sửa lỗi và cải tiến trên toàn bộ hệ điều hành. Microsoft tiếp tục khuyến khích phản hồi từ Windows Insiders khi hãng tinh chỉnh các bản cập nhật này trước khi phát hành rộng rãi.










