.: Nguoicodonvn2008.info - Cõi lòng người cô đơn :.

https://www.nguoicodonvn2008.info

Khắc phục sự cố các lỗ hổng của driver OpenVPN khiến hệ thống Windows bị sập

Khắc phục sự cố các lỗ hổng của driver OpenVPN khiến hệ thống Windows bị sập

Bạn có thấy lỗi màn hình xanh chết chóc do OpenVPN trong ứng dụng VPN của mình không? Lỗi này bắt nguồn từ lỗ hổng driver OpenVPN và cần bản vá từ nguồn. Vì hầu hết các nhà cung cấp VPN lớn đều sử dụng giao thức OpenVPN nên thiết bị Windows của bạn có thể gặp phải lỗi nghiêm trọng này. Sau đây là cách chẩn đoán lỗi này khi nó xảy ra và ngăn chặn sự cố PC nghiêm trọng.

OpenVPN làm Windows bị sập

OpenVPN được sử dụng rộng rãi trong các ứng dụng VPN. Vào tháng 6 năm 2025, một lỗ hổng tràn bộ đệm (buffer overflow) nghiêm trọng đã được tìm thấy trong driver chuyển kênh dữ liệu (DCO) của OpenVPN - "ovpn-dco-win", gây ra sự cố màn hình xanh chết chóc.

Đây không phải là lần đầu tiên. Cơ chế plugin của OpenVPN từ lâu đã là một điểm yếu, cho phép thực thi code từ xa hoặc lỗi nâng cao đặc quyền (privilege escalation). Vào năm 2024, Microsoft đã phát hiện ra 4 lỗi (CVE-2024-27459, CVE-2024-24974, CVE-2024-27903, CVE-2024-1305), lỗi cuối cùng gây tràn bộ nhớ trong driver TAP của Windows, dẫn đến sự cố từ chối dịch vụ (DoS).

Nếu bạn sử dụng sản phẩm VPN và thiết lập để khởi chạy khi khởi động lại hệ thống, bạn có thể gặp phải lỗi này nếu chưa cập nhật OpenVPN client lên bản vá mới nhất, "OpenVPN 2.7_alpha2" trở lên. Nhà cung cấp VPN sẽ đưa ra bản sửa lỗi trong Windows client của riêng họ, vì vậy hãy cập nhật VPN của bạn càng sớm càng tốt.

OpenVPN client được lên lịch khởi chạy khi khởi động PC và chặn Internet khi tạm dừng hoặc kết nối lại.
OpenVPN client được lên lịch khởi chạy khi khởi động PC và chặn Internet khi tạm dừng hoặc kết nối lại.

Driver DCO xử lý các tác vụ gói dữ liệu như mã hóa, giải mã và định tuyến, di chuyển chúng từ không gian người dùng sang Windows kernel. Không giống như WireGuard, DCO của OpenVPN hoạt động trong kernel space. Sự cố sập chủ yếu xảy ra do các thành phần này tương tác chặt chẽ với hệ điều hành.

Các sự cố phần mềm độc hại cấp độ kernel trước đây cho thấy những vấn đề này khó quản lý như thế nào và những gói tin bị lỗi của CVE-2025-50054 gây ra sự cố sập do lỗi bộ nhớ cấp thấp.

Xác định vị trí và vô hiệu hóa driver OpenVPN trong PC chạy Windows

Nếu không sử dụng OpenVPN, bạn có thể giữ nguyên trạng thái vô hiệu hóa. VPN client của bạn có thể cài đặt driver của nó, vì vậy hãy tìm hiểu xem hệ thống có driver đó không.

Mở File Explorer. Đi tới C:\Windows\System32\Drivers. Tìm các driver liên quan đến OpenVPN như driver DCO – “ovpn-dco.sys”.

Xác định vị trí và mở driver DCO của OpenVPN trong System32.
Xác định vị trí và mở driver DCO của OpenVPN trong System32.

Các driver OpenVPN dễ bị tấn công khác bao gồm TAP-Windows Adapter V9, “tapwindows6.sys”, driver Wintun, “wintun.sys” và các pipe interface được đặt tên, chẳng hạn như “\\.\pipe\openvpn”.

Bạn có thể xác định vị trí các driver này trong Device Manager. Trong lệnh Run, nhập devmgmt.msc và đi đến Network Adapters. Bạn sẽ thấy các adapter OpenVPN trên hệ thống của mình, chẳng hạn như DCO và TAP-Windows Adapter V9, được liệt kê ở đây.

Định vị driver DCO và TAP của OpenVPN trong Network Adapters.
Định vị driver DCO và TAP của OpenVPN trong Network Adapters.

Nếu bạn muốn liệt kê tất cả các driver OpenVPN ẩn trong hệ thống của mình, hãy mở PowerShell với quyền admin. Bây giờ, hãy nhập lệnh sau:

Get-WmiObject Win32_SystemDriver | Where-Object { $_.Name -like "*ovpn*" -or $_.Name -like "*tap*" } | Select-Object Name, State, PathName, StartMode

Sau đó, bạn có thể chọn gỡ cài đặt ứng dụng OpenVPN và xóa tất cả driver của ứng dụng theo cách thủ công. Đôi khi, chúng vẫn tồn tại ngay cả sau khi bạn đã gỡ cài đặt ứng dụng.

Trên VPN client như NordVPN hoặc ExpressVPN, nếu bạn không có kế hoạch sử dụng OpenVPN, hãy chuyển sang WireGuard.

Lưu ý:: Cơ sở code phức tạp của OpenVPN, driver cũ, tiến trình không có đặc quyền và việc áp dụng bản vá chậm khiến nó đặc biệt nguy hiểm trên Windows. Đó là lý do tại sao người dùng Windows nên chuyển sang WireGuard thay vì OpenVPN.

Hạn chế quyền truy cập của driver OpenVPN vào quyền trên PC

Tính linh hoạt và tích hợp sâu vào hệ điều hành của OpenVPN khiến nó dễ bị lỗi low-level có thể gây ra hậu quả nghiêm trọng, đặc biệt là trên Windows.

Để ngăn chặn điều này, bạn có thể hạn chế quyền truy cập của driver OpenVPN bị hỏng để sửa đổi quyền (giải pháp này đảm bảo bạn không phải gỡ cài đặt VPN client của mình).

Mở PowerShell với quyền admin và nhập lệnh sau:

$driverPath = "C:\Windows\System32\drivers\ovpn-dco.sys"
icacls $driverPath /inheritance:r
icacls $driverPath /grant:r "SYSTEM:R" "Administrators:R"
icacls $driverPath /deny "Everyone:W"
Driver OpenVPN DCO bị ngăn không cho tự động thay đổi quyền.
Driver OpenVPN DCO bị ngăn không cho tự động thay đổi quyền.

Lệnh trên xóa các quyền được thừa kế để chặn truy cập đột ngột. Lệnh này cũng từ chối quyền ghi cho mọi người, bao gồm cả người dùng không có đặc quyền và phần mềm độc hại, đảm bảo rằng sự cố driver sẽ không ảnh hưởng đến hệ thống của bạn.

Ở bước trước, chúng ta đã thấy cách liệt kê tất cả các driver OpenVPN ẩn. Bạn có thể lặp lại lệnh trên với một chút chỉnh sửa trong đường dẫn driver để từ chối quyền truy cập vào chúng theo cách tương tự. Ở đây, chúng ta đang từ chối quyền truy cập vào TAP-Windows Adapter V9, “tapwindows6.sys”.

Xóa và hạn chế TAP Connect trong OpenVPN thông qua lệnh chặn.
Xóa và hạn chế TAP Connect trong OpenVPN thông qua lệnh chặn.

Giám sát sự cố BSoD do driver OpenVPN gây ra

Mặc dù các bản vá OpenVPN được phát hành nhanh chóng, nhưng nhiều người dùng vẫn chậm cập nhật. Có một cách chủ động để giám sát các sự cố này không xảy ra. Trước tiên, hãy tải xuống tiện ích có tên là Blue Screen View và cài đặt như hướng dẫn này.

Bây giờ, hãy mở PowerShell với quyền admin và chạy script sau như được hiển thị. Thay thế đường dẫn $nirDir bằng đường dẫn thực tế của thư mục nơi bạn đã cài đặt ứng dụng. Nó sẽ kiểm tra các bản dump sự cố gần đây và đánh dấu bất kỳ bản nào liệt kê driver liên quan đến OpenVPN là nguyên nhân chính.

# Set path to your BlueScreenView directory (update if needed)
$nirDir = "C:\Tools\BlueScreenView"  # ← Change this to your actual path
$csvPath = "$nirDir\bsod.csv"

# Monitoring loop
while ($true) {
    # Run BlueScreenView in command-line mode and export to CSV
    Start-Process -FilePath "$nirDir\BlueScreenView.exe" -ArgumentList "/scomma `"$csvPath`"" -Wait

    # Import and analyze results
    $bsods = Import-Csv $csvPath -Header Dumpfile, Timestamp, Reason, Errorcode, Param1, Param2, Param3, Param4, CausedByDriver

    $recent = $bsods | Where-Object {
        ($_.Timestamp -as [datetime]) -gt (Get-Date).AddMinutes(-10) -and
        $_.CausedByDriver -match "ovpn|tap|wintun"
    }

    if ($recent) {
        Write-Warning "⚠️ BSOD caused by OpenVPN-related driver in last 10 minutes!"
        $recent | Format-Table -AutoSize
    } else {
        Write-Host "✅ No recent OpenVPN-related BSODs."
    }

    Start-Sleep -Seconds 600  # Wait 10 minutes before checking again
}
Không phát hiện thấy BSOD liên quan đến OpenVPN nào trong hệ thống gần đây.
Không phát hiện thấy BSOD liên quan đến OpenVPN nào trong hệ thống gần đây.

Như được hiển thị trong cửa sổ kết quả ở trên, không phát hiện thấy trường hợp nào gần đây về sự cố BSoD do OpenVPN.

Mẹo: Bản thân Windows sẽ phát hành bản vá kịp thời để khắc phục sự cố do các ứng dụng như OpenVPN gây ra. Hãy xem hướng dẫn cập nhật Windows để theo dõi và ngăn chặn mọi sự cố BSoD có thể ảnh hưởng đến hệ thống.

Sử dụng policy hạn chế phần mềm cho driver OpenVPN

Trên thiết bị Windows Pro/Enterprise, bạn có thể sử dụng policy hạn chế phần mềm trong Local Group Policy Editor để chặn driver OpenVPN thực thi ngẫu nhiên mà không có sự cho phép của bạn.

Mở Group Policy Editor từ lệnh Run bằng cách nhập “gpedit.msc”. Đi tới Computer Configuration -> Windows Settings -> Security Settings -> Software Restriction Policies -> Additional Rules.

Nhấp chuột phải vào mục cuối cùng để chọn New Path Rule.

Chọn New Path Rule trong Local Group Policy.
Chọn New Path Rule trong Local Group Policy.

Trong cửa sổ pop-up mở ra, hãy sao chép-dán đường dẫn của driver. Trong trường hợp này, ví dụ đã sao chép-dán đường dẫn driver cho DCO của OpenVPN. Chọn Disallowed, rồi nhấn Apply -> OK. Bây giờ, hãy lặp lại phương pháp này cho tất cả các driver khác.

Vì kernel space driver trong OpenVPN vẫn duy trì trạng thái phiên ngay cả sau khi bạn gỡ cài đặt ứng dụng, nên chúng là nguyên nhân chính khiến Windows bị sập trong khi khởi động. Bằng cách làm theo các phương pháp trên, bạn có thể ngăn chặn lỗi xấu. Nếu bạn đang tìm kiếm một sản phẩm VPN mới, hãy tìm hiểu những tiêu chí quan trọng mà chúng phải đáp ứng.

Nguồn tin: Quantrimang.com:

Bạn đã không sử dụng Site, Bấm vào đây để duy trì trạng thái đăng nhập. Thời gian chờ: 60 giây