Nhiều techie như tôi đã đọc loạt advisory gần đây về lỗ hổng nghiêm trọng mới trong scripting engine legacy của Internet Explorer (jscript.dll), và cách nó đang bị khai thác chủ động. Riêng nó có thể xảy ra, đúng. Nhưng điều làm tôi khó chịu là sự báo hiệu của bi quan và thảm họa trên Web. Hầu như chỉ có hoảng loạn, rất ít tập trung vào phân tích vấn đề, xem có thể mitigate một cách thanh lịch không.
Thực tế, Microsoft đã liệt kê workaround — bạn có thể deny quyền truy cập vào thư viện bị ảnh hưởng. Nhưng điều này cũng gây side effect. Bạn có thể thấy vấn đề in ấn, truy cập group policy editor, và vài vấn đề khác. Vì vậy tôi ngồi xuống suy nghĩ: có cách nào giảm tác động của lỗ hổng, mà không làm hệ thống đi lung tung không?
Phạm vi vấn đề
Lỗ hổng tồn tại trong scripting engine (của Internet Explorer). Điều này nghĩa là bất kỳ chương trình nào gọi engine này đều có thể trigger memory corruption, và dẫn đến thực thi code tùy ý. Phổ biến là Internet Explorer, có thể Microsoft Office, và có thể một số ứng dụng legacy lạ, không khả dĩ tìm thấy trong môi trường gia đình điển hình.
Giải pháp là không chạy Internet Explorer — và tránh mở file/link lạ trong các chương trình khác. Điều này luôn đúng, bất kể. Vấn đề là: nếu bạn "vô tình" mở Internet Explorer đối với trang có thể trigger lỗ hổng này?
Đừng chạy Internet Explorer
Windows có tùy chọn cấm chạy ứng dụng cụ thể từ lâu. Có thể thực hiện qua registry hoặc group policy editor (cho user Pro), và sẽ ngăn các chương trình liệt kê chạy. Cụ thể, chạy gpedit.msc, vào User Configuration > System, mở policy: Don't run specified Windows applications.
Enable policy. Sau đó, dưới Options:, click Show và thêm iexplore.exe vào danh sách ứng dụng bị cấm.
Điều này hoạt động như quảng cáo — nhưng chỉ nếu bạn dùng Windows Explorer hoặc Start menu để launch chương trình. Nó không chặn truy cập bằng cách khác, cũng không ngăn ứng dụng dùng thư viện jscript.dll. Đừng lo, chúng ta sẽ đến đó. Tôi tiến hành chậm rãi, tuyến tính.
Tương tự, registry path để thêm ứng dụng là:
HKEY_CURRENT_USER\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies
Image File Execution Options (IFEO)
Chúng ta đã nói về tính năng siêu hữu ích và mạnh mẽ này trong ngữ cảnh GWX. Bạn có thể dùng nó để thay đổi hành vi của bất kỳ chương trình nào trên hệ thống. Cơ bản, chúng ta dùng chức năng Debugger, và thay đổi thực thi iexplore.exe từ hành vi mặc định thành chạy empty cmd shell. Cơ bản, một dummy run không làm gì và không invoke thư viện Javascript.
Điều này cho phép bạn "chạy" Internet Explorer, nhưng toàn bộ run chỉ là spawn command prompt shell đơn giản thoát ra. Nghĩa là không quan trọng bạn invoke IE như thế nào, nó sẽ không thực sự chạy, giảm rủi ro thư viện jscript.dll được load vào bộ nhớ.
Lưu ý, điều này chỉ ảnh hưởng đến Internet Explorer, và không ngăn các chương trình khác dùng thư viện, ví dụ Microsoft Word hiển thị document với embedded object malformed tham chiếu hàm jscript.dll. Nhưng nó giảm rủi ro thư viện được dùng, đặc biệt bởi chương trình có khả năng mạng như IE. Các công cụ khác trên hệ thống có thể vẫn cần thư viện này, nhưng nếu chúng không nhất thiết kết nối tài nguyên mạng bên ngoài, rủi ro giảm.
Phần cool của IFEO là nó không yêu cầu gì ngoài việc set registry key. Nếu muốn revert, chỉ cần xóa string Debugger, bạn sẽ có lại chức năng cũ.
Cuối cùng, nếu bạn dùng anti-malware, một số có thể xem đây là IFEO Hijack tiềm năng. Hãy nhận thức điều này, và tiếp tục, có thể thậm chí embrace cách thông minh hơn làm computer security. Nhưng đó là chủ đề cho lần sau.
Hãy nói về jscript.dll
Công việc trên không fix vấn đề. Nó workaround bằng cách giảm cơ hội IE chạy. Fix đúng là cập nhật thư viện. Kỹ thuật, bạn có thể "chỉ" copy phiên bản patched mới lên phiên bản cũ, xong. Nhưng cơ chế Windows Update phức tạp hơn.
Vì vậy mitigation là xóa quyền executable từ thư viện. Bạn có thể làm trên command line, như advisory nói, hoặc dùng Windows Explorer. Lý do dùng command line là để take ownership của thư viện (system), để thay đổi security settings. Hoặc bạn thao tác permissions bằng cách mở cmd (hoặc explorer) qua ExecTI, tiện ích cho phép chạy chương trình với đặc quyền cao nhất, như tôi đã show trong danh sách must-have Windows admin utilities.
Điều bạn muốn làm là bỏ chọn checkbox Read & execute cho tất cả groups hoặc users liệt kê. Nhưng rồi side effects! Ví dụ, Group Policy editor nói trên sẽ không launch đúng nếu execute bị deny cho Administrators. Điều này cũng nhấn mạnh tầm quan trọng của chạy dưới standard user, vì bạn có thể no execute cho Jscript cho Users, và vẫn dùng IE được, không ảnh hưởng chức năng hệ thống.
Group Policy Editor với JScript.dll không được phép execute. Layout bị lỗi.
Nhưng vì đây là tất cả, bạn có thể disable Read & execute, và toggle khi cần, cho đến khi áp dụng patch chính thức — miễn là bạn thực sự muốn áp dụng. Trong một số kịch bản, bạn có thể không muốn, hoặc không thể, và thậm chí phải dùng IE. Nhưng điều này không khả dĩ trong setup gia đình. Và tôi không nói về enterprise security. Vì vậy hãy hạ thấp cái xẻng. Cuối cùng, bạn có thể làm tương tự cho Internet Explorer — xóa quyền execute.
Khác — local scripting
Sau đó, nếu bạn cần dùng IE, bạn có thể disable Active Scripting dưới Internet Options. Đây là tin cũ, nên tôi không tập trung nhiều ở đây. Điều thực tế hơn là tránh vô tình thực thi file Javascript lưu cục bộ, qua Microsoft Based Script Host. Đây là mặc định, ngay cả trên Windows 10. Nhưng thực tế, rất ít lý do bạn cần chạy file JS cục bộ, ngoài ngữ cảnh trình duyệt.
Điều bạn muốn làm là tạo file Javascript giả, kiểu file.js. Click chuột phải > Open with, chọn text editor nào đó (dưới More apps). Nghĩa là ngay cả khi bạn double-click file JS cục bộ, nó sẽ mở như file text.
Kết luận
Đừng để hoảng loạn làm la bàn. Một số vấn đề bảo mật nghiêm trọng và cần kiểm tra. Nhưng những cái khác không nhất thiết tàn khốc như có vẻ, dựa trên xôn xao Internet. Trong trường hợp này, vâng, đây không phải điều tốt. Mặt khác, không chạy IE giải quyết hầu như mọi thứ. Cũng đừng phải n00b và chạy file lung tung, bạn sẽ ổn.
Trong bài này, tôi cố gắng đưa ra cái nhìn bình tĩnh hơn về chuyện gì xảy ra, và các lựa chọn bạn có. Quan trọng nhất, bạn có thể dùng phép màu IFEO tuyệt vời để ngăn IE chạy, không cần hỏi han. Cách này giảm rủi ro nonsense, चाहे old game launcher hard-code iexplore.exe cho tin nhắn/thông báo, hay ngón tay run run của bạn. Bạn cũng có thể disable quyền execute cho thư viện, và nếu hệ thống setup với standard user, bạn có thể thậm chí không cần hy sinh chức năng giảm sút do disable thư viện. Xong. Enjoy your Webz.
Cheers.